diff --git a/ci-scripts/Jenkinsfile-gitlab b/ci-scripts/Jenkinsfile-gitlab index 233e5d1018..fe1fe157b3 100644 --- a/ci-scripts/Jenkinsfile-gitlab +++ b/ci-scripts/Jenkinsfile-gitlab @@ -1,4 +1,38 @@ -// Comments +#!/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 +>>>>>>> origin/develop pipeline { agent { @@ -8,10 +42,35 @@ pipeline { disableConcurrentBuilds() timestamps() gitLabConnection('OAI GitLab') - gitlabBuilds(builds: ["Build eNb-USRP", "Build gNb-usrp", "Build nr-UE-usrp", "Build phy-sim", "Analysis with cppcheck"]) + gitlabBuilds(builds: ["Build eNb-USRP", "Build gNb-usrp", "Build nr-UE-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}" @@ -67,6 +126,12 @@ pipeline { } } + 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}" @@ -82,6 +147,18 @@ pipeline { stage ("Start VM -- nu-ue-usrp") { steps { sh "./ci-scripts/createVM.sh --variant nu-ue-usrp --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}" } } @@ -119,6 +196,54 @@ pipeline { 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 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" + } + } } } } @@ -127,13 +252,22 @@ pipeline { always { script { dir ('archives') { - sh "zip -r -qq vm_build_logs.zip enb_usrp phy_sim cppcheck gnb_usrp nrue_usrp" + sh "zip -r -qq vm_build_logs.zip basic_sim enb_usrp phy_sim cppcheck gnb_usrp nrue_usrp 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}" } @@ -145,6 +279,91 @@ pipeline { } } + 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 { + // In case of success we really pick the report from the exact slave build number + success { + 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' + } + } + } + // In case of any non-success, we are retrieving the HTML report of the last completed + // slave job. Note that we could use that syntax also in case of success. + // The only drop-back is that we may retrieve the HTML report of a previous build + cleanup { + script { + if (!fileExists('test_results-eNB-CI-FDD-Band7-B210.html')) { + copyArtifacts(projectName: 'eNB-CI-FDD-Band7-B210', + filter: 'test_results*.html', + selector: lastCompleted()) + 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}" @@ -165,9 +384,9 @@ pipeline { 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 + ")" - slackSend channel: 'ci-enb', color: 'good', message: message2 + sendSocialMediaMessage('ci-enb', 'good', message2) } else { - slackSend channel: 'ci-enb', color: 'good', message: message + sendSocialMediaMessage('ci-enb', 'good', message) } } } @@ -178,9 +397,9 @@ pipeline { 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 + ")" - slackSend channel: 'ci-enb', color: 'danger', message: message2 + sendSocialMediaMessage('ci-enb', 'danger', message2) } else { - slackSend channel: 'ci-enb', color: 'danger', message: message + 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/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 index 7aeedb6050..091e1f5183 100755 --- a/ci-scripts/buildOnVM.sh +++ b/ci-scripts/buildOnVM.sh @@ -1,4 +1,24 @@ #!/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" @@ -136,6 +156,7 @@ case $key in LOG_PATTERN=cppcheck.xml NB_PATTERN_FILES=1 BUILD_OPTIONS="--enable=warning --force --xml --xml-version=2 -i openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c" + shift ;; -v5) 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 index 20657b7fd0..a18fc67c75 100755 --- a/ci-scripts/checkCodingFormattingRules.sh +++ b/ci-scripts/checkCodingFormattingRules.sh @@ -1,4 +1,24 @@ #!/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" 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 index d6b3a3981a..794894c6f3 100755 --- a/ci-scripts/createVM.sh +++ b/ci-scripts/createVM.sh @@ -1,4 +1,24 @@ #!/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" @@ -60,10 +80,10 @@ then fi VM_TEMPLATE=ci- -VM_MEMORY=2048 JOB_NAME=XX BUILD_ID=XX VM_NAME=ci-enb-usrp +VM_MEMORY=2048 while [[ $# -gt 0 ]] do @@ -175,6 +195,7 @@ 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" diff --git a/ci-scripts/destroyAllRunningVM.sh b/ci-scripts/destroyAllRunningVM.sh index c9eb43b4ef..5e152bc590 100755 --- a/ci-scripts/destroyAllRunningVM.sh +++ b/ci-scripts/destroyAllRunningVM.sh @@ -1,4 +1,24 @@ #!/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" 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..c453558790 --- /dev/null +++ b/ci-scripts/main.py @@ -0,0 +1,1819 @@ +#/* +# * 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, SimpleQueue +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 copy(self, ipaddress, username, password, source, destination): + logging.debug('scp '+ username + '@' + ipaddress + ':' + source + ' ' + destination) + scp_spawn = pexpect.spawn('scp '+ username + '@' + ipaddress + ':' + source + ' ' + destination, timeout = 5) + scp_response = scp_spawn.expect(['Are you sure you want to continue connecting (yes/no)?', 'password:', pexpect.EOF, pexpect.TIMEOUT]) + if scp_response == 0: + scp_spawn.sendline('yes') + scp_spawn.expect('password:') + scp_spawn.sendline(password) + scp_response = scp_spawn.expect(['\$', 'Permission denied', 'password:', pexpect.EOF, pexpect.TIMEOUT]) + if scp_response == 0: + pass + else: + logging.debug('1 - scp_response = ' + str(scp_response)) + sys.exit('SCP failed') + elif scp_response == 1: + scp_spawn.sendline(password) + scp_response = scp_spawn.expect(['\$', 'Permission denied', 'password:', pexpect.EOF, pexpect.TIMEOUT]) + if scp_response == 0 or scp_response == 3: + pass + else: + logging.debug('2 - scp_response = ' + str(scp_response)) + sys.exit('SCP failed') + elif scp_response == 2: + pass + else: + logging.debug('3 - scp_response = ' + str(scp_response)) + sys.exit('SCP failed') + + 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 ','') + extIdx = full_config_file.find('.conf') + if (extIdx > 0): + extra_options = full_config_file[extIdx + 5:] + full_config_file = full_config_file[:extIdx + 5] + config_path, config_file = os.path.split(full_config_file) + else: + sys.exit('Insufficient Parameter') + 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 + extra_options + '" > ./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;30;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, statusQueue, lock): + 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) + max_count = 45 + count = max_count + 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') + lock.acquire() + statusQueue.put(-1) + statusQueue.put(device_id) + statusQueue.put('mDataConnectionState Not Found!') + lock.release() + break + mDataConnectionState = int(result.group('state')) + if mDataConnectionState == 2: + logging.debug('\u001B[1mUE (' + device_id + ') Attach Completed\u001B[0m') + lock.acquire() + statusQueue.put(max_count - count) + statusQueue.put(device_id) + statusQueue.put('Attach Completed') + lock.release() + 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(max_count-count) + ' times)\u001B[0m') + time.sleep(1) + if count == 0: + logging.debug('\u001B[1;37;41m UE (' + device_id + ') Attach Failed \u001B[0m') + lock.acquire() + statusQueue.put(-1) + statusQueue.put(device_id) + statusQueue.put('Attach Failed') + lock.release() + 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 = [] + status_queue = SimpleQueue() + lock = Lock() + for device_id in self.UEDevices: + p = Process(target = SSH.AttachUE_common, args = (device_id, status_queue, lock,)) + p.daemon = True + p.start() + multi_jobs.append(p) + for job in multi_jobs: + job.join() + + if (status_queue.empty()): + self.CreateHtmlTestRow('N/A', 'KO', len(self.UEDevices)) + sys.exit(1) + else: + attach_status = True + html_queue = SimpleQueue() + while (not status_queue.empty()): + count = status_queue.get() + if (count < 0): + attach_status = False + device_id = status_queue.get() + message = status_queue.get() + if (count < 0): + html_cell = "
UE (" + device_id + ")\n" + message + "
" + else: + html_cell = "
UE (" + device_id + ")\n" + message + ' in ' + str(count + 2) + ' seconds
' + html_queue.put(html_cell) + if (attach_status): + self.CreateHtmlTestRowQueue('N/A', 'OK', len(self.UEDevices), html_queue) + else: + self.CreateHtmlTestRowQueue('N/A', 'KO', len(self.UEDevices), html_queue) + self.CreateHtmlFooter() + sys.exit(1) + + 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,statusQueue): + 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: + message = 'Packet Loss Not Found!' + logging.debug('\u001B[1;37;41m ' + message + ' \u001B[0m') + lock.acquire() + statusQueue.put(-1) + statusQueue.put(device_id) + statusQueue.put(message) + lock.release() + return + packetloss = result.group('packetloss') + if float(packetloss) == 100: + message = 'Packet Loss is 100%' + logging.debug('\u001B[1;37;41m ' + message + ' \u001B[0m') + lock.acquire() + statusQueue.put(-1) + statusQueue.put(device_id) + statusQueue.put(message) + lock.release() + return + 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: + message = 'Ping RTT_Min RTT_Avg RTT_Max Not Found!' + logging.debug('\u001B[1;37;41m ' + message + ' \u001B[0m') + lock.acquire() + statusQueue.put(-1) + statusQueue.put(device_id) + statusQueue.put(message) + lock.release() + return + rtt_min = result.group('rtt_min') + rtt_avg = result.group('rtt_avg') + rtt_max = result.group('rtt_max') + pal_msg = 'Packet Loss : ' + packetloss + '%' + min_msg = 'RTT(Min) : ' + rtt_min + ' ms' + avg_msg = 'RTT(Avg) : ' + rtt_avg + ' ms' + max_msg = 'RTT(Max) : ' + rtt_max + ' ms' + lock.acquire() + logging.debug('\u001B[1;37;44m ping result (' + UE_IPAddress + ') \u001B[0m') + logging.debug('\u001B[1;34m ' + pal_msg + '\u001B[0m') + logging.debug('\u001B[1;34m ' + min_msg + '\u001B[0m') + logging.debug('\u001B[1;34m ' + avg_msg + '\u001B[0m') + logging.debug('\u001B[1;34m ' + max_msg + '\u001B[0m') + qMsg = pal_msg + '\n' + min_msg + '\n' + avg_msg + '\n' + max_msg + packetLossOK = True + if packetloss is not None: + if float(packetloss) > float(self.ping_packetloss_threshold): + qMsg += '\nPacket Loss too high' + logging.debug('\u001B[1;37;41m Packet Loss too high \u001B[0m') + packetLossOK = False + elif float(packetloss) > 0: + qMsg += '\nPacket Loss is not 0%' + logging.debug('\u001B[1;37;43m Packet Loss is not 0% \u001B[0m') + if (packetLossOK): + statusQueue.put(0) + else: + statusQueue.put(-1) + statusQueue.put(device_id) + statusQueue.put(UE_IPAddress) + statusQueue.put(qMsg) + lock.release() + 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() + status_queue = SimpleQueue() + for UE_IPAddress in self.UEIPAddresses: + device_id = self.UEDevices[i] + p = Process(target = SSH.Ping_common, args = (lock,UE_IPAddress,device_id,status_queue,)) + p.daemon = True + p.start() + multi_jobs.append(p) + i = i + 1 + for job in multi_jobs: + job.join() + + if (status_queue.empty()): + self.CreateHtmlTestRow(self.ping_args, 'KO', len(self.UEDevices)) + sys.exit(1) + else: + ping_status = True + html_queue = SimpleQueue() + while (not status_queue.empty()): + count = status_queue.get() + if (count < 0): + ping_status = False + device_id = status_queue.get() + ip_addr = status_queue.get() + message = status_queue.get() + html_cell = "
UE (" + device_id + ")\nIP Address  : " + ip_addr + "\n" + message + "
" + html_queue.put(html_cell) + if (ping_status): + self.CreateHtmlTestRowQueue(self.ping_args, 'OK', len(self.UEDevices), html_queue) + else: + self.CreateHtmlTestRowQueue(self.ping_args, 'KO', len(self.UEDevices), html_queue) + self.CreateHtmlFooter() + sys.exit(1) + + 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, device_id, statusQueue, iperf_real_options): + 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') + return -1 + # Computing the requested bandwidth in float + result = re.search('-b (?P[0-9\.]+)[KMG]', str(iperf_real_options)) + if result is not None: + req_bandwidth = result.group('iperf_bandwidth') + req_bw = float(req_bandwidth) + result = re.search('-b [0-9\.]+K', str(iperf_real_options)) + if result is not None: + req_bandwidth = '%.1f Kbits/sec' % req_bw + req_bw = req_bw * 1000 + result = re.search('-b [0-9\.]+M', str(iperf_real_options)) + if result is not None: + req_bandwidth = '%.1f Mbits/sec' % req_bw + req_bw = req_bw * 1000000 + result = re.search('-b [0-9\.]+G', str(iperf_real_options)) + if result is not None: + req_bandwidth = '%.1f Gbits/sec' % req_bw + req_bw = req_bw * 1000000000 + + 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') + iperfStatus = True + msg = 'Req Bitrate : ' + req_bandwidth + '\n' + logging.debug('\u001B[1;34m Req Bitrate : ' + req_bandwidth + '\u001B[0m') + if bitrate is not None: + msg += 'Bitrate : ' + bitrate + '\n' + logging.debug('\u001B[1;34m Bitrate : ' + bitrate + '\u001B[0m') + result = re.search('(?P[0-9\.]+) [KMG]bits/sec', str(bitrate)) + if result is not None: + actual_bw = float(str(result.group('real_bw'))) + result = re.search('[0-9\.]+ K', bitrate) + if result is not None: + actual_bw = actual_bw * 1000 + result = re.search('[0-9\.]+ M', bitrate) + if result is not None: + actual_bw = actual_bw * 1000000 + result = re.search('[0-9\.]+ G', bitrate) + if result is not None: + actual_bw = actual_bw * 1000000000 + br_loss = 100 * actual_bw / req_bw + bitperf = '%.2f ' % br_loss + msg += 'Bitrate Perf: ' + bitperf + '%\n' + logging.debug('\u001B[1;34m Bitrate Perf: ' + bitperf + '%\u001B[0m') + if packetloss is not None: + msg += 'Packet Loss : ' + packetloss + '%\n' + logging.debug('\u001B[1;34m Packet Loss : ' + packetloss + '%\u001B[0m') + if float(packetloss) > float(self.iperf_packetloss_threshold): + msg += 'Packet Loss too high!\n' + logging.debug('\u001B[1;37;41m Packet Loss too high \u001B[0m') + iperfStatus = False + if jitter is not None: + msg += 'Jitter : ' + jitter + '\n' + logging.debug('\u001B[1;34m Jitter : ' + jitter + '\u001B[0m') + if (iperfStatus): + statusQueue.put(0) + else: + statusQueue.put(-1) + statusQueue.put(device_id) + statusQueue.put(UE_IPAddress) + statusQueue.put(msg) + lock.release() + return 0 + + def Iperf_analyzeV2Server(self, lock, UE_IPAddress, device_id, statusQueue, iperf_real_options): + if (not os.path.isfile('iperf_server_' + SSH.testCase_id + '_' + device_id + '.log')): + lock.acquire() + statusQueue.put(-1) + statusQueue.put(device_id) + statusQueue.put(UE_IPAddress) + statusQueue.put('Could not analyze from server log') + lock.release() + return + # Computing the requested bandwidth in float + result = re.search('-b (?P[0-9\.]+)[KMG]', str(iperf_real_options)) + if result is None: + logging.debug('Iperf bandwidth Not Found!') + lock.acquire() + statusQueue.put(-1) + statusQueue.put(device_id) + statusQueue.put(UE_IPAddress) + statusQueue.put('Could not compute Iperf bandwidth!') + lock.release() + return + else: + req_bandwidth = result.group('iperf_bandwidth') + req_bw = float(req_bandwidth) + result = re.search('-b [0-9\.]+K', str(iperf_real_options)) + if result is not None: + req_bandwidth = '%.1f Kbits/sec' % req_bw + req_bw = req_bw * 1000 + result = re.search('-b [0-9\.]+M', str(iperf_real_options)) + if result is not None: + req_bandwidth = '%.1f Mbits/sec' % req_bw + req_bw = req_bw * 1000000 + result = re.search('-b [0-9\.]+G', str(iperf_real_options)) + if result is not None: + req_bandwidth = '%.1f Gbits/sec' % req_bw + req_bw = req_bw * 1000000000 + + server_file = open('iperf_server_' + SSH.testCase_id + '_' + device_id + '.log', 'r') + br_sum = 0.0 + ji_sum = 0.0 + pl_sum = 0 + ps_sum = 0 + row_idx = 0 + for line in server_file.readlines(): + result = re.search('(?P[0-9\.]+ [KMG]bits\/sec) +(?P[0-9\.]+ ms) +(?P[0-9]+)/ +(?P[0-9]+)', str(line)) + if result is not None: + bitrate = result.group('bitrate') + jitter = result.group('jitter') + packetlost = result.group('lostPack') + packetsent = result.group('sentPack') + br = bitrate.split(' ') + ji = jitter.split(' ') + row_idx = row_idx + 1 + curr_br = float(br[0]) + pl_sum = pl_sum + int(packetlost) + ps_sum = ps_sum + int(packetsent) + if (br[1] == 'Kbits/sec'): + curr_br = curr_br * 1000 + if (br[1] == 'Mbits/sec'): + curr_br = curr_br * 1000 * 1000 + br_sum = curr_br + br_sum + ji_sum = float(ji[0]) + ji_sum + if (row_idx > 0): + br_sum = br_sum / row_idx + ji_sum = ji_sum / row_idx + br_loss = 100 * br_sum / req_bw + if (br_sum > 1000): + br_sum = br_sum / 1000 + if (br_sum > 1000): + br_sum = br_sum / 1000 + bitrate = '%.2f Mbits/sec' % br_sum + else: + bitrate = '%.2f Kbits/sec' % br_sum + else: + bitrate = '%.2f bits/sec' % br_sum + bitperf = '%.2f ' % br_loss + bitperf += '%' + jitter = '%.2f ms' % (ji_sum) + if (ps_sum > 0): + pl = float(100 * pl_sum / ps_sum) + packetloss = '%2.1f ' % (pl) + packetloss += '%' + else: + packetloss = 'unknown' + lock.acquire() + if (br_loss < 90): + statusQueue.put(1) + else: + statusQueue.put(0) + statusQueue.put(device_id) + statusQueue.put(UE_IPAddress) + req_msg = 'Req Bitrate : ' + req_bandwidth + bir_msg = 'Bitrate : ' + bitrate + brl_msg = 'Bitrate Perf: ' + bitperf + jit_msg = 'Jitter : ' + jitter + pal_msg = 'Packet Loss : ' + packetloss + statusQueue.put(req_msg + '\n' + bir_msg + '\n' + brl_msg + '\n' + jit_msg + '\n' + pal_msg + '\n') + logging.debug('\u001B[1;37;45m iperf result (' + UE_IPAddress + ') \u001B[0m') + logging.debug('\u001B[1;35m ' + req_msg + '\u001B[0m') + logging.debug('\u001B[1;35m ' + bir_msg + '\u001B[0m') + logging.debug('\u001B[1;35m ' + brl_msg + '\u001B[0m') + logging.debug('\u001B[1;35m ' + jit_msg + '\u001B[0m') + logging.debug('\u001B[1;35m ' + pal_msg + '\u001B[0m') + lock.release() + else: + lock.acquire() + statusQueue.put(-1) + statusQueue.put(device_id) + statusQueue.put(UE_IPAddress) + statusQueue.put('Could not analyze from server log') + lock.release() + + server_file.close() + + + def Iperf_analyzeV3Output(self, lock, UE_IPAddress, device_id, statusQueue): + 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)) + lock.acquire() + statusQueue.put(-1) + statusQueue.put(device_id) + statusQueue.put(UE_IPAddress) + if result is not None: + logging.debug('\u001B[1;37;41m ' + result.group('error') + ' \u001B[0m') + statusQueue.put(result.group('error')) + else: + logging.debug('\u001B[1;37;41m Bitrate and/or Packet Loss Not Found! \u001B[0m') + statusQueue.put('Bitrate and/or Packet Loss Not Found!') + lock.release() + + 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') + msg = 'Bitrate : ' + bitrate + '\n' + iperfStatus = True + if packetloss is not None: + logging.debug('\u001B[1;34m Packet Loss : ' + packetloss + '%\u001B[0m') + msg += 'Packet Loss : ' + packetloss + '%\n' + if float(packetloss) > float(self.iperf_packetloss_threshold): + logging.debug('\u001B[1;37;41m Packet Loss too high \u001B[0m') + msg += 'Packet Loss too high!\n' + iperfStatus = False + if (iperfStatus): + statusQueue.put(0) + else: + statusQueue.put(-1) + statusQueue.put(device_id) + statusQueue.put(UE_IPAddress) + lock.release() + + def Iperf_UL_common(self, lock, UE_IPAddress, device_id, idx, ue_num, statusQueue): + 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) + modified_options = modified_options.replace('-R','') + 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) + clientStatus = self.Iperf_analyzeV2Output(lock, UE_IPAddress, device_id, statusQueue, modified_options) + + # 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() + if (clientStatus == -1): + time.sleep(1) + if (os.path.isfile('iperf_server_' + SSH.testCase_id + '_' + device_id + '.log')): + os.remove('iperf_server_' + SSH.testCase_id + '_' + device_id + '.log') + self.copy(self.EPCIPAddress, self.EPCUserName, self.EPCPassword, self.EPCSourceCodePath + '/scripts/iperf_server_' + SSH.testCase_id + '_' + device_id + '.log', '.') + self.Iperf_analyzeV2Server(lock, UE_IPAddress, device_id, statusQueue, modified_options) + + def Iperf_common(self, lock, UE_IPAddress, device_id, idx, ue_num, statusQueue): + 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 care 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: + message = 'Neither iperf nor iperf3 installed on UE!' + lock.acquire() + logging.debug('\u001B[1;37;41m ' + message + ' \u001B[0m') + statusQueue.put(-1) + statusQueue.put(device_id) + statusQueue.put(UE_IPAddress) + statusQueue.put(message) + lock.release() + return + #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, statusQueue) + 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) + + clientStatus = 0 + self.Iperf_analyzeV3Output(lock, UE_IPAddress, device_id, statusQueue) + 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) + + clientStatus = self.Iperf_analyzeV2Output(lock, UE_IPAddress, device_id, statusQueue, modified_options) + 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() + if (clientStatus == -1): + time.sleep(1) + if (os.path.isfile('iperf_server_' + SSH.testCase_id + '_' + device_id + '.log')): + os.remove('iperf_server_' + SSH.testCase_id + '_' + device_id + '.log') + self.copy(self.ADBIPAddress, self.ADBUserName, self.ADBPassword, self.EPCSourceCodePath + '/scripts/iperf_server_' + SSH.testCase_id + '_' + device_id + '.log', '.') + self.Iperf_analyzeV2Server(lock, UE_IPAddress, device_id, statusQueue, modified_options) + 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() + status_queue = SimpleQueue() + 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,status_queue,)) + p.daemon = True + p.start() + multi_jobs.append(p) + i = i + 1 + for job in multi_jobs: + job.join() + + if (status_queue.empty()): + self.CreateHtmlTestRow(self.iperf_args, 'KO', len(self.UEDevices)) + sys.exit(1) + else: + iperf_status = True + iperf_noperf = False + html_queue = SimpleQueue() + while (not status_queue.empty()): + count = status_queue.get() + if (count < 0): + iperf_status = False + if (count > 0): + iperf_noperf = True + device_id = status_queue.get() + ip_addr = status_queue.get() + message = status_queue.get() + html_cell = "
UE (" + device_id + ")\nIP Address  : " + ip_addr + "\n" + message + "
" + html_queue.put(html_cell) + if (iperf_noperf and iperf_status): + self.CreateHtmlTestRowQueue(self.iperf_args, 'PERF NOT MET', len(self.UEDevices), html_queue) + elif (iperf_status): + self.CreateHtmlTestRowQueue(self.iperf_args, 'OK', len(self.UEDevices), html_queue) + else: + self.CreateHtmlTestRowQueue(self.iperf_args, 'KO', len(self.UEDevices), html_queue) + self.CreateHtmlFooter() + sys.exit(1) + + 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() + self.CreateHtmlTestRow('N/A', 'OK', 0) + + 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') + + def CreateHtmlTestRowQueue(self, options, status, ue_status, ue_queue): + if ((not self.htmlFooterCreated) and (self.htmlHeaderCreated)): + addOrangeBK = False + 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: + addOrangeBK = True + self.htmlFile.write(' ' + str(status) + '\n') + i = 0 + while (i < self.htmlUEConnected): + if (i < ue_status): + if (not ue_queue.empty()): + if (addOrangeBK): + self.htmlFile.write(' ' + str(ue_queue.get()) + '\n') + else: + self.htmlFile.write(' ' + str(ue_queue.get()) + '\n') + else: + 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, TerminateUE, TerminateHSS, TerminateMME, TerminateSPGW') + print(' LogCollectBuild, LogCollecteNB, LogCollectHSS, LogCollectMME, LogCollectSPGW, LogCollectPing, LogCollectIperf') + 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 index bd08d23e94..6b14b115ca 100755 --- a/ci-scripts/reportBuildLocally.sh +++ b/ci-scripts/reportBuildLocally.sh @@ -1,4 +1,24 @@ #!/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" @@ -85,7 +105,7 @@ function details_table { do if [[ $MESSAGE == *"/home/ubuntu/tmp"* ]] then - FILENAME=`echo $MESSAGE | sed -e "s#^/home/ubuntu/tmp/##" | awk -F ":" '{print $1}'` + 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 @@ -478,6 +498,8 @@ then echo " " >> ./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 @@ -497,14 +519,11 @@ summary_table_row "OAI USRP device if - Release 14" ./archives/enb_usrp/oai_usrp 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 -if [ -f ./archives/basic_sim/basic_simulator_enb.txt ] -then - 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 -fi +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 @@ -512,6 +531,7 @@ summary_table_row "UL Simulator - Release 14" ./archives/phy_sim/ulsim.Rel14.txt summary_table_row "Coding - Release 14" ./archives/phy_sim/coding.Rel14.txt "Built target coding" ./phy_sim_row3.html summary_table_footer + if [ -f archives/gnb_usrp/nr-softmodem.Rel14.txt ] then summary_table_header "OAI Build gNB -- USRP option" @@ -532,29 +552,33 @@ then summary_table_footer fi -if [ -f archives/enb_eth/lte-softmodem-nos1.Rel14.txt ] -then - 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 -fi +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 -if [ -f archives/ue_eth/lte-uesoftmodem-nos1.Rel14.txt ] -then - 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 -fi echo "

Details

" >> ./build_results.html @@ -570,6 +594,7 @@ for DETAILS_TABLE in `ls ./phy_sim_row*.html` do cat $DETAILS_TABLE >> ./build_results.html done + for DETAILS_TABLE in `ls ./gnb_usrp_row*.html` do cat $DETAILS_TABLE >> ./build_results.html @@ -586,7 +611,11 @@ for DETAILS_TABLE in `ls ./ue_eth_row*.html` do cat $DETAILS_TABLE >> ./build_results.html done -rm -f ./enb_usrp_row*.html ./basic_sim_row*.html ./phy_sim_row*.html ./gnb_usrp_row*.html ./nrue_usrp_row*.html ./enb_eth_row*.html ./ue_eth_row*.html +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 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.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..b8a2439106 --- /dev/null +++ b/ci-scripts/xml_files/enb_usrp210_band7.xml @@ -0,0 +1,268 @@ + + + 010101 050101 060101 070101 040101 030101 040301 040501 040601 040602 040603 040604 040605 040641 040642 040401 040201 030201 030111 040301 040511 040611 040612 040613 040614 040615 040651 040652 040401 040201 030201 030121 040301 040521 040621 040622 040623 040624 040625 040662 040661 040401 040201 030201 + + + + Build_eNB + Build eNB (USRP) + -w USRP -c --eNB + + + + Initialize_eNB + Initialize eNB (FDD/Band7/5MHz) + -O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf --codingw --fepw + + + + Initialize_eNB + Initialize eNB (FDD/Band7/10MHz) + -O ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf --codingw --fepw + + + + Initialize_eNB + Initialize eNB (FDD/Band7/20MHz) + -O ci-scripts/conf_files/enb.band7.tm1.100PRB.usrpb210.conf --codingw --fepw + + + + 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 (5MHz - UL/9Mbps/UDP)(60 sec)(single-ue profile) + -u -b 9M -t 60 -i 1 -R + 50 + single-ue + + + + 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 (10MHz - UL/20Mbps/UDP)(60 sec)(single-ue profile) + -u -b 20M -t 60 -i 1 -R + 50 + single-ue + + + + 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 + + + + Iperf + iperf (20MHz - UL/20Mbps/UDP)(60 sec)(single-ue profile) + -u -b 20M -t 60 -i 1 -R + 50 + single-ue + + + + 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..25519dcd03 --- /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 -c --eNB + + + + Build_eNB + Build eNB (USRP) + -w BLADERF -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 9677d65a67..52fbc08417 100644 --- a/cmake_targets/CMakeLists.txt +++ b/cmake_targets/CMakeLists.txt @@ -113,6 +113,14 @@ macro(add_list_string_option name val helpstr) add_definitions("-D${name}=\"${value}\"") endif() endmacro(add_list_string_option) + +function(make_version VERSION_VALUE) + math(EXPR RESULT "0") + foreach (ARG ${ARGN}) + math(EXPR RESULT "${RESULT} * 16 + ${ARG}") + endforeach() + set(${VERSION_VALUE} "${RESULT}" PARENT_SCOPE) +endfunction() #################################################### # compilation flags ############################################# @@ -162,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" + "${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 " @@ -237,13 +245,14 @@ 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") add_boolean_option(DISABLE_LOG_X False "Deactivate all LOG_* macros") add_boolean_option(USRP_REC_PLAY False "Enable USRP record playback mode") add_boolean_option(UE_NAS_USE_TUN False "Enable UE NAS TUN device instead of ue_ip.ko") +add_boolean_option(BASIC_SIMULATOR False "Has to be True when building the basic simulator, False otherwise") add_boolean_option(DEBUG_CONSOLE False "makes debugging easier, disables stdout/stderr buffering") @@ -254,7 +263,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 @@ -273,8 +281,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") @@ -286,49 +294,44 @@ set(protobuf_generated_dir ${OPENAIR_BIN_DIR}) add_list2_option(RRC_ASN1_VERSION "Rel14" "ASN.1 version of RRC interface" "Rel8" "Rel10" "Rel14" "CBA") if (${RRC_ASN1_VERSION} STREQUAL "Rel8") + make_version(RRC_VERSION 8 6 0) set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-86.asn) elseif (${RRC_ASN1_VERSION} STREQUAL "CBA") + make_version(RRC_VERSION 10 2 0) + add_definitions(-DCBA) set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20-lola.asn) 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() - 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}) - -message("calling asn1c -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D ${RRC_FULL_DIR} ${RRC_GRAMMAR}") -execute_process(COMMAND ${asn1c_call} - ${RRC_FULL_DIR} - ${RRC_GRAMMAR} - RRC - RESULT_VARIABLE ret) - +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 @@ -338,9 +341,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} ) @@ -412,44 +415,48 @@ add_custom_command ( # Same limitation as described in RRC: unknown generated file list # so we generate it at cmake time ############## -add_list1_option(S1AP_VERSION R14 "S1AP Asn.1 grammar version" R8 R9 R10 R14) +add_list1_option(S1AP_RELEASE R14 "S1AP ASN.1 grammar version" R8 R9 R10 R14 R15) set(S1AP_DIR ${OPENAIR3_DIR}/S1AP) - -if (${S1AP_VERSION} STREQUAL "R14") - set (ASN1RELDIR R14.4) - add_definitions("-DUPDATE_RELEASE_9 -DUPDATE_RELEASE_10 -DUPDATE_RELEASE_14") - set(S1AP_ASN_FILES s1ap-14.4.0.asn1) -elseif (${S1AP_VERSION} STREQUAL "R10") - set (ASN1RELDIR R10.5) - add_definitions("-DUPDATE_RELEASE_9 -DUPDATE_RELEASE_10") -elseif (${S1AP_VERSION} STREQUAL "R9") - set (ASN1RELDIR R9.8) - add_definitions("-DUPDATE_RELEASE_9") -else(${S1AP_VERSION} STREQUAL "R8") - set (ASN1RELDIR R8.10) -endif(${S1AP_VERSION} STREQUAL "R14") - -set(S1AP_ASN_DIR ${S1AP_DIR}/MESSAGES/ASN1/${ASN1RELDIR}) -set(S1AP_C_DIR ${asn1_generated_dir}/S1AP_${ASN1RELDIR}) - -message("calling ASN1C_PREFIX=S1AP_ asn1c -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D ${S1AP_C_DIR} ${S1AP_ASN_DIR}/${S1AP_ASN_FILES}") - +if (${S1AP_RELEASE} STREQUAL "R8") + make_version(S1AP_VERSION 8 10 0) + set(S1AP_ASN_FILES "s1ap-8.10.0.asn1") +elseif (${S1AP_RELEASE} STREQUAL "R9") + 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 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/${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 - OUTPUT_QUIET - ERROR_QUIET -) - - + RESULT_VARIABLE ret) if (NOT ${ret} STREQUAL 0) message(FATAL_ERROR "${ret}: error") endif (NOT ${ret} STREQUAL 0) file(GLOB S1AP_source ${S1AP_C_DIR}/*.c) file(GLOB s1ap_h ${S1AP_C_DIR}/*.h) -set(s1ap_h ${s1ap_h} ) +set(s1ap_h ${s1ap_h}) add_custom_command ( OUTPUT ${S1AP_C_DIR}/S1AP_asn_constant.h @@ -457,7 +464,6 @@ add_custom_command ( 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_source} ${S1AP_DIR}/s1ap_common.c @@ -467,7 +473,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_encoder.c @@ -482,47 +487,43 @@ add_library(S1AP_ENB ${S1AP_DIR}/s1ap_eNB_decoder.c ) - - #X2AP # Same limitation as described in RRC/S1AP: unknown generated file list # so we generate it at cmake time ############## -add_list1_option(X2AP_VERSION R14 "X2AP Asn.1 grammar version" R10 R11 R14) +add_list1_option(X2AP_RELEASE R14 "X2AP ASN.1 grammar version" R8 R11 R12 R14 R15) + set(X2AP_DIR ${OPENAIR2_DIR}/X2AP) -if (${X2AP_VERSION} STREQUAL "R14") - set (ASN1RELDIR R14.5) - set (X2AP_ASN_FILES x2ap-14.5.0.asn1) -elseif (${X2AP_VERSION} STREQUAL "R11") - set (ASN1RELDIR R11.2) -elseif (${X2AP_VERSION} STREQUAL "R10") - set (ASN1RELDIR R.UNKNOWN) -endif(${X2AP_VERSION} STREQUAL "R14") -set(X2AP_ASN_DIR ${X2AP_DIR}/MESSAGES/ASN1/${ASN1RELDIR}) - -set(X2AP_C_DIR ${asn1_generated_dir}/X2AP_${ASN1RELDIR}) - -message("calling asn1c -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D ${X2AP_C_DIR} ${X2AP_ASN_DIR}/${X2AP_ASN_FILES}") - +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 - OUTPUT_QUIET - ERROR_QUIET ) - -#execute_process(COMMAND ${asn1c_call} -# ${X2AP_C_DIR} -# ${X2AP_ASN_DIR}/${X2AP_ASN_FILES} -# X2AP -# RESULT_VARIABLE ret) - + RESULT_VARIABLE ret) if (NOT ${ret} STREQUAL 0) - message(FATAL_ERROR "${asn1c_call}: error") + message(FATAL_ERROR "${ret}: error") endif (NOT ${ret} STREQUAL 0) file(GLOB X2AP_source ${X2AP_C_DIR}/*.c) file(GLOB x2ap_h ${X2AP_C_DIR}/*.h) -set(x2ap_h ${x2ap_h} ) +set(x2ap_h ${x2ap_h}) add_custom_command ( OUTPUT ${X2AP_C_DIR}/X2AP_asn_constant.h @@ -562,12 +563,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 @@ -629,14 +630,26 @@ add_library(oai_mobipass MODULE ${TPLIB_MOBIPASS_SOURCE} ) get_target_property(mobipas_cflags oai_mobipass COMPILE_FLAGS) set_target_properties(oai_mobipass PROPERTIES COMPILE_FLAGS "${mobipass_cflags} -fvisibility=hidden") +# TCP bridge libraries +###################################################################### + +# this one is for internal use at Eurecom and is not documented set(HWLIB_TCP_BRIDGE_SOURCE ${OPENAIR_TARGETS}/ARCH/tcp_bridge/tcp_bridge.c ) -add_library(oai_tcp_bridge MODULE ${HWLIB_TCP_BRIDGE_SOURCE} ) +add_library(tcp_bridge MODULE ${HWLIB_TCP_BRIDGE_SOURCE} ) -#get_target_property(tcp_bridge_cflags oai_tcp_bridge COMPILE_FLAGS) -#set_target_properties(oai_tcp_bridge PROPERTIES COMPILE_FLAGS "${tcp_bridge_cflags} -fvisibility=hidden") -set_target_properties(oai_tcp_bridge PROPERTIES COMPILE_FLAGS "-fvisibility=hidden") +#get_target_property(tcp_bridge_cflags tcp_bridge COMPILE_FLAGS) +#set_target_properties(tcp_bridge PROPERTIES COMPILE_FLAGS "${tcp_bridge_cflags} -fvisibility=hidden") +set_target_properties(tcp_bridge PROPERTIES COMPILE_FLAGS "-fvisibility=hidden") + +# this one is to connect OAI eNB and OAI UE in the basic simulator +# see targets/ARCH/tcp_bridge/README.tcp_bridge_oai for usage +set(HWLIB_TCP_BRIDGE_OAI_SOURCE + ${OPENAIR_TARGETS}/ARCH/tcp_bridge/tcp_bridge_oai.c + ) +add_library(tcp_bridge_oai MODULE ${HWLIB_TCP_BRIDGE_OAI_SOURCE} ) +set_target_properties(tcp_bridge_oai PROPERTIES COMPILE_FLAGS "-fvisibility=hidden") ########################################################## @@ -656,9 +669,7 @@ add_boolean_option(RRC_DEFAULT_RAB_IS_AM False "set the RLC mode to AM for the d add_boolean_option(OAI_NW_DRIVER_TYPE_ETHERNET False "????") add_boolean_option(DEADLINE_SCHEDULER True "Use the Linux scheduler SCHED_DEADLINE: kernel >= 3.14") add_boolean_option(CPU_AFFINITY False "Enable CPU Affinity of threads (only valid without deadline scheduler). It is enabled only with >2 CPUs") -add_boolean_option(NAS_ADDRESS_FIX False "specific to oaisim: for nasmesh driver") add_boolean_option(NAS_NETLINK False "useless ??? Must be True to compile nasmesh driver without rtai ????") -add_boolean_option(OAISIM False "specific to oaisim") add_boolean_option(OAI_NW_DRIVER_USE_NETLINK True "????") add_boolean_option(USE_MME False "this flag is used only one time in lte-softmodem.c") @@ -667,6 +678,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 ########################## @@ -687,9 +702,7 @@ add_boolean_option(OPENAIR_LTE True "Seems legacy: keep it to true") # PHY options ########################## add_boolean_option(DRIVER2013 True "only relevant for EXMIMO") -add_boolean_option(ENABLE_NEW_MULTICAST False "specific to oaisim") add_boolean_option(EXMIMO_IOT True "????") -add_boolean_option(LARGE_SCALE False "specific to oaisim: defines max eNB=2 and max UE=120") add_boolean_option(LOCALIZATION False "???") add_integer_option(MAX_NUM_CCs 1 "????") add_boolean_option(MU_RECEIVER False "????") @@ -700,6 +713,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 @@ -712,7 +726,6 @@ add_boolean_option(NAS_UE True "NAS UE INSTANCE (<> NAS_MME)") ########################## # ACCESS STRATUM LAYER2 OPTIONS ########################## -add_boolean_option(MAC_CONTEXT True "specific to oaisim") add_boolean_option(JUMBO_FRAME True "ENABLE LARGE SDU in ACCESS STRATUM (larger than common MTU)") ########################## @@ -958,8 +971,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 @@ -1021,7 +1034,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 @@ -1153,10 +1166,14 @@ 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 @@ -1165,6 +1182,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 @@ -1186,7 +1204,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 @@ -1246,6 +1263,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 @@ -1257,6 +1275,9 @@ set(PHY_SRC_UE ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/prach_ue.c ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/pmch_ue.c ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/pch_ue.c + ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/slss.c + ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/sldch.c + ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/slsch.c ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/drs_modulation.c ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/ulsch_modulation.c ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/ulsch_coding.c @@ -1360,6 +1381,32 @@ add_library(PHY_NR ${PHY_NR_SRC}) add_library(PHY_NR_UE ${PHY_NR_UE_SRC}) 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) @@ -1475,6 +1522,7 @@ set(NR_L2_SRC_UE ) set (MAC_SRC + #${PHY_INTERFACE_DIR}/phy_stub_UE.c ${PHY_INTERFACE_DIR}/IF_Module.c ${MAC_DIR}/main.c ${MAC_DIR}/main_ue.c @@ -1490,6 +1538,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 @@ -1504,6 +1553,7 @@ set (MAC_SRC set (MAC_SRC_UE + ${PHY_INTERFACE_DIR}/phy_stub_UE.c ${MAC_DIR}/main_ue.c ${MAC_DIR}/ue_procedures.c ${MAC_DIR}/ra_procedures.c @@ -1587,7 +1637,7 @@ add_library( NR_LTE_UE_REUSE_LIB include_directories("${OPENAIR2_DIR}/NR_UE_PHY_INTERFACE") include_directories("${OPENAIR2_DIR}/LAYER2/NR_MAC_UE") include_directories("${OPENAIR1_DIR}/SCHED_NR_UE") -#include_directories("${NFAPI_USER_DIR}"") +include_directories(${NFAPI_USER_DIR}) # L3 Libs ########################## @@ -1940,12 +1990,14 @@ ${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.c ${OPENAIR1_DIR}/SIMULATION/TOOLS/multipath_channel.c ${OPENAIR1_DIR}/SIMULATION/TOOLS/multipath_tv_channel.c ${OPENAIR1_DIR}/SIMULATION/TOOLS/abstraction.c +${OPENAIR1_DIR}/SIMULATION/TOOLS/channel_sim.c ${OPENAIR1_DIR}/SIMULATION/RF/rf.c ${OPENAIR1_DIR}/SIMULATION/RF/dac.c ${OPENAIR1_DIR}/SIMULATION/RF/adc.c ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c ) + add_library(SIMU_ETH ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/multicast_link.c @@ -2032,11 +2084,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() @@ -2062,6 +2116,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 @@ -2090,9 +2146,13 @@ endif (${T_TRACER}) #This rule and the following deal with it. add_custom_command ( OUTPUT ${OPENAIR_DIR}/common/utils/T/T_IDs.h - COMMAND make + COMMAND $(MAKE) clean + COMMAND $(MAKE) + COMMAND $(MAKE) check_vcd WORKING_DIRECTORY ${OPENAIR_DIR}/common/utils/T DEPENDS ${OPENAIR_DIR}/common/utils/T/T_messages.txt + ${OPENAIR_DIR}/common/utils/LOG/vcd_signal_dumper.c + ${OPENAIR_DIR}/common/utils/LOG/vcd_signal_dumper.h ) #This rule is specifically needed to generate T files @@ -2119,7 +2179,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 @@ -2129,6 +2188,8 @@ add_executable(lte-softmodem ${OPENAIR_TARGETS}/COMMON/create_tasks.c ${OPENAIR_TARGETS}/ARCH/COMMON/common_lib.c ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c + ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/multicast_link.c + ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/socket.c ${OPENAIR3_DIR}/NAS/UE/nas_ue_task.c ${OPENAIR_DIR}/common/utils/utils.c ${OPENAIR_DIR}/common/utils/system.c @@ -2142,7 +2203,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) @@ -2157,7 +2218,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 @@ -2169,6 +2229,8 @@ add_executable(lte-softmodem-nos1 ${OPENAIR2_DIR}/RRC/NAS/nas_config.c ${OPENAIR2_DIR}/RRC/NAS/rb_config.c ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c + ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/multicast_link.c + ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/socket.c ${OPENAIR_DIR}/common/utils/system.c ${XFORMS_SOURCE} ${XFORMS_SOURCE_SOFTMODEM} @@ -2178,13 +2240,13 @@ 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 ) target_link_libraries (lte-softmodem-nos1 ${LIBXML2_LIBRARIES}) -target_link_libraries (lte-softmodem-nos1 pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp ${XFORMS_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES}) +target_link_libraries (lte-softmodem-nos1 pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp ${XFORMS_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES}) target_link_libraries (lte-softmodem-nos1 ${LIB_LMS_LIBRARIES}) target_link_libraries (lte-softmodem-nos1 ${T_LIB}) @@ -2194,14 +2256,17 @@ 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 + ${OPENAIR_TARGETS}/RT/USER/lte-ru.c + ${OPENAIR_TARGETS}/RT/USER/rfsim.c ${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.c ${OPENAIR_TARGETS}/COMMON/create_tasks_ue.c ${OPENAIR_TARGETS}/ARCH/COMMON/common_lib.c ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c + ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/multicast_link.c + ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/socket.c ${OPENAIR3_DIR}/NAS/UE/nas_ue_task.c ${OPENAIR_DIR}/common/utils/utils.c ${OPENAIR_DIR}/common/utils/system.c @@ -2214,30 +2279,35 @@ 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 - ${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) target_link_libraries (lte-uesoftmodem ${LIBXML2_LIBRARIES}) -target_link_libraries (lte-uesoftmodem pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp ${XFORMS_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES}) +target_link_libraries (lte-uesoftmodem pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp ${XFORMS_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES} ${ATLAS_LIBRARIES}) target_link_libraries (lte-uesoftmodem ${LIB_LMS_LIBRARIES}) target_link_libraries (lte-uesoftmodem ${T_LIB}) -# lte-softmodem-nos1 is both eNB and UE implementation +# lte-uesoftmodem-nos1 is UE implementation ################################################### 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 + ${OPENAIR_TARGETS}/RT/USER/lte-ru.c + ${OPENAIR_TARGETS}/RT/USER/rfsim.c ${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.c ${OPENAIR_TARGETS}/COMMON/create_tasks_ue.c ${OPENAIR_TARGETS}/ARCH/COMMON/common_lib.c ${OPENAIR2_DIR}/RRC/NAS/nas_config.c ${OPENAIR2_DIR}/RRC/NAS/rb_config.c ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c + ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/multicast_link.c + ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/socket.c + ${OPENAIR_DIR}/common/utils/utils.c ${OPENAIR_DIR}/common/utils/system.c ${XFORMS_SOURCE} ${XFORMS_SOURCE_SOFTMODEM} @@ -2245,14 +2315,16 @@ add_executable(lte-uesoftmodem-nos1 ${CONFIG_SOURCES} ${SHLIB_LOADER_SOURCES} ) + 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 ${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 ) target_link_libraries (lte-uesoftmodem-nos1 ${LIBXML2_LIBRARIES}) -target_link_libraries (lte-uesoftmodem-nos1 pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp ${XFORMS_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES}) +target_link_libraries (lte-uesoftmodem-nos1 pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp ${XFORMS_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES} ${ATLAS_LIBRARIES}) target_link_libraries (lte-uesoftmodem-nos1 ${LIB_LMS_LIBRARIES}) target_link_libraries (lte-uesoftmodem-nos1 ${T_LIB}) @@ -2432,103 +2504,12 @@ target_link_libraries (nr-uesoftmodem-nos1 ${T_LIB}) # Addexecutables for tests #################################### -# A all in one network simulator -################ -add_executable(oaisim - ${rrc_h} - ${s1ap_h} - ${x2ap_h} - ${OPENAIR_BIN_DIR}/messages_xml.h - ${OPENAIR_TARGETS}/RT/USER/lte-ue.c - ${OPENAIR_TARGETS}/RT/USER/lte-ru.c - ${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c - ${OPENAIR_TARGETS}/SIMU/USER/channel_sim.c -# ${OPENAIR_TARGETS}/SIMU/USER/oaisim_config.c - ${OPENAIR_TARGETS}/SIMU/USER/sinr_sim.c - ${OPENAIR_TARGETS}/SIMU/USER/cor_SF_sim.c - ${OPENAIR_TARGETS}/SIMU/USER/oaisim_functions.c - ${OPENAIR_TARGETS}/SIMU/USER/event_handler.c - ${OPENAIR_TARGETS}/SIMU/USER/oaisim.c - ${OPENAIR_TARGETS}/ARCH/COMMON/common_lib.c - ${OPENAIR2_DIR}/RRC/NAS/nas_config.c - ${OPENAIR2_DIR}/RRC/NAS/rb_config.c - ${OPENAIR3_DIR}/NAS/UE/nas_ue_task.c - ${OPENAIR_DIR}/common/utils/utils.c - ${OPENAIR_DIR}/common/utils/system.c - ${OPENAIR_TARGETS}/COMMON/create_tasks_ue.c - ${XFORMS_SOURCE} - ${T_SOURCE} - ${CONFIG_SOURCES} - ${SHLIB_LOADER_SOURCES} -) - - -target_include_directories(oaisim PUBLIC ${OPENAIR_TARGETS}/SIMU/USER) -target_link_libraries (oaisim - -Wl,-ldl,--start-group - RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB SECU_CN UTIL HASHTABLE SCTP_CLIENT UDP SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON PHY_UE PHY_RU LFDS L2_UE ${MSC_LIB} LIB_NAS_UE SIMU SECU_OSA ${ITTI_LIB} ${MIH_LIB} - ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} ${FLEXRAN_AGENT_LIB} LFDS7 - -Wl,--end-group z dl) - -target_link_libraries (oaisim ${LIBXML2_LIBRARIES} ${LAPACK_LIBRARIES}) -target_link_libraries (oaisim pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp z - ${ATLAS_LIBRARIES} ${XFORMS_LIBRARIES} ${OPENPGM_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES}) -#Force link with forms, regardless XFORMS option -target_link_libraries (oaisim forms) -target_link_libraries (oaisim ${T_LIB}) - - -# A all in one network simulator -################ -add_executable(oaisim_nos1 - ${rrc_h} - ${s1ap_h} - ${x2ap_h} - ${OPENAIR_BIN_DIR}/messages_xml.h - ${OPENAIR_TARGETS}/RT/USER/lte-ue.c - ${OPENAIR_TARGETS}/RT/USER/lte-ru.c - ${OPENAIR1_DIR}/SCHED/prach_procedures.c - ${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c - ${OPENAIR_TARGETS}/SIMU/USER/channel_sim.c -# ${OPENAIR_TARGETS}/SIMU/USER/oaisim_config.c - ${OPENAIR_TARGETS}/SIMU/USER/sinr_sim.c - ${OPENAIR_TARGETS}/SIMU/USER/cor_SF_sim.c - ${OPENAIR_TARGETS}/SIMU/USER/oaisim_functions.c - ${OPENAIR_TARGETS}/SIMU/USER/event_handler.c - ${OPENAIR_TARGETS}/SIMU/USER/oaisim.c - ${OPENAIR_TARGETS}/ARCH/COMMON/common_lib.c - ${OPENAIR2_DIR}/RRC/NAS/nas_config.c - ${OPENAIR2_DIR}/RRC/NAS/rb_config.c - ${OPENAIR_TARGETS}/COMMON/create_tasks_ue.c - ${OPENAIR_DIR}/common/utils/system.c - ${XFORMS_SOURCE} - ${T_SOURCE} - ${CONFIG_SOURCES} - ${SHLIB_LOADER_SOURCES} -) -target_include_directories(oaisim_nos1 PUBLIC ${OPENAIR_TARGETS}/SIMU/USER) -target_link_libraries (oaisim_nos1 - -Wl,--start-group - RRC_LIB X2AP_LIB SECU_CN UTIL HASHTABLE SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON PHY_UE PHY_RU LFDS ${MSC_LIB} ${ITTI_LIB} SIMU L2_UE ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} LFDS7 - -Wl,--end-group z dl ) - -target_link_libraries (oaisim_nos1 ${LIBXML2_LIBRARIES} ${LAPACK_LIBRARIES}) -target_link_libraries (oaisim_nos1 pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} - ${ATLAS_LIBRARIES} ${XFORMS_LIBRARIES} ${OPENPGM_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES}) -#Force link with forms, regardless XFORMS option -target_link_libraries (oaisim_nos1 forms) - -#message("protobuflib is ${PROTOBUF_LIB}") - -target_link_libraries (oaisim_nos1 ${T_LIB}) - # Unitary tests for each piece of L1: example, mbmssim is MBMS L1 simulator ##################################### #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} @@ -2544,7 +2525,6 @@ target_link_libraries(polartest m SIMU PHY PHY_NR -lm ${ATLAS_LIBRARIES}) 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} @@ -2566,7 +2546,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} @@ -2586,7 +2565,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 @@ -2622,16 +2600,17 @@ endforeach(myExe) if (${T_TRACER}) foreach(i #all "add_executable" definitions (except tests, rb_tool, updatefw) - lte-softmodem lte-softmodem-nos1 oaisim oaisim_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 + coding) if (TARGET ${i}) add_dependencies(${i} generate_T) endif() @@ -2642,43 +2621,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") -set (ITTI_H ${OPENAIR_DIR}/common/utils/T/T.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 ############### @@ -2711,7 +2653,7 @@ function(make_driver name dir) endforeach() CONFIGURE_FILE(${OPENAIR_CMAKE}/tools/Kbuild.cmake ${OPENAIR_BIN_DIR}/${name}/Kbuild) add_custom_command(OUTPUT ${name}.ko - COMMAND make -C ${module_build_path} M=${OPENAIR_BIN_DIR}/${name} + COMMAND $(MAKE) -C ${module_build_path} M=${OPENAIR_BIN_DIR}/${name} WORKING_DIRECTORY ${OPENAIR_BIN_DIR}/${name} COMMENT "building ${module}.ko" VERBATIM 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 0daba0b235..115fe761a9 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" @@ -59,7 +60,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" @@ -71,7 +72,7 @@ USRP_REC_PLAY="False" BUILD_ECLIPSE=0 NR="False" UE_NAS_USE_TUN="False" - +BASIC_SIMULATOR=0 trap handle_ctrl_c INT function print_help() { @@ -120,8 +121,6 @@ Options -t | --transport protocol ETHERNET , None Adds this trasport protocol support in compilation ---oaisim - Makes the oaisim simulator. Hardware will be defaulted to \"None\". --phy_simulators Makes the unitary tests Layer 1 simulators --core_simulators @@ -133,12 +132,12 @@ Options -V | --vcd Adds a debgging facility to the binary files: GUI with major internal synchronization events -x | --xforms - Adds a software oscilloscope feature to the produced binaries. If oaisim, then enable PRINT_STATS. + Adds a software oscilloscope feature to the produced binaries. --install-system-files Install OpenArInterface required files in Linux system (will ask root password) --noS1 - Compiles oaisim or lte-softmodem without S1 interface, using direct link to IP instead + Compiles lte-softmodem without S1 interface, using direct link to IP instead --verbose-compile Shows detailed compilation instructions in makefile --cflags_processor @@ -151,8 +150,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 @@ -169,12 +168,12 @@ Options Build for I/Q record-playback modes --ue-nas-use-tun Use TUN devices for the UEs instead of ue_ip.ko +--basic-simulator + Generates a basic [1 UE + 1 eNB + no channel] simulator. + See targets/ARCH/tcp_bridge/README.tcp_bridge_oai for documentation. Usage (first build): - oaisim (eNB + UE): ./build_oai -I --oaisim -x --install-system-files - Eurecom EXMIMO + COTS UE : ./build_oai -I --eNB -x --install-system-files NI/ETTUS B201 + COTS UE : ./build_oai -I --eNB -x --install-system-files -w USRP Usage (Regular): - oaisim : ./build_oai --oaisim -x Eurecom EXMIMO + OAI ENB : ./build_oai --eNB -x NI/ETTUS B201 + OAI ENB : ./build_oai --eNB -x -w USRP" } @@ -229,9 +228,12 @@ function main() { nrUE=1 NR="True" echo_info "Will compile NR UE" + --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) @@ -269,10 +271,6 @@ function main() { echo_info "Setting transport protocol to: $TP" fi shift 2;; - --oaisim) - oaisim=1 - echo_info "Will compile oaisim and drivers nasmesh, ..." - shift;; --phy_simulators) SIMUS_PHY=1 echo_info "Will compile dlsim, ulsim, ..." @@ -340,9 +338,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" @@ -385,6 +383,10 @@ function main() { UE_NAS_USE_TUN="True" echo_info "Enabling UE NAS TUN device usage instead of ue_ip.ko" shift 1;; + --basic-simulator) + BASIC_SIMULATOR=1 + echo_info "Compiling the basic simulator" + shift 1;; -h | --help) print_help exit 1;; @@ -526,16 +528,6 @@ function main() { check_install_additional_tools fi - if [ "$oaisim" = "1" ] ; then - #to be discussed - # there is no RF device transport protocol - HW="None" - TP="ETHERNET" - - if [ "$XFORMS" == "True" ] ; then - PRINT_STATS="True" - fi - fi echo_info "3. building the compilation directives ..." @@ -564,7 +556,9 @@ function main() { 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 @@ -582,6 +576,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 ( NR_RRC_ASN1_VERSION \"${NR_REL}\")" >> $cmake_file echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file @@ -732,123 +729,7 @@ function main() { cp $OPENAIR_DIR/cmake_targets/tools/init_exmimo2 $dbin fi - # oaisim compilation - ############### - if [ "$oaisim" = "1" ] ; then - dconf=$OPENAIR_DIR/targets/bin - if [ "$NOS1" = "1" ] ; then - oaisim_build_dir=oaisim_noS1_build_oai - oaisim_exec=oaisim_nos1 - else - oaisim_build_dir=oaisim_build_oai - oaisim_exec=oaisim - fi - - echo_info "Compiling $oaisim_exec ($oaisim_build_dir)" - cmake_file=$DIR/$oaisim_build_dir/CMakeLists.txt - cp $DIR/$oaisim_build_dir/CMakeLists.template $cmake_file - 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 ( PRINT_STATS $PRINT_STATS )" >> $cmake_file - echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file - echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file - echo "set ( T_TRACER $T_TRACER )" >> $cmake_file - echo "set ( UE_NAS_USE_TUN $UE_NAS_USE_TUN )" >> $cmake_file - echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file - [ "$CLEAN" = "1" ] && rm -rf $DIR/$oaisim_build_dir/build - mkdir -p $DIR/$oaisim_build_dir/build - cd $DIR/$oaisim_build_dir/build - eval $CMAKE_CMD - compilations \ - $oaisim_build_dir $oaisim_exec \ - $oaisim_exec $dbin/$oaisim_exec.$REL - compilations \ - $oaisim_build_dir $config_libconfig_shlib \ - lib$config_libconfig_shlib.so $dbin/lib$config_libconfig_shlib.so - compilations \ - $oaisim_build_dir coding \ - libcoding.so $dbin/libcoding.so - if [ "$NOS1" != "1" ] ; then - - [ "$CLEAN" = "1" ] && rm -rf $DIR/at_commands/build - echo_info "Compiling at_nas_ue" - mkdir -p $DIR/at_commands/build - cd $DIR/at_commands/build - eval $CMAKE_CMD - compilations \ - at_commands at_nas_ue \ - at_nas_ue $dbin/at_nas_ue - - # ue_ip driver compilation - echo_info "Compiling UE specific part (ue_ip driver and usim tools)" - compilations \ - oaisim_build_oai ue_ip \ - CMakeFiles/ue_ip/ue_ip.ko $dbin/ue_ip.ko - - [ "$CLEAN" = "1" ] && rm -rf $DIR/nas_sim_tools/build - mkdir -p $DIR/nas_sim_tools/build - cd $DIR/nas_sim_tools/build - eval $CMAKE_CMD - compilations \ - nas_sim_tools usim \ - usim $dbin/usim - compilations \ - nas_sim_tools nvram \ - nvram $dbin/nvram - compilations \ - nas_sim_tools conf2uedata \ - conf2uedata $dbin/conf2uedata - - # generate USIM data - if [ -f $dbin/conf2uedata ]; then - install_nas_tools $conf_nvram_path $gen_nvram_path - else - echo_warning "not generated UE NAS files: binaries not found" - fi - else - - compilations \ - $oaisim_build_dir rb_tool \ - rb_tool $dbin/rb_tool - - # nasmesh driver compilation - compilations \ - $oaisim_build_dir nasmesh \ - CMakeFiles/nasmesh/nasmesh.ko $dbin/nasmesh.ko - - #oai_nw_drv - #compilations \ - # $oaisim_build_dir oai_nw_drv \ - # CMakeFiles/oai_nw_drv/oai_nw_drv.ko $dbin/oai_nw_drv.ko - fi - - if [ "$TP" == "ETHERNET" ] ; then - compilations \ - $oaisim_build_dir oai_eth_transpro \ - liboai_eth_transpro.so $dbin/liboai_eth_transpro.so.$REL - ln -sf liboai_eth_transpro.so liboai_transpro.so - ln -sf $dbin/liboai_eth_transpro.so.$REL $dbin/liboai_transpro.so - echo_info "liboai_transpro.so is linked with ETHERNET library" - fi - - cmake_file=$DIR/oaisim_mme_build_oai/CMakeLists.txt - cp $DIR/oaisim_mme_build_oai/CMakeLists.template $cmake_file - echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file - echo "set ( XFORMS $XFORMS )" >> $cmake_file - echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file - echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file - echo "set ( T_TRACER $T_TRACER )" >> $cmake_file - echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file - #[ "$CLEAN" = "1" ] && rm -rf $DIR/oaisim_mme_build_oai/build - #mkdir -p $DIR/oaisim_mme_build_oai/build - #cd $DIR/oaisim_mme_build_oai/build - #eval $CMAKE_CMD - #compilations \ - # oaisim_mme_build_oai oaisim_mme \ - # oaisim_mme $dbin/oaisim_mme.$REL - fi # Telnet server compilation ##################### @@ -1031,6 +912,124 @@ fi else echo_info "10. Bypassing the Tests ..." fi + + # basic simulator + ##################### + if [ "$BASIC_SIMULATOR" = "1" ]; then + echo_info "Build basic simulator" + [ "$CLEAN" = "1" ] && rm -rf $OPENAIR_DIR/cmake_targets/basic_simulator + [ "$CLEAN" = "1" ] && rm -rf $OPENAIR_DIR/cmake_targets/nas_sim_tools/build + mkdir -p $OPENAIR_DIR/cmake_targets/basic_simulator + mkdir -p $OPENAIR_DIR/cmake_targets/basic_simulator/enb + mkdir -p $OPENAIR_DIR/cmake_targets/basic_simulator/ue + mkdir -p $OPENAIR_DIR/cmake_targets/nas_sim_tools/build + + # enb + + cmake_file=$OPENAIR_DIR/cmake_targets/basic_simulator/enb/CMakeLists.txt + echo "cmake_minimum_required(VERSION 2.8)" > $cmake_file + echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file + echo "set ( CFLAGS_PROCESSOR_USER \"$CFLAGS_PROCESSOR_USER\" )" >> $cmake_file + echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file + echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file + echo "set ( XFORMS $XFORMS )" >> $cmake_file + echo "set ( RF_BOARD \"OAI_USRP\")" >> $cmake_file + echo "set ( TRANSP_PRO \"None\")" >> $cmake_file + echo "set(PACKAGE_NAME \"simulator_enb\")" >> $cmake_file + echo "set (DEADLINE_SCHEDULER \"False\" )" >> $cmake_file + echo "set (CPU_AFFINITY \"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 + echo "set (DISABLE_LOG_X $DISABLE_LOG_X)" >> $cmake_file + echo "set (USRP_REC_PLAY $USRP_REC_PLAY)" >> $cmake_file + echo "set (BASIC_SIMULATOR \"True\" )" >> $cmake_file + echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)' >> $cmake_file + + echo_info "Build eNB" + echo_info "logs are in $dlog/basic_simulator_enb.txt" + set +e + { + cd $OPENAIR_DIR/cmake_targets/basic_simulator/enb + cmake . + 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 + set -e + if [ -s $OPENAIR_DIR/cmake_targets/basic_simulator/enb/lte-softmodem -a \ + -s $OPENAIR_DIR/cmake_targets/basic_simulator/enb/libcoding.so -a \ + -s $OPENAIR_DIR/cmake_targets/basic_simulator/enb/libparams_libconfig.so -a \ + -s $OPENAIR_DIR/cmake_targets/basic_simulator/enb/libtcp_bridge_oai.so ] ; then + echo_success "eNB compiled" + check_warnings "$dlog/basic_simulator_enb.txt" + else + echo_error "eNB compilation failed" + exit 1 + fi + + # ue + + echo_info "Compile conf2uedata" + cd $OPENAIR_DIR/cmake_targets/nas_sim_tools/build + eval $CMAKE_CMD + compilations \ + nas_sim_tools conf2uedata \ + conf2uedata $dbin/conf2uedata + + cmake_file=$OPENAIR_DIR/cmake_targets/basic_simulator/ue/CMakeLists.txt + echo "cmake_minimum_required(VERSION 2.8)" > $cmake_file + echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file + echo "set ( CFLAGS_PROCESSOR_USER \"$CFLAGS_PROCESSOR_USER\" )" >> $cmake_file + echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file + echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file + echo "set ( XFORMS $XFORMS )" >> $cmake_file + echo "set ( RF_BOARD \"OAI_USRP\")" >> $cmake_file + echo "set ( TRANSP_PRO \"None\")" >> $cmake_file + 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 \"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 + echo "set (DISABLE_LOG_X $DISABLE_LOG_X)" >> $cmake_file + echo "set (USRP_REC_PLAY $USRP_REC_PLAY)" >> $cmake_file + echo "set (LINUX True )" >> $cmake_file + echo "set (PDCP_USE_NETLINK True )" >> $cmake_file + echo "set (BASIC_SIMULATOR \"True\" )" >> $cmake_file + echo "set (UE_NAS_USE_TUN \"True\" )" >> $cmake_file + echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)' >> $cmake_file + + echo_info "Build UE" + echo_info "logs are in $dlog/basic_simulator_ue.txt" + set +e + { + cd $OPENAIR_DIR/cmake_targets/basic_simulator/ue + cmake . + 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 + set -e + if [ -s $OPENAIR_DIR/cmake_targets/basic_simulator/ue/lte-uesoftmodem -a \ + -s $OPENAIR_DIR/cmake_targets/basic_simulator/ue/libcoding.so -a \ + -s $OPENAIR_DIR/cmake_targets/basic_simulator/ue/libparams_libconfig.so -a \ + -s $OPENAIR_DIR/cmake_targets/basic_simulator/ue/libtcp_bridge_oai.so ] ; then + echo_success "UE compiled" + check_warnings "$dlog/basic_simulator_ue.txt" + else + echo_error "UE compilation failed" + exit 1 + fi + + echo_info "Generate UE SIM data" + $OPENAIR_DIR/targets/bin/conf2uedata -c $OPENAIR_DIR/openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf -o $OPENAIR_DIR/cmake_targets/basic_simulator/ue + + fi } main "$@" diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index 29687ca5e8..7727ce4fa3 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 @@ -95,6 +95,7 @@ get_distribution_release() { check_supported_distribution() { local distribution=$(get_distribution_release) case "$distribution" in + "ubuntu18.04") return 0 ;; "ubuntu17.10") return 0 ;; "ubuntu17.04") return 0 ;; "ubuntu16.04") return 0 ;; @@ -146,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 } ################################### @@ -267,11 +268,26 @@ check_install_usrp_uhd_driver(){ if [[ "$OS_DISTRO" == "ubuntu" ]]; then #first we remove old installation $SUDO apt-get remove -y uhd || true - $SUDO apt-get remove libuhd-dev libuhd003 uhd-host -y + $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 @@ -336,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 @@ -357,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 @@ -454,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 @@ -488,19 +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" + 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" + specific_packages="libtasn1-6-dev libgnutls-dev libatlas-dev iproute libconfig8-dev" ;; "ubuntu17.04") - specific_packages="libtasn1-6-dev castxml libgnutls28-dev libatlas-dev" + specific_packages="libtasn1-6-dev libgnutls28-dev libatlas-dev iproute libconfig8-dev" ;; "ubuntu17.10") - specific_packages="libtasn1-6-dev castxml libgnutls28-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 libgnutls28-dev iproute2 libconfig-dev" LAPACK_LIBNAME="liblapack.so-x86_64-linux-gnu" LAPACK_TARGET="/usr/lib/x86_64-linux-gnu/atlas/liblapack.so" ;; @@ -524,12 +545,12 @@ check_install_oai_software() { gtkwave \ guile-2.0-dev \ iperf \ - iproute \ iptables \ iptables-dev \ libatlas-base-dev \ libblas-dev \ - libconfig8-dev \ + liblapack-dev\ + liblapacke-dev\ libffi-dev \ libforms-bin \ libforms-dev \ @@ -576,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 \ @@ -659,10 +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 clone https://github.com/brchiu/asn1c /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 - git checkout velichkov_s1ap_plus_option_group - test -f configure || autoreconf -iv + # 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 73d6b23dcec9ab36605b4af884143824392134c1 + autoreconf -iv ./configure make -j`nproc` $SUDO make install @@ -672,7 +694,7 @@ install_asn1c_from_source(){ } ################################################# -# 2. compile +# 2. compile ################################################ install_nas_tools() { @@ -701,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 @@ -718,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 @@ -736,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 82a5085d76..4a67363a7f 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,40 +114,43 @@ 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, PHY = MIN_LOG_COMPONENTS, MAC, - EMU, + SIM, OCG, OMG, OPT, @@ -190,62 +190,47 @@ typedef enum { NR_MAC, NR_PHY, 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 { @@ -257,6 +242,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 @@ -273,97 +259,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) /* @}*/ @@ -377,9 +379,9 @@ void *log_thread_function(void * list); /* @}*/ static __inline__ uint64_t rdtsc(void) { - uint64_t a, d; + uint32_t a, d; __asm__ volatile ("rdtsc" : "=a" (a), "=d" (d)); - return (d<<32) | a; + return (((uint64_t)d)<<32) | ((uint64_t)a); } #define DEBUG_REALTIME 1 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 99% rename from openair2/UTIL/LOG/vcd_signal_dumper.c rename to common/utils/LOG/vcd_signal_dumper.c index a026cfb081..607fe85703 100644 --- a/openair2/UTIL/LOG/vcd_signal_dumper.c +++ b/common/utils/LOG/vcd_signal_dumper.c @@ -89,9 +89,6 @@ const char* eurecomVariablesNames[] = { "subframe_TX1_UE", "subframe_RX0_UE", "subframe_RX1_UE", - "missed_slot_enb", - "daq_mbox", - "rx_offset_mbox", "ue_rx_offset", "diff2", "hw_subframe", @@ -222,7 +219,10 @@ const char* eurecomFunctionsNames[] = { "ue_lock_mutex_rxtx_for_cnt_decrement1", "ue_lock_mutex_rxtx_for_cnt_increment0", "ue_lock_mutex_rxtx_for_cnt_increment1", - + /* simulation signals */ + "do_DL_sig", + "do_UL_sig", + "UE_trx_read", /* RRH signals */ "eNB_tx", "eNB_rx", diff --git a/openair2/UTIL/LOG/vcd_signal_dumper.h b/common/utils/LOG/vcd_signal_dumper.h similarity index 92% rename from openair2/UTIL/LOG/vcd_signal_dumper.h rename to common/utils/LOG/vcd_signal_dumper.h index a47cdc059d..749978bb48 100644 --- a/openair2/UTIL/LOG/vcd_signal_dumper.h +++ b/common/utils/LOG/vcd_signal_dumper.h @@ -39,7 +39,7 @@ /* WARNING: if you edit the enums below, update also string definitions in vcd_signal_dumper.c */ typedef enum { - VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX0_ENB = 0, + VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX0_ENB=0, VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX1_ENB, VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX0_ENB, VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX1_ENB, @@ -65,9 +65,6 @@ typedef enum { VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_TX1_UE, VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_RX0_UE, VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_RX1_UE, - VCD_SIGNAL_DUMPER_VARIABLES_MISSED_SLOTS_ENB, - VCD_SIGNAL_DUMPER_VARIABLES_DAQ_MBOX, - VCD_SIGNAL_DUMPER_VARIABLES_UE_OFFSET_MBOX, VCD_SIGNAL_DUMPER_VARIABLES_UE_RX_OFFSET, VCD_SIGNAL_DUMPER_VARIABLES_DIFF, VCD_SIGNAL_DUMPER_VARIABLES_HW_SUBFRAME, @@ -94,12 +91,12 @@ typedef enum { VCD_SIGNAL_DUMPER_VARIABLES_TX_SEQ_NUM, VCD_SIGNAL_DUMPER_VARIABLES_CNT, VCD_SIGNAL_DUMPER_VARIABLES_DUMMY_DUMP, - VCD_SIGNAL_DUMPER_VARIABLE_ITTI_SEND_MSG, - VCD_SIGNAL_DUMPER_VARIABLE_ITTI_POLL_MSG, - VCD_SIGNAL_DUMPER_VARIABLE_ITTI_RECV_MSG, - VCD_SIGNAL_DUMPER_VARIABLE_ITTI_ALLOC_MSG, - VCD_SIGNAL_DUMPER_VARIABLE_MP_ALLOC, - VCD_SIGNAL_DUMPER_VARIABLE_MP_FREE, + VCD_SIGNAL_DUMPER_VARIABLES_ITTI_SEND_MSG, + VCD_SIGNAL_DUMPER_VARIABLES_ITTI_POLL_MSG, + VCD_SIGNAL_DUMPER_VARIABLES_ITTI_RECV_MSG, + VCD_SIGNAL_DUMPER_VARIABLES_ITTI_ALLOC_MSG, + VCD_SIGNAL_DUMPER_VARIABLES_MP_ALLOC, + VCD_SIGNAL_DUMPER_VARIABLES_MP_FREE, VCD_SIGNAL_DUMPER_VARIABLES_UE_INST_CNT_RX, VCD_SIGNAL_DUMPER_VARIABLES_UE_INST_CNT_TX, VCD_SIGNAL_DUMPER_VARIABLES_DCI_INFO, @@ -199,7 +196,10 @@ typedef enum { VCD_SIGNAL_DUMPER_FUNCTIONS_UE_LOCK_MUTEX_RXTX_FOR_CNT_DECREMENT1, VCD_SIGNAL_DUMPER_FUNCTIONS_UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT0, VCD_SIGNAL_DUMPER_FUNCTIONS_UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT1, - + /* SIMULATION signals */ + VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_DO_DL_SIGNAL, + VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_DO_UL_SIGNAL, + VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_UE_TRX_READ, /* RRH signals */ VCD_SIGNAL_DUMPER_FUNCTIONS_eNB_TX, VCD_SIGNAL_DUMPER_FUNCTIONS_eNB_RX, @@ -447,28 +447,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/.gitignore b/common/utils/T/.gitignore index 8177805924..d754ff7c38 100644 --- a/common/utils/T/.gitignore +++ b/common/utils/T/.gitignore @@ -15,4 +15,5 @@ tracer/to_vcd tracer/extract_input_subframe tracer/extract_output_subframe tracer/extract +tracer/multi tracee/tracee diff --git a/common/utils/T/Makefile b/common/utils/T/Makefile index dcb0d12fab..87a6e34c5d 100644 --- a/common/utils/T/Makefile +++ b/common/utils/T/Makefile @@ -13,11 +13,20 @@ $(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 +check_vcd: + gcc -Wall -I. -I.. -I../itti -Itracer -o _check_vcd check_vcd.c tracer/database.c tracer/utils.c -lm -pthread + ./_check_vcd || (rm -f ./_check_vcd ./T_IDs.h ./T_messages.txt.h && false) + rm -f ./_check_vcd + +.PHONY: check_vcd + clean: - rm -f *.o $(GENIDS) core T_IDs.h T_messages.txt.h - cd tracer && make clean + rm -f *.o $(GENIDS) core T_IDs.h T_messages.txt.h _check_vcd + +cleanall: clean + cd tracer && $(MAKE) clean diff --git a/common/utils/T/T.c b/common/utils/T/T.c index f1fce83538..fbd3f75a0c 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; @@ -28,6 +31,12 @@ volatile int _T_freelist_head; volatile int *T_freelist_head = &_T_freelist_head; T_cache_t *T_cache; +#if BASIC_SIMULATOR +/* global variables used by T_GET_SLOT, see in T.h */ +volatile uint64_t T_next_id; +volatile uint64_t T_active_id; +#endif + static void get_message(int s) { char t; @@ -88,7 +97,7 @@ static void new_thread(void *(*f)(void *), void *data) /* defined in local_tracer.c */ void T_local_tracer_main(int remote_port, int wait_for_tracer, - int local_socket); + int local_socket, void *shm_array); /* We monitor the tracee and the local tracer processes. * When one dies we forcefully kill the other. @@ -111,18 +120,31 @@ void T_init(int remote_port, int wait_for_tracer, int dont_fork) { int socket_pair[2]; int s; - int T_shm_fd; int child1, child2; + int i; if (socketpair(AF_UNIX, SOCK_STREAM, 0, socket_pair)) { perror("socketpair"); abort(); } + /* setup shared memory */ + T_cache = mmap(NULL, T_CACHE_SIZE * sizeof(T_cache_t), + PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0); + if (T_cache == MAP_FAILED) + { perror("mmap"); abort(); } + + /* let's garbage the memory to catch some potential problems + * (think multiprocessor sync issues, barriers, etc.) + */ + memset(T_cache, 0x55, T_CACHE_SIZE * sizeof(T_cache_t)); + for (i = 0; i < T_CACHE_SIZE; i++) T_cache[i].busy = 0; + /* child1 runs the local tracer and child2 (or main) runs the tracee */ child1 = fork(); if (child1 == -1) abort(); if (child1 == 0) { close(socket_pair[1]); - T_local_tracer_main(remote_port, wait_for_tracer, socket_pair[0]); + T_local_tracer_main(remote_port, wait_for_tracer, socket_pair[0], + T_cache); exit(0); } close(socket_pair[0]); @@ -131,6 +153,7 @@ void T_init(int remote_port, int wait_for_tracer, int dont_fork) child2 = fork(); if (child2 == -1) abort(); if (child2 != 0) { close(socket_pair[1]); + munmap(T_cache, T_CACHE_SIZE * sizeof(T_cache_t)); monitor_and_kill(child1, child2); } } @@ -141,15 +164,29 @@ void T_init(int remote_port, int wait_for_tracer, int dont_fork) T_socket = s; - /* setup shared memory */ - T_shm_fd = shm_open(T_SHM_FILENAME, O_RDWR /*| O_SYNC*/, 0666); - shm_unlink(T_SHM_FILENAME); - if (T_shm_fd == -1) { perror(T_SHM_FILENAME); abort(); } - T_cache = mmap(NULL, T_CACHE_SIZE * sizeof(T_cache_t), - PROT_READ | PROT_WRITE, MAP_SHARED, T_shm_fd, 0); - if (T_cache == NULL) - { perror(T_SHM_FILENAME); abort(); } - close(T_shm_fd); - 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 37668a8309..18e4a590d9 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,16 +110,52 @@ 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 serialize write accesses to the T cache. For that, we use a + * 'ticket' mechanism. To acquire a T slot the caller needs to own the + * current active ticket. We also wait for the slot to be free if + * it is already in use. + */ +#if BASIC_SIMULATOR +# define T_GET_SLOT \ + do { \ + extern volatile uint64_t T_next_id; \ + extern volatile uint64_t T_active_id; \ + uint64_t id; \ + /* get a ticket */ \ + id = __sync_fetch_and_add(&T_next_id, 1); \ + /* wait for our turn */ \ + while (id != __sync_fetch_and_add(&T_active_id, 0)) /* busy wait */; \ + /* this is our turn, try to acquire the slot until it's free */ \ + do { \ + T_LOCAL_busy = __sync_fetch_and_or(&T_cache[T_LOCAL_slot].busy, 0x01); \ + if (T_LOCAL_busy & 0x01) usleep(100); \ + } while (T_LOCAL_busy & 0x01); \ + /* check that there are still some tickets */ \ + if (__sync_fetch_and_add(&T_active_id, 0) == 0xffffffffffffffff) { \ + printf("T: reached the end of times, bye...\n"); \ + abort(); \ + } \ + /* free our ticket, which signals the next waiter that it's its turn */ \ + (void)__sync_fetch_and_add(&T_active_id, 1); \ + } while (0) +#else +# define T_GET_SLOT \ + T_LOCAL_busy = __sync_fetch_and_or(&T_cache[T_LOCAL_slot].busy, 0x01); +#endif /* used at header of Tn, allocates buffer */ #define T_LOCAL_DATA \ char *T_LOCAL_buf; \ int T_LOCAL_size = 0; \ int T_LOCAL_slot; \ + int T_LOCAL_busy; \ T_LOCAL_slot = __sync_fetch_and_add(T_freelist_head, 1) \ & (T_CACHE_SIZE - 1); \ (void)__sync_fetch_and_and(T_freelist_head, T_CACHE_SIZE - 1); \ - if (T_cache[T_LOCAL_slot].busy) { \ + T_GET_SLOT; \ + if (T_LOCAL_busy & 0x01) { \ printf("%s:%d:%s: T cache is full - consider increasing its size\n", \ __FILE__, __LINE__, __FUNCTION__); \ abort(); \ @@ -130,7 +167,7 @@ extern T_cache_t *T_cache; #define T_COMMIT() \ T_cache[T_LOCAL_slot].length = T_LOCAL_size; \ __sync_synchronize(); \ - T_cache[T_LOCAL_slot].busy = 1; \ + (void)__sync_fetch_and_or(&T_cache[T_LOCAL_slot].busy, 0x02); #define T_CHECK_SIZE(len, argnum) \ if (T_LOCAL_size + (len) > T_BUFFER_MAX) { \ @@ -140,50 +177,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 @@ -597,10 +590,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 16d35210f2..83a380662d 100644 --- a/common/utils/T/T_defs.h +++ b/common/utils/T/T_defs.h @@ -8,10 +8,20 @@ #define T_MAX_ARGS 16 /* maximum size of a message - increase if needed */ -#define T_BUFFER_MAX (1024*64) +#if BASIC_SIMULATOR + /* let's have 100 RBs functional for the basic simulator */ +# define T_BUFFER_MAX (1024*64*2) +#else +# define T_BUFFER_MAX (1024*64) +#endif /* size of the local cache for messages (must be pow(2,something)) */ -#define T_CACHE_SIZE (8192 * 2) +#if BASIC_SIMULATOR + /* we don't need much space for the basic simulator */ +# define T_CACHE_SIZE 1024 +#else +# define T_CACHE_SIZE (8192 * 2) +#endif /* maximum number of bytes a message can contain */ #ifdef T_SEND_TIME @@ -21,18 +31,20 @@ #endif typedef struct { + /* 'busy' is a bit field + * bit 0: 1 means that slot is acquired by writer + * bit 1: 1 means that slot is ready for consumption + */ volatile int busy; char buffer[T_BUFFER_MAX]; int length; } T_cache_t; -#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..676f329a0e 100644 --- a/common/utils/T/T_messages.txt +++ b/common/utils/T/T_messages.txt @@ -750,6 +750,27 @@ ID = LEGACY_OSA_TRACE 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 @@ -903,30 +924,9 @@ ID = buf_test #VCD variables and functions #be careful! this must be synchronized with the code! -#also keep up to date VCD_NUM_VARIABLES and VCD_NUM_FUNCTIONS in T_defs.h - -#to synchronize: copy/paste from openair2/UTIL/LOG/vcd_signal_dumper.h -#the variables and functions name, replace "SIGNAL_DUMPER_VARIABLES" by -#"VARIABLE" and "SIGNAL_DUMPER_FUNCTIONS" by "FUNCTION" (check that -#everything is fine! for example we have -#VCD_SIGNAL_DUMPER_VARIABLE_ITTI_SEND_MSG that has VARIABLE without S) -#and then process with sed - -#to generate variables: -#sed -e "s/ VCD_VARIABLE_\(.*\)/ID = VCD_VARIABLE_\1\n DESC = VCD variable \1\n GROUP = ALL:VCD:ENB\n FORMAT = ulong,value/" < VCD >> T_messages.txt - -#to generate functions: -#sed -e "s/ VCD_FUNCTION_\(.*\)/ID = VCD_FUNCTION_\1\n DESC = VCD function \1\n GROUP = ALL:VCD:ENB\n FORMAT = int,value/" < VCD.functions >> T_messages.txt - -#you may want to manually edit groups for UE instead of eNB - -#then count functions and variables and update VCD_NUM_FUNCTIONS and -#VCD_NUM_VARIABLES in T_defs.h - -#also verify that VCD_FIRST_FUNCTION and VCD_FIRST_VARIABLE are correct -#in T_defs.h. They have to point to the first function and variable -#as defined below. Note also that the order of the VCD functions -#and variables must be the same as in the code. +#also keep up to date VCD_NUM_VARIABLES, VCD_NUM_FUNCTIONS, +#VCD_FIRST_FUNCTION and VCD_FIRST_VARIABLE in T_defs.h +#to check that everything is correct you can run: make _check_vcd #variables @@ -934,526 +934,642 @@ ID = VCD_VARIABLE_FRAME_NUMBER_TX0_ENB DESC = VCD variable FRAME_NUMBER_TX0_ENB GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = frame_number_TX0_eNB ID = VCD_VARIABLE_FRAME_NUMBER_TX1_ENB DESC = VCD variable FRAME_NUMBER_TX1_ENB GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = frame_number_TX1_eNB ID = VCD_VARIABLE_FRAME_NUMBER_RX0_ENB DESC = VCD variable FRAME_NUMBER_RX0_ENB GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = frame_number_RX0_eNB ID = VCD_VARIABLE_FRAME_NUMBER_RX1_ENB DESC = VCD variable FRAME_NUMBER_RX1_ENB GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = frame_number_RX1_eNB ID = VCD_VARIABLE_SUBFRAME_NUMBER_TX0_ENB DESC = VCD variable SUBFRAME_NUMBER_TX0_ENB GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = subframe_number_TX0_eNB ID = VCD_VARIABLE_SUBFRAME_NUMBER_TX1_ENB DESC = VCD variable SUBFRAME_NUMBER_TX1_ENB GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = subframe_number_TX1_eNB ID = VCD_VARIABLE_SUBFRAME_NUMBER_RX0_ENB DESC = VCD variable SUBFRAME_NUMBER_RX0_ENB GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = subframe_number_RX0_eNB ID = VCD_VARIABLE_SUBFRAME_NUMBER_RX1_ENB DESC = VCD variable SUBFRAME_NUMBER_RX1_ENB GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = subframe_number_RX1_eNB ID = VCD_VARIABLE_FRAME_NUMBER_TX0_RU DESC = VCD variable FRAME_NUMBER_TX0_RU GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = frame_number_TX0_RU ID = VCD_VARIABLE_FRAME_NUMBER_TX1_RU DESC = VCD variable FRAME_NUMBER_TX1_RU GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = frame_number_TX1_RU ID = VCD_VARIABLE_FRAME_NUMBER_RX0_RU DESC = VCD variable FRAME_NUMBER_RX0_RU GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = frame_number_RX0_RU ID = VCD_VARIABLE_FRAME_NUMBER_RX1_RU DESC = VCD variable FRAME_NUMBER_RX1_RU GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = frame_number_RX1_RU ID = VCD_VARIABLE_SUBFRAME_NUMBER_TX0_RU DESC = VCD variable SUBFRAME_NUMBER_TX0_RU GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = subframe_number_TX0_RU ID = VCD_VARIABLE_SUBFRAME_NUMBER_TX1_RU DESC = VCD variable SUBFRAME_NUMBER_TX1_RU GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = subframe_number_TX1_RU ID = VCD_VARIABLE_SUBFRAME_NUMBER_RX0_RU DESC = VCD variable SUBFRAME_NUMBER_RX0_RU GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = subframe_number_RX0_RU ID = VCD_VARIABLE_SUBFRAME_NUMBER_RX1_RU DESC = VCD variable SUBFRAME_NUMBER_RX1_RU GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = subframe_number_RX1_RU ID = VCD_VARIABLE_RUNTIME_TX_ENB DESC = VCD variable RUNTIME_TX_ENB GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = runtime_TX_eNB ID = VCD_VARIABLE_RUNTIME_RX_ENB DESC = VCD variable RUNTIME_RX_ENB GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = runtime_RX_eNB ID = VCD_VARIABLE_FRAME_NUMBER_TX0_UE DESC = VCD variable FRAME_NUMBER_TX0_UE GROUP = ALL:VCD:UE:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = frame_number_TX0_UE ID = VCD_VARIABLE_FRAME_NUMBER_TX1_UE DESC = VCD variable FRAME_NUMBER_TX1_UE GROUP = ALL:VCD:UE:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = frame_number_TX1_UE ID = VCD_VARIABLE_FRAME_NUMBER_RX0_UE DESC = VCD variable FRAME_NUMBER_RX0_UE GROUP = ALL:VCD:UE:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = frame_number_RX0_UE ID = VCD_VARIABLE_FRAME_NUMBER_RX1_UE DESC = VCD variable FRAME_NUMBER_RX1_UE GROUP = ALL:VCD:UE:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = frame_number_RX1_UE ID = VCD_VARIABLE_SUBFRAME_NUMBER_TX0_UE DESC = VCD variable SUBFRAME_NUMBER_TX0_UE GROUP = ALL:VCD:UE:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = subframe_TX0_UE ID = VCD_VARIABLE_SUBFRAME_NUMBER_TX1_UE DESC = VCD variable SUBFRAME_NUMBER_TX1_UE GROUP = ALL:VCD:UE:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = subframe_TX1_UE ID = VCD_VARIABLE_SUBFRAME_NUMBER_RX0_UE DESC = VCD variable SUBFRAME_NUMBER_RX0_UE GROUP = ALL:VCD:UE:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = subframe_RX0_UE 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 + VCD_NAME = subframe_RX1_UE ID = VCD_VARIABLE_UE_RX_OFFSET DESC = VCD variable UE_RX_OFFSET GROUP = ALL:VCD:UE:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue_rx_offset ID = VCD_VARIABLE_DIFF DESC = VCD variable DIFF GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = diff2 ID = VCD_VARIABLE_HW_SUBFRAME DESC = VCD variable HW_SUBFRAME GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = hw_subframe ID = VCD_VARIABLE_HW_FRAME DESC = VCD variable HW_FRAME GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = hw_frame ID = VCD_VARIABLE_HW_SUBFRAME_RX DESC = VCD variable HW_SUBFRAME_RX GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = hw_subframe_rx ID = VCD_VARIABLE_HW_FRAME_RX DESC = VCD variable HW_FRAME_RX GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = hw_frame_rx ID = VCD_VARIABLE_TXCNT DESC = VCD variable TXCNT GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = txcnt ID = VCD_VARIABLE_RXCNT DESC = VCD variable RXCNT GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = rxcnt ID = VCD_VARIABLE_TRX_TS DESC = VCD variable TRX_TS GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = trx_ts ID = VCD_VARIABLE_TRX_TST DESC = VCD variable TRX_TST GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = trx_tst ID = VCD_VARIABLE_TRX_TS_UE DESC = VCD variable TRX_TS_UE GROUP = ALL:VCD:UE:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = trx_ts_ue ID = VCD_VARIABLE_TRX_TST_UE DESC = VCD variable TRX_TST_UE GROUP = ALL:VCD:UE:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = trx_tst_ue ID = VCD_VARIABLE_TRX_WRITE_FLAGS DESC = VCD variable TRX_WRITE_FLAGS GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = trx_write_flags ID = VCD_VARIABLE_TX_TS DESC = VCD variable TX_TS GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = tx_ts ID = VCD_VARIABLE_RX_TS DESC = VCD variable RX_TS GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = rx_ts ID = VCD_VARIABLE_RX_HWCNT DESC = VCD variable RX_HWCNT GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = hw_cnt_rx ID = VCD_VARIABLE_RX_LHWCNT DESC = VCD variable RX_LHWCNT GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = lhw_cnt_rx ID = VCD_VARIABLE_TX_HWCNT DESC = VCD variable TX_HWCNT GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = hw_cnt_tx ID = VCD_VARIABLE_TX_LHWCNT DESC = VCD variable TX_LHWCNT GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = lhw_cnt_tx ID = VCD_VARIABLE_RX_PCK DESC = VCD variable RX_PCK GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = pck_rx ID = VCD_VARIABLE_TX_PCK DESC = VCD variable TX_PCK GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = pck_tx ID = VCD_VARIABLE_RX_SEQ_NUM DESC = VCD variable RX_SEQ_NUM GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = rx_seq_num ID = VCD_VARIABLE_RX_SEQ_NUM_PRV DESC = VCD variable RX_SEQ_NUM_PRV GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = rx_seq_num_prv ID = VCD_VARIABLE_TX_SEQ_NUM DESC = VCD variable TX_SEQ_NUM GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = tx_seq_num ID = VCD_VARIABLE_CNT DESC = VCD variable CNT GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = cnt ID = VCD_VARIABLE_DUMMY_DUMP DESC = VCD variable DUMMY_DUMP GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = dummy_dump ID = VCD_VARIABLE_ITTI_SEND_MSG DESC = VCD variable ITTI_SEND_MSG GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = itti_send_msg ID = VCD_VARIABLE_ITTI_POLL_MSG DESC = VCD variable ITTI_POLL_MSG GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = itti_poll_msg ID = VCD_VARIABLE_ITTI_RECV_MSG DESC = VCD variable ITTI_RECV_MSG GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = itti_recv_msg ID = VCD_VARIABLE_ITTI_ALLOC_MSG DESC = VCD variable ITTI_ALLOC_MSG GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = itti_alloc_msg ID = VCD_VARIABLE_MP_ALLOC DESC = VCD variable MP_ALLOC GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = mp_alloc ID = VCD_VARIABLE_MP_FREE DESC = VCD variable MP_FREE GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = mp_free ID = VCD_VARIABLE_UE_INST_CNT_RX DESC = VCD variable UE_INST_CNT_RX GROUP = ALL:VCD:UE:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue_inst_cnt_rx ID = VCD_VARIABLE_UE_INST_CNT_TX DESC = VCD variable UE_INST_CNT_TX GROUP = ALL:VCD:UE:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue_inst_cnt_tx ID = VCD_VARIABLE_DCI_INFO DESC = VCD variable DCI_INFO GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = dci_info ID = VCD_VARIABLE_UE0_BSR DESC = VCD variable UE0_BSR GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_BSR ID = VCD_VARIABLE_UE0_BO DESC = VCD variable UE0_BO GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_BO ID = VCD_VARIABLE_UE0_SCHEDULED DESC = VCD variable UE0_SCHEDULED GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_scheduled ID = VCD_VARIABLE_UE0_TIMING_ADVANCE DESC = VCD variable UE0_TIMING_ADVANCE GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_timing_advance ID = VCD_VARIABLE_UE0_SR_ENERGY DESC = VCD variable UE0_SR_ENERGY GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_SR_ENERGY ID = VCD_VARIABLE_UE0_SR_THRES DESC = VCD variable UE0_SR_THRES GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_SR_THRES ID = VCD_VARIABLE_UE0_RSSI0 DESC = VCD variable UE0_RSSI0 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_rssi0 ID = VCD_VARIABLE_UE0_RSSI1 DESC = VCD variable UE0_RSSI1 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_rssi1 ID = VCD_VARIABLE_UE0_RSSI2 DESC = VCD variable UE0_RSSI2 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_rssi2 ID = VCD_VARIABLE_UE0_RSSI3 DESC = VCD variable UE0_RSSI3 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_rssi3 ID = VCD_VARIABLE_UE0_RSSI4 DESC = VCD variable UE0_RSSI4 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_rssi4 ID = VCD_VARIABLE_UE0_RSSI5 DESC = VCD variable UE0_RSSI5 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_rssi5 ID = VCD_VARIABLE_UE0_RSSI6 DESC = VCD variable UE0_RSSI6 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_rssi6 ID = VCD_VARIABLE_UE0_RSSI7 DESC = VCD variable UE0_RSSI7 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_rssi7 ID = VCD_VARIABLE_UE0_RES0 DESC = VCD variable UE0_RES0 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_res0 ID = VCD_VARIABLE_UE0_RES1 DESC = VCD variable UE0_RES1 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_res1 ID = VCD_VARIABLE_UE0_RES2 DESC = VCD variable UE0_RES2 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_res2 ID = VCD_VARIABLE_UE0_RES3 DESC = VCD variable UE0_RES3 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_res3 ID = VCD_VARIABLE_UE0_RES4 DESC = VCD variable UE0_RES4 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_res4 ID = VCD_VARIABLE_UE0_RES5 DESC = VCD variable UE0_RES5 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_res5 ID = VCD_VARIABLE_UE0_RES6 DESC = VCD variable UE0_RES6 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_res6 ID = VCD_VARIABLE_UE0_RES7 DESC = VCD variable UE0_RES7 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_res7 ID = VCD_VARIABLE_UE0_MCS0 DESC = VCD variable UE0_MCS0 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_MCS0 ID = VCD_VARIABLE_UE0_MCS1 DESC = VCD variable UE0_MCS1 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_MCS1 ID = VCD_VARIABLE_UE0_MCS2 DESC = VCD variable UE0_MCS2 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_MCS2 ID = VCD_VARIABLE_UE0_MCS3 DESC = VCD variable UE0_MCS3 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_MCS3 ID = VCD_VARIABLE_UE0_MCS4 DESC = VCD variable UE0_MCS4 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_MCS4 ID = VCD_VARIABLE_UE0_MCS5 DESC = VCD variable UE0_MCS5 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_MCS5 ID = VCD_VARIABLE_UE0_MCS6 DESC = VCD variable UE0_MCS6 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_MCS6 ID = VCD_VARIABLE_UE0_MCS7 DESC = VCD variable UE0_MCS7 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_MCS7 ID = VCD_VARIABLE_UE0_RB0 DESC = VCD variable UE0_RB0 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_RB0 ID = VCD_VARIABLE_UE0_RB1 DESC = VCD variable UE0_RB1 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_RB1 ID = VCD_VARIABLE_UE0_RB2 DESC = VCD variable UE0_RB2 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_RB2 ID = VCD_VARIABLE_UE0_RB3 DESC = VCD variable UE0_RB3 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_RB3 ID = VCD_VARIABLE_UE0_RB4 DESC = VCD variable UE0_RB4 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_RB4 ID = VCD_VARIABLE_UE0_RB5 DESC = VCD variable UE0_RB5 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_RB5 ID = VCD_VARIABLE_UE0_RB6 DESC = VCD variable UE0_RB6 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_RB6 ID = VCD_VARIABLE_UE0_RB7 DESC = VCD variable UE0_RB7 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_RB7 ID = VCD_VARIABLE_UE0_ROUND0 DESC = VCD variable UE0_ROUND0 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_ROUND0 ID = VCD_VARIABLE_UE0_ROUND1 DESC = VCD variable UE0_ROUND1 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_ROUND1 ID = VCD_VARIABLE_UE0_ROUND2 DESC = VCD variable UE0_ROUND2 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_ROUND2 ID = VCD_VARIABLE_UE0_ROUND3 DESC = VCD variable UE0_ROUND3 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_ROUND3 ID = VCD_VARIABLE_UE0_ROUND4 DESC = VCD variable UE0_ROUND4 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_ROUND4 ID = VCD_VARIABLE_UE0_ROUND5 DESC = VCD variable UE0_ROUND5 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_ROUND5 ID = VCD_VARIABLE_UE0_ROUND6 DESC = VCD variable UE0_ROUND6 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_ROUND6 ID = VCD_VARIABLE_UE0_ROUND7 DESC = VCD variable UE0_ROUND7 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_ROUND7 ID = VCD_VARIABLE_UE0_SFN0 DESC = VCD variable UE0_SFN0 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_SFN0 ID = VCD_VARIABLE_UE0_SFN1 DESC = VCD variable UE0_SFN1 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_SFN1 ID = VCD_VARIABLE_UE0_SFN2 DESC = VCD variable UE0_SFN2 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_SFN2 ID = VCD_VARIABLE_UE0_SFN3 DESC = VCD variable UE0_SFN3 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_SFN3 ID = VCD_VARIABLE_UE0_SFN4 DESC = VCD variable UE0_SFN4 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_SFN4 ID = VCD_VARIABLE_UE0_SFN5 DESC = VCD variable UE0_SFN5 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_SFN5 ID = VCD_VARIABLE_UE0_SFN6 DESC = VCD variable UE0_SFN6 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_SFN6 ID = VCD_VARIABLE_UE0_SFN7 DESC = VCD variable UE0_SFN7 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_SFN7 ID = VCD_VARIABLE_SEND_IF4_SYMBOL DESC = VCD variable SEND_IF4_SYMBOL GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = send_if4_symbol ID = VCD_VARIABLE_RECV_IF4_SYMBOL DESC = VCD variable RECV_IF4_SYMBOL GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = recv_if4_symbol ID = VCD_VARIABLE_SEND_IF5_PKT_ID DESC = VCD variable SEND_IF5_PKT_ID GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = send_if5_pkt_id ID = VCD_VARIABLE_RECV_IF5_PKT_ID DESC = VCD variable RECV_IF5_PKT_ID GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = recv_if5_pkt_id ID = VCD_VARIABLE_UE_PDCP_FLUSH_SIZE DESC = VCD variable UE_PDCP_FLUSH_SIZE GROUP = ALL:VCD:ENB:UE:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue_pdcp_flush_size ID = VCD_VARIABLE_UE_PDCP_FLUSH_ERR DESC = VCD variable UE_PDCP_FLUSH_ERR GROUP = ALL:VCD:ENB:UE:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue_pdcp_flush_err ID = VCD_VARIABLE_UE0_TRX_READ_NS DESC = VCD variable UE0_TRX_READ_NS GROUP = ALL:VCD:UE:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_trx_read_ns ID = VCD_VARIABLE_UE0_TRX_WRITE_NS DESC = VCD variable UE0_TRX_WRITE_NS GROUP = ALL:VCD:UE:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_trx_write_ns ID = VCD_VARIABLE_UE0_TRX_READ_NS_MISSING DESC = VCD variable UE0_TRX_READ_NS_MISSING GROUP = ALL:VCD:UE:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_trx_read_ns_missing ID = VCD_VARIABLE_UE0_TRX_WRITE_NS_MISSING DESC = VCD variable UE0_TRX_WRITE_NS_MISSING GROUP = ALL:VCD:UE:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ue0_trx_write_ns_missing ID = VCD_VARIABLE_CPUID_ENB_THREAD_RXTX DESC = VCD variable CPUID_ENB_THREAD_RXTX GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = enb_thread_rxtx_CPUID ID = VCD_VARIABLE_CPUID_RU_THREAD DESC = VCD variable CPUID_RU_THREAD GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ru_thread_CPUID ID = VCD_VARIABLE_CPUID_RU_THREAD_TX DESC = VCD variable CPUID_RU_THREAD_TX GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value + VCD_NAME = ru_thread_tx_CPUID #functions @@ -1461,751 +1577,954 @@ ID = VCD_FUNCTION_RT_SLEEP DESC = VCD function RT_SLEEP GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = rt_sleep ID = VCD_FUNCTION_TRX_READ DESC = VCD function TRX_READ GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = trx_read ID = VCD_FUNCTION_TRX_WRITE DESC = VCD function TRX_WRITE GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = trx_write ID = VCD_FUNCTION_TRX_READ_UE DESC = VCD function TRX_READ_UE GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = trx_read_ue ID = VCD_FUNCTION_TRX_WRITE_UE DESC = VCD function TRX_WRITE_UE GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = trx_write_ue ID = VCD_FUNCTION_TRX_READ_IF DESC = VCD function TRX_READ_IF GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = trx_read_if ID = VCD_FUNCTION_TRX_WRITE_IF DESC = VCD function TRX_WRITE_IF GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = trx_write_if ID = VCD_FUNCTION_eNB_PROC_RXTX0 DESC = VCD function eNB_PROC_RXTX0 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = eNB_thread_rxtx0 ID = VCD_FUNCTION_eNB_PROC_RXTX1 DESC = VCD function eNB_PROC_RXTX1 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = eNB_thread_rxtx1 ID = VCD_FUNCTION_UE_THREAD_SYNCH DESC = VCD function UE_THREAD_SYNCH GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = ue_thread_synch ID = VCD_FUNCTION_UE_THREAD_RXTX0 DESC = VCD function UE_THREAD_RXTX0 GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = ue_thread_rxtx0 ID = VCD_FUNCTION_UE_THREAD_RXTX1 DESC = VCD function UE_THREAD_RXTX1 GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = ue_thread_rxtx1 ID = VCD_FUNCTION_TRX_READ_SF9 DESC = VCD function TRX_READ_SF9 GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = trx_read_sf9 ID = VCD_FUNCTION_TRX_WRITE_SF9 DESC = VCD function TRX_WRITE_SF9 GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = trx_write_sf9 ID = VCD_FUNCTION_UE_SIGNAL_COND_RXTX0 DESC = VCD function UE_SIGNAL_COND_RXTX0 GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = ue_signal_cond_rxtx0 ID = VCD_FUNCTION_UE_SIGNAL_COND_RXTX1 DESC = VCD function UE_SIGNAL_COND_RXTX1 GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = ue_signal_cond_rxtx1 ID = VCD_FUNCTION_UE_WAIT_COND_RXTX0 DESC = VCD function UE_WAIT_COND_RXTX0 GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = ue_wait_cond_rxtx0 ID = VCD_FUNCTION_UE_WAIT_COND_RXTX1 DESC = VCD function UE_WAIT_COND_RXTX1 GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = ue_wait_cond_rxtx1 ID = VCD_FUNCTION_UE_LOCK_MUTEX_RXTX_FOR_COND_WAIT0 DESC = VCD function UE_LOCK_MUTEX_RXTX_FOR_COND_WAIT0 GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = ue_lock_mutex_rxtx_for_cond_wait0 ID = VCD_FUNCTION_UE_LOCK_MUTEX_RXTX_FOR_COND_WAIT1 DESC = VCD function UE_LOCK_MUTEX_RXTX_FOR_COND_WAIT1 GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = ue_lock_mutex_rxtx_for_cond_wait1 ID = VCD_FUNCTION_UE_LOCK_MUTEX_RXTX_FOR_CNT_DECREMENT0 DESC = VCD function UE_LOCK_MUTEX_RXTX_FOR_CNT_DECREMENT0 GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = ue_lock_mutex_rxtx_for_cnt_decrement0 ID = VCD_FUNCTION_UE_LOCK_MUTEX_RXTX_FOR_CNT_DECREMENT1 DESC = VCD function UE_LOCK_MUTEX_RXTX_FOR_CNT_DECREMENT1 GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = ue_lock_mutex_rxtx_for_cnt_decrement1 ID = VCD_FUNCTION_UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT0 DESC = VCD function UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT0 GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = ue_lock_mutex_rxtx_for_cnt_increment0 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 + VCD_NAME = ue_lock_mutex_rxtx_for_cnt_increment1 +ID = VCD_FUNCTION_SIM_DO_DL_SIGNAL + DESC = VCD function SIM_DO_DL_SIGNAL + GROUP = ALL:VCD:ENB:VCD_FUNCTION + FORMAT = int,value + VCD_NAME = do_DL_sig +ID = VCD_FUNCTION_SIM_DO_UL_SIGNAL + DESC = VCD function SIM_DO_UL_SIGNAL + GROUP = ALL:VCD:ENB:VCD_FUNCTION + FORMAT = int,value + VCD_NAME = do_UL_sig +ID = VCD_FUNCTION_SIM_UE_TRX_READ + DESC = VCD function SIM_UE_TRX_READ + GROUP = ALL:VCD:ENB:VCD_FUNCTION + FORMAT = int,value + VCD_NAME = UE_trx_read ID = VCD_FUNCTION_eNB_TX DESC = VCD function eNB_TX GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = eNB_tx ID = VCD_FUNCTION_eNB_RX DESC = VCD function eNB_RX GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = eNB_rx ID = VCD_FUNCTION_eNB_TRX DESC = VCD function eNB_TRX GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = eNB_trx ID = VCD_FUNCTION_eNB_TM DESC = VCD function eNB_TM GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = eNB_tm ID = VCD_FUNCTION_eNB_RX_SLEEP DESC = VCD function eNB_RX_SLEEP GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = eNB_rx_sleep ID = VCD_FUNCTION_eNB_TX_SLEEP DESC = VCD function eNB_TX_SLEEP GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = eNB_tx_sleep ID = VCD_FUNCTION_eNB_PROC_SLEEP DESC = VCD function eNB_PROC_SLEEP GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = eNB_proc_sleep ID = VCD_FUNCTION_TRX_READ_RF DESC = VCD function TRX_READ_RF GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = trx_read_rf ID = VCD_FUNCTION_TRX_WRITE_RF DESC = VCD function TRX_WRITE_RF GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = trx_write_rf ID = VCD_FUNCTION_UE_SYNCH DESC = VCD function UE_SYNCH GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = ue_synch ID = VCD_FUNCTION_UE_SLOT_FEP DESC = VCD function UE_SLOT_FEP GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = ue_slot_fep ID = VCD_FUNCTION_UE_RRC_MEASUREMENTS DESC = VCD function UE_RRC_MEASUREMENTS GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = ue_rrc_measurements ID = VCD_FUNCTION_UE_GAIN_CONTROL DESC = VCD function UE_GAIN_CONTROL GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = ue_gain_control ID = VCD_FUNCTION_UE_ADJUST_SYNCH DESC = VCD function UE_ADJUST_SYNCH GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = ue_adjust_synch ID = VCD_FUNCTION_UE_MEASUREMENT_PROCEDURES DESC = VCD function UE_MEASUREMENT_PROCEDURES GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = lte_ue_measurement_procedures ID = VCD_FUNCTION_UE_PDCCH_PROCEDURES DESC = VCD function UE_PDCCH_PROCEDURES GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = lte_ue_pdcch_procedures ID = VCD_FUNCTION_UE_PBCH_PROCEDURES DESC = VCD function UE_PBCH_PROCEDURES GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = lte_ue_pbch_procedures ID = VCD_FUNCTION_PHY_PROCEDURES_ENB_TX DESC = VCD function PHY_PROCEDURES_ENB_TX GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_procedures_eNb_tx0 ID = VCD_FUNCTION_PHY_PROCEDURES_ENB_TX1 DESC = VCD function PHY_PROCEDURES_ENB_TX1 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_procedures_eNb_tx1 ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPRX DESC = VCD function PHY_PROCEDURES_RU_FEPRX GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_procedures_ru_feprx0 ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPRX1 DESC = VCD function PHY_PROCEDURES_RU_FEPRX1 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_procedures_ru_feprx1 ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM DESC = VCD function PHY_PROCEDURES_RU_FEPTX_OFDM GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_procedures_ru_feptx_ofdm0 ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM1 DESC = VCD function PHY_PROCEDURES_RU_FEPTX_OFDM1 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_procedures_ru_feptx_ofdm1 ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_PREC DESC = VCD function PHY_PROCEDURES_RU_FEPTX_PREC GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_procedures_ru_feptx_prec0 ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_PREC1 DESC = VCD function PHY_PROCEDURES_RU_FEPTX_PREC1 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_procedures_ru_feptx_prec1 ID = VCD_FUNCTION_PHY_PROCEDURES_ENB_RX_UESPEC DESC = VCD function PHY_PROCEDURES_ENB_RX_UESPEC GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_procedures_eNb_rx_uespec0 ID = VCD_FUNCTION_PHY_PROCEDURES_ENB_RX_UESPEC1 DESC = VCD function PHY_PROCEDURES_ENB_RX_UESPEC1 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_procedures_eNb_rx_uespec1 ID = VCD_FUNCTION_PHY_PROCEDURES_UE_TX DESC = VCD function PHY_PROCEDURES_UE_TX GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_procedures_ue_tx ID = VCD_FUNCTION_PHY_PROCEDURES_UE_RX DESC = VCD function PHY_PROCEDURES_UE_RX GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_procedures_ue_rx ID = VCD_FUNCTION_PHY_PROCEDURES_UE_TX_ULSCH_UESPEC DESC = VCD function PHY_PROCEDURES_UE_TX_ULSCH_UESPEC GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_procedures_ue_tx_ulsch_uespec ID = VCD_FUNCTION_PHY_PROCEDURES_UE_TX_PUCCH DESC = VCD function PHY_PROCEDURES_UE_TX_PUCCH GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_procedures_ue_tx_pucch ID = VCD_FUNCTION_PHY_PROCEDURES_UE_TX_ULSCH_COMMON DESC = VCD function PHY_PROCEDURES_UE_TX_ULSCH_COMMON GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_procedures_ue_tx_ulsch_common ID = VCD_FUNCTION_PHY_PROCEDURES_UE_TX_PRACH DESC = VCD function PHY_PROCEDURES_UE_TX_PRACH GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_procedures_ue_tx_prach ID = VCD_FUNCTION_PHY_PROCEDURES_UE_TX_ULSCH_RAR DESC = VCD function PHY_PROCEDURES_UE_TX_ULSCH_RAR GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_procedures_ue_tx_ulsch_rar ID = VCD_FUNCTION_PHY_PROCEDURES_ENB_LTE DESC = VCD function PHY_PROCEDURES_ENB_LTE GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_procedures_eNB_lte ID = VCD_FUNCTION_PHY_PROCEDURES_UE_LTE DESC = VCD function PHY_PROCEDURES_UE_LTE GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_procedures_UE_lte ID = VCD_FUNCTION_PDSCH_THREAD DESC = VCD function PDSCH_THREAD GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = pdsch_thread ID = VCD_FUNCTION_DLSCH_THREAD0 DESC = VCD function DLSCH_THREAD0 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = dlsch_thread0 ID = VCD_FUNCTION_DLSCH_THREAD1 DESC = VCD function DLSCH_THREAD1 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = dlsch_thread1 ID = VCD_FUNCTION_DLSCH_THREAD2 DESC = VCD function DLSCH_THREAD2 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = dlsch_thread2 ID = VCD_FUNCTION_DLSCH_THREAD3 DESC = VCD function DLSCH_THREAD3 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = dlsch_thread3 ID = VCD_FUNCTION_DLSCH_THREAD4 DESC = VCD function DLSCH_THREAD4 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = dlsch_thread4 ID = VCD_FUNCTION_DLSCH_THREAD5 DESC = VCD function DLSCH_THREAD5 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = dlsch_thread5 ID = VCD_FUNCTION_DLSCH_THREAD6 DESC = VCD function DLSCH_THREAD6 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = dlsch_thread6 ID = VCD_FUNCTION_DLSCH_THREAD7 DESC = VCD function DLSCH_THREAD7 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = dlsch_thread7 ID = VCD_FUNCTION_DLSCH_DECODING0 DESC = VCD function DLSCH_DECODING0 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = dlsch_decoding0 ID = VCD_FUNCTION_DLSCH_DECODING1 DESC = VCD function DLSCH_DECODING1 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = dlsch_decoding1 ID = VCD_FUNCTION_DLSCH_DECODING2 DESC = VCD function DLSCH_DECODING2 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = dlsch_decoding2 ID = VCD_FUNCTION_DLSCH_DECODING3 DESC = VCD function DLSCH_DECODING3 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = dlsch_decoding3 ID = VCD_FUNCTION_DLSCH_DECODING4 DESC = VCD function DLSCH_DECODING4 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = dlsch_decoding4 ID = VCD_FUNCTION_DLSCH_DECODING5 DESC = VCD function DLSCH_DECODING5 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = dlsch_decoding5 ID = VCD_FUNCTION_DLSCH_DECODING6 DESC = VCD function DLSCH_DECODING6 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = dlsch_decoding6 ID = VCD_FUNCTION_DLSCH_DECODING7 DESC = VCD function DLSCH_DECODING7 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = dlsch_decoding7 ID = VCD_FUNCTION_RX_PDCCH DESC = VCD function RX_PDCCH GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = rx_pdcch ID = VCD_FUNCTION_DCI_DECODING DESC = VCD function DCI_DECODING GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = dci_decoding ID = VCD_FUNCTION_RX_PHICH DESC = VCD function RX_PHICH GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = rx_phich ID = VCD_FUNCTION_PDSCH_PROC DESC = VCD function PDSCH_PROC GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = pdsch_procedures ID = VCD_FUNCTION_PDSCH_PROC_SI DESC = VCD function PDSCH_PROC_SI GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = pdsch_procedures_si ID = VCD_FUNCTION_PDSCH_PROC_P DESC = VCD function PDSCH_PROC_P GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = pdsch_procedures_p ID = VCD_FUNCTION_PDSCH_PROC_RA DESC = VCD function PDSCH_PROC_RA GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = pdsch_procedures_ra ID = VCD_FUNCTION_PHY_UE_CONFIG_SIB2 DESC = VCD function PHY_UE_CONFIG_SIB2 GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_ue_config_sib2 ID = VCD_FUNCTION_PHY_CONFIG_SIB1_ENB DESC = VCD function PHY_CONFIG_SIB1_ENB GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_phy_config_sib1_eNB ID = VCD_FUNCTION_PHY_CONFIG_SIB2_ENB DESC = VCD function PHY_CONFIG_SIB2_ENB GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_phy_config_sib2_eNB ID = VCD_FUNCTION_PHY_CONFIG_DEDICATED_ENB DESC = VCD function PHY_CONFIG_DEDICATED_ENB GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_phy_config_dedicated_eNB ID = VCD_FUNCTION_PHY_UE_COMPUTE_PRACH DESC = VCD function PHY_UE_COMPUTE_PRACH GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_ue_compute_prach ID = VCD_FUNCTION_PHY_ENB_ULSCH_MSG3 DESC = VCD function PHY_ENB_ULSCH_MSG3 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_enb_ulsch_msg3 ID = VCD_FUNCTION_PHY_ENB_ULSCH_DECODING0 DESC = VCD function PHY_ENB_ULSCH_DECODING0 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_enb_ulsch_decoding0 ID = VCD_FUNCTION_PHY_ENB_ULSCH_DECODING1 DESC = VCD function PHY_ENB_ULSCH_DECODING1 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_enb_ulsch_decoding1 ID = VCD_FUNCTION_PHY_ENB_ULSCH_DECODING2 DESC = VCD function PHY_ENB_ULSCH_DECODING2 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_enb_ulsch_decoding2 ID = VCD_FUNCTION_PHY_ENB_ULSCH_DECODING3 DESC = VCD function PHY_ENB_ULSCH_DECODING3 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_enb_ulsch_decoding3 ID = VCD_FUNCTION_PHY_ENB_ULSCH_DECODING4 DESC = VCD function PHY_ENB_ULSCH_DECODING4 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_enb_ulsch_decoding4 ID = VCD_FUNCTION_PHY_ENB_ULSCH_DECODING5 DESC = VCD function PHY_ENB_ULSCH_DECODING5 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_enb_ulsch_decoding5 ID = VCD_FUNCTION_PHY_ENB_ULSCH_DECODING6 DESC = VCD function PHY_ENB_ULSCH_DECODING6 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_enb_ulsch_decoding6 ID = VCD_FUNCTION_PHY_ENB_ULSCH_DECODING7 DESC = VCD function PHY_ENB_ULSCH_DECODING7 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_enb_ulsch_decoding7 ID = VCD_FUNCTION_PHY_ENB_SFGEN DESC = VCD function PHY_ENB_SFGEN GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_enb_sfgen ID = VCD_FUNCTION_PHY_ENB_PRACH_RX DESC = VCD function PHY_ENB_PRACH_RX GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_enb_prach_rx ID = VCD_FUNCTION_PHY_RU_PRACH_RX DESC = VCD function PHY_RU_PRACH_RX GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_ru_prach_rx ID = VCD_FUNCTION_PHY_ENB_PDCCH_TX DESC = VCD function PHY_ENB_PDCCH_TX GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_enb_pdcch_tx ID = VCD_FUNCTION_PHY_ENB_RS_TX DESC = VCD function PHY_ENB_RS_TX GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_enb_rs_tx ID = VCD_FUNCTION_UE_GENERATE_PRACH DESC = VCD function UE_GENERATE_PRACH GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_ue_generate_prach ID = VCD_FUNCTION_UE_ULSCH_MODULATION DESC = VCD function UE_ULSCH_MODULATION GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_ue_ulsch_modulation ID = VCD_FUNCTION_UE_ULSCH_ENCODING DESC = VCD function UE_ULSCH_ENCODING GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_ue_ulsch_encoding ID = VCD_FUNCTION_UE_ULSCH_ENCODING_FILL_CQI DESC = VCD function UE_ULSCH_ENCODING_FILL_CQI GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_ue_ulsch_encoding_fill_cqi ID = VCD_FUNCTION_UE_ULSCH_SCRAMBLING DESC = VCD function UE_ULSCH_SCRAMBLING GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_ue_ulsch_scrambling ID = VCD_FUNCTION_ENB_DLSCH_MODULATION DESC = VCD function ENB_DLSCH_MODULATION GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_eNB_dlsch_modulation ID = VCD_FUNCTION_ENB_DLSCH_ENCODING DESC = VCD function ENB_DLSCH_ENCODING GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_eNB_dlsch_encoding ID = VCD_FUNCTION_ENB_DLSCH_ENCODING_W DESC = VCD function ENB_DLSCH_ENCODING_W GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_eNB_dlsch_encoding_w ID = VCD_FUNCTION_ENB_DLSCH_SCRAMBLING DESC = VCD function ENB_DLSCH_SCRAMBLING GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_eNB_dlsch_scrambling ID = VCD_FUNCTION_ENB_BEAM_PRECODING DESC = VCD function ENB_BEAM_PRECODING GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_eNB_beam_precoding ID = VCD_FUNCTION_ENB_OFDM_MODULATION DESC = VCD function ENB_OFDM_MODULATION GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = phy_eNB_ofdm_mod_l ID = VCD_FUNCTION_MACPHY_INIT DESC = VCD function MACPHY_INIT GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_macphy_init ID = VCD_FUNCTION_MACPHY_EXIT DESC = VCD function MACPHY_EXIT GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_macphy_exit ID = VCD_FUNCTION_ENB_DLSCH_ULSCH_SCHEDULER DESC = VCD function ENB_DLSCH_ULSCH_SCHEDULER GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_eNB_dlsch_ulsch_scheduler ID = VCD_FUNCTION_FILL_RAR DESC = VCD function FILL_RAR GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_fill_rar ID = VCD_FUNCTION_TERMINATE_RA_PROC DESC = VCD function TERMINATE_RA_PROC GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_terminate_ra_proc ID = VCD_FUNCTION_INITIATE_RA_PROC DESC = VCD function INITIATE_RA_PROC GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_initiate_ra_proc ID = VCD_FUNCTION_CANCEL_RA_PROC DESC = VCD function CANCEL_RA_PROC GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_cancel_ra_proc ID = VCD_FUNCTION_GET_DCI_SDU DESC = VCD function GET_DCI_SDU GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_get_dci_sdu ID = VCD_FUNCTION_GET_DLSCH_SDU DESC = VCD function GET_DLSCH_SDU GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_get_dlsch_sdu ID = VCD_FUNCTION_RX_SDU DESC = VCD function RX_SDU GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_rx_sdu ID = VCD_FUNCTION_MRBCH_PHY_SYNC_FAILURE DESC = VCD function MRBCH_PHY_SYNC_FAILURE GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_mrbch_phy_sync_failure ID = VCD_FUNCTION_SR_INDICATION DESC = VCD function SR_INDICATION GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_SR_indication ID = VCD_FUNCTION_DLSCH_PREPROCESSOR DESC = VCD function DLSCH_PREPROCESSOR GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = mac_dlsch_preprocessor ID = VCD_FUNCTION_SCHEDULE_DLSCH DESC = VCD function SCHEDULE_DLSCH GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = mac_schedule_dlsch ID = VCD_FUNCTION_FILL_DLSCH_DCI DESC = VCD function FILL_DLSCH_DCI GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = mac_fill_dlsch_dci ID = VCD_FUNCTION_OUT_OF_SYNC_IND DESC = VCD function OUT_OF_SYNC_IND GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_out_of_sync_ind ID = VCD_FUNCTION_UE_DECODE_SI DESC = VCD function UE_DECODE_SI GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_ue_decode_si ID = VCD_FUNCTION_UE_DECODE_PCCH DESC = VCD function UE_DECODE_PCCH GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_ue_decode_pcch ID = VCD_FUNCTION_UE_DECODE_CCCH DESC = VCD function UE_DECODE_CCCH GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_ue_decode_ccch ID = VCD_FUNCTION_UE_DECODE_BCCH DESC = VCD function UE_DECODE_BCCH GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_ue_decode_bcch ID = VCD_FUNCTION_UE_SEND_SDU DESC = VCD function UE_SEND_SDU GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_ue_send_sdu ID = VCD_FUNCTION_UE_GET_SDU DESC = VCD function UE_GET_SDU GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_ue_get_sdu ID = VCD_FUNCTION_UE_GET_RACH DESC = VCD function UE_GET_RACH GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_ue_get_rach ID = VCD_FUNCTION_UE_PROCESS_RAR DESC = VCD function UE_PROCESS_RAR GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_ue_process_rar ID = VCD_FUNCTION_UE_SCHEDULER DESC = VCD function UE_SCHEDULER GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_ue_scheduler ID = VCD_FUNCTION_UE_GET_SR DESC = VCD function UE_GET_SR GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = macxface_ue_get_sr ID = VCD_FUNCTION_UE_SEND_MCH_SDU DESC = VCD function UE_SEND_MCH_SDU GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = ue_send_mch_sdu ID = VCD_FUNCTION_RLC_DATA_REQ DESC = VCD function RLC_DATA_REQ GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = rlc_data_req #ID = VCD_FUNCTION_RLC_DATA_IND # DESC = VCD function RLC_DATA_IND # GROUP = ALL:VCD:ENB:VCD_FUNCTION # FORMAT = int,value +# VCD_NAME = rlc_data_ind ID = VCD_FUNCTION_MAC_RLC_STATUS_IND DESC = VCD function MAC_RLC_STATUS_IND GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = mac_rlc_status_ind ID = VCD_FUNCTION_MAC_RLC_DATA_REQ DESC = VCD function MAC_RLC_DATA_REQ GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = mac_rlc_data_req ID = VCD_FUNCTION_MAC_RLC_DATA_IND DESC = VCD function MAC_RLC_DATA_IND GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = mac_rlc_data_ind ID = VCD_FUNCTION_RLC_UM_TRY_REASSEMBLY DESC = VCD function RLC_UM_TRY_REASSEMBLY GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = rlc_um_try_reassembly ID = VCD_FUNCTION_RLC_UM_CHECK_TIMER_DAR_TIME_OUT DESC = VCD function RLC_UM_CHECK_TIMER_DAR_TIME_OUT GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = rlc_um_check_timer_dar_time_out ID = VCD_FUNCTION_RLC_UM_RECEIVE_PROCESS_DAR DESC = VCD function RLC_UM_RECEIVE_PROCESS_DAR GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = rlc_um_receive_process_dar ID = VCD_FUNCTION_PDCP_RUN DESC = VCD function PDCP_RUN GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = pdcp_run ID = VCD_FUNCTION_PDCP_DATA_REQ DESC = VCD function PDCP_DATA_REQ GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = pdcp_data_req ID = VCD_FUNCTION_PDCP_DATA_IND DESC = VCD function PDCP_DATA_IND GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = pdcp_data_ind ID = VCD_FUNCTION_PDCP_APPLY_SECURITY DESC = VCD function PDCP_APPLY_SECURITY GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = pdcp_apply_security ID = VCD_FUNCTION_PDCP_VALIDATE_SECURITY DESC = VCD function PDCP_VALIDATE_SECURITY GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = pdcp_validate_security ID = VCD_FUNCTION_PDCP_FIFO_READ DESC = VCD function PDCP_FIFO_READ GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = pdcp_fifo_read ID = VCD_FUNCTION_PDCP_FIFO_READ_BUFFER DESC = VCD function PDCP_FIFO_READ_BUFFER GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = pdcp_fifo_read_buffer ID = VCD_FUNCTION_PDCP_FIFO_FLUSH DESC = VCD function PDCP_FIFO_FLUSH GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = pdcp_fifo_flush ID = VCD_FUNCTION_PDCP_FIFO_FLUSH_BUFFER DESC = VCD function PDCP_FIFO_FLUSH_BUFFER GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = pdcp_fifo_flush_buffer ID = VCD_FUNCTION_RRC_RX_TX DESC = VCD function RRC_RX_TX GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = rrc_rx_tx ID = VCD_FUNCTION_RRC_MAC_CONFIG DESC = VCD function RRC_MAC_CONFIG GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = rrc_mac_config_req ID = VCD_FUNCTION_RRC_UE_DECODE_SIB1 DESC = VCD function RRC_UE_DECODE_SIB1 GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = rrc_ue_decode_sib1 ID = VCD_FUNCTION_RRC_UE_DECODE_SI DESC = VCD function RRC_UE_DECODE_SI GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value + VCD_NAME = rrc_ue_decode_si ID = VCD_FUNCTION_GTPV1U_ENB_TASK DESC = VCD function GTPV1U_ENB_TASK GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = gtpv1u_enb_task ID = VCD_FUNCTION_GTPV1U_PROCESS_UDP_REQ DESC = VCD function GTPV1U_PROCESS_UDP_REQ GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = gtpv1u_process_udp_req ID = VCD_FUNCTION_GTPV1U_PROCESS_TUNNEL_DATA_REQ DESC = VCD function GTPV1U_PROCESS_TUNNEL_DATA_REQ GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = gtpv1u_process_tunnel_data_req ID = VCD_FUNCTION_UDP_ENB_TASK DESC = VCD function UDP_ENB_TASK GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = udp_enb_task ID = VCD_FUNCTION_EMU_TRANSPORT DESC = VCD function EMU_TRANSPORT GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = emu_transport ID = VCD_FUNCTION_LOG_RECORD DESC = VCD function LOG_RECORD GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = log_record ID = VCD_FUNCTION_ITTI_ENQUEUE_MESSAGE DESC = VCD function ITTI_ENQUEUE_MESSAGE GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = itti_enqueue_message ID = VCD_FUNCTION_ITTI_DUMP_ENQUEUE_MESSAGE DESC = VCD function ITTI_DUMP_ENQUEUE_MESSAGE GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = itti_dump_enqueue_message ID = VCD_FUNCTION_ITTI_DUMP_ENQUEUE_MESSAGE_MALLOC DESC = VCD function ITTI_DUMP_ENQUEUE_MESSAGE_MALLOC GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = itti_dump_enqueue_message_malloc ID = VCD_FUNCTION_ITTI_RELAY_THREAD DESC = VCD function ITTI_RELAY_THREAD GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = itti_relay_thread ID = VCD_FUNCTION_TEST DESC = VCD function TEST GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = test ID = VCD_FUNCTION_SEND_IF4 DESC = VCD function SEND_IF4 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = send_if4 ID = VCD_FUNCTION_RECV_IF4 DESC = VCD function RECV_IF4 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = recv_if4 ID = VCD_FUNCTION_SEND_IF5 DESC = VCD function SEND_IF5 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = send_if5 ID = VCD_FUNCTION_RECV_IF5 DESC = VCD function RECV_IF5 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = recv_if5 ID = VCD_FUNCTION_TRX_COMPR_IF DESC = VCD function TRX_COMPR_IF GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = compress_if ID = VCD_FUNCTION_TRX_DECOMPR_IF DESC = VCD function TRX_DECOMPR_IF GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = decompress_if ID = VCD_FUNCTION_NFAPI DESC = VCD function NFAPI GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = nfapi_subframe ID = VCD_FUNCTION_GENERATE_PCFICH DESC = VCD function GENERATE_PCFICH GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = generate_pcfich ID = VCD_FUNCTION_GENERATE_DCI0 DESC = VCD function GENERATE_DCI0 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = generate_dci0 ID = VCD_FUNCTION_GENERATE_DLSCH DESC = VCD function GENERATE_DLSCH GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = generate_dlsch ID = VCD_FUNCTION_GENERATE_PHICH DESC = VCD function GENERATE_PHICH GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = generate_phich ID = VCD_FUNCTION_PDCCH_SCRAMBLING DESC = VCD function PDCCH_SCRAMBLING GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = pdcch_scrambling ID = VCD_FUNCTION_PDCCH_MODULATION DESC = VCD function PDCCH_MODULATION GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = pdcch_modulation ID = VCD_FUNCTION_PDCCH_INTERLEAVING DESC = VCD function PDCCH_INTERLEAVING GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = pdcch_interleaving ID = VCD_FUNCTION_PDCCH_TX DESC = VCD function PDCCH_TX GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value + VCD_NAME = pdcch_tx diff --git a/common/utils/T/check_vcd.c b/common/utils/T/check_vcd.c new file mode 100644 index 0000000000..1460d7e20a --- /dev/null +++ b/common/utils/T/check_vcd.c @@ -0,0 +1,249 @@ +/* + * To disable the checks done by this program, see below at the beginning + * of the function 'main'. + */ + +#include +#include +#include + +#include "database.h" + +#define T_TRACER 1 +#include "T.h" + +/* VCD specific defines and includes + * If the codebase changes, it may need to be updated + */ +#define ENB_MODE +#define ENABLE_USE_CPU_EXECUTION_TIME +#include "../LOG/vcd_signal_dumper.c" + +void err(char *fmt, ...) __attribute__ ((format (printf, 1, 2))); +void err(char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + + printf("\x1b[31m"); + printf("error: "); + vprintf(fmt, ap); + printf("\n" +"\x1b[33m\n" +"You probably added a VCD trace (variable or function) but you did not\n" +"update T_messages.txt and/or T_defs.h in common/utils/T/\n" +"\n" +"Be sure to add the new trace to T_messages.txt, at the right place in the\n" +"file. Do not forget to define VCD_NAME with an identical value as found\n" +"in the array eurecomVariablesNames or eurecomFunctionsNames.\n" +"\n" +"Be sure to update VCD_NUM_FUNCTIONS, VCD_NUM_VARIABLES, VCD_FIRST_FUNCTION\n" +"and VCD_FIRST_VARIABLE in T_defs.h\n" +"\n" +"The same procedure has to be followed when you delete a VCD trace.\n" +"Delete it in T_messages.txt as well and update T_defs.h\n" +"\n" +"You can disable those VCD checks at development time.\n" +"To disable the VCD checks see the file common/utils/T/check_vcd.c\n" +"Do not push any modification that disables the VCD checks to the\n" +"main repository.\n"); + + printf("\x1b[m\n"); + + va_end(ap); + + exit(1); +} + +int main(void) +{ + /* to disable the checks done by this program, uncomment the following + * line, ie. remove the leading '//' + */ + //return 0; + + void *database = parse_database("T_messages.txt"); + int number_of_events; + int first_var = -1; + int last_var; + int first_fun = -1; + int last_fun; + char *prefix; + int prefix_len; + char *name; + char *vcd_name; + int i; + FILE *in; + char *l = NULL; + size_t lsize; + + if (database == NULL) err("something wrong with T_messages.txt"); + + /* check the value of VCD_NUM_FUNCTIONS */ + if (VCD_NUM_FUNCTIONS != sizeof(eurecomFunctionsNames) / sizeof(char *)) + err("VCD_NUM_FUNCTIONS (%d) must be equal to %zd", + VCD_NUM_FUNCTIONS, + sizeof(eurecomFunctionsNames) / sizeof(char *)); + + /* check the value of VCD_NUM_VARIABLES */ + if (VCD_NUM_VARIABLES != sizeof(eurecomVariablesNames) / sizeof(char *)) + err("VCD_NUM_VARIABLES (%d) must be equal to %zd", + VCD_NUM_VARIABLES, + sizeof(eurecomVariablesNames) / sizeof(char *)); + + number_of_events = number_of_ids(database); + if (number_of_events == 0) err("no event defined in T_messages.txt"); + + /* T_messages.txt ends with VCD VARIABLES followed by VCD FUNCTIONS + * followed by nothing. + * Let's check. + */ + + /* check VCD VARIABLES traces in T_messages.txt */ + prefix = "VCD_VARIABLE_"; + prefix_len = strlen(prefix); + + for (i = 0; i < number_of_events; i++) { + name = event_name_from_id(database, i); + if (strncmp(name, prefix, prefix_len)) continue; + first_var = i; + break; + } + if (first_var == -1) + err("no VCD_VARIABLE_ found in T_messages.txt"); + for (; i < number_of_events; i++) { + name = event_name_from_id(database, i); + if (strncmp(name, prefix, prefix_len)) break; + } + last_var = i-1; + + /* check VCD FUNCTIONS traces in T_messages.txt */ + if (i == number_of_events) + err("no VCD_FUNCTION_ found in T_messages.txt"); + + prefix = "VCD_FUNCTION_"; + prefix_len = strlen(prefix); + + first_fun = i; + + name = event_name_from_id(database, i); + if (strncmp(name, prefix, prefix_len)) + err("last VCD_VARIABLE_ not followed by a VCD_FUNCTION_ in T_messages.txt"); + + for (; i < number_of_events; i++) { + name = event_name_from_id(database, i); + if (strncmp(name, prefix, prefix_len)) break; + } + + if (i != number_of_events) + err("T_messages.txt does not end with a VCD_FUNCTION_ trace"); + + last_fun = i-1; + + if (first_var != (unsigned)VCD_FIRST_VARIABLE) + err("VCD_FIRST_VARIABLE is not correct in T_defs.h"); + if (first_fun != (unsigned)VCD_FIRST_FUNCTION) + err("VCD_FIRST_FUNCTION is not correct in T_defs.h"); + if (last_var-first_var+1 != VCD_NUM_VARIABLES) + err("VCD_NUM_VARIABLES is not correct in T_defs.h"); + if (last_fun-first_fun+1 != VCD_NUM_FUNCTIONS) + err("VCD_NUM_FUNCTIONS is not correct in T_defs.h"); + + /* check that VCD_NAME is identical to + * eurecomVariablesNames[x]/eurecomFunctionsNames[x] + */ + prefix = "VCD_VARIABLE_"; + prefix_len = strlen(prefix); + + for (i = 0; i < number_of_events; i++) { + name = event_name_from_id(database, i); + if (strncmp(name, prefix, prefix_len)) continue; + vcd_name = event_vcd_name_from_id(database, i); + if (vcd_name == NULL) + err("%s has no VCD_NAME in T_messages.txt", name); + if (strcmp(vcd_name, eurecomVariablesNames[i - first_var])) + err("%s has a wrong VCD_NAME in T_messages.txt", name); + } + + prefix = "VCD_FUNCTION_"; + prefix_len = strlen(prefix); + + for (i = 0; i < number_of_events; i++) { + name = event_name_from_id(database, i); + if (strncmp(name, prefix, prefix_len)) continue; + vcd_name = event_vcd_name_from_id(database, i); + if (vcd_name == NULL) + err("%s has no VCD_NAME in T_messages.txt", name); + if (strcmp(vcd_name, eurecomFunctionsNames[i - first_fun])) + err("%s has a wrong VCD_NAME in T_messages.txt", name); + } + + /* check IDs - these checks are difficult because we parse + * common/utils/LOG/vcd_signal_dumper.h which is expected to + * be formatted as is: + * - define vcd_signal_dump_variables then vcd_signal_dump_functions + * - one VCD_XXXX per line starting with two spaces + * followed by ',' or '=' with no space in between + * - no #ifdef / #if is taken into account + * - we require VCD_SIGNAL_DUMPER_VARIABLES_END and + * VCD_SIGNAL_DUMPER_FUNCTIONS_END at the end of each array, + * each on a line of its own with two spaces before and nothing after. + * + * If these checks fail, consider formatting + * common/utils/LOG/vcd_signal_dumper.h as expected here, if + * it makes sense of course. Otherwise, change the code below. + * + * In common/utils/LOG/vcd_signal_dumper.h a valid name is + * either VCD_SIGNAL_DUMPER_VARIABLES_ABC or + * VCD_SIGNAL_DUMPER_FUNCTIONS_XYZ + * and in T_messages.txt the corresponding name has to be + * VCD_VARIABLE_ABC or VCD_FUNCTION_XYZ + */ + i = first_var; + in = fopen("../LOG/vcd_signal_dumper.h", "r"); + if (in == NULL) err("could not open ../LOG/vcd_signal_dumper.h"); + while (1) { + char *x = " VCD_SIGNAL_DUMPER_VARIABLES_"; + ssize_t r; + free(l); + l = NULL; + lsize = 0; + r = getline(&l, &lsize, in); + if (r == -1) break; + if (!strcmp(l, " VCD_SIGNAL_DUMPER_VARIABLES_END\n")) break; + /* remove ',' or '=' if found */ + { char *s=l; while (*s) { if (*s==','||*s=='=') { *s=0; break; } s++; } } + if (strncmp(l, x, strlen(x))) continue; + if (!(i >= first_var && i <= last_var)) + err("T_messages.txt is not correct with respect to VCD VARIABLES"); + name = event_name_from_id(database, i); + if (strcmp(l+strlen(x), name+strlen("VCD_VARIABLE_"))) + err("%s is not correct in T_messages.txt", name); + i++; + } + if (i != last_var + 1) err("VCD VARIABLES wrong in T_messages.txt"); + while (1) { + char *x = " VCD_SIGNAL_DUMPER_FUNCTIONS_"; + ssize_t r; + free(l); + l = NULL; + lsize = 0; + r = getline(&l, &lsize, in); + if (r == -1) break; + if (!strcmp(l, " VCD_SIGNAL_DUMPER_FUNCTIONS_END\n")) break; + /* remove ',' or '=' if found */ + { char *s=l; while (*s) { if (*s==','||*s=='=') { *s=0; break; } s++; } } + if (strncmp(l, x, strlen(x))) continue; + if (!(i >= first_fun && i <= last_fun)) + err("T_messages.txt is not correct with respect to VCD FUNCTIONS"); + name = event_name_from_id(database, i); + if (strcmp(l+strlen(x), name+strlen("VCD_FUNCTION_"))) + err("%s is not correct in T_messages.txt", name); + i++; + } + fclose(in); + if (i != last_fun + 1) err("VCD FUNCTIONS wrong in T_messages.txt"); + + return 0; +} diff --git a/common/utils/T/genids.c b/common/utils/T/genids.c index 734c506368..8e5adbf587 100644 --- a/common/utils/T/genids.c +++ b/common/utils/T/genids.c @@ -14,21 +14,21 @@ int cmp(const void *p1, const void *p2) } /* return 1 if s was not already known, 0 if it was */ -int new_unique_id(char *s) +int new_unique_id(char *s, char *input_file) { if (unique_ids_size) if (bsearch(&s, unique_ids, unique_ids_size, sizeof(char *), cmp) != NULL) { - printf("FATAL: ID %s is not unique\n", s); + printf("error: ID %s is not unique in %s\n", s, input_file); return 0; } if (unique_ids_size == unique_ids_maxsize) { unique_ids_maxsize += 256; unique_ids = realloc(unique_ids, unique_ids_maxsize * sizeof(char *)); - if (unique_ids == NULL) { printf("out of memory\n"); abort(); } + if (unique_ids == NULL) { printf("erorr: out of memory\n"); abort(); } } unique_ids[unique_ids_size] = strdup(s); if (unique_ids[unique_ids_size] == NULL) - { printf("out of memory\n"); abort(); } + { printf("erorr: out of memory\n"); abort(); } unique_ids_size++; qsort(unique_ids, unique_ids_size, sizeof(char *), cmp); return 1; @@ -43,7 +43,8 @@ void putname(int c) if (bufname_size == bufname_maxsize) { bufname_maxsize += 256; bufname = realloc(bufname, bufname_maxsize); - if (bufname == NULL) { printf("memory allocation error\n"); exit(1); } + if (bufname == NULL) + { printf("erorr: memory allocation error\n"); exit(1); } } bufname[bufname_size] = c; bufname_size++; @@ -58,7 +59,8 @@ void putvalue(int c) if (bufvalue_size == bufvalue_maxsize) { bufvalue_maxsize += 256; bufvalue = realloc(bufvalue, bufvalue_maxsize); - if (bufvalue == NULL) { printf("memory allocation error\n"); exit(1); } + if (bufvalue == NULL) + { printf("error: memory allocation error\n"); exit(1); } } bufvalue[bufvalue_size] = c; bufvalue_size++; @@ -119,7 +121,7 @@ int main(int n, char **v) char *in_name; char *out_name; - if (n != 3) { printf("gimme \n"); exit(1); } + if (n != 3) { printf("error: gimme \n"); exit(1); } n = 0; @@ -134,14 +136,13 @@ int main(int n, char **v) while (1) { get_line(in, &name, &value); if (name == NULL) break; - printf("name '%s' value '%s'\n", name, value); if (isspace(value[strlen(value)-1])) { - printf("bad value '%s' (no space at the end please!)\n", value); + printf("error: bad value '%s' (no space at the end please!)\n", value); unlink(out_name); exit(1); } if (!strcmp(name, "ID")) { - if (!new_unique_id(value)) { unlink(out_name); exit(1); } + if (!new_unique_id(value, in_name)) { unlink(out_name); exit(1); } fprintf(out, "#define T_%s T_ID(%d)\n", value, n); n++; } diff --git a/common/utils/T/local_tracer.c b/common/utils/T/local_tracer.c index 6d0ecddd45..f8e92881a9 100644 --- a/common/utils/T/local_tracer.c +++ b/common/utils/T/local_tracer.c @@ -300,6 +300,20 @@ static void forward(void *_forwarder, char *buf, int size) if (f->tail != NULL) f->tail->next = new; f->tail = new; +#if BASIC_SIMULATOR + /* When runnng the basic simulator, the tracer may be too slow. + * Let's not take too much memory in the tracee and + * wait if there is too much data to send. 200MB is + * arbitrary. + */ + while (f->memusage > 200 * 1024 * 1024) { + if (pthread_cond_signal(&f->cond)) abort(); + if (pthread_mutex_unlock(&f->lock)) abort(); + usleep(1000); + if (pthread_mutex_lock(&f->lock)) abort(); + } +#endif /* BASIC_SIMULATOR */ + f->memusage += size+4; /* warn every 100MB */ if (f->memusage > f->last_warning_memusage && @@ -323,31 +337,11 @@ static void forward(void *_forwarder, char *buf, int size) static void wait_message(void) { - while (T_local_cache[T_busylist_head].busy == 0) usleep(1000); -} - -static void init_shm(void) -{ - int i; - int s = shm_open(T_SHM_FILENAME, O_RDWR | O_CREAT /*| O_SYNC*/, 0666); - if (s == -1) { perror(T_SHM_FILENAME); abort(); } - if (ftruncate(s, T_CACHE_SIZE * sizeof(T_cache_t))) - { perror(T_SHM_FILENAME); abort(); } - T_local_cache = mmap(NULL, T_CACHE_SIZE * sizeof(T_cache_t), - PROT_READ | PROT_WRITE, MAP_SHARED, s, 0); - if (T_local_cache == NULL) - { perror(T_SHM_FILENAME); abort(); } - close(s); - - /* let's garbage the memory to catch some potential problems - * (think multiprocessor sync issues, barriers, etc.) - */ - memset(T_local_cache, 0x55, T_CACHE_SIZE * sizeof(T_cache_t)); - for (i = 0; i < T_CACHE_SIZE; i++) T_local_cache[i].busy = 0; + while ((T_local_cache[T_busylist_head].busy & 0x02) == 0) usleep(1000); } void T_local_tracer_main(int remote_port, int wait_for_tracer, - int local_socket) + int local_socket, void *shm_array) { int s; int port = remote_port; @@ -355,9 +349,13 @@ void T_local_tracer_main(int remote_port, int wait_for_tracer, void *f; /* 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(); + } + + T_local_cache = shm_array; - init_shm(); s = local_socket; if (dont_wait) { diff --git a/common/utils/T/tracer/Makefile b/common/utils/T/tracer/Makefile index 1c4a77587c..3da4aa13a1 100644 --- a/common/utils/T/tracer/Makefile +++ b/common/utils/T/tracer/Makefile @@ -7,7 +7,7 @@ LIBS=-lm XLIBS=-lX11 -lpng -lXft all: record replay extract_config textlog enb ue vcd macpdu2wireshark \ - extract_input_subframe extract_output_subframe to_vcd extract + extract_input_subframe extract_output_subframe to_vcd extract multi record: utils.o record.o database.o config.o $(CC) $(CFLAGS) -o record $^ $(LIBS) @@ -57,19 +57,22 @@ macpdu2wireshark: macpdu2wireshark.o database.o utils.o handler.o event.o \ config.o $(CC) $(CFLAGS) -o $@ $^ $(LIBS) +multi: multi.o utils.o database.o config.o + $(CC) $(CFLAGS) -o multi $^ $(LIBS) + .PHONY: all gui/gui.a view/view.a logger/logger.a filter/filter.a gui/gui.a: - cd gui && make + cd gui && $(MAKE) view/view.a: - cd view && make + cd view && $(MAKE) logger/logger.a: - cd logger && make + cd logger && $(MAKE) filter/filter.a: - cd filter && make + cd filter && $(MAKE) %.o: %.c $(CC) $(CFLAGS) -c -o $@ $< @@ -77,9 +80,9 @@ filter/filter.a: clean: rm -f *.o core tracer_remote textlog enb ue vcd record replay rm -f extract_config macpdu2wireshark extract_input_subframe - rm -f extract_output_subframe to_vcd extract - cd gui && make clean - cd view && make clean - cd logger && make clean - cd filter && make clean - cd hacks && make clean + rm -f extract_output_subframe to_vcd extract multi + cd gui && $(MAKE) clean + cd view && $(MAKE) clean + cd logger && $(MAKE) clean + cd filter && $(MAKE) clean + cd hacks && $(MAKE) clean diff --git a/common/utils/T/tracer/config.c b/common/utils/T/tracer/config.c index f88966ed79..723902ec9c 100644 --- a/common/utils/T/tracer/config.c +++ b/common/utils/T/tracer/config.c @@ -60,3 +60,9 @@ void verify_config(void) abort(); } } + +void get_local_config(char **txt, int *len) +{ + *txt = local; + *len = local_size; +} diff --git a/common/utils/T/tracer/config.h b/common/utils/T/tracer/config.h index f90869eb66..07290c71a3 100644 --- a/common/utils/T/tracer/config.h +++ b/common/utils/T/tracer/config.h @@ -5,5 +5,6 @@ void clear_remote_config(void); void append_received_config_chunk(char *buf, int length); void load_config_file(char *filename); void verify_config(void); +void get_local_config(char **txt, int *len); #endif /* _CONFIG_H_ */ diff --git a/common/utils/T/tracer/database.c b/common/utils/T/tracer/database.c index f0908948e2..543ab66664 100644 --- a/common/utils/T/tracer/database.c +++ b/common/utils/T/tracer/database.c @@ -13,6 +13,7 @@ typedef struct { char **arg_type; char **arg_name; int asize; + char *vcd_name; int id; } id; @@ -138,6 +139,7 @@ id *add_id(database *r, char *idname, int i) r->i[r->isize].arg_type = NULL; r->i[r->isize].arg_name = NULL; r->i[r->isize].asize = 0; + r->i[r->isize].vcd_name = NULL; r->i[r->isize].id = i; r->isize++; qsort(r->i, r->isize, sizeof(id), id_cmp); @@ -224,6 +226,12 @@ void add_desc(id *i, char *desc) i->desc = strdup(desc); if (i->desc == NULL) abort(); } +void add_vcd_name(id *i, char *vcd_name) +{ + if (i == NULL) {printf("ERROR: VCD_NAME line before ID line\n");exit(1);} + i->vcd_name = strdup(vcd_name); if (i->vcd_name == NULL) abort(); +} + char *format_get_next_token(char **cur) { char *start; @@ -320,6 +328,7 @@ void *parse_database(char *filename) if (!strcmp(name, "GROUP")) add_groups(r, last_id, value); if (!strcmp(name, "DESC")) add_desc(last_id, value); if (!strcmp(name, "FORMAT")) add_format(last_id, value); + if (!strcmp(name, "VCD_NAME")) add_vcd_name(last_id, value); } fclose(in); @@ -424,6 +433,12 @@ char *event_name_from_id(void *_database, int id) return d->i[d->id_to_pos[id]].name; } +char *event_vcd_name_from_id(void *_database, int id) +{ + database *d = _database; + return d->i[d->id_to_pos[id]].vcd_name; +} + int event_id_from_name(void *_database, char *name) { database *d = _database; diff --git a/common/utils/T/tracer/database.h b/common/utils/T/tracer/database.h index c5cab05d9f..9fdbaed7c6 100644 --- a/common/utils/T/tracer/database.h +++ b/common/utils/T/tracer/database.h @@ -8,6 +8,7 @@ void list_ids(void *database); void list_groups(void *database); void on_off(void *d, char *item, int *a, int onoff); char *event_name_from_id(void *database, int id); +char *event_vcd_name_from_id(void *_database, int id); int event_id_from_name(void *database, char *name); int number_of_ids(void *database); int database_get_ids(void *database, char ***ids); diff --git a/common/utils/T/tracer/enb.c b/common/utils/T/tracer/enb.c index f607743d15..ea499a68f8 100644 --- a/common/utils/T/tracer/enb.c +++ b/common/utils/T/tracer/enb.c @@ -12,7 +12,6 @@ #include "gui/gui.h" #include "filter/filter.h" #include "utils.h" -#include "../T_defs.h" #include "event_selector.h" #include "openair_logo.h" #include "config.h" @@ -875,8 +874,11 @@ int main(int n, char **v) if (pthread_mutex_init(&enb_data.lock, NULL)) abort(); setup_event_selector(g, database, is_on, is_on_changed, &enb_data); + OBUF ebuf = { osize: 0, omaxsize: 0, obuf: NULL }; + restart: clear_remote_config(); + if (enb_data.socket != -1) close(enb_data.socket); enb_data.socket = connect_to(ip, port); /* send the first message - activate selected traces */ @@ -884,9 +886,8 @@ restart: /* read messages */ while (1) { - char v[T_BUFFER_MAX]; event e; - e = get_event(enb_data.socket, v, database); + e = get_event(enb_data.socket, &ebuf, database); if (e.type == -1) goto restart; if (pthread_mutex_lock(&enb_data.lock)) abort(); handle_event(h, e); diff --git a/common/utils/T/tracer/event.c b/common/utils/T/tracer/event.c index 0917c010b3..f5d12e472c 100644 --- a/common/utils/T/tracer/event.c +++ b/common/utils/T/tracer/event.c @@ -6,7 +6,7 @@ #include #include -event get_event(int socket, char *event_buffer, void *database) +event get_event(int socket, OBUF *event_buffer, void *database) { #ifdef T_SEND_TIME struct timespec t; @@ -29,17 +29,23 @@ again: #endif if (fullread(socket, &type, sizeof(int)) == -1) goto read_error; length -= sizeof(int); - if (fullread(socket, event_buffer, length) == -1) goto read_error; + if (event_buffer->omaxsize < length) { + event_buffer->omaxsize = (length + 65535) & ~65535; + event_buffer->obuf = realloc(event_buffer->obuf, event_buffer->omaxsize); + if (event_buffer->obuf == NULL) { printf("out of memory\n"); exit(1); } + } + if (fullread(socket, event_buffer->obuf, length) == -1) goto read_error; + event_buffer->osize = length; - if (type == -1) append_received_config_chunk(event_buffer, length); + if (type == -1) append_received_config_chunk(event_buffer->obuf, length); if (type == -2) verify_config(); if (type == -1 || type == -2) goto again; #ifdef T_SEND_TIME - return new_event(t, type, length, event_buffer, database); + return new_event(t, type, length, event_buffer->obuf, database); #else - return new_event(type, length, event_buffer, database); + return new_event(type, length, event_buffer->obuf, database); #endif read_error: diff --git a/common/utils/T/tracer/event.h b/common/utils/T/tracer/event.h index 6272baf1a8..0170ab6680 100644 --- a/common/utils/T/tracer/event.h +++ b/common/utils/T/tracer/event.h @@ -1,6 +1,7 @@ #ifndef _EVENT_H_ #define _EVENT_H_ +#include "utils.h" #include "../T_defs.h" #ifdef T_SEND_TIME #include @@ -37,7 +38,7 @@ typedef struct { int ecount; } event; -event get_event(int s, char *v, void *d); +event get_event(int s, OBUF *v, void *d); #ifdef T_SEND_TIME event new_event(struct timespec sending_time, int type, diff --git a/common/utils/T/tracer/extract.c b/common/utils/T/tracer/extract.c index b9fca959ed..2aec38831f 100644 --- a/common/utils/T/tracer/extract.c +++ b/common/utils/T/tracer/extract.c @@ -99,10 +99,11 @@ int main(int n, char **v) found = 0; + OBUF ebuf = { osize: 0, omaxsize: 0, obuf: NULL }; + while (1) { - char v[T_BUFFER_MAX]; event e; - e = get_event(fd, v, database); + e = get_event(fd, &ebuf, database); if (e.type == -1) break; if (e.type != input_event_id) continue; for (i = 0; i < filter_count; i++) diff --git a/common/utils/T/tracer/extract_config.c b/common/utils/T/tracer/extract_config.c index f35d765cec..a26c52aeda 100644 --- a/common/utils/T/tracer/extract_config.c +++ b/common/utils/T/tracer/extract_config.c @@ -1,6 +1,7 @@ #include #include #include +#include "utils.h" #include "../T_defs.h" void usage(void) @@ -35,14 +36,22 @@ int main(int n, char **v) in = fopen(input_filename, "r"); if (in == NULL) { perror(input_filename); abort(); } + OBUF ebuf = { osize: 0, omaxsize: 0, obuf: NULL }; + while (1) { int type; int32_t length; - char v[T_BUFFER_MAX]; + char *v; int vpos = 0; /* read event from file */ if (fread(&length, 4, 1, in) != 1) break; + if (ebuf.omaxsize < length) { + ebuf.omaxsize = (length + 65535) & ~65535; + ebuf.obuf = realloc(ebuf.obuf, ebuf.omaxsize); + if (ebuf.obuf == NULL) { printf("out of memory\n"); exit(1); } + } + v = ebuf.obuf; memcpy(v+vpos, &length, 4); vpos += 4; #ifdef T_SEND_TIME diff --git a/common/utils/T/tracer/extract_input_subframe.c b/common/utils/T/tracer/extract_input_subframe.c index 02c5f3d565..48e3ec07f9 100644 --- a/common/utils/T/tracer/extract_input_subframe.c +++ b/common/utils/T/tracer/extract_input_subframe.c @@ -104,11 +104,12 @@ err: fd = open(file, O_RDONLY); if (fd == -1) { perror(file); exit(1); } + OBUF ebuf = { osize: 0, omaxsize: 0, obuf: NULL }; + /* get wanted frame/subframe */ while (1) { - char v[T_BUFFER_MAX]; event e; - e = get_event(fd, v, database); + e = get_event(fd, &ebuf, database); if (e.type == -1) break; if (e.type != input_event_id) continue; if (verbose) @@ -116,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 b82ad0e766..d7f9ff95ed 100644 --- a/common/utils/T/tracer/extract_output_subframe.c +++ b/common/utils/T/tracer/extract_output_subframe.c @@ -100,10 +100,12 @@ err: int last_frame = -1; int last_subframe = -1; int subframe_written = 0; + + OBUF ebuf = { osize: 0, omaxsize: 0, obuf: NULL }; + while (1) { - char v[T_BUFFER_MAX]; event e; - e = get_event(fd, v, database); + e = get_event(fd, &ebuf, database); if (e.type == -1) break; if (e.type != output_event_id) continue; if (verbose) @@ -122,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/hacks/dump_nack_signal.c b/common/utils/T/tracer/hacks/dump_nack_signal.c index 1627bdd14e..bb8f1a9477 100644 --- a/common/utils/T/tracer/hacks/dump_nack_signal.c +++ b/common/utils/T/tracer/hacks/dump_nack_signal.c @@ -73,17 +73,22 @@ int main(int n, char **v) socket_send(socket, is_on, number_of_events * sizeof(int)) == -1) abort(); + OBUF ebuf = { osize: 0, omaxsize: 0, obuf: NULL }; + char dump[10][T_BUFFER_MAX]; event dump_ev[10]; FILE *z = fopen("/tmp/dd", "w"); if (z == NULL) abort(); while (1) { - char v[T_BUFFER_MAX]; + char *v; event e; - e = get_event(socket, v, database); + e = get_event(socket, &ebuf, database); + v = ebuf.obuf; if (e.type == -1) break; if (e.type == ev_input) { int sf = e.e[2].i; - memcpy(dump[sf], v, T_BUFFER_MAX); + if (ebuf.osize > T_BUFFER_MAX) + { printf("event size too big\n"); exit(1); } + memcpy(dump[sf], ebuf.obuf, ebuf.osize); dump_ev[sf] = e; printf("input %d/%d\n", e.e[1].i, sf); if (fwrite(dump_ev[sf].e[4].b, dump_ev[sf].e[4].bsize, 1, z) != 1) abort(); diff --git a/common/utils/T/tracer/hacks/time_meas.c b/common/utils/T/tracer/hacks/time_meas.c index 04d4fa5acf..6bd2950301 100644 --- a/common/utils/T/tracer/hacks/time_meas.c +++ b/common/utils/T/tracer/hacks/time_meas.c @@ -84,11 +84,12 @@ int main(int n, char **v) socket_send(socket, is_on, number_of_events * sizeof(int)) == -1) abort(); + OBUF ebuf = { osize: 0, omaxsize: 0, obuf: NULL }; + while (1) { - char v[T_BUFFER_MAX]; event e; int on_off; - e = get_event(socket, v, database); + e = get_event(socket, &ebuf, database); if (e.type == -1) break; if (e.type != ev_fun) { printf("unhandled event %d\n", e.type); continue; } 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/macpdu2wireshark.c b/common/utils/T/tracer/macpdu2wireshark.c index be0bbd3821..954f668aa4 100644 --- a/common/utils/T/tracer/macpdu2wireshark.c +++ b/common/utils/T/tracer/macpdu2wireshark.c @@ -246,11 +246,12 @@ int main(int n, char **v) new_thread(receiver, &d); + OBUF ebuf = { osize: 0, omaxsize: 0, obuf: NULL }; + /* read messages */ while (1) { - char v[T_BUFFER_MAX]; event e; - e = get_event(in, v, database); + e = get_event(in, &ebuf, database); if (e.type == -1) break; if (!(e.type == ul_id || e.type == dl_id)) continue; handle_event(h, e); diff --git a/common/utils/T/tracer/multi.c b/common/utils/T/tracer/multi.c new file mode 100644 index 0000000000..6a9de838c6 --- /dev/null +++ b/common/utils/T/tracer/multi.c @@ -0,0 +1,385 @@ +#include +#include +#include +#include +#include +#include +#include +#include "database.h" +#include "utils.h" +#include "../T.h" +#include "config.h" + +#define DEFAULT_LOCAL_PORT 2022 + +typedef struct { + int id; /* increases at each new tracer's connection */ + int s; /* socket */ + int *is_on; /* local vision of is_on for this tracer */ + int poll_id; /* -1: invalid, otherwise index in fds array */ +} ti_t; + +typedef struct { + ti_t *ti; /* data for tracers */ + int ti_size; + int ti_maxsize; +} multi_t; + +void set_is_on(int *is_on, int pos, int val) +{ + if (val) is_on[pos]++; else is_on[pos]--; + /* TODO: remove check? */ + if (is_on[pos] < 0) { printf("%s:%d:nonono\n",__FILE__,__LINE__); abort(); } +} + +int send_messages_txt(int s, char *T_messages_txt, int T_messages_txt_len) +{ + char buf[T_BUFFER_MAX]; + char *T_LOCAL_buf = buf; + int32_t T_LOCAL_size; + unsigned char *src; + int src_len; + + /* trace T_message.txt + * Send several messages -1 with content followed by message -2. + */ + src = (unsigned char *)T_messages_txt; + src_len = T_messages_txt_len; + while (src_len) { + int send_size = src_len; + if (send_size > T_PAYLOAD_MAXSIZE - sizeof(int)) + send_size = T_PAYLOAD_MAXSIZE - sizeof(int); + /* TODO: be careful, we use internal T stuff, to rewrite? */ + T_LOCAL_size = 0; + T_HEADER(T_ID(-1)); + T_PUT_buffer(1, ((T_buffer){addr:(src), length:(send_size)})); + if (socket_send(s, &T_LOCAL_size, 4) == -1) return -1; + if (socket_send(s, buf, T_LOCAL_size) == -1) return -1; + src += send_size; + src_len -= send_size; + } + T_LOCAL_size = 0; + T_HEADER(T_ID(-2)); + if (socket_send(s, &T_LOCAL_size, 4) == -1) return -1; + return socket_send(s, buf, T_LOCAL_size); +} + +void new_tracer(multi_t *m, int s, int is_on_size, char *t, int t_size, int id) +{ + if (send_messages_txt(s, t, t_size) == -1) { + printf("error sending T_messages.txt to new tracer %d => remove tracer\n", + id); + return; + } + if (m->ti_size == m->ti_maxsize) { + m->ti_maxsize += 64; + m->ti = realloc(m->ti, m->ti_maxsize * sizeof(ti_t)); + if (m->ti == NULL) abort(); + } + m->ti[m->ti_size].id = id; + m->ti[m->ti_size].s = s; + m->ti[m->ti_size].is_on = calloc(is_on_size, sizeof(int)); + if (m->ti[m->ti_size].is_on == NULL) abort(); + m->ti[m->ti_size].poll_id = -1; + m->ti_size++; +} + +void remove_tracer(multi_t *m, int t) +{ + free(m->ti[t].is_on); + shutdown(m->ti[t].s, SHUT_RDWR); + close(m->ti[t].s); + m->ti_size--; + memmove(&m->ti[t], &m->ti[t+1], (m->ti_size - t) * sizeof(ti_t)); +} + +int send_is_on(int socket, int number_of_events, int *is_on) +{ + int i; + char mt = 1; + if (socket_send(socket, &mt, 1) == -1 || + socket_send(socket, &number_of_events, sizeof(int)) == -1) return -1; + for (i = 0; i < number_of_events; i++) { + int v = is_on[i] ? 1 : 0; + if (socket_send(socket, &v, sizeof(int)) == -1) return -1; + } + return 0; +} + +int read_tracee(int s, OBUF *ebuf, int *_type, int32_t *_length) +{ + int type; + int32_t length; + char *v; + int vpos = 0; + + if (fullread(s, &length, 4) == -1) return -1; + if (ebuf->omaxsize < length) { + ebuf->omaxsize = (length + 65535) & ~65535; + ebuf->obuf = realloc(ebuf->obuf, ebuf->omaxsize); + if (ebuf->obuf == NULL) { printf("out of memory\n"); exit(1); } + } + v = ebuf->obuf; + memcpy(v+vpos, &length, 4); + vpos += 4; +#ifdef T_SEND_TIME + if (fullread(s,v+vpos,sizeof(struct timespec))==-1) return -1; + vpos += sizeof(struct timespec); + length -= sizeof(struct timespec); +#endif + if (fullread(s, &type, sizeof(int)) == -1) return -1; + memcpy(v+vpos, &type, sizeof(int)); + vpos += sizeof(int); + length -= sizeof(int); + if (fullread(s, v+vpos, length) == -1) return -1; + vpos += length; + + ebuf->osize = vpos; + + *_type = type; + *_length = length; + return 0; +} + +void forward_event(multi_t *m, int number_of_events, OBUF *ebuf, int type) +{ + int i; + + if (type < 0 || type >= number_of_events) + { printf("error: bad type of event to forward %d\n", type); abort(); } + + for (i = 0; i < m->ti_size; i++) { + if (!m->ti[i].is_on[type]) continue; + if (socket_send(m->ti[i].s, ebuf->obuf, ebuf->osize) == -1) + printf("warning: error forwarding event to tracer %d\n", m->ti[i].id); + } +} + +int connect_to_tracee(char *ip, int port, int number_of_events, int *is_on) +{ + int s; + + printf("connecting to %s:%d\n", ip, port); + + s = try_connect_to(ip, port); + if (s == -1) return -1; + + if (send_is_on(s, number_of_events, is_on) == -1) { + shutdown(s, SHUT_RDWR); + close(s); + return -1; + } + + return s; +} + +void usage(void) +{ + printf( +"options:\n" +" -d this option is mandatory\n" +" -ip connect to given IP address (default %s)\n" +" -p connect to given port (default %d)\n" +" -lp listen on local port (default %d)\n", + DEFAULT_REMOTE_IP, + DEFAULT_REMOTE_PORT, + DEFAULT_LOCAL_PORT + ); + exit(1); +} + +int main(int n, char **v) +{ + char *database_filename = NULL; + void *database; + char *ip = DEFAULT_REMOTE_IP; + int port = DEFAULT_REMOTE_PORT; + int local_port = DEFAULT_LOCAL_PORT; + int *is_on; + int number_of_events; + int i, j; + char *T_messages_txt; + int T_messages_txt_len; + int l; /* listen socket for tracers' connections */ + int s = -1; /* socket connected to tracee. -1 if not connected */ + multi_t m; + int is_on_changed; + int current_nfd; + struct pollfd *fds = NULL; + int next_id = 0; + + memset(&m, 0, sizeof(m)); + + /* write on a socket fails if the other end is closed and we get SIGPIPE */ + if (signal(SIGPIPE, SIG_IGN) == SIG_ERR) abort(); + + for (i = 1; i < n; i++) { + if (!strcmp(v[i], "-h") || !strcmp(v[i], "--help")) usage(); + if (!strcmp(v[i], "-d")) + { if (i > n-2) usage(); database_filename = v[++i]; continue; } + if (!strcmp(v[i], "-ip")) { if (i > n-2) usage(); ip = v[++i]; continue; } + if (!strcmp(v[i], "-p")) + { if (i > n-2) usage(); port = atoi(v[++i]); continue; } + if (!strcmp(v[i], "-lp")) + { if (i > n-2) usage(); local_port = atoi(v[++i]); continue; } + usage(); + } + + if (database_filename == NULL) { + printf("ERROR: provide a database file (-d)\n"); + exit(1); + } + + database = parse_database(database_filename); + + load_config_file(database_filename); + get_local_config(&T_messages_txt, &T_messages_txt_len); + + number_of_events = number_of_ids(database); + is_on = calloc(number_of_events, sizeof(int)); + if (is_on == NULL) abort(); + + /* create listener socket */ + l = create_listen_socket("0.0.0.0", local_port); + + OBUF ebuf = { osize: 0, omaxsize: 0, obuf: NULL }; + + current_nfd = 0; + + while (1) { + int nfd; + int timeout; + + if (s == -1) s = connect_to_tracee(ip, port, number_of_events, is_on); + + /* poll on s (if there), l, and all tracers' sockets */ + nfd = 1 + (s != -1) + m.ti_size; + if (nfd != current_nfd) { + current_nfd = nfd; + free(fds); + fds = calloc(nfd, sizeof(struct pollfd)); + if (fds == NULL) { perror("calloc"); exit(1); } + } + i = 0; + fds[i].fd = l; + fds[i].events = POLLIN; + i++; + if (s != -1) { + fds[i].fd = s; + fds[i].events = POLLIN; + i++; + } + for (j = 0; j < m.ti_size; j++) { + m.ti[j].poll_id = i; + fds[i].fd = m.ti[j].s; + fds[i].events = POLLIN; + i++; + } + if (s == -1) timeout = 1000; else timeout = -1; + if (poll(fds, nfd, timeout) == -1) { perror("poll"); exit(1); } + + if (fds[0].revents & ~POLLIN) { + printf("TODO: error on listen socket?\n"); + exit(1); + } + + /* new tracer connecting? */ + if (fds[0].revents & POLLIN) { + int t; + printf("tracer %d connecting\n", next_id); + t = socket_accept(l); + if (t == -1) perror("accept"); + else new_tracer(&m, t, number_of_events, + T_messages_txt, T_messages_txt_len, next_id); + next_id++; + } + + if (s != -1 && fds[1].revents & ~POLLIN) { + printf("TODO: error on tracee socket?\n"); + exit(1); + } + + /* data from tracee */ + if (s != -1 && fds[1].revents & POLLIN) { + int type; + int32_t length; + if (read_tracee(s, &ebuf, &type, &length) == -1) { + clear_remote_config(); + shutdown(s, SHUT_RDWR); + close(s); + s = -1; + } else { + if (type == -1) + append_received_config_chunk(ebuf.obuf+ebuf.osize-length, length); + else if (type == -2) verify_config(); + else forward_event(&m, number_of_events, &ebuf, type); + } + } + + /* status of each tracer */ + is_on_changed = 0; + for (j = 0; j < m.ti_size; j++) { + int l; + int s; + int *t_is_on; + if (m.ti[j].poll_id == -1) continue; + i = m.ti[j].poll_id; + s = m.ti[j].s; + t_is_on = m.ti[j].is_on; + if (fds[i].revents & (POLLHUP | POLLERR)) goto tracer_error; + /* error? */ + if (fds[i].revents & ~POLLIN) { + printf("TODO: error with tracer?\n"); + exit(1); + } + /* data in */ + if (fds[i].revents & POLLIN) { + char t; + int len; + int v; + if (fullread(s, &t, 1) != 1) goto tracer_error; + switch (t) { + case 0: + is_on_changed = 1; + if (fullread(s, &len, sizeof(int)) == -1) goto tracer_error; + for (l = 0; l < len; l++) { + if (fullread(s, &v, sizeof(int)) == -1) goto tracer_error; + if (v < 0 || v >= number_of_events) goto tracer_error; + t_is_on[v] = 1 - t_is_on[v]; + set_is_on(is_on, v, t_is_on[v]); + } + break; + case 1: + is_on_changed = 1; + if (fullread(s, &len, sizeof(int)) == -1) goto tracer_error; + if (len < 0 || len > number_of_events) goto tracer_error; + for (l = 0; l < len; l++) { + if (fullread(s, &v, sizeof(int)) == -1) goto tracer_error; + if (v < 0 || v > 1) goto tracer_error; + if (t_is_on[l] != v) set_is_on(is_on, l, v); + t_is_on[l] = v; + } + break; + case 2: break; + default: printf("error: unhandled message type %d\n", t); //abort(); + } + } + continue; +tracer_error: + printf("remove tracer %d\n", m.ti[j].id); + for (l = 0; l < number_of_events; l++) + if (m.ti[j].is_on[l]) { is_on_changed = 1; set_is_on(is_on, l, 0); } + remove_tracer(&m, j); + j--; + } + if (is_on_changed && s != -1) + if (send_is_on(s, number_of_events, is_on) == -1) { + clear_remote_config(); + shutdown(s, SHUT_RDWR); + close(s); + s = -1; + } + } + + return 0; +} 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/record.c b/common/utils/T/tracer/record.c index b1a1bc60de..a565884e52 100644 --- a/common/utils/T/tracer/record.c +++ b/common/utils/T/tracer/record.c @@ -123,14 +123,22 @@ int main(int n, char **v) if (signal(SIGINT, force_stop) == SIG_ERR) abort(); if (signal(SIGTSTP, force_stop) == SIG_ERR) abort(); + OBUF ebuf = { osize: 0, omaxsize: 0, obuf: NULL }; + /* read messages */ while (run) { int type; int32_t length; - char v[T_BUFFER_MAX]; + char *v; int vpos = 0; if (fullread(socket, &length, 4) == -1) goto read_error; + if (ebuf.omaxsize < length) { + ebuf.omaxsize = (length + 65535) & ~65535; + ebuf.obuf = realloc(ebuf.obuf, ebuf.omaxsize); + if (ebuf.obuf == NULL) { printf("out of memory\n"); exit(1); } + } + v = ebuf.obuf; memcpy(v+vpos, &length, 4); vpos += 4; #ifdef T_SEND_TIME diff --git a/common/utils/T/tracer/replay.c b/common/utils/T/tracer/replay.c index be7e8d60c6..c199a668d5 100644 --- a/common/utils/T/tracer/replay.c +++ b/common/utils/T/tracer/replay.c @@ -136,14 +136,22 @@ int main(int n, char **v) new_thread(get_message_thread, &socket); + OBUF ebuf = { osize: 0, omaxsize: 0, obuf: NULL }; + while (1) { int type; int32_t length; - char v[T_BUFFER_MAX]; + char *v; int vpos = 0; /* read event from file */ if (fread(&length, 4, 1, in) != 1) break; + if (ebuf.omaxsize < length) { + ebuf.omaxsize = (length + 65535) & ~65535; + ebuf.obuf = realloc(ebuf.obuf, ebuf.omaxsize); + if (ebuf.obuf == NULL) { printf("out of memory\n"); exit(1); } + } + v = ebuf.obuf; memcpy(v+vpos, &length, 4); vpos += 4; #ifdef T_SEND_TIME diff --git a/common/utils/T/tracer/textlog.c b/common/utils/T/tracer/textlog.c index 32bf1ed791..bb773b4215 100644 --- a/common/utils/T/tracer/textlog.c +++ b/common/utils/T/tracer/textlog.c @@ -10,7 +10,6 @@ #include "view/view.h" #include "gui/gui.h" #include "utils.h" -#include "../T_defs.h" #include "event_selector.h" #include "config.h" @@ -182,11 +181,12 @@ int main(int n, char **v) /* send the first message - activate selected traces */ is_on_changed(&textlog_data); + OBUF ebuf = { osize: 0, omaxsize: 0, obuf: NULL }; + /* read messages */ while (1) { - char v[T_BUFFER_MAX]; event e; - e = get_event(textlog_data.socket, v, database); + e = get_event(textlog_data.socket, &ebuf, database); if (e.type == -1) abort(); handle_event(h, e); } diff --git a/common/utils/T/tracer/to_vcd.c b/common/utils/T/tracer/to_vcd.c index 82cd3393d7..998649af01 100644 --- a/common/utils/T/tracer/to_vcd.c +++ b/common/utils/T/tracer/to_vcd.c @@ -12,7 +12,14 @@ #include "logger/logger.h" #include "view/view.h" +enum var_type { + DEFAULT, + VCD_FUNCTION, + VCD_VARIABLE +}; + typedef struct { + enum var_type type; char *event; char *arg; char *vcd_name; @@ -44,16 +51,39 @@ void vcd_write_header(vcd_vars *v, int n) "$version\n" " to_vcd\n" "$end\n" -"$timescale 1ns $end\n" +"$timescale 1ns $end\n") <= 0) abort(); + + if (fprintf(out, "$scope module logic $end\n") <= 0) abort(); + for (i = 0; i < n; i++) + if (v[i].type == DEFAULT) + if (fprintf(out, "$var wire %d %s %s $end\n", + v[i].boolean ? 1 : 64, + v[i].vcd_name, v[i].vcd_name) <= 0) abort(); + if (fprintf(out, +"$upscope $end\n") <= 0) abort(); + + if (fprintf(out, +"$scope module functions $end\n") <= 0) abort(); + for (i = 0; i < n; i++) + if (v[i].type == VCD_FUNCTION) + if (fprintf(out, "$var wire %d %s %s $end\n", + v[i].boolean ? 1 : 64, + v[i].vcd_name, v[i].vcd_name) <= 0) abort(); + if (fprintf(out, +"$upscope $end\n") <= 0) abort(); + if (fprintf(out, +"$scope module variables $end\n") <= 0) abort(); for (i = 0; i < n; i++) - if (fprintf(out, "$var wire %d %s %s $end\n", - v[i].boolean ? 1 : 64, - v[i].vcd_name, v[i].vcd_name) <= 0) abort(); + if (v[i].type == VCD_VARIABLE) + if (fprintf(out, "$var wire %d %s %s $end\n", + v[i].boolean ? 1 : 64, + v[i].vcd_name, v[i].vcd_name) <= 0) abort(); + if (fprintf(out, +"$upscope $end\n") <= 0) abort(); if (fprintf(out, -"$upscope $end\n" "$enddefinitions $end\n" "$dumpvars\n") <= 0) abort(); @@ -174,7 +204,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 +223,21 @@ 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, enum var_type t) +{ + if (nvars % 64 == 0) { + vars = realloc(vars, (nvars+64) * sizeof(vcd_vars)); + if (vars == NULL) abort(); + } + vars[nvars].type = t; + 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 +248,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 +268,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, DEFAULT); + 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, DEFAULT); + nvars++; continue; } + if (!strcmp(v[i], "-vcd")) { all_vcd = 1; continue; } usage(); } @@ -260,11 +310,42 @@ 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; + enum var_type type; + int prefix_length; + char *name = event_name_from_id(database, i); + char *vcd_name; + 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; + type = VCD_VARIABLE; + } else if (!strncmp(name, fun_prefix, strlen(fun_prefix))) { + prefix_length = strlen(fun_prefix); + is_boolean = 1; + type = VCD_FUNCTION; + } else + continue; + vcd_name = event_vcd_name_from_id(database, i); + if (vcd_name == NULL) { + vcd_name = name+prefix_length; + printf("WARNING: ID %s does not define VCD_NAME in the file %s, using %s\n", + name, database_filename, vcd_name); + } + vars = add_var(vars, nvars, + name, "value", vcd_name, is_boolean, type); + 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, @@ -287,11 +368,12 @@ int main(int n, char **v) if (signal(SIGINT, force_stop) == SIG_ERR) abort(); if (signal(SIGTSTP, force_stop) == SIG_ERR) abort(); + OBUF ebuf = { osize: 0, omaxsize: 0, obuf: NULL }; + /* read messages */ while (run) { - char v[T_BUFFER_MAX]; event e; - e = get_event(socket, v, database); + e = get_event(socket, &ebuf, database); if (e.type == -1) { printf("disconnected? let's quit gently\n"); break; } handle_event(h, e); } diff --git a/common/utils/T/tracer/ue.c b/common/utils/T/tracer/ue.c index 5709a4e79e..7b03210cd2 100644 --- a/common/utils/T/tracer/ue.c +++ b/common/utils/T/tracer/ue.c @@ -12,7 +12,6 @@ #include "gui/gui.h" #include "filter/filter.h" #include "utils.h" -#include "../T_defs.h" #include "event_selector.h" #include "openair_logo.h" #include "config.h" @@ -854,8 +853,11 @@ int main(int n, char **v) if (pthread_mutex_init(&ue_data.lock, NULL)) abort(); setup_event_selector(g, database, is_on, is_on_changed, &ue_data); + OBUF ebuf = { osize: 0, omaxsize: 0, obuf: NULL }; + restart: clear_remote_config(); + if (ue_data.socket != -1) close(ue_data.socket); ue_data.socket = connect_to(ip, port); /* send the first message - activate selected traces */ @@ -863,9 +865,8 @@ restart: /* read messages */ while (1) { - char v[T_BUFFER_MAX]; event e; - e = get_event(ue_data.socket, v, database); + e = get_event(ue_data.socket, &ebuf, database); if (e.type == -1) goto restart; if (pthread_mutex_lock(&ue_data.lock)) abort(); handle_event(h, e); diff --git a/common/utils/T/tracer/utils.c b/common/utils/T/tracer/utils.c index 5071546735..7f58b6f5aa 100644 --- a/common/utils/T/tracer/utils.c +++ b/common/utils/T/tracer/utils.c @@ -79,6 +79,36 @@ list *list_append(list *l, void *data) /* socket */ /****************************************************************************/ +int create_listen_socket(char *addr, int port) +{ + struct sockaddr_in a; + int s; + int v; + + s = socket(AF_INET, SOCK_STREAM, 0); + if (s == -1) { perror("socket"); exit(1); } + v = 1; + if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &v, sizeof(int))) + { perror("setsockopt"); exit(1); } + + a.sin_family = AF_INET; + a.sin_port = htons(port); + a.sin_addr.s_addr = inet_addr(addr); + + if (bind(s, (struct sockaddr *)&a, sizeof(a))) { perror("bind"); exit(1); } + if (listen(s, 5)) { perror("listen"); exit(1); } + + return s; +} + +int socket_accept(int s) +{ + struct sockaddr_in a; + socklen_t alen; + alen = sizeof(a); + return accept(s, (struct sockaddr *)&a, &alen); +} + int socket_send(int socket, void *buffer, int size) { char *x = buffer; @@ -94,26 +124,13 @@ int socket_send(int socket, void *buffer, int size) int get_connection(char *addr, int port) { - struct sockaddr_in a; - socklen_t alen; int s, t; printf("waiting for connection on %s:%d\n", addr, port); - s = socket(AF_INET, SOCK_STREAM, 0); - if (s == -1) { perror("socket"); exit(1); } - t = 1; - if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &t, sizeof(int))) - { perror("setsockopt"); exit(1); } + s = create_listen_socket(addr, port); - a.sin_family = AF_INET; - a.sin_port = htons(port); - a.sin_addr.s_addr = inet_addr(addr); - - if (bind(s, (struct sockaddr *)&a, sizeof(a))) { perror("bind"); exit(1); } - if (listen(s, 5)) { perror("bind"); exit(1); } - alen = sizeof(a); - t = accept(s, (struct sockaddr *)&a, &alen); + t = socket_accept(s); if (t == -1) { perror("accept"); exit(1); } close(s); @@ -137,14 +154,11 @@ int fullread(int fd, void *_buf, int count) return ret; } -int connect_to(char *addr, int port) +int try_connect_to(char *addr, int port) { int s; struct sockaddr_in a; - printf("connecting to %s:%d\n", addr, port); - -again: s = socket(AF_INET, SOCK_STREAM, 0); if (s == -1) { perror("socket"); exit(1); } @@ -155,6 +169,21 @@ again: if (connect(s, (struct sockaddr *)&a, sizeof(a)) == -1) { perror("connect"); close(s); + return -1; + } + + return s; +} + +int connect_to(char *addr, int port) +{ + int s; + + printf("connecting to %s:%d\n", addr, port); + +again: + s = try_connect_to(addr, port); + if (s == -1) { printf("trying again in 1s\n"); sleep(1); goto again; diff --git a/common/utils/T/tracer/utils.h b/common/utils/T/tracer/utils.h index 3be6cfe1a7..6784117fa6 100644 --- a/common/utils/T/tracer/utils.h +++ b/common/utils/T/tracer/utils.h @@ -24,11 +24,14 @@ list *list_append(list *l, void *data); #define DEFAULT_REMOTE_IP "127.0.0.1" #define DEFAULT_REMOTE_PORT 2021 +int create_listen_socket(char *addr, int port); +int socket_accept(int s); /* socket_send: return 0 if okay, -1 on error */ int socket_send(int socket, void *buffer, int size); int get_connection(char *addr, int port); /* fullread: return length read if okay (that is: 'count'), -1 on error */ int fullread(int fd, void *_buf, int count); +int try_connect_to(char *addr, int port); int connect_to(char *addr, int port); /****************************************************************************/ diff --git a/common/utils/T/tracer/vcd.c b/common/utils/T/tracer/vcd.c index 0ad2756c2a..d4faa5fd84 100644 --- a/common/utils/T/tracer/vcd.c +++ b/common/utils/T/tracer/vcd.c @@ -10,7 +10,6 @@ #include "view/view.h" #include "gui/gui.h" #include "utils.h" -#include "../T_defs.h" #include "event_selector.h" #include "config.h" @@ -188,11 +187,12 @@ int main(int n, char **v) /* send the first message - activate selected traces */ is_on_changed(&vcd_data); + OBUF ebuf = { osize: 0, omaxsize: 0, obuf: NULL }; + /* read messages */ while (1) { - char v[T_BUFFER_MAX]; event e; - e = get_event(vcd_data.socket, v, database); + e = get_event(vcd_data.socket, &ebuf, database); if (e.type == -1) abort(); handle_event(h, e); } 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..d088b59c04 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 ++; @@ -753,7 +745,7 @@ void itti_exit_task(void) #if defined(OAI_EMU) || defined(RTAI) if (task_id > TASK_UNKNOWN) { - VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLE_ITTI_RECV_MSG, + VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_ITTI_RECV_MSG, __sync_and_and_fetch (&itti_desc.vcd_receive_msg, ~(1L << task_id))); } #endif @@ -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_dump.h b/common/utils/itti/intertask_interface_dump.h deleted file mode 100644 index a34dcecbf6..0000000000 --- a/common/utils/itti/intertask_interface_dump.h +++ /dev/null @@ -1,34 +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 INTERTASK_INTERFACE_DUMP_H_ -#define INTERTASK_INTERFACE_DUMP_H_ - -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); - -int itti_dump_init(const char * const messages_definition_xml, const char * const dump_file_name); - -void itti_dump_exit(void); - -void itti_dump_thread_use_ring_buffer(void); - -#endif /* INTERTASK_INTERFACE_DUMP_H_ */ 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 9767ba3f67..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(EMU, x, ##args) -# define SIG_ERROR(x, args...) LOG_E(EMU, 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/d2d_emulator_setup.txt b/d2d_emulator_setup.txt new file mode 100644 index 0000000000..ef904066bc --- /dev/null +++ b/d2d_emulator_setup.txt @@ -0,0 +1,107 @@ +Scenario 1 : Off-network UE2UE link +SynchREF UE (UE1) + +UE1(eth0 - 10.10.10.1)--------UE2(eno1 - 10.10.10.2) + +Here's an example of /etc/network/interfaces configuration for UE1 +auto eth0 + iface eth0 inet static + address 10.10.10.1 + netmask 255.255.255.0 + gateway 10.10.10.1 + +Prepare the environment: + - git clone https://gitlab.eurecom.fr/matzakos/LTE-D2D.git #branch: master +This branch contains all the current development for DDPS + - UE MAC<-> UE MAC for Scenario 1 + - eNB MAC<->UE MAC (NFAPI Transport) + - RRC Extensions for “on-network” cases + +NFAPI configuration (required even for Scenario 1 target) + - git clone https://github.com/cisco/open-nFAPI.git + - cd open-nfapi + - patch -p1 --dry-run < $OPENAIR_HOME/open-nfapi.oai.patch +Validate that there are no errors + - patch -p1 < $OPENAIR_HOME/open-nfapi.oai.patch + +OAI build/execute + - export NFAPI_DIR=XXX (place where NFAPI was installed) + - cd cmake_targets + - ./build_oai --UE + (if necessary, use ./build_oai -I --UE to install required packages) + - cd lte_build_oai/build/ + - cp ../../../targets/bin/.ue* . + - cp ../../../targets/bin/.usim* . + - sudo insmod ../../../targets/bin/ue_ip.ko + +UE1: + - sudo ifconfig oip0 10.0.0.1 + - sudo iptables -A POSTROUTING -t mangle -o oip0 -d 224.0.0.3 -j MARK --set-mark 3 + - (if necessary) sudo route add default gw 10.10.10.1 eth0 +UE2: + - sudo ifconfig oip0 10.0.0.2 + - sudo iptables -A POSTROUTING -t mangle -o oip0 -d 224.0.0.3 -j MARK --set-mark 3 + - (if necessary) sudo route add default gw 10.10.10.1 eno1 + +UE1 and UE2: Get and build vencore_app from d2d-l3-stub (branch: l3_stub) + - gcc -I . vencore_app.c -o vencore_app -lpthread + +-------------------------------- +TEST ONE-TO-MANY +Run UE1 then UE2, for example: +UE1: sudo ./lte-softmodem-stub -U --emul-iface eth0 +UE2: sudo ./lte-softmodem-stub -U --emul-iface eno1 + +Test with Ping +- Sender - UE1: ping -I oip0 224.0.0.3 +- Receiver - UE2: using wireshark + +Test with Iperf +- Sender - UE1: iperf -c 224.0.0.3 -u -b 0.1M --bind 10.0.0.1 -t 100 +- Receiver - UE2: sudo ./mcreceive 224.0.0.3 5001 + +Filter the incomming packets according to GroupL2Id: receiver (one-to-many) can discard the packets if it doesn't belong to this group. +For the moment, both sender and receiver use the same set of Ids (hardcoded) + +UE1 (sender) + - sudo ./lte-softmodem-stub -U --emul-iface eth0 + - ./vencore_app #send the sourceL2Id, groupL2Id to OAI + - ping -I oip0 224.0.0.3 + UE2(receiver) + - sudo ./lte-softmodem-stub -U --emul-iface eno1 + #we can see the incomming packets from OAI log, however, cannot see from Wireshark -> they are discarded at MAC layer + - ./vencore_app #we can see the packets appearing in Wireshark + + -------------------------------------- +TEST PC5-S (UE1 -sender, UE2 - receiver) and PC5-U for ONE-TO-ONE scenario +Configure UE1/UE2 +UE1: + - sudo ifconfig oip0 10.0.0.1 + - sudo iptables -A POSTROUTING -t mangle -o oip0 -d 10.0.0.2 -j MARK --set-mark 3 + - sudo route add default gw 10.10.10.1 eth0 +UE2: + - sudo ifconfig oip0 10.0.0.2 + - sudo iptables -A POSTROUTING -t mangle -o oip0 -d 10.0.0.1 -j MARK --set-mark 3 + - sudo route add default gw 10.10.10.1 eno1 + +step 1: +- UE1: sudo ./lte-softmodem-stub -U --emul-iface eth0 +step 2: +- UE2: sudo ./lte-softmodem-stub -U --emul-iface eno1 +- UE2: ./vencore_app -r #listen to incomming message from PC5-S +step 3: +- UE1: ./vencore_app -s #send a message via PC5-S (e.g., DirectCommunicationRequest) + +Generate unicast traffic +UE1: ping -I oip0 10.0.0.2 + + + -------------------------------------- +TEST PC5-D +step 1: +- UE1: sudo ./lte-softmodem-stub -U --emul-iface eth0 +- UE1: ./vencore_app -d #send a PC5-Discovery-Announcement via PC5D +step 2: +- UE2: sudo ./lte-softmodem-stub -U --emul-iface eno1 +- UE2: ./vencore_app -d #send a PC5-Discovery-Announcement via PC5D + diff --git a/nfapi/oai_integration/nfapi_pnf.c b/nfapi/oai_integration/nfapi_pnf.c index cd8d5a89e1..e741692214 100644 --- a/nfapi/oai_integration/nfapi_pnf.c +++ b/nfapi/oai_integration/nfapi_pnf.c @@ -32,6 +32,7 @@ #include "nfapi.h" #include "nfapi_pnf.h" #include "common/ran_context.h" +#include "openair2/PHY_INTERFACE/phy_stub_UE.h" //#include "openair1/PHY/vars.h" extern RAN_CONTEXT_t RC; @@ -46,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" @@ -64,8 +65,10 @@ extern pthread_mutex_t nfapi_sync_mutex; extern int nfapi_sync_var; extern int sync_var; +char uecap_xer_in; extern void init_eNB_afterRU(void); +extern void init_UE_stub(int nb_inst,int,int); extern void handle_nfapi_dci_dl_pdu(PHY_VARS_eNB *eNB, int frame, int subframe, eNB_rxtx_proc_t *proc, nfapi_dl_config_request_pdu_t *dl_config_pdu); extern void handle_nfapi_ul_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, nfapi_ul_config_request_pdu_t *ul_config_pdu, uint16_t frame,uint8_t subframe,uint8_t srs_present); extern void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame, int subframe, eNB_rxtx_proc_t *proc, nfapi_dl_config_request_pdu_t *dl_config_pdu, uint8_t codeword_index, uint8_t *sdu); @@ -190,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); } @@ -511,8 +513,18 @@ int config_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfap pnf_info* pnf = (pnf_info*)(config->user_data); uint8_t num_tlv = 0; - struct PHY_VARS_eNB_s *eNB = RC.eNB[0][0]; - LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; + //struct PHY_VARS_eNB_s *eNB = RC.eNB[0][0]; + + // 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) { + struct PHY_VARS_eNB_s *eNB = RC.eNB[0][0]; + fp = &eNB->frame_parms; + } + else{ + fp = (LTE_DL_FRAME_PARMS*) malloc(sizeof(LTE_DL_FRAME_PARMS)); + } phy_info* phy_info = pnf->phys; @@ -670,6 +682,7 @@ int config_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfap num_tlv++; } + if(nfapi_mode!=3) { printf("[PNF] CONFIG_REQUEST[num_tlv:%d] TLVs processed:%d\n", req->num_tlv, num_tlv); printf("[PNF] Simulating PHY CONFIG - DJP\n"); @@ -681,6 +694,7 @@ int config_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfap phy_config_request(&phy_config); dump_frame_parms(fp); + } phy_info->remote_port = req->nfapi_config.p7_vnf_port.value; @@ -698,6 +712,8 @@ int config_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfap nfapi_resp.error_code = 0; // DJP - some value resp->error_code; nfapi_pnf_config_resp(config, &nfapi_resp); printf("[PNF] Sent NFAPI_CONFIG_RESPONSE phy_id:%d\n", phy_info->id); + if(nfapi_mode ==3) + free(fp); return 0; } @@ -842,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); @@ -1093,77 +1113,101 @@ int start_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfapi p7_config->tx_req = &pnf_phy_tx_req; p7_config->lbt_dl_config_req = &pnf_phy_lbt_dl_config_req; - memset(&dummy_dl_config_req, 0, sizeof(dummy_dl_config_req)); - dummy_dl_config_req.dl_config_request_body.tl.tag=NFAPI_DL_CONFIG_REQUEST_BODY_TAG; - dummy_dl_config_req.dl_config_request_body.number_pdcch_ofdm_symbols=1; - dummy_dl_config_req.dl_config_request_body.number_dci=0; - dummy_dl_config_req.dl_config_request_body.number_pdu=0; - dummy_dl_config_req.dl_config_request_body.number_pdsch_rnti=0; - dummy_dl_config_req.dl_config_request_body.transmission_power_pcfich=6000; - dummy_dl_config_req.dl_config_request_body.dl_config_pdu_list=0; + if (nfapi_mode==3) { + p7_config->dl_config_req = &memcpy_dl_config_req; + p7_config->ul_config_req = &memcpy_ul_config_req; + p7_config->hi_dci0_req = &memcpy_hi_dci0_req; + p7_config->tx_req = &memcpy_tx_req; + } + else { + p7_config->dl_config_req = &pnf_phy_dl_config_req; + p7_config->ul_config_req = &pnf_phy_ul_config_req; + p7_config->hi_dci0_req = &pnf_phy_hi_dci0_req; + p7_config->tx_req = &pnf_phy_tx_req; + } + p7_config->lbt_dl_config_req = &pnf_phy_lbt_dl_config_req; - memset(&dummy_tx_req, 0, sizeof(dummy_tx_req)); - dummy_tx_req.tx_request_body.number_of_pdus=0; - dummy_tx_req.tx_request_body.tl.tag=NFAPI_TX_REQUEST_BODY_TAG; + memset(&dummy_dl_config_req, 0, sizeof(dummy_dl_config_req)); + dummy_dl_config_req.dl_config_request_body.tl.tag=NFAPI_DL_CONFIG_REQUEST_BODY_TAG; + dummy_dl_config_req.dl_config_request_body.number_pdcch_ofdm_symbols=1; + dummy_dl_config_req.dl_config_request_body.number_dci=0; + dummy_dl_config_req.dl_config_request_body.number_pdu=0; + dummy_dl_config_req.dl_config_request_body.number_pdsch_rnti=0; + dummy_dl_config_req.dl_config_request_body.transmission_power_pcfich=6000; + dummy_dl_config_req.dl_config_request_body.dl_config_pdu_list=0; - dummy_subframe.dl_config_req = &dummy_dl_config_req; - dummy_subframe.tx_req = 0;//&dummy_tx_req; + memset(&dummy_tx_req, 0, sizeof(dummy_tx_req)); + dummy_tx_req.tx_request_body.number_of_pdus=0; + dummy_tx_req.tx_request_body.tl.tag=NFAPI_TX_REQUEST_BODY_TAG; - dummy_subframe.ul_config_req=0; - dummy_subframe.hi_dci0_req=0; - dummy_subframe.lbt_dl_config_req=0; + dummy_subframe.dl_config_req = &dummy_dl_config_req; + dummy_subframe.tx_req = 0;//&dummy_tx_req; - p7_config->dummy_subframe = dummy_subframe; + dummy_subframe.ul_config_req=0; + dummy_subframe.hi_dci0_req=0; + dummy_subframe.lbt_dl_config_req=0; - p7_config->vendor_ext = &pnf_phy_vendor_ext; + p7_config->dummy_subframe = dummy_subframe; - p7_config->allocate_p7_vendor_ext = &pnf_phy_allocate_p7_vendor_ext; - p7_config->deallocate_p7_vendor_ext = &pnf_phy_deallocate_p7_vendor_ext; + p7_config->vendor_ext = &pnf_phy_vendor_ext; - p7_config->codec_config.unpack_p7_vendor_extension = &pnf_phy_unpack_p7_vendor_extension; - p7_config->codec_config.pack_p7_vendor_extension = &pnf_phy_pack_p7_vendor_extension; - p7_config->codec_config.unpack_vendor_extension_tlv = &pnf_phy_unpack_vendor_extension_tlv; - p7_config->codec_config.pack_vendor_extension_tlv = &pnf_phy_pack_vendor_extention_tlv; + p7_config->allocate_p7_vendor_ext = &pnf_phy_allocate_p7_vendor_ext; + p7_config->deallocate_p7_vendor_ext = &pnf_phy_deallocate_p7_vendor_ext; - NFAPI_TRACE(NFAPI_TRACE_INFO, "[PNF] Creating P7 thread %s\n", __FUNCTION__); - pthread_t p7_thread; - pthread_create(&p7_thread, NULL, &pnf_p7_thread_start, p7_config); + p7_config->codec_config.unpack_p7_vendor_extension = &pnf_phy_unpack_p7_vendor_extension; + p7_config->codec_config.pack_p7_vendor_extension = &pnf_phy_pack_p7_vendor_extension; + p7_config->codec_config.unpack_vendor_extension_tlv = &pnf_phy_unpack_vendor_extension_tlv; + p7_config->codec_config.pack_vendor_extension_tlv = &pnf_phy_pack_vendor_extention_tlv; - //((pnf_phy_user_data_t*)(phy_info->fapi->user_data))->p7_config = p7_config; + NFAPI_TRACE(NFAPI_TRACE_INFO, "[PNF] Creating P7 thread %s\n", __FUNCTION__); + pthread_t p7_thread; + pthread_create(&p7_thread, NULL, &pnf_p7_thread_start, p7_config); - NFAPI_TRACE(NFAPI_TRACE_INFO, "[PNF] Calling l1_north_init_eNB() %s\n", __FUNCTION__); - l1_north_init_eNB(); + //((pnf_phy_user_data_t*)(phy_info->fapi->user_data))->p7_config = p7_config; - 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] Calling l1_north_init_eNB() %s\n", __FUNCTION__); + l1_north_init_eNB(); - // Need to wait for main thread to create RU structures - while(config_sync_var<0) { - usleep(5000000); - printf("[PNF] waiting for OAI to be configured (eNB/RU)\n"); - } - printf("[PNF] OAI eNB/RU configured\n"); + NFAPI_TRACE(NFAPI_TRACE_INFO, "[PNF] DJP - HACK - Set p7_config global ready for subframe ind%s\n", __FUNCTION__); + p7_config_g = p7_config; - printf("[PNF] About to call init_eNB_afterRU()\n"); - init_eNB_afterRU(); + // Need to wait for main thread to create RU structures + while(config_sync_var<0) + { + usleep(5000000); + printf("[PNF] waiting for OAI to be configured (eNB/RU)\n"); + } + printf("[PNF] OAI eNB/RU configured\n"); - // Signal to main thread that it can carry on - otherwise RU will startup too quickly and it is not initialised - pthread_mutex_lock(&nfapi_sync_mutex); - nfapi_sync_var=0; - pthread_cond_broadcast(&nfapi_sync_cond); - pthread_mutex_unlock(&nfapi_sync_mutex); + //printf("[PNF] About to call phy_init_RU() for RC.ru[0]:%p\n", RC.ru[0]); + //phy_init_RU(RC.ru[0]); - while(sync_var<0) { - usleep(5000000); - printf("[PNF] waiting for OAI to be started\n"); - } + printf("[PNF] About to call init_eNB_afterRU()\n"); - printf("[PNF] Sending PNF_START_RESP\n"); - nfapi_send_pnf_start_resp(config, p7_config->phy_id); + if (nfapi_mode != 3) { + init_eNB_afterRU(); + } - printf("[PNF] Sending first P7 subframe ind\n"); - nfapi_pnf_p7_subframe_ind(p7_config, p7_config->phy_id, 0); // DJP - SFN_SF set to zero - correct??? - printf("[PNF] Sent first P7 subframe ind\n"); + // Signal to main thread that it can carry on - otherwise RU will startup too quickly and it is not initialised + { + pthread_mutex_lock(&nfapi_sync_mutex); + nfapi_sync_var=0; + pthread_cond_broadcast(&nfapi_sync_cond); + pthread_mutex_unlock(&nfapi_sync_mutex); + } + + while(sync_var<0) + { + usleep(5000000); + printf("[PNF] waiting for OAI to be started\n"); + } + + printf("[PNF] Sending PNF_START_RESP\n"); + nfapi_send_pnf_start_resp(config, p7_config->phy_id); + + printf("[PNF] Sending first P7 subframe ind\n"); + nfapi_pnf_p7_subframe_ind(p7_config, p7_config->phy_id, 0); // DJP - SFN_SF set to zero - correct??? + printf("[PNF] Sent first P7 subframe ind\n"); return 0; } @@ -1467,7 +1511,9 @@ void configure_nfapi_pnf(char *vnf_ip_addr, int vnf_p5_port, char *pnf_ip_addr, printf("%s() PNF\n\n\n\n\n\n", __FUNCTION__); + if(nfapi_mode!=3) { nfapi_mode = 1; // PNF! + } nfapi_pnf_config_t* config = nfapi_pnf_config_create(); diff --git a/nfapi/oai_integration/nfapi_vnf.c b/nfapi/oai_integration/nfapi_vnf.c index d3df4edf25..ae7ed7acb6 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 cbf9ab47c9..51f66c3075 100644 --- a/nfapi/open-nFAPI/nfapi/public_inc/nfapi_interface.h +++ b/nfapi/open-nFAPI/nfapi/public_inc/nfapi_interface.h @@ -1339,7 +1339,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 @@ -1351,7 +1351,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; @@ -1375,7 +1375,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; @@ -1460,7 +1460,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; @@ -1626,7 +1626,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; @@ -1640,7 +1640,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; @@ -1673,7 +1673,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; @@ -2249,6 +2249,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 @@ -2392,7 +2393,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; @@ -2933,7 +2934,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 1304176752..cea259c35b 100644 --- a/nfapi/open-nFAPI/vnf/src/vnf_p7.c +++ b/nfapi/open-nFAPI/vnf/src/vnf_p7.c @@ -1247,9 +1247,14 @@ void vnf_handle_timing_info(void *pRecvMsg, int recvMsgLen, vnf_p7_t* vnf_p7) int16_t vnf_pnf_sfnsf_delta = NFAPI_SFNSF2DEC(vnf_p7->p7_connections[0].sfn_sf) - NFAPI_SFNSF2DEC(ind.last_sfn_sf); //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); - if (vnf_pnf_sfnsf_delta>1 || vnf_pnf_sfnsf_delta < -1) + + // 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!!! 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/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/defs_NB_IoT.h b/openair1/PHY/INIT/defs_NB_IoT.h index 8a83cbd038..b49936770f 100644 --- a/openair1/PHY/INIT/defs_NB_IoT.h +++ b/openair1/PHY/INIT/defs_NB_IoT.h @@ -33,7 +33,7 @@ //#include "TDD-Config.h" //#include "MBSFN-SubframeConfigList.h" //#include "MobilityControlInfo.h" -//#if defined(Rel10) || defined(Rel14) +//#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) //#include "SCellToAddMod-r10.h" //#endif 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 c226099da9..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 @@ -182,7 +182,7 @@ void phy_config_request(PHY_Config_t *phy_config) { fp->frame_type, RC.eNB[Mod_id][CC_id]->X_u); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) fp->prach_emtc_config_common.prach_Config_enabled=1; fp->prach_emtc_config_common.rootSequenceIndex = cfg->emtc_config.prach_catm_root_sequence_index.value; @@ -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; @@ -735,7 +729,7 @@ int phy_init_lte_eNB(PHY_VARS_eNB *eNB, LTE_eNB_PUSCH** const pusch_vars = eNB->pusch_vars; LTE_eNB_SRS* const srs_vars = eNB->srs_vars; LTE_eNB_PRACH* const prach_vars = &eNB->prach_vars; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) LTE_eNB_PRACH* const prach_vars_br = &eNB->prach_vars_br; #endif int i, UE_id; @@ -831,7 +825,7 @@ int phy_init_lte_eNB(PHY_VARS_eNB *eNB, prach_vars->rxsigF[0] = (int16_t**)malloc16_clear(64*sizeof(int16_t*)); // PRACH BR -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) prach_vars_br->prachF = (int16_t*)malloc16_clear( 1024*2*sizeof(int32_t) ); // assume maximum of 64 RX antennas for PRACH receiver @@ -899,7 +893,7 @@ void phy_free_lte_eNB(PHY_VARS_eNB *eNB) LTE_eNB_PUSCH** const pusch_vars = eNB->pusch_vars; LTE_eNB_SRS* const srs_vars = eNB->srs_vars; LTE_eNB_PRACH* const prach_vars = &eNB->prach_vars; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) LTE_eNB_PRACH* const prach_vars_br = &eNB->prach_vars_br; #endif int i, UE_id; @@ -932,7 +926,7 @@ void phy_free_lte_eNB(PHY_VARS_eNB *eNB) for (i = 0; i < 64; i++) free_and_zero(prach_vars->prach_ifft[0][i]); free_and_zero(prach_vars->prach_ifft[0]); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) for (int ce_level = 0; ce_level < 4; ce_level++) { for (i = 0; i < 64; i++) free_and_zero(prach_vars_br->prach_ifft[ce_level][i]); free_and_zero(prach_vars_br->prach_ifft[ce_level]); diff --git a/openair1/PHY/INIT/lte_init_ru.c b/openair1/PHY/INIT/lte_init_ru.c index 688e4d3fa8..69d2d54686 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 @@ -98,7 +98,7 @@ int phy_init_RU(RU_t *ru) { for (i=0; inb_rx; i++) { ru->prach_rxsigF[i] = (int16_t*)malloc16_clear( fp->ofdm_symbol_size*12*2*sizeof(int16_t) ); LOG_D(PHY,"[INIT] prach_vars->rxsigF[%d] = %p\n",i,ru->prach_rxsigF[i]); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) for (j=0;j<4;j++) { ru->prach_rxsigF_br[j][i] = (int16_t*)malloc16_clear( fp->ofdm_symbol_size*12*2*sizeof(int16_t) ); LOG_D(PHY,"[INIT] prach_vars_br->rxsigF[%d] = %p\n",i,ru->prach_rxsigF_br[j][i]); @@ -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; inb_rx; i++) { free_and_zero(ru->prach_rxsigF[i]); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) for (j = 0; j < 4; j++) free_and_zero(ru->prach_rxsigF_br[j][i]); #endif } diff --git a/openair1/PHY/INIT/lte_init_ue.c b/openair1/PHY/INIT/lte_init_ue.c index 46fce73314..62d768a50a 100644 --- a/openair1/PHY/INIT/lte_init_ue.c +++ b/openair1/PHY/INIT/lte_init_ue.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 #include "PHY/LTE_TRANSPORT/transport_common_proto.h" @@ -35,8 +35,9 @@ #include "PHY/LTE_REFSIG/lte_refsig.h" 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, @@ -54,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, @@ -178,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) { @@ -189,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); @@ -200,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) { @@ -323,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; @@ -341,7 +342,7 @@ void phy_config_meas_ue(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_index,uint8_t n } -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) void phy_config_dedicated_scell_ue(uint8_t Mod_id, uint8_t eNB_index, SCellToAddMod_r10_t *sCellToAddMod_r10, @@ -352,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 ) { @@ -362,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 ) { @@ -564,14 +565,17 @@ void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id, phy_vars_ue->decode_SIB = 0; phy_vars_ue->decode_MIB = 0; } - //phy_vars_ue->pdcch_vars[1][eNB_id]->crnti = phy_vars_ue->pdcch_vars[0][eNB_id]->crnti; - if(phy_vars_ue->pdcch_vars[0][eNB_id]->crnti == 0x1234) - phy_vars_ue->pdcch_vars[0][eNB_id]->crnti = phy_vars_ue->pdcch_vars[1][eNB_id]->crnti; - else - phy_vars_ue->pdcch_vars[1][eNB_id]->crnti = phy_vars_ue->pdcch_vars[0][eNB_id]->crnti; - LOG_I(PHY,"C-RNTI %x %x \n", phy_vars_ue->pdcch_vars[0][eNB_id]->crnti, - phy_vars_ue->pdcch_vars[1][eNB_id]->crnti); + if(nfapi_mode!=3){ + //phy_vars_ue->pdcch_vars[1][eNB_id]->crnti = phy_vars_ue->pdcch_vars[0][eNB_id]->crnti; + if(phy_vars_ue->pdcch_vars[0][eNB_id]->crnti == 0x1234) + phy_vars_ue->pdcch_vars[0][eNB_id]->crnti = phy_vars_ue->pdcch_vars[1][eNB_id]->crnti; + else + phy_vars_ue->pdcch_vars[1][eNB_id]->crnti = phy_vars_ue->pdcch_vars[0][eNB_id]->crnti; + + LOG_I(PHY,"C-RNTI %x %x \n", phy_vars_ue->pdcch_vars[0][eNB_id]->crnti, + phy_vars_ue->pdcch_vars[1][eNB_id]->crnti); + } } @@ -705,6 +709,7 @@ int init_lte_ue_signal(PHY_VARS_UE *ue, for (i=0; inb_antennas_rx; i++) { common_vars->rxdata[i] = (int32_t*) malloc16_clear( (fp->samples_per_tti*10+2048)*sizeof(int32_t) ); + LOG_I(PHY,"common_vars->rxdata[%d] %p\n",i,common_vars->rxdata[i]); common_vars->common_vars_rx_data_per_thread[0].rxdataF[i] = (int32_t*)malloc16_clear( sizeof(int32_t)*(fp->ofdm_symbol_size*14) ); common_vars->common_vars_rx_data_per_thread[1].rxdataF[i] = (int32_t*)malloc16_clear( sizeof(int32_t)*(fp->ofdm_symbol_size*14) ); } @@ -854,6 +859,9 @@ int init_lte_ue_signal(PHY_VARS_UE *ue, (*pdcch_vars_th)[th_id][eNB_id]->rho = (int32_t**)malloc16( fp->nb_antennas_rx*sizeof(int32_t*) ); (*pdcch_vars_th)[th_id][eNB_id]->rxdataF_ext = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); (*pdcch_vars_th)[th_id][eNB_id]->dl_ch_estimates_ext = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); + + (*pdcch_vars_th)[th_id][eNB_id]->dciFormat = 0; + (*pdcch_vars_th)[th_id][eNB_id]->agregationLevel = 0xFF; } for (i=0; inb_antennas_rx; i++) { 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 49aabc0d58..f79edcbe58 100644 --- a/openair1/PHY/INIT/phy_init.h +++ b/openair1/PHY/INIT/phy_init.h @@ -34,7 +34,7 @@ #include "PHICH-Config.h" #include "MBSFN-SubframeConfigList.h" #include "MobilityControlInfo.h" -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) #include "SCellToAddMod-r10.h" #endif /** @addtogroup _PHY_STRUCTURES_ @@ -351,7 +351,7 @@ void lte_param_init(PHY_VARS_eNB **eNBp, uint32_t perfect_ce); -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) void phy_config_dedicated_scell_ue(uint8_t Mod_id, uint8_t eNB_index, SCellToAddMod_r10_t *sCellToAddMod_r10, @@ -383,6 +383,8 @@ void nr_phy_config_request(NR_PHY_Config_t *gNB); void phy_free_nr_gNB(PHY_VARS_gNB *gNB); int l1_north_init_gNB(void); +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 7e2354090b..826a64313f 100644 --- a/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c +++ b/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c @@ -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) @@ -86,6 +86,11 @@ void lte_adjust_synch(LTE_DL_FRAME_PARMS *frame_parms, { diff = max_pos_fil - (frame_parms->nb_prefix_samples>>3); +#if BASIC_SIMULATOR + /* a hack without which the UE does not connect (to be fixed somehow) */ + diff = 0; +#endif + if ( abs(diff) < SYNCH_HYST ) ue->rx_offset = 0; else 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 587dbed6c5..ae33722c90 100644 --- a/openair1/PHY/LTE_ESTIMATION/lte_sync_time.c +++ b/openair1/PHY/LTE_ESTIMATION/lte_sync_time.c @@ -274,11 +274,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); } @@ -330,10 +330,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 @@ -464,19 +460,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 388ed6bf29..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,16 +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, - 1); + 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 @@ -273,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 2bf3ec5015..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" @@ -57,8 +57,8 @@ -static uint8_t d[3*(MAX_DCI_SIZE_BITS + 16) + 96]; -static uint8_t w[3*3*(MAX_DCI_SIZE_BITS+16)]; +//static uint8_t d[3*(MAX_DCI_SIZE_BITS + 16) + 96]; +//static uint8_t w[3*3*(MAX_DCI_SIZE_BITS+16)]; void dci_encoding(uint8_t *a, uint8_t A, @@ -70,6 +70,8 @@ void dci_encoding(uint8_t *a, uint8_t D = (A + 16); uint32_t RCC; + uint8_t d[3*(MAX_DCI_SIZE_BITS + 16) + 96]; + uint8_t w[3*3*(MAX_DCI_SIZE_BITS+16)]; #ifdef DEBUG_DCI_ENCODING int32_t i; @@ -119,7 +121,7 @@ uint8_t *generate_dci0(uint8_t *dci, (aggregation_level==2) || (aggregation_level==4) || (aggregation_level==8) -#ifdef Rel14 // Added for EPDCCH/MPDCCH +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) // Added for EPDCCH/MPDCCH || (aggregation_level==16) || (aggregation_level==24) || @@ -169,7 +171,7 @@ uint8_t *generate_dci0(uint8_t *dci, return(e+coded_bits); } -uint32_t Y; +//uint32_t Y; @@ -368,16 +370,12 @@ uint8_t generate_dci_top(uint8_t num_pdcch_symbols, if (dci_alloc[i].L == (uint8_t)L) { - #ifdef DEBUG_DCI_ENCODING - if (dci_alloc[i].rnti==0x1234) - LOG_D(PHY,"Generating DCI %d/%d (nCCE %d) of length %d, aggregation %d (%x), rnti %x\n",i,num_dci,dci_alloc[i].firstCCE,dci_alloc[i].dci_length,dci_alloc[i].L, + LOG_D(PHY,"Generating DCI %d/%d (nCCE %d) of length %d, aggregation %d (%x), rnti %x\n", + i,num_dci,dci_alloc[i].firstCCE,dci_alloc[i].dci_length,dci_alloc[i].L, *(unsigned int*)dci_alloc[i].dci_pdu, dci_alloc[i].rnti); - dump_dci(frame_parms,&dci_alloc[i]); - #endif if (dci_alloc[i].firstCCE>=0) { -//printf("generate DCI .%d rnti %d length %d\n", subframe, dci_alloc[i].rnti, dci_alloc[i].dci_length); e_ptr = generate_dci0(dci_alloc[i].dci_pdu, e+(72*dci_alloc[i].firstCCE), dci_alloc[i].dci_length, diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c index 550ba3b6b8..e11068796c 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 21a7018d60..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) { @@ -87,18 +60,32 @@ void dlsch_scrambling(LTE_DL_FRAME_PARMS *frame_parms, VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_SCRAMBLING, VCD_FUNCTION_IN); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) // Rule for accumulation of subframes for BL/CE UEs 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; @@ -110,8 +97,12 @@ void dlsch_scrambling(LTE_DL_FRAME_PARMS *frame_parms, // reset = 1; // x1 is set in lte_gold_generic if (mbsfn_flag == 0) { -#ifdef Rel14 +#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); @@ -124,13 +115,13 @@ void dlsch_scrambling(LTE_DL_FRAME_PARMS *frame_parms, } #ifdef DEBUG_SCRAMBLING -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) printf("scrambling: i0 %d rnti %x, q %d, Ns %d, Nid_cell %d, G %d x2 %x\n",dlsch->i0,dlsch->rnti,q,Ns,frame_parms->Nid_cell, G, x2); #else 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 bf13099004..fc82fd0137 100755 --- a/openair1/PHY/LTE_TRANSPORT/edci.c +++ b/openair1/PHY/LTE_TRANSPORT/edci.c @@ -40,15 +40,14 @@ #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 //#define DEBUG_DCI_DECODING 1 //#define DEBUG_PHY -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) void generate_edci_top(PHY_VARS_eNB *eNB, int frame, int subframe) { } diff --git a/openair1/PHY/LTE_TRANSPORT/if4_tools.c b/openair1/PHY/LTE_TRANSPORT/if4_tools.c index 7b6e282b06..51bd7010de 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}; @@ -47,7 +47,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) { int32_t **txdataF = ru->common.txdataF_BF; int32_t **rxdataF = ru->common.rxdataF; int16_t **prach_rxsigF = ru->prach_rxsigF; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) int16_t ***prach_rxsigF_br = ru->prach_rxsigF_br; #endif void *tx_buffer = ru->ifbuffer.tx[subframe&1]; @@ -221,7 +221,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) { int16_t *rxF; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (packet_type > IF4p5_PRACH) rxF = &prach_rxsigF_br[packet_type - IF4p5_PRACH - 1][0][0]; else @@ -262,7 +262,7 @@ void recv_IF4p5(RU_t *ru, int *frame, int *subframe, uint16_t *packet_type, uint int32_t **txdataF = ru->common.txdataF_BF; int32_t **rxdataF = ru->common.rxdataF; int16_t **prach_rxsigF = ru->prach_rxsigF; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) int16_t ***prach_rxsigF_br = ru->prach_rxsigF_br; #endif void *rx_buffer = ru->ifbuffer.rx; @@ -359,7 +359,7 @@ void recv_IF4p5(RU_t *ru, int *frame, int *subframe, uint16_t *packet_type, uint int16_t *rxF; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (*packet_type > IF4p5_PRACH) rxF = &prach_rxsigF_br[*packet_type - IF4p5_PRACH - 1][0][0]; else diff --git a/openair1/PHY/LTE_TRANSPORT/if5_tools.c b/openair1/PHY/LTE_TRANSPORT/if5_tools.c index 2b596e48a3..28f07edc6f 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 2e8a6e410c..cc466ce3e2 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 fb80d13b5e..1c75796607 100644 --- a/openair1/PHY/LTE_TRANSPORT/prach.c +++ b/openair1/PHY/LTE_TRANSPORT/prach.c @@ -35,15 +35,10 @@ //#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 - - - -#ifndef Rel14 +#if (RRC_VERSION < MAKE_VERSION(14, 0, 0)) #define rx_prach0 rx_prach #endif @@ -54,7 +49,7 @@ void rx_prach0(PHY_VARS_eNB *eNB, 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, uint8_t ce_level #endif @@ -70,10 +65,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 +83,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; @@ -104,12 +95,10 @@ void rx_prach0(PHY_VARS_eNB *eNB, int16_t prach_ifft_tmp[2048*2] __attribute__((aligned(32))); int32_t *prach_ifft=(int32_t*)NULL; int32_t **prach_ifftp=(int32_t **)NULL; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) int prach_ifft_cnt=0; #endif -#ifdef PRACH_DEBUG - int en0=0; -#endif + if (ru) { fp = ru->frame_parms; @@ -123,7 +112,7 @@ void rx_prach0(PHY_VARS_eNB *eNB, frame_type = fp->frame_type; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (br_flag == 1) { AssertFatal(fp->prach_emtc_config_common.prach_Config_enabled==1, "emtc prach_Config is not enabled\n"); @@ -158,64 +147,52 @@ void rx_prach0(PHY_VARS_eNB *eNB, uint16_t N_ZC = (prach_fmt <4)?839:139; if (eNB) { -#ifdef Rel14 +#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 { -#ifdef Rel14 +#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 } } @@ -226,31 +203,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 - eNB->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 } } @@ -332,9 +306,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) - dft12288(prach2+24576,rxsigF[aa]+24576); + dft12288(prach2+24576,rxsigF[aa]+24576,1); } break; @@ -397,10 +371,10 @@ void rx_prach0(PHY_VARS_eNB *eNB, if (prach_fmt == 4) { 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; @@ -410,19 +384,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],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); } } @@ -455,7 +429,7 @@ void rx_prach0(PHY_VARS_eNB *eNB, if ((eNB==NULL) && (ru!=NULL) && ru->function == NGFI_RRU_IF4p5) { /// **** send_IF4 of rxsigF to RAU **** /// -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (br_flag == 1) send_IF4p5(ru, ru->proc.frame_prach, ru->proc.subframe_prach, IF4p5_PRACH+1+ce_level); else @@ -465,10 +439,10 @@ void rx_prach0(PHY_VARS_eNB *eNB, return; } else if (eNB!=NULL) { -#ifdef PRACH_DEBUG +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 @@ -503,9 +477,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))); @@ -588,17 +563,18 @@ 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; if (new_dft == 1) { new_dft = 0; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (br_flag == 1) { Xu=(int16_t*)eNB->X_u_br[ce_level][preamble_offset-first_nonzero_root_idx]; prach_ifft = prach_ifftp[prach_ifft_cnt++]; @@ -613,12 +589,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 // check energy in nth time shift, for -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if ((br_flag==0) || (eNB->prach_vars_br.repetition_number[ce_level]== 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; @@ -696,31 +674,27 @@ 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); } -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) void rx_prach(PHY_VARS_eNB *eNB, RU_t *ru, @@ -762,6 +736,4 @@ void rx_prach(PHY_VARS_eNB *eNB, } } -#endif /* Rel14 */ - - +#endif /* #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) */ 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/pss.c b/openair1/PHY/LTE_TRANSPORT/pss.c index c02d08750b..33bd5cc7e8 100644 --- a/openair1/PHY/LTE_TRANSPORT/pss.c +++ b/openair1/PHY/LTE_TRANSPORT/pss.c @@ -75,6 +75,11 @@ int generate_pss(int32_t **txdataF, a = (frame_parms->nb_antenna_ports_eNB == 1) ? amp: (amp*ONE_OVER_SQRT2_Q15)>>15; //printf("[PSS] amp=%d, a=%d\n",amp,a); +#if BASIC_SIMULATOR + /* a hack to remove at some point (the UE doesn't synch with 100 RBs) */ + a = (frame_parms->nb_antenna_ports_eNB == 1) ? 4*amp: (amp*ONE_OVER_SQRT2_Q15)>>15; +#endif + Nsymb = (frame_parms->Ncp==NORMAL)?14:12; for (aa=0; aanb_antenna_ports_eNB; aa++) { diff --git a/openair1/PHY/LTE_TRANSPORT/pucch.c b/openair1/PHY/LTE_TRANSPORT/pucch.c index 39703eebfd..0e7ab9e9a2 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 @@ -204,7 +203,7 @@ uint16_t pucchfmt3_ChannelEstimation( int16_t SubCarrierDeMapData[NB_ANTENNAS_RX int32_t IP_CsData_allsfavg[NB_ANTENNAS_RX][14][4][2]; int32_t IP_allavg[D_NPUCCH_SF5]; //int16_t temp_ch[2]; - int16_t m[NUMBER_OF_UE_MAX], m_self, same_m_number; + int16_t m[NUMBER_OF_UE_MAX], m_self=0, same_m_number; uint16_t n3_pucch_sameRB[NUMBER_OF_UE_MAX]; int16_t n_oc0[NUMBER_OF_UE_MAX]; int16_t n_oc1[NUMBER_OF_UE_MAX]; @@ -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)) {// @@ -1366,7 +1352,7 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB, 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_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); + 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 45c7f54848..9e8e5ef8a1 100644 --- a/openair1/PHY/LTE_TRANSPORT/transport_common.h +++ b/openair1/PHY/LTE_TRANSPORT/transport_common.h @@ -104,7 +104,7 @@ typedef enum { -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) typedef enum { CEmodeA = 0, CEmodeB = 1 @@ -137,7 +137,7 @@ typedef enum { HARQ_SR_CQI } UCI_type_t; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) typedef enum { NOCE, CEMODEA, @@ -182,5 +182,100 @@ typedef struct { PRACH_TDD_PREAMBLE_MAP_elem map[6]; } PRACH_TDD_PREAMBLE_MAP; +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + +typedef struct { + uint16_t slss_id; + uint8_t *slmib; +} SLSS_t; + +typedef struct { + // SL Configuration + /// Number of SL resource blocks (1-100) + uint32_t N_SL_RB; + /// prb-start (0-99) + uint32_t prb_Start; + /// prb-End (0-99) + uint32_t prb_End; + /// SL-OffsetIndicator (0-10239) + uint32_t SL_OffsetIndicator; + /// PSCCH subframe bitmap, first 64-bits (up to 40 bits for Rel 12) + uint64_t bitmap1; + /// PSCCH subframe bitmap, 2nd 64-bits (up to 100 bits for Rel 14) + uint64_t bitmap2; + + // SCI parameters + /// npscch resource index + uint32_t n_pscch; + /// format of SCI (0,1) + uint32_t format; + /// SCI0 frequency hopping flag + uint32_t freq_hopping_flag; + /// SCI0 Resource Block Coding + uint32_t resource_block_coding; + /// SCI0 Time Resource Pattern for SLSCH + uint32_t time_resource_pattern; + /// SCI0 MCS for SLSCH + uint32_t mcs; + /// SCI0 Timing advance indication for SLSCH + uint32_t timing_advance_indication; + /// SCI0 Group Destination ID for SLSCH + uint32_t group_destination_id; + + // SLSCH Parameters + /// Number of Subbands (36.213 14.1.1.2) + uint32_t Nsb; + /// N_RB_HO (36.213 14.1.1.2) + uint32_t N_RB_HO; + /// n_ss_PSSCH (36.211 9.2.4) + uint32_t n_ss_PSSCH; + /// n_ssf_PSSCH + uint32_t n_ssf_PSSCH; + /// cinit (36.331 hoppingParameter-r12) + uint32_t cinit; + /// redundancy version + uint32_t rvidx; + /// n_prime_VRB (36.213 14.1.1.2.1) + uint32_t n_prime_VRB; + /// M_RB_PSSCH_RP (36.213 14.1.3 + uint32_t M_RB_PSSCH_RP; + /// n_prime_PRB (36.213 14.1.1.4 + uint32_t n_prime_PRB; + /// m_nprime_PRB_PSSCH (36.213 14.1.3) + uint32_t m_nprime_PRB_PSCCH; + /// payload length + int payload_length; + /// pointer to payload + uint8_t *payload; +} SLSCH_t; + +typedef struct { + /// payload length + int payload_length; + uint8_t payload[100]; +} SLDCH_t; + +#define TTI_SYNC 0 +#define SLSS 1 +#define SLDCH 2 +#define SLSCH 3 + +typedef struct UE_tport_header_s { + int packet_type; + uint16_t absSF; +} UE_tport_header_t; + +typedef struct UE_tport_s { + UE_tport_header_t header; + union { + SLSS_t slss; + SLDCH_t sldch; + SLSCH_t slsch; + }; + uint8_t payload[1500]; +} UE_tport_t; + +#endif + /**@}*/ #endif diff --git a/openair1/PHY/LTE_TRANSPORT/transport_common_proto.h b/openair1/PHY/LTE_TRANSPORT/transport_common_proto.h index ebf0d99c4e..0cc59360b6 100644 --- a/openair1/PHY/LTE_TRANSPORT/transport_common_proto.h +++ b/openair1/PHY/LTE_TRANSPORT/transport_common_proto.h @@ -291,4 +291,6 @@ uint32_t conv_1C_RIV(int32_t rballoc,uint32_t N_RB_DL); void conv_rballoc(uint8_t ra_header,uint32_t rb_alloc,uint32_t N_RB_DL,uint32_t *rb_alloc2); +int16_t estimate_ue_tx_power(uint32_t tbs, uint32_t nb_rb, uint8_t control_only, lte_prefix_type_t ncp, uint8_t use_srs); + #endif diff --git a/openair1/PHY/LTE_TRANSPORT/transport_eNB.h b/openair1/PHY/LTE_TRANSPORT/transport_eNB.h index 90714cf3a2..d274e09329 100644 --- a/openair1/PHY/LTE_TRANSPORT/transport_eNB.h +++ b/openair1/PHY/LTE_TRANSPORT/transport_eNB.h @@ -124,6 +124,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; @@ -131,13 +140,17 @@ typedef struct { /// TX buffers for UE-spec transmission (antenna ports 5 or 7..14, prior to precoding) int32_t *txdataF[8]; /// beamforming weights for UE-spec transmission (antenna ports 5 or 7..14), for each codeword, maximum 4 layers? - int32_t **ue_spec_bf_weights[4]; + int32_t **ue_spec_bf_weights[4]; /// dl channel estimates (estimated from ul channel estimates) int32_t **calib_dl_ch_estimates; /// 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. @@ -145,7 +158,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 @@ -168,13 +181,15 @@ typedef struct { int16_t sqrt_rho_a; /// amplitude of PDSCH (compared to RS) in symbols containing pilots int16_t sqrt_rho_b; -#ifdef Rel14 +#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; /// 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_eNB_DLSCH_t; @@ -205,7 +220,7 @@ typedef struct { /// is done after a new scheduling uint16_t previous_first_rb; /// Current Number of RBs - uint16_t nb_rb; + uint16_t nb_rb; /// Current Modulation order uint8_t Qm; /// Transport block size @@ -332,7 +347,7 @@ typedef struct { uint8_t tdd_bundling; /// Received Energy uint32_t stat; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// non BL/CE, CEmodeA, CEmodeB UE_type_t ue_type; /// Indicates the symbols that are left empty due to eMTC retuning. @@ -458,7 +473,5 @@ typedef struct { } LTE_eNB_ULSCH_t; - - /**@}*/ #endif 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 665d5cead0..50b09102d8 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c @@ -36,8 +36,24 @@ #include "transport_proto_ue.h" #include "PHY/sse_intrin.h" #include "T.h" +#include +#include +#include +#include +#include +#if RHEL_RELEASE_CODE >= 1796 +#include +#include +#else +#include +#include +#endif +#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 +119,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 +457,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 +564,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 +600,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 +619,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 +645,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 +673,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 +728,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 +802,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, @@ -1185,10 +1222,11 @@ int rx_pdsch(PHY_VARS_UE *ue, #if DISABLE_LOG_X printf("[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)); #else - LOG_I(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)); + 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 +1234,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 +1319,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 +1350,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 +1385,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 +1441,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 +1582,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 +1747,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 +2661,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 +2820,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 +3039,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 +3288,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 +3535,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 +3674,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 +3710,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 +3719,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 +3737,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 +3799,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 +3826,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 +3941,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 +6924,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; i -#include -#include "phy_procedures_sim_form.h" - -FD_phy_procedures_sim *create_form_phy_procedures_sim(void) +uint8_t get_pmi(uint8_t N_RB_DL, MIMO_mode_t mode, uint32_t pmi_alloc,uint16_t rb) { - FL_OBJECT *obj; - FD_phy_procedures_sim *fdui = (FD_phy_procedures_sim *) fl_calloc(1, sizeof(*fdui)); + /* + MIMO_mode_t mode = dlsch_harq->mimo_mode; + uint32_t pmi_alloc = dlsch_harq->pmi_alloc; + */ - fdui->phy_procedures_sim = fl_bgn_form(FL_NO_BOX, 640, 320); - obj = fl_add_box(FL_UP_BOX,0,0,640,320,""); - fdui->pusch_constellation = obj = fl_add_xyplot(FL_POINTS_XYPLOT,50,30,220,190,"PUSCH constellation"); - fl_set_object_color(obj,FL_BLACK,FL_YELLOW); - fdui->pdsch_constellation = obj = fl_add_xyplot(FL_POINTS_XYPLOT,370,30,220,190,"PDSCH constellation"); - fl_set_object_color(obj,FL_BLACK,FL_YELLOW); - fdui->ch00 = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,370,240,210,60,"CH00"); - fl_set_object_color(obj,FL_BLACK,FL_YELLOW); - fl_end_form(); + 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); - fdui->phy_procedures_sim->fdui = fdui; + break; - return fdui; + 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; + } } -/*---------------------------------------*/ - diff --git a/openair1/PHY/LTE_UE_TRANSPORT/initial_sync.c b/openair1/PHY/LTE_UE_TRANSPORT/initial_sync.c index 69976a1b3e..2fa57d0e14 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/initial_sync.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/initial_sync.c @@ -284,14 +284,14 @@ int initial_sync(PHY_VARS_UE *ue, runmode_t mode) init_frame_parms(frame_parms,1); /* - write_output("rxdata0.m","rxd0",ue->common_vars.rxdata[0],10*frame_parms->samples_per_tti,1,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 @@ -325,7 +325,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", @@ -372,7 +372,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); @@ -387,6 +387,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) @@ -415,7 +416,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", @@ -426,6 +427,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; @@ -452,7 +454,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); @@ -493,17 +495,6 @@ int initial_sync(PHY_VARS_UE *ue, runmode_t mode) #endif // send sync status to higher layers later when timing offset converge to target timing -#if OAISIM - if (ue->mac_enabled==1) { - LOG_I(PHY,"[UE%d] Sending synch status to higher layers\n",ue->Mod_id); - //mac_resynch(); - dl_phy_sync_success(ue->Mod_id,ue->proc.proc_rxtx[0].frame_rx,0,1);//ue->common_vars.eNb_id); - ue->UE_mode[0] = PRACH; - } - else { - ue->UE_mode[0] = PUSCH; - } -#endif generate_pcfich_reg_mapping(frame_parms); generate_phich_reg_mapping(frame_parms); 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..7d063e326e --- /dev/null +++ b/openair1/PHY/LTE_UE_TRANSPORT/linear_preprocessing_rec.c @@ -0,0 +1,374 @@ +/* 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 +#if RHEL_RELEASE_CODE >= 1796 +#include +#include +#else +#include +#include +#endif +//#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; +} 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/phich_ue.c b/openair1/PHY/LTE_UE_TRANSPORT/phich_ue.c index 669e0937c6..2e999a42bc 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/phich_ue.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/phich_ue.c @@ -369,7 +369,7 @@ void rx_phich(PHY_VARS_UE *ue, if (HI16>0) { //NACK if (ue->ulsch_Msg3_active[eNB_id] == 1) { - LOG_D(PHY,"[UE %d][PUSCH %d][RAPROC] Frame %d subframe %d Msg3 PHICH, received NAK (%d) nseq %d, ngroup %d\n", + LOG_I(PHY,"[UE %d][PUSCH %d][RAPROC] Frame %d subframe %d Msg3 PHICH, received NAK (%d) nseq %d, ngroup %d\n", ue->Mod_id,harq_pid, proc->frame_rx, subframe, @@ -379,7 +379,7 @@ void rx_phich(PHY_VARS_UE *ue, ulsch->f_pusch += delta_PUSCH_acc[ulsch->harq_processes[harq_pid]->TPC]; - LOG_D(PHY,"[PUSCH %d] AbsSubframe %d.%d: f_pusch (ACC) %d, adjusting by %d (TPC %d)\n", + LOG_I(PHY,"[PUSCH %d] AbsSubframe %d.%d: f_pusch (ACC) %d, adjusting by %d (TPC %d)\n", harq_pid,proc->frame_rx,subframe,ulsch->f_pusch, delta_PUSCH_acc[ulsch->harq_processes[harq_pid]->TPC], ulsch->harq_processes[harq_pid]->TPC); 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 a0e771e669..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, @@ -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; @@ -432,7 +434,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1 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; @@ -468,7 +470,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1 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"); @@ -486,19 +488,19 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1 AssertFatal(prach_fmt<4, "prach_fmt4 not fully implemented" ); -#if defined(EXMIMO) || defined(OAI_USRP) +#if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR) int j; int overflow = prach_start + prach_len - LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*ue->frame_parms.samples_per_tti; LOG_I( PHY, "prach_start=%d, overflow=%d\n", prach_start, overflow ); for (i=prach_start,j=0; iframe_parms.samples_per_tti*LTE_NUMBER_OF_SUBFRAMES_PER_FRAME,prach_start+prach_len); i++,j++) { - ((int16_t*)ue->common_vars.txdata[0])[2*i] = prach[2*j]<<4; - ((int16_t*)ue->common_vars.txdata[0])[2*i+1] = prach[2*j+1]<<4; + ((int16_t*)ue->common_vars.txdata[0])[2*i] = prach[2*j]; + ((int16_t*)ue->common_vars.txdata[0])[2*i+1] = prach[2*j+1]; } for (i=0; icommon_vars.txdata[0])[2*i] = prach[2*j]<<4; - ((int16_t*)ue->common_vars.txdata[0])[2*i+1] = prach[2*j+1]<<4; + ((int16_t*)ue->common_vars.txdata[0])[2*i] = prach[2*j]; + ((int16_t*)ue->common_vars.txdata[0])[2*i+1] = prach[2*j+1]; } #if defined(EXMIMO) // handle switch before 1st TX subframe, guarantee that the slot prior to transmission is switch on @@ -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 03df4e7f69..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" @@ -182,7 +182,7 @@ int generate_ue_ulsch_params_from_rar(PHY_VARS_UE *ue, // initialize power control based on PRACH power ulsch->f_pusch = delta_PUSCH_msg2[ulsch->harq_processes[harq_pid]->TPC] + get_deltaP_rampup(ue->Mod_id,ue->CC_id); - LOG_D(PHY,"[UE %d][PUSCH PC] Initializing f_pusch to %d dB, TPC %d (delta_PUSCH_msg2 %d dB), deltaP_rampup %d dB\n", + LOG_I(PHY,"[UE %d][PUSCH PC] Initializing f_pusch to %d dB, TPC %d (delta_PUSCH_msg2 %d dB), deltaP_rampup %d dB\n", ue->Mod_id,ulsch->f_pusch,ulsch->harq_processes[harq_pid]->TPC,delta_PUSCH_msg2[ulsch->harq_processes[harq_pid]->TPC], get_deltaP_rampup(ue->Mod_id,ue->CC_id)); diff --git a/openair1/PHY/LTE_UE_TRANSPORT/sldch.c b/openair1/PHY/LTE_UE_TRANSPORT/sldch.c new file mode 100644 index 0000000000..9c9d36c974 --- /dev/null +++ b/openair1/PHY/LTE_UE_TRANSPORT/sldch.c @@ -0,0 +1,66 @@ +/* + * 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 PHY/LTE_TRANSPORT/slss.c + * \brief Functions to Generate and Receive PSDCH + * \author R. Knopp + * \date 2017 + * \version 0.1 + * \company Eurecom + * \email: knopp@eurecom.fr + * \note + * \warning + */ +#ifndef __LTE_TRANSPORT_SLSS__C__ +#define __LTE_TRANSPORT_SLSS__C__ +#include "PHY/defs_UE.h" + +extern int multicast_link_write_sock(int groupP, char *dataP, uint32_t sizeP); + +void generate_sldch(PHY_VARS_UE *ue,SLDCH_t *sldch,int frame_tx,int subframe_tx) { + + UE_tport_t pdu; + size_t sldch_header_len = sizeof(UE_tport_header_t); + + pdu.header.packet_type = SLDCH; + pdu.header.absSF = (frame_tx*10)+subframe_tx; + + + AssertFatal((sldch->payload_length <=1500-sldch_header_len - sizeof(SLDCH_t) + sizeof(uint8_t*)), + "SLDCH payload length > %zd\n", + 1500-sldch_header_len - sizeof(SLDCH_t) + sizeof(uint8_t*)); + memcpy((void*)&pdu.sldch, + (void*)sldch, + sizeof(SLDCH_t)); + + LOG_I(PHY,"SLDCH configuration %zd bytes, TBS payload %d bytes => %zd bytes\n", + sizeof(SLDCH_t)-sizeof(uint8_t*), + sldch->payload_length, + sldch_header_len+sizeof(SLDCH_t)-sizeof(uint8_t*)+sldch->payload_length); + + multicast_link_write_sock(0, + (char *)&pdu, + sldch_header_len+sizeof(SLDCH_t)); + +} + + +#endif diff --git a/openair1/PHY/LTE_UE_TRANSPORT/slsch.c b/openair1/PHY/LTE_UE_TRANSPORT/slsch.c new file mode 100644 index 0000000000..e51e33626d --- /dev/null +++ b/openair1/PHY/LTE_UE_TRANSPORT/slsch.c @@ -0,0 +1,70 @@ +/* + * 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 PHY/LTE_TRANSPORT/slss.c + * \brief Functions to Generate and Receive PSSCH + * \author R. Knopp + * \date 2017 + * \version 0.1 + * \company Eurecom + * \email: knopp@eurecom.fr + * \note + * \warning + */ +#ifndef __LTE_TRANSPORT_SLSS__C__ +#define __LTE_TRANSPORT_SLSS__C__ +#include "PHY/defs_UE.h" + +extern int +multicast_link_write_sock(int groupP, char *dataP, uint32_t sizeP); + + +void generate_slsch(PHY_VARS_UE *ue,SLSCH_t *slsch,int frame_tx,int subframe_tx) { + + UE_tport_t pdu; + size_t slsch_header_len = sizeof(UE_tport_header_t); + + if (slsch->rvidx==0) { + pdu.header.packet_type = SLSCH; + pdu.header.absSF = (frame_tx*10)+subframe_tx; + + memcpy((void*)&pdu.slsch,(void*)slsch,sizeof(SLSCH_t)-sizeof(uint8_t*)); + + AssertFatal(slsch->payload_length <=1500-slsch_header_len - sizeof(SLSCH_t) + sizeof(uint8_t*), + "SLSCH payload length > %zd\n", + 1500-slsch_header_len - sizeof(SLSCH_t) + sizeof(uint8_t*)); + memcpy((void*)&pdu.payload[0], + (void*)slsch->payload, + slsch->payload_length); + + LOG_I(PHY,"SLSCH configuration %zd bytes, TBS payload %d bytes => %zd bytes\n", + sizeof(SLSCH_t)-sizeof(uint8_t*), + slsch->payload_length, + slsch_header_len+sizeof(SLSCH_t)-sizeof(uint8_t*)+slsch->payload_length); + + multicast_link_write_sock(0, + (char *)&pdu, + slsch_header_len+sizeof(SLSCH_t)-sizeof(uint8_t*)+slsch->payload_length); + + } +} + +#endif diff --git a/openair1/PHY/CODING/extern_3GPPinterleaver.h b/openair1/PHY/LTE_UE_TRANSPORT/slss.c similarity index 68% rename from openair1/PHY/CODING/extern_3GPPinterleaver.h rename to openair1/PHY/LTE_UE_TRANSPORT/slss.c index 007c1fecc3..18bc5a28de 100644 --- a/openair1/PHY/CODING/extern_3GPPinterleaver.h +++ b/openair1/PHY/LTE_UE_TRANSPORT/slss.c @@ -19,14 +19,25 @@ * 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[]; +/*! \file PHY/LTE_TRANSPORT/slss.c + * \brief Functions to Generate and Received Sidelink PSS,SSS and PSBCH + * \author R. Knopp + * \date 2017 + * \version 0.1 + * \company Eurecom + * \email: knopp@eurecom.fr + * \note + * \warning + */ +#ifndef __LTE_TRANSPORT_SLSS__C__ +#define __LTE_TRANSPORT_SLSS__C__ +#include "PHY/defs_UE.h" + + +void generate_slss(PHY_VARS_UE *ue,SLSS_t *slss,int frame_tx,int subframe_tx) { + + AssertFatal(1==0,"Should get here yet for UE %d\n",ue->Mod_id); + +} + #endif 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 dfba1f1c58..49b9e8b808 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); @@ -1096,6 +1141,29 @@ void pbch_unscrambling(LTE_DL_FRAME_PARMS *frame_parms, uint32_t length, uint8_t frame_mod4); +/*! \brief Top-level generation route for Sidelink BCH,PSS and SSS + \param ue pointer to UE descriptor + \param slss pointer to SLSS configuration and payload + \param frame_tx Frame number + \param subframe_tx subframe number +*/ +void generate_slss(PHY_VARS_UE *ue,SLSS_t *slss,int frame_tx,int subframe_tx); + +/*! \brief Top-level generation route for Sidelink Discovery Channel + \param ue pointer to UE descriptor + \param sldch pointer to SLDCH configuration and payload + \param frame_tx Frame number + \param subframe_tx subframe number +*/ +void generate_sldch(PHY_VARS_UE *ue,SLDCH_t *sldch,int frame_tx,int subframe_tx); + +/*! \brief Top-level generation route for Sidelink Shared Channel + \param ue pointer to UE descriptor + \param slsch pointer to SLSCH configuration and payload + \param frame_tx Frame number + \param subframe_tx subframe number +*/ +void generate_slsch(PHY_VARS_UE *ue,SLSCH_t *slss,int frame_tx,int subframe_tx); void generate_64qam_table(void); void generate_16qam_table(void); @@ -1649,14 +1717,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 49f0ba19d9..f8b058935c 100644 --- a/openair1/PHY/MODULATION/ofdm_mod.c +++ b/openair1/PHY/MODULATION/ofdm_mod.c @@ -32,8 +32,8 @@ This section deals with basic functions for OFDM Modulation. #include "PHY/defs_eNB.h" #include "PHY/defs_gNB.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/lte_dfts.c b/openair1/PHY/TOOLS/lte_dfts.c index 6510461dfe..0c6bab6557 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 "../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,73 +5459,10 @@ void dft1536(int16_t *input, int16_t *output, int scale) } -#include "twiddle3072.h" - +int16_t twa3072[2048] __attribute__((aligned(32))); +int16_t twb3072[2048] __attribute__((aligned(32))); // 1024 x 3 -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=1; i<1024; 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,3072,1,1); - // write_output("out0.m","o0",tmpo[0],1024,1,1); - // write_output("out1.m","o1",tmpo[1],1024,1,1); - // write_output("out2.m","o2",tmpo[2],1024,1,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(); -} - -void dft3072(int16_t *input, int16_t *output, int scale) +void dft3072(int16_t *input, int16_t *output,int scale) { int i,i2,j; uint32_t tmp[3][1024] __attribute__((aligned(32))); @@ -5607,20 +5480,9 @@ void dft3072(int16_t *input, int16_t *output, int scale) dft1024((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),1); dft1024((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1); - /* - for (i=1; i<1024; i++) { - tmpo[0][i] = tmpo[0][i<<1]; - tmpo[1][i] = tmpo[1][i<<1]; - tmpo[2][i] = tmpo[2][i<<1]; - }*/ - - // write_output("out0.m","o0",tmpo[0],1024,1,1); - // write_output("out1.m","o1",tmpo[1],1024,1,1); - // write_output("out2.m","o2",tmpo[2],1024,1,1); - - for (i=0,i2=0; i<2048; i+=8,i2+=4) { + 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*)(output+i),(simd_q15_t*)(output+2048+i),(simd_q15_t*)(output+4096+i), (simd_q15_t*)(twa3072+i),(simd_q15_t*)(twb3072+i)); } @@ -5650,9 +5512,61 @@ void dft3072(int16_t *input, int16_t *output, int scale) _m_empty(); } -#include "twiddle6144.h" +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); -void idft6144(int16_t *input, int16_t *output, int scale) + 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(); +} + + +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))); @@ -5670,18 +5584,6 @@ void idft6144(int16_t *input, int16_t *output, int scale) 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), @@ -5710,14 +5612,13 @@ void idft6144(int16_t *input, int16_t *output, int scale) } } - // write_output("out.m","out",output,6144,1,1); _mm_empty(); _m_empty(); } -void dft6144(int16_t *input, int16_t *output, int scale) +void dft6144(int16_t *input, int16_t *output,int scale) { int i,i2,j; uint32_t tmp[3][2048] __attribute__((aligned(32))); @@ -5742,9 +5643,9 @@ void dft6144(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<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), @@ -5772,20 +5673,22 @@ void dft6144(int16_t *input, int16_t *output, int scale) 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++]; @@ -5793,9 +5696,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]; @@ -5803,25 +5706,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++]; @@ -5830,34 +5756,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++]; @@ -5865,25 +5809,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]),1); - dft6144((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),1); - dft6144((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1); + 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++]; @@ -5891,27 +5857,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]),1); - idft6144((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),1); - idft6144((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1); + 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++]; @@ -5929,26 +5919,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++]; @@ -5961,10 +5974,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) { @@ -5972,11 +5985,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) @@ -6351,23 +6384,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) { @@ -6462,31 +6479,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) { @@ -6608,44 +6602,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) { @@ -6804,54 +6763,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) { @@ -7033,42 +6948,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) { @@ -7112,54 +6992,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) { @@ -7205,84 +7038,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; @@ -7329,71 +7089,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; @@ -7401,7 +7099,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]; @@ -7434,107 +7131,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; @@ -7581,127 +7182,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) { @@ -7752,152 +7234,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) { @@ -7954,151 +7293,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) { @@ -8149,188 +7345,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) { @@ -8387,211 +7404,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) { @@ -8642,249 +7456,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) { @@ -8947,246 +7522,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 { @@ -9236,271 +7573,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 { @@ -9550,329 +7624,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 { @@ -9928,366 +7682,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 { @@ -10341,402 +7738,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 { @@ -10792,392 +7796,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 { @@ -11227,416 +7848,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 { @@ -11686,320 +7899,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 { @@ -12043,464 +7944,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 { @@ -12551,583 +7996,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 { @@ -13183,606 +8055,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 { @@ -13832,630 +8166,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 { @@ -14506,762 +8218,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 { @@ -15317,678 +8277,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 { @@ -16038,750 +8329,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 { @@ -16831,906 +8380,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 { @@ -17786,909 +8438,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) { @@ -18744,11 +8496,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) { @@ -18756,12 +8832,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; @@ -18928,155 +9006,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; @@ -19092,7 +9022,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) { @@ -19158,12 +9088,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++) @@ -19206,8 +9136,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++) @@ -19248,8 +9178,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++) { @@ -19273,8 +9203,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++) @@ -19308,8 +9238,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,1536*sizeof(int32_t)); @@ -19360,8 +9290,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); // NR 80Mhz, 217 PRB, 3/4 sampling memset((void*)x, 0, 3072*sizeof(int32_t)); @@ -19413,8 +9343,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); // NR 160Mhz, 434 PRB, 3/4 sampling memset((void*)x, 0, 6144*sizeof(int32_t)); @@ -19450,7 +9380,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 @@ -19463,9 +9393,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_L1_NB_IoT.h b/openair1/PHY/defs_L1_NB_IoT.h index 6eb4ce0e95..bb08d5122d 100644 --- a/openair1/PHY/defs_L1_NB_IoT.h +++ b/openair1/PHY/defs_L1_NB_IoT.h @@ -341,8 +341,6 @@ typedef struct eNB_proc_NB_IoT_t_s { int instance_cnt_asynch_rxtx; /// pthread structure for FH processing thread pthread_t pthread_FH; - /// pthread structure for eNB single processing thread - pthread_t pthread_single; /// pthread structure for asychronous RX/TX processing thread pthread_t pthread_asynch_rxtx; /// flag to indicate first RX acquisition @@ -427,7 +425,7 @@ typedef struct eNB_proc_NB_IoT_t_s { int RU_mask; /// mask for RUs serving nbiot (PRACH) int RU_mask_prach; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// mask for RUs serving eNB (PRACH) int RU_mask_prach_br; #endif diff --git a/openair1/PHY/defs_RU.h b/openair1/PHY/defs_RU.h index fb91d00e55..3055e1733e 100644 --- a/openair1/PHY/defs_RU.h +++ b/openair1/PHY/defs_RU.h @@ -127,7 +127,7 @@ typedef struct RU_proc_t_s { int subframe_tx; /// subframe to act upon for reception of prach int subframe_prach; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// subframe to act upon for reception of prach BL/CE UEs int subframe_prach_br; #endif @@ -139,7 +139,7 @@ typedef struct RU_proc_t_s { int frame_tx_unwrap; /// frame to act upon for reception of prach int frame_prach; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// frame to act upon for reception of prach int frame_prach_br; #endif @@ -151,7 +151,7 @@ typedef struct RU_proc_t_s { int instance_cnt_FH1; /// \internal This variable is protected by \ref mutex_prach. int instance_cnt_prach; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// \internal This variable is protected by \ref mutex_prach. int instance_cnt_prach_br; #endif @@ -174,7 +174,7 @@ typedef struct RU_proc_t_s { pthread_t pthread_FH1; /// pthread structure for RU prach processing thread pthread_t pthread_prach; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// pthread structure for RU prach processing thread BL/CE UEs pthread_t pthread_prach_br; #endif @@ -197,7 +197,7 @@ typedef struct RU_proc_t_s { pthread_attr_t attr_FH1; /// pthread attributes for RU prach pthread_attr_t attr_prach; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// pthread attributes for RU prach BL/CE UEs pthread_attr_t attr_prach_br; #endif @@ -216,7 +216,7 @@ typedef struct RU_proc_t_s { struct sched_param sched_param_FH1; /// scheduling parameters for RU prach thread struct sched_param sched_param_prach; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// scheduling parameters for RU prach thread BL/CE UEs struct sched_param sched_param_prach_br; #endif @@ -229,7 +229,7 @@ typedef struct RU_proc_t_s { pthread_cond_t cond_FH1; /// condition variable for RU prach thread pthread_cond_t cond_prach; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// condition variable for RU prach thread BL/CE UEs pthread_cond_t cond_prach_br; #endif @@ -245,13 +245,14 @@ typedef struct RU_proc_t_s { pthread_cond_t cond_emulateRF; /// condition variable for eNB signal pthread_cond_t cond_eNBs; + /// condition variable for gNB signal pthread_cond_t cond_gNBs; /// mutex for RU FH pthread_mutex_t mutex_FH; pthread_mutex_t mutex_FH1; /// mutex for RU prach pthread_mutex_t mutex_prach; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// mutex for RU prach BL/CE UEs pthread_mutex_t mutex_prach_br; #endif @@ -259,6 +260,7 @@ typedef struct RU_proc_t_s { pthread_mutex_t mutex_synch; /// mutex for eNB signal pthread_mutex_t mutex_eNBs; + /// mutex for eNB signal pthread_mutex_t mutex_gNBs; /// mutex for asynch RX/TX thread pthread_mutex_t mutex_asynch_rxtx; @@ -274,6 +276,34 @@ 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; @@ -383,7 +413,7 @@ typedef struct RU_t_s{ void (*wakeup_prach_eNB)(struct PHY_VARS_eNB_s *eNB,struct RU_t_s *ru,int frame,int subframe); void (*wakeup_prach_gNB)(struct PHY_VARS_gNB_s *gNB,struct RU_t_s *ru,int frame,int subframe); - #ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// function pointer to wakeup routine in lte-enb. void (*wakeup_prach_eNB_br)(struct PHY_VARS_eNB_s *eNB,struct RU_t_s *ru,int frame,int subframe); #endif @@ -416,7 +446,8 @@ typedef struct RU_t_s{ RU_COMMON common; /// beamforming weight vectors per eNB int32_t **beam_weights[NUMBER_OF_eNB_MAX+1][15]; - + /// beamforming weight vectors per eNB + int32_t **nrbeam_weights[NUMBER_OF_gNB_MAX+1][16]; /// received frequency-domain signal for PRACH (IF4p5 RRU) int16_t **prach_rxsigF; /// received frequency-domain signal for PRACH BR (IF4p5 RRU) @@ -511,7 +542,7 @@ typedef struct RRU_config_s { int prach_FreqOffset[MAX_BANDS_PER_RRU]; /// prach_ConfigIndex for IF4p5 int prach_ConfigIndex[MAX_BANDS_PER_RRU]; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) int emtc_prach_CElevel_enable[MAX_BANDS_PER_RRU][4]; /// emtc_prach_FreqOffset for IF4p5 per CE Level int emtc_prach_FreqOffset[MAX_BANDS_PER_RRU][4]; diff --git a/openair1/PHY/defs_UE.h b/openair1/PHY/defs_UE.h index f992bb75cf..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,8 +193,18 @@ typedef struct { UE_rxtx_proc_t proc_rxtx[RX_NB_TH]; } UE_proc_t; - - +/// Structure holding timer_thread related elements (phy_stub_UE mode) +typedef struct { + pthread_t pthread_timer; + /// mutex for waiting SF ticking + pthread_mutex_t mutex_ticking; + /// \brief ticking var for ticking thread. + /// \internal This variable is protected by \ref mutex_ticking. + int ticking_var; + /// condition variable for timer_thread; + pthread_cond_t cond_ticking; + //time_stats_t timer_stats; +} SF_ticking; typedef struct { //unsigned int rx_power[NUMBER_OF_CONNECTED_eNB_MAX][NB_ANTENNAS_RX]; //! estimated received signal power (linear) @@ -263,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 @@ -830,10 +872,15 @@ typedef struct { time_stats_t dlsch_tc_intl1_stats; time_stats_t dlsch_tc_intl2_stats; time_stats_t tx_prach; + time_stats_t timer_stats; + + pthread_mutex_t timer_mutex; + pthread_cond_t timer_cond; + int instance_cnt_timer; /// 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 fe8bf7b402..5d187fc302 100644 --- a/openair1/PHY/defs_common.h +++ b/openair1/PHY/defs_common.h @@ -65,13 +65,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" #include "defs_RU.h" @@ -154,7 +152,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 { @@ -187,7 +185,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; @@ -639,7 +637,7 @@ typedef struct LTE_DL_FRAME_PARMS { 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 @@ -673,7 +671,8 @@ typedef struct LTE_DL_FRAME_PARMS { 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 { @@ -883,7 +882,7 @@ typedef enum {no_relay=1,unicast_relay_type1,unicast_relay_type2, multicast_rela 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; @@ -910,13 +909,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, @@ -928,17 +925,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)\n",thread_name); + 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) @@ -950,6 +945,25 @@ static inline void wait_sync(char *thread_name) { } +static inline int wakeup_thread(pthread_mutex_t *mutex,pthread_cond_t *cond,int *instance_cnt,char *name) { + + if (pthread_mutex_lock(mutex) != 0) { + LOG_E( PHY, "error locking mutex for %s\n",name); + exit_fun("nothing to add"); + return(-1); + } + *instance_cnt = *instance_cnt + 1; + // the thread can now be woken up + if (pthread_cond_signal(cond) != 0) { + LOG_E( PHY, "ERROR pthread_cond_signal\n"); + exit_fun( "ERROR pthread_cond_signal" ); + return(-1); + } + + pthread_mutex_unlock(mutex); + return(0); +} + static inline int wait_on_condition(pthread_mutex_t *mutex,pthread_cond_t *cond,int *instance_cnt,char *name) { if (pthread_mutex_lock(mutex) != 0) { LOG_E( PHY, "[SCHED][eNB] error locking mutex for %s\n",name); diff --git a/openair1/PHY/defs_eNB.h b/openair1/PHY/defs_eNB.h index 7eb9ee23fa..65248b8c75 100644 --- a/openair1/PHY/defs_eNB.h +++ b/openair1/PHY/defs_eNB.h @@ -74,28 +74,14 @@ #define MAX_NUM_RU_PER_eNB 64 + #include #include "targets/ARCH/COMMON/common_lib.h" #include "targets/COMMON/openairinterface5g_limits.h" -#if defined(EXMIMO) || defined(OAI_USRP) -//#define NUMBER_OF_eNB_MAX 1 -//#define NUMBER_OF_UE_MAX 16 -//#define NUMBER_OF_CONNECTED_eNB_MAX 3 -#else -#ifdef LARGE_SCALE -//#define NUMBER_OF_eNB_MAX 2 -//#define NUMBER_OF_UE_MAX 120 -//#define NUMBER_OF_CONNECTED_eNB_MAX 1 // to save some memory -#else -//#define NUMBER_OF_eNB_MAX 3 -//#define NUMBER_OF_UE_MAX 16 -//#define NUMBER_OF_RU_MAX 64 -//#define NUMBER_OF_CONNECTED_eNB_MAX 1 -#endif #endif #define NUMBER_OF_SUBBANDS_MAX 13 #define NUMBER_OF_HARQ_PID_MAX 8 @@ -228,7 +214,7 @@ typedef struct { int32_t **prach_ifft[4]; /// repetition number -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// indicator of first frame in a group of PRACH repetitions int first_frame[4]; /// current repetition for each CE level @@ -315,7 +301,7 @@ typedef struct eNB_proc_t_s { int subframe_rx; /// subframe to act upon for PRACH int subframe_prach; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// subframe to act upon for reception of prach BL/CE UEs int subframe_prach_br; #endif @@ -325,7 +311,7 @@ typedef struct eNB_proc_t_s { int frame_tx; /// frame to act upon for PRACH int frame_prach; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// frame to act upon for PRACH BL/CE UEs int frame_prach_br; #endif @@ -335,7 +321,7 @@ typedef struct eNB_proc_t_s { int instance_cnt_te; /// \internal This variable is protected by \ref mutex_prach. int instance_cnt_prach; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// \internal This variable is protected by \ref mutex_prach for BL/CE UEs. int instance_cnt_prach_br; #endif @@ -343,8 +329,6 @@ typedef struct eNB_proc_t_s { int instance_cnt_synch; /// \internal This variable is protected by \ref mutex_asynch_rxtx. int instance_cnt_asynch_rxtx; - /// pthread structure for eNB single processing thread - pthread_t pthread_single; /// pthread structure for asychronous RX/TX processing thread pthread_t pthread_asynch_rxtx; /// flag to indicate first RX acquisition @@ -359,7 +343,7 @@ typedef struct eNB_proc_t_s { pthread_attr_t attr_single; /// pthread attributes for prach processing thread pthread_attr_t attr_prach; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// pthread attributes for prach processing thread BL/CE UEs pthread_attr_t attr_prach_br; #endif @@ -373,7 +357,7 @@ typedef struct eNB_proc_t_s { struct sched_param sched_param_single; /// scheduling parameters for prach thread struct sched_param sched_param_prach; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// scheduling parameters for prach thread struct sched_param sched_param_prach_br; #endif @@ -385,7 +369,7 @@ typedef struct eNB_proc_t_s { pthread_t pthread_te; /// pthread structure for PRACH thread pthread_t pthread_prach; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// pthread structure for PRACH thread BL/CE UEs pthread_t pthread_prach_br; #endif @@ -395,7 +379,7 @@ typedef struct eNB_proc_t_s { pthread_cond_t cond_te; /// condition variable for PRACH processing thread; pthread_cond_t cond_prach; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// condition variable for PRACH processing thread BL/CE UEs; pthread_cond_t cond_prach_br; #endif @@ -407,7 +391,7 @@ typedef struct eNB_proc_t_s { pthread_mutex_t mutex_te; /// mutex for PRACH thread pthread_mutex_t mutex_prach; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// mutex for PRACH thread for BL/CE UEs pthread_mutex_t mutex_prach_br; #endif @@ -423,7 +407,7 @@ typedef struct eNB_proc_t_s { int RU_mask; /// mask for RUs serving eNB (PRACH) int RU_mask_prach; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// mask for RUs serving eNB (PRACH) int RU_mask_prach_br; #endif @@ -534,14 +518,14 @@ typedef struct PHY_VARS_eNB_s { nfapi_cqi_indication_raw_pdu_t cqi_raw_pdu_list[NFAPI_CQI_IND_MAX_PDU]; /// NFAPI PRACH information nfapi_preamble_pdu_t preamble_list[MAX_NUM_RX_PRACH_PREAMBLES]; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// NFAPI PRACH information BL/CE UEs nfapi_preamble_pdu_t preamble_list_br[MAX_NUM_RX_PRACH_PREAMBLES]; #endif Sched_Rsp_t Sched_INFO; LTE_eNB_PDCCH pdcch_vars[2]; LTE_eNB_PHICH phich_vars[2]; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) LTE_eNB_EPDCCH epdcch_vars[2]; LTE_eNB_MPDCCH mpdcch_vars[2]; LTE_eNB_PRACH prach_vars_br; @@ -573,7 +557,7 @@ typedef struct PHY_VARS_eNB_s { uint32_t lte_gold_mbsfn_table[10][3][42]; uint32_t X_u[64][839]; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) uint32_t X_u_br[4][64][839]; #endif uint8_t pbch_configured; @@ -731,5 +715,5 @@ typedef struct PHY_VARS_eNB_s { int32_t pusch_stats_BO[NUMBER_OF_UE_MAX][10240]; } PHY_VARS_eNB; -#endif // __PHY_DEFS_eNB_H__ +#endif /* __PHY_DEFS_ENB__H__ */ diff --git a/openair1/PHY/impl_defs_lte.h b/openair1/PHY/impl_defs_lte.h index 066dc7012c..fa90ee49b7 100644 --- a/openair1/PHY/impl_defs_lte.h +++ b/openair1/PHY/impl_defs_lte.h @@ -34,1258 +34,4 @@ #define __PHY_IMPLEMENTATION_DEFS_LTE_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 - -#define LTE_SLOTS_PER_SUBFRAME 2 - -#define LTE_NUMBER_OF_SUBFRAMES_PER_FRAME 10 -#define LTE_SLOTS_PER_FRAME 20 -#define LTE_CE_FILTER_LENGTH 5 -#define LTE_CE_OFFSET LTE_CE_FILTER_LENGTH -#define TX_RX_SWITCH_SYMBOL (NUMBER_OF_SYMBOLS_PER_FRAME>>1) -#define PBCH_PDU_SIZE 3 //bytes - -#define PRACH_SYMBOL 3 //position of the UL PSS wrt 2nd slot of special subframe - -#define NUMBER_OF_FREQUENCY_GROUPS (lte_frame_parms->N_RB_DL) - -#define SSS_AMP 1148 - -#define MAX_NUM_PHICH_GROUPS 56 //110 RBs Ng=2, p.60 36-212, Sec. 6.9 - -#define MAX_MBSFN_AREA 8 - -#define NB_RX_ANTENNAS_MAX 64 - -#ifdef OCP_FRAMEWORK -#include "enums.h" -#else -typedef enum {TDD=1,FDD=0} lte_frame_type_t; - -typedef enum {EXTENDED=1,NORMAL=0} lte_prefix_type_t; - -typedef enum {LOCALIZED=0,DISTRIBUTED=1} vrb_t; - -/// Enumeration for parameter PHICH-Duration \ref PHICH_CONFIG_COMMON::phich_duration. -typedef enum { - normal=0, - extended=1 -} PHICH_DURATION_t; - -/// Enumeration for parameter Ng \ref PHICH_CONFIG_COMMON::phich_resource. -typedef enum { - oneSixth=1, - half=3, - one=6, - two=12 -} PHICH_RESOURCE_t; -#endif -/// PHICH-Config from 36.331 RRC spec -typedef struct { - /// Parameter: PHICH-Duration, see TS 36.211 (Table 6.9.3-1). - PHICH_DURATION_t phich_duration; - /// Parameter: Ng, see TS 36.211 (6.9). \details Value oneSixth corresponds to 1/6, half corresponds to 1/2 and so on. - PHICH_RESOURCE_t phich_resource; -} PHICH_CONFIG_COMMON; - -/// PRACH-ConfigInfo from 36.331 RRC spec -typedef struct { - /// Parameter: prach-ConfigurationIndex, see TS 36.211 (5.7.1). \vr{[0..63]} - uint8_t prach_ConfigIndex; - /// Parameter: High-speed-flag, see TS 36.211 (5.7.2). \vr{[0..1]} 1 corresponds to Restricted set and 0 to Unrestricted set. - uint8_t highSpeedFlag; - /// Parameter: \f$N_\text{CS}\f$, see TS 36.211 (5.7.2). \vr{[0..15]}\n Refer to table 5.7.2-2 for preamble format 0..3 and to table 5.7.2-3 for preamble format 4. - uint8_t zeroCorrelationZoneConfig; - /// Parameter: prach-FrequencyOffset, see TS 36.211 (5.7.1). \vr{[0..94]}\n For TDD the value range is dependent on the value of \ref prach_ConfigIndex. - uint8_t prach_FreqOffset; -} PRACH_CONFIG_INFO; - - - -/// PRACH-ConfigSIB or PRACH-Config from 36.331 RRC spec -typedef struct { - /// Parameter: RACH_ROOT_SEQUENCE, see TS 36.211 (5.7.1). \vr{[0..837]} - uint16_t rootSequenceIndex; - /// prach_Config_enabled=1 means enabled. \vr{[0..1]} - uint8_t prach_Config_enabled; - /// PRACH Configuration Information - PRACH_CONFIG_INFO prach_ConfigInfo; -} PRACH_CONFIG_COMMON; - -#ifdef Rel14 - -/// PRACH-eMTC-Config from 36.331 RRC spec -typedef struct { - /// Parameter: High-speed-flag, see TS 36.211 (5.7.2). \vr{[0..1]} 1 corresponds to Restricted set and 0 to Unrestricted set. - uint8_t highSpeedFlag; -/// Parameter: \f$N_\text{CS}\f$, see TS 36.211 (5.7.2). \vr{[0..15]}\n Refer to table 5.7.2-2 for preamble format 0..3 and to table 5.7.2-3 for preamble format 4. - uint8_t zeroCorrelationZoneConfig; - /// Parameter: prach-FrequencyOffset, see TS 36.211 (5.7.1). \vr{[0..94]}\n For TDD the value range is dependent on the value of \ref prach_ConfigIndex. - - /// PRACH starting subframe periodicity, expressed in number of subframes available for preamble transmission (PRACH opportunities), see TS 36.211. Value 2 corresponds to 2 subframes, 4 corresponds to 4 subframes and so on. EUTRAN configures the PRACH starting subframe periodicity larger than or equal to the Number of PRACH repetitions per attempt for each CE level (numRepetitionPerPreambleAttempt). - uint8_t prach_starting_subframe_periodicity[4]; - /// number of repetitions per preamble attempt per CE level - uint8_t prach_numRepetitionPerPreambleAttempt[4]; - /// prach configuration index for each CE level - uint8_t prach_ConfigIndex[4]; - /// indicator for CE level activation - uint8_t prach_CElevel_enable[4]; - /// prach frequency offset for each CE level - uint8_t prach_FreqOffset[4]; - /// indicator for CE level hopping activation - uint8_t prach_hopping_enable[4]; - /// indicator for CE level hopping activation - uint8_t prach_hopping_offset[4]; -} PRACH_eMTC_CONFIG_INFO; - -/// PRACH-ConfigSIB or PRACH-Config from 36.331 RRC spec -typedef struct { - /// Parameter: RACH_ROOT_SEQUENCE, see TS 36.211 (5.7.1). \vr{[0..837]} - uint16_t rootSequenceIndex; - /// prach_Config_enabled=1 means enabled. \vr{[0..1]} - uint8_t prach_Config_enabled; - /// PRACH Configuration Information -#ifdef Rel14 - PRACH_eMTC_CONFIG_INFO prach_ConfigInfo; -#endif -} PRACH_eMTC_CONFIG_COMMON; - -#endif - -/// Enumeration for parameter \f$N_\text{ANRep}\f$ \ref PUCCH_CONFIG_DEDICATED::repetitionFactor. -typedef enum { - n2=0, - n4, - n6 -} ACKNAKREP_t; - -/// Enumeration for \ref PUCCH_CONFIG_DEDICATED::tdd_AckNackFeedbackMode. -typedef enum { - bundling=0, - multiplexing -} ANFBmode_t; - -/// PUCCH-ConfigDedicated from 36.331 RRC spec -typedef struct { - /// Flag to indicate ACK NAK repetition activation, see TS 36.213 (10.1). \vr{[0..1]} - uint8_t ackNackRepetition; - /// Parameter: \f$N_\text{ANRep}\f$, see TS 36.213 (10.1). - ACKNAKREP_t repetitionFactor; - /// Parameter: \f$n^{(1)}_\text{PUCCH,ANRep}\f$, see TS 36.213 (10.1). \vr{[0..2047]} - uint16_t n1PUCCH_AN_Rep; - /// Feedback mode, see TS 36.213 (7.3). \details Applied to both PUCCH and PUSCH feedback. For TDD, should always be set to bundling. - ANFBmode_t tdd_AckNackFeedbackMode; -} PUCCH_CONFIG_DEDICATED; - -/// PUCCH-ConfigCommon from 36.331 RRC spec -typedef struct { - /// Parameter: \f$\Delta^\text{PUCCH}_\text{shift}\f$, see TS 36.211 (5.4.1). \vr{[1..3]} \note the specification sais it is an enumerated value. - uint8_t deltaPUCCH_Shift; - /// Parameter: \f$N^{(2)}_\text{RB}\f$, see TS 36.211 (5.4). \vr{[0..98]} - uint8_t nRB_CQI; - /// Parameter: \f$N^{(1)}_\text{CS}\f$, see TS 36.211 (5.4). \vr{[0..7]} - uint8_t nCS_AN; - /// Parameter: \f$N^{(1)}_\text{PUCCH}\f$ see TS 36.213 (10.1). \vr{[0..2047]} - uint16_t n1PUCCH_AN; - - /// group hopping sequence for DRS \note not part of offical UL-PUCCH_CONFIG_COMMON ASN1 specification. - uint8_t grouphop[20]; - /// sequence hopping sequence for DRS \note not part of offical UL-PUCCH_CONFIG_COMMON ASN1 specification. - uint8_t seqhop[20]; -} PUCCH_CONFIG_COMMON; - -/// UL-ReferenceSignalsPUSCH from 36.331 RRC spec -typedef struct { - /// Parameter: Group-hopping-enabled, see TS 36.211 (5.5.1.3). \vr{[0..1]} - uint8_t groupHoppingEnabled; - /// Parameter: \f$\Delta SS\f$, see TS 36.211 (5.5.1.3). \vr{[0..29]} - uint8_t groupAssignmentPUSCH; - /// Parameter: Sequence-hopping-enabled, see TS 36.211 (5.5.1.4). \vr{[0..1]} - uint8_t sequenceHoppingEnabled; - /// Parameter: cyclicShift, see TS 36.211 (Table 5.5.2.1.1-2). \vr{[0..7]} - uint8_t cyclicShift; - /// nPRS for cyclic shift of DRS \note not part of offical UL-ReferenceSignalsPUSCH ASN1 specification. - uint8_t nPRS[20]; - /// group hopping sequence for DRS \note not part of offical UL-ReferenceSignalsPUSCH ASN1 specification. - uint8_t grouphop[20]; - /// sequence hopping sequence for DRS \note not part of offical UL-ReferenceSignalsPUSCH ASN1 specification. - uint8_t seqhop[20]; -} UL_REFERENCE_SIGNALS_PUSCH_t; - -/// Enumeration for parameter Hopping-mode \ref PUSCH_CONFIG_COMMON::hoppingMode. -#ifndef OCP_FRAMEWORK -typedef enum { - interSubFrame=0, - intraAndInterSubFrame=1 -} PUSCH_HOPPING_t; -#endif - -/// PUSCH-ConfigCommon from 36.331 RRC spec. -typedef struct { - /// Parameter: \f$N_{sb}\f$, see TS 36.211 (5.3.4). \vr{[1..4]} - uint8_t n_SB; - /// Parameter: Hopping-mode, see TS 36.211 (5.3.4). - PUSCH_HOPPING_t hoppingMode; - /// Parameter: \f$N^{HO}_{RB}\f$, see TS 36.211 (5.3.4). \vr{[0..98]} - uint8_t pusch_HoppingOffset; - /// See TS 36.213 (8.6.1). \vr{[0..1]} 1 indicates 64QAM is allowed, 0 not allowed. - uint8_t enable64QAM; - /// Ref signals configuration - UL_REFERENCE_SIGNALS_PUSCH_t ul_ReferenceSignalsPUSCH; -} PUSCH_CONFIG_COMMON; - -/// UE specific PUSCH configuration. -typedef struct { - /// Parameter: \f$I^\text{HARQ-ACK}_\text{offset}\f$, see TS 36.213 (Table 8.6.3-1). \vr{[0..15]} - uint16_t betaOffset_ACK_Index; - /// Parameter: \f$I^{RI}_\text{offset}\f$, see TS 36.213 (Table 8.6.3-2). \vr{[0..15]} - uint16_t betaOffset_RI_Index; - /// Parameter: \f$I^{CQI}_\text{offset}\f$, see TS 36.213 (Table 8.6.3-3). \vr{[0..15]} - uint16_t betaOffset_CQI_Index; -} PUSCH_CONFIG_DEDICATED; - -/// lola CBA information -typedef struct { - /// - uint16_t betaOffset_CA_Index; - /// - uint16_t cShift; -} PUSCH_CA_CONFIG_DEDICATED; - -/// PDSCH-ConfigCommon from 36.331 RRC spec -typedef struct { - /// Parameter: Reference-signal power, see TS 36.213 (5.2). \vr{[-60..50]}\n Provides the downlink reference-signal EPRE. The actual value in dBm. - int8_t referenceSignalPower; - /// Parameter: \f$P_B\f$, see TS 36.213 (Table 5.2-1). \vr{[0..3]} - uint8_t p_b; -} PDSCH_CONFIG_COMMON; - -/// Enumeration for Parameter \f$P_A\f$ \ref PDSCH_CONFIG_DEDICATED::p_a. -typedef enum { - dBm6=0, ///< (dB-6) corresponds to -6 dB - dBm477, ///< (dB-4dot77) corresponds to -4.77 dB - dBm3, ///< (dB-3) corresponds to -3 dB - dBm177, ///< (dB-1dot77) corresponds to -1.77 dB - dB0, ///< corresponds to 0 dB - dB1, ///< corresponds to 1 dB - dB2, ///< corresponds to 2 dB - dB3 ///< corresponds to 3 dB -} PA_t; - -/// PDSCH-ConfigDedicated from 36.331 RRC spec -typedef struct { - /// Parameter: \f$P_A\f$, see TS 36.213 (5.2). - PA_t p_a; -} PDSCH_CONFIG_DEDICATED; - -/// SoundingRS-UL-ConfigCommon Information Element from 36.331 RRC spec -typedef struct { - /// enabled flag=1 means SRS is enabled. \vr{[0..1]} - uint8_t enabled_flag; - /// Parameter: SRS Bandwidth Configuration, see TS 36.211 (table 5.5.3.2-1, 5.5.3.2-2, 5.5.3.2-3 and 5.5.3.2-4). \vr{[0..7]}\n Actual configuration depends on UL bandwidth. \note the specification sais it is an enumerated value. - uint8_t srs_BandwidthConfig; - /// Parameter: SRS SubframeConfiguration, see TS 36.211 (table 5.5.3.3-1 for FDD, table 5.5.3.3-2 for TDD). \vr{[0..15]} \note the specification sais it is an enumerated value. - uint8_t srs_SubframeConfig; - /// Parameter: Simultaneous-AN-and-SRS, see TS 36.213 (8.2). \vr{[0..1]} - uint8_t ackNackSRS_SimultaneousTransmission; - /// Parameter: srsMaxUpPts, see TS 36.211 (5.5.3.2). \details If this field is present, reconfiguration of \f$m^\text{max}_\text{SRS,0}\f$ applies for UpPts, otherwise reconfiguration does not apply. - uint8_t srs_MaxUpPts; -} SOUNDINGRS_UL_CONFIG_COMMON; - -/// \note UNUSED -typedef enum { - ulpc_al0=0, - ulpc_al04=1, - ulpc_al05=2, - ulpc_al06=3, - ulpc_al07=4, - ulpc_al08=5, - ulpc_al09=6, - ulpc_al11=7 -} UL_POWER_CONTROL_COMMON_alpha_t; - -/// Enumeration for \ref deltaFList_PUCCH_t::deltaF_PUCCH_Format1. -typedef enum { - deltaF_PUCCH_Format1_deltaF_2 = 0, - deltaF_PUCCH_Format1_deltaF0 = 1, - deltaF_PUCCH_Format1_deltaF2 = 2 -} deltaF_PUCCH_Format1_t; - -/// Enumeration for \ref deltaFList_PUCCH_t::deltaF_PUCCH_Format1b. -typedef enum { - deltaF_PUCCH_Format1b_deltaF1 = 0, - deltaF_PUCCH_Format1b_deltaF3 = 1, - deltaF_PUCCH_Format1b_deltaF5 = 2 -} deltaF_PUCCH_Format1b_t; - -/// Enumeration for \ref deltaFList_PUCCH_t::deltaF_PUCCH_Format2. -typedef enum { - deltaF_PUCCH_Format2_deltaF_2 = 0, - deltaF_PUCCH_Format2_deltaF0 = 1, - deltaF_PUCCH_Format2_deltaF1 = 2, - deltaF_PUCCH_Format2_deltaF2 = 3 -} deltaF_PUCCH_Format2_t; - -/// Enumeration for \ref deltaFList_PUCCH_t::deltaF_PUCCH_Format2a. -typedef enum { - deltaF_PUCCH_Format2a_deltaF_2 = 0, - deltaF_PUCCH_Format2a_deltaF0 = 1, - deltaF_PUCCH_Format2a_deltaF2 = 2 -} deltaF_PUCCH_Format2a_t; - -/// Enumeration for \ref deltaFList_PUCCH_t::deltaF_PUCCH_Format2b. -typedef enum { - deltaF_PUCCH_Format2b_deltaF_2 = 0, - deltaF_PUCCH_Format2b_deltaF0 = 1, - deltaF_PUCCH_Format2b_deltaF2 = 2 -} deltaF_PUCCH_Format2b_t; - -/// DeltaFList-PUCCH from 36.331 RRC spec -typedef struct { - deltaF_PUCCH_Format1_t deltaF_PUCCH_Format1; - deltaF_PUCCH_Format1b_t deltaF_PUCCH_Format1b; - deltaF_PUCCH_Format2_t deltaF_PUCCH_Format2; - deltaF_PUCCH_Format2a_t deltaF_PUCCH_Format2a; - deltaF_PUCCH_Format2b_t deltaF_PUCCH_Format2b; -} deltaFList_PUCCH_t; - -/// SoundingRS-UL-ConfigDedicated Information Element from 36.331 RRC spec -typedef struct { - /// This descriptor is active - uint8_t active; - /// This descriptor's frame - uint16_t frame; - /// This descriptor's subframe - uint8_t subframe; - /// rnti - uint16_t rnti; - /// Parameter: \f$B_\text{SRS}\f$, see TS 36.211 (table 5.5.3.2-1, 5.5.3.2-2, 5.5.3.2-3 and 5.5.3.2-4). \vr{[0..3]} \note the specification sais it is an enumerated value. - uint8_t srs_Bandwidth; - /// Parameter: SRS hopping bandwidth \f$b_\text{hop}\in\{0,1,2,3\}\f$, see TS 36.211 (5.5.3.2) \vr{[0..3]} \note the specification sais it is an enumerated value. - uint8_t srs_HoppingBandwidth; - /// Parameter: \f$n_\text{RRC}\f$, see TS 36.211 (5.5.3.2). \vr{[0..23]} - uint8_t freqDomainPosition; - /// Parameter: Duration, see TS 36.213 (8.2). \vr{[0..1]} 0 corresponds to "single" and 1 to "indefinite". - uint8_t duration; - /// Parameter: \f$k_\text{TC}\in\{0,1\}\f$, see TS 36.211 (5.5.3.2). \vr{[0..1]} - uint8_t transmissionComb; - /// Parameter: \f$I_\text{SRS}\f$, see TS 36.213 (table 8.2-1). \vr{[0..1023]} - uint16_t srs_ConfigIndex; - /// Parameter: \f$n^\text{CS}_\text{SRS}\f$. See TS 36.211 (5.5.3.1). \vr{[0..7]} \note the specification sais it is an enumerated value. - uint8_t cyclicShift; - // Parameter: internal implementation: UE SRS configured - uint8_t srsConfigDedicatedSetup; - // Parameter: cell srs subframe for internal implementation - uint8_t srsCellSubframe; - // Parameter: ue srs subframe for internal implementation - uint8_t srsUeSubframe; -} SOUNDINGRS_UL_CONFIG_DEDICATED; - -/// UplinkPowerControlDedicated Information Element from 36.331 RRC spec -typedef struct { - /// Parameter: \f$P_\text{0\_UE\_PUSCH}(1)\f$, see TS 36.213 (5.1.1.1), unit dB. \vr{[-8..7]}\n This field is applicable for non-persistent scheduling, only. - int8_t p0_UE_PUSCH; - /// Parameter: Ks, see TS 36.213 (5.1.1.1). \vr{[0..1]}\n en0 corresponds to value 0 corresponding to state “disabled”. en1 corresponds to value 1.25 corresponding to “enabled”. \note the specification sais it is an enumerated value. \warning the enumeration values do not correspond to the given values in the specification (en1 should be 1.25). - uint8_t deltaMCS_Enabled; - /// Parameter: Accumulation-enabled, see TS 36.213 (5.1.1.1). \vr{[0..1]} 1 corresponds to "enabled" whereas 0 corresponds to "disabled". - uint8_t accumulationEnabled; - /// Parameter: \f$P_\text{0\_UE\_PUCCH}(1)\f$, see TS 36.213 (5.1.2.1), unit dB. \vr{[-8..7]} - int8_t p0_UE_PUCCH; - /// Parameter: \f$P_\text{SRS\_OFFSET}\f$, see TS 36.213 (5.1.3.1). \vr{[0..15]}\n For Ks=1.25 (\ref deltaMCS_Enabled), the actual parameter value is pSRS_Offset value - 3. For Ks=0, the actual parameter value is -10.5 + 1.5*pSRS_Offset value. - int8_t pSRS_Offset; - /// Specifies the filtering coefficient for RSRP measurements used to calculate path loss, as specified in TS 36.213 (5.1.1.1).\details The same filtering mechanism applies as for quantityConfig described in 5.5.3.2. \note the specification sais it is an enumerated value. - uint8_t filterCoefficient; -} UL_POWER_CONTROL_DEDICATED; - -#ifndef OCP_FRAMEWORK -/// Enumeration for parameter \f$\alpha\f$ \ref UL_POWER_CONTROL_CONFIG_COMMON::alpha. -typedef enum { - al0=0, - al04=1, - al05=2, - al06=3, - al07=4, - al08=5, - al09=6, - al1=7 -} PUSCH_alpha_t; -#endif - -/// \note UNUSED -typedef enum { - deltaFm2=0, - deltaF0, - deltaF1, - deltaF2, - deltaF3, - deltaF5 -} deltaF_PUCCH_t; - -/// UplinkPowerControlCommon Information Element from 36.331 RRC spec \note this structure does not currently make use of \ref deltaFList_PUCCH_t. -typedef struct { - /// Parameter: \f$P_\text{0\_NOMINAL\_PUSCH}(1)\f$, see TS 36.213 (5.1.1.1), unit dBm. \vr{[-126..24]}\n This field is applicable for non-persistent scheduling, only. - int8_t p0_NominalPUSCH; - /// Parameter: \f$\alpha\f$, see TS 36.213 (5.1.1.1) \warning the enumeration values do not correspond to the given values in the specification (al04 should be 0.4, ...)! - PUSCH_alpha_t alpha; - /// Parameter: \f$P_\text{0\_NOMINAL\_PUCCH}\f$ See TS 36.213 (5.1.2.1), unit dBm. \vr{[-127..-96]} - int8_t p0_NominalPUCCH; - /// Parameter: \f$\Delta_\text{PREAMBLE\_Msg3}\f$ see TS 36.213 (5.1.1.1). \vr{[-1..6]}\n Actual value = IE value * 2 [dB]. - int8_t deltaPreambleMsg3; - /// Parameter: \f$\Delta_\text{F\_PUCCH}(F)\f$ for the PUCCH format 1, see TS 36.213 (5.1.2). \vr{[0..2]} \warning check value range, why is this a long? \note the specification sais it is an enumerated value. - long deltaF_PUCCH_Format1; - /// Parameter: \f$\Delta_\text{F\_PUCCH}(F)\f$ for the PUCCH format 1a, see TS 36.213 (5.1.2). \vr{[0..2]} \warning check value range, why is this a long? \note the specification sais it is an enumerated value. - long deltaF_PUCCH_Format1a; - /// Parameter: \f$\Delta_\text{F\_PUCCH}(F)\f$ for the PUCCH format 1b, see TS 36.213 (5.1.2). \vr{[0..2]} \warning check value range, why is this a long? \note the specification sais it is an enumerated value. - long deltaF_PUCCH_Format1b; - /// Parameter: \f$\Delta_\text{F\_PUCCH}(F)\f$ for the PUCCH format 2, see TS 36.213 (5.1.2). \vr{[0..3]} \warning check value range, why is this a long? \note the specification sais it is an enumerated value. - long deltaF_PUCCH_Format2; - /// Parameter: \f$\Delta_\text{F\_PUCCH}(F)\f$ for the PUCCH format 2a, see TS 36.213 (5.1.2). \vr{[0..2]} \warning check value range, why is this a long? \note the specification sais it is an enumerated value. - long deltaF_PUCCH_Format2a; - /// Parameter: \f$\Delta_\text{F\_PUCCH}(F)\f$ for the PUCCH format 2b, see TS 36.213 (5.1.2). \vr{[0..2]} \warning check value range, why is this a long? \note the specification sais it is an enumerated value. - long deltaF_PUCCH_Format2b; -} UL_POWER_CONTROL_CONFIG_COMMON; - -/// Union for \ref TPC_PDCCH_CONFIG::tpc_Index. -typedef union { - /// Index of N when DCI format 3 is used. See TS 36.212 (5.3.3.1.6). \vr{[1..15]} - uint8_t indexOfFormat3; - /// Index of M when DCI format 3A is used. See TS 36.212 (5.3.3.1.7). \vr{[1..31]} - uint8_t indexOfFormat3A; -} TPC_INDEX_t; - -/// TPC-PDCCH-Config Information Element from 36.331 RRC spec -typedef struct { - /// RNTI for power control using DCI format 3/3A, see TS 36.212. \vr{[0..65535]} - uint16_t rnti; - /// Index of N or M, see TS 36.212 (5.3.3.1.6 and 5.3.3.1.7), where N or M is dependent on the used DCI format (i.e. format 3 or 3a). - TPC_INDEX_t tpc_Index; -} TPC_PDCCH_CONFIG; - -/// Enumeration for parameter SR transmission \ref SCHEDULING_REQUEST_CONFIG::dsr_TransMax. -typedef enum { - sr_n4=0, - sr_n8=1, - sr_n16=2, - sr_n32=3, - sr_n64=4 -} DSR_TRANSMAX_t; - -/// SchedulingRequestConfig Information Element from 36.331 RRC spec -typedef struct { - /// Parameter: \f$n^{(1)}_\text{PUCCH,SRI}\f$, see TS 36.213 (10.1). \vr{[0..2047]} - uint16_t sr_PUCCH_ResourceIndex; - /// Parameter: \f$I_\text{SR}\f$, see TS 36.213 (10.1). \vr{[0..155]} - uint8_t sr_ConfigIndex; - /// Parameter for SR transmission in TS 36.321 (5.4.4). \details The value n4 corresponds to 4 transmissions, n8 corresponds to 8 transmissions and so on. - DSR_TRANSMAX_t dsr_TransMax; -} SCHEDULING_REQUEST_CONFIG; - -/// CQI-ReportPeriodic -typedef struct { - /// Parameter: \f$n^{(2)}_\text{PUCCH}\f$, see TS 36.213 (7.2). \vr{[0..1185]}, -1 indicates inactivity - int16_t cqi_PUCCH_ResourceIndex; - /// Parameter: CQI/PMI Periodicity and Offset Configuration Index \f$I_\text{CQI/PMI}\f$, see TS 36.213 (tables 7.2.2-1A and 7.2.2-1C). \vr{[0..1023]} - int16_t cqi_PMI_ConfigIndex; - /// Parameter: K, see 36.213 (4.2.2). \vr{[1..4]} - uint8_t K; - /// Parameter: RI Config Index \f$I_\text{RI}\f$, see TS 36.213 (7.2.2-1B). \vr{[0..1023]}, -1 indicates inactivity - int16_t ri_ConfigIndex; - /// Parameter: Simultaneous-AN-and-CQI, see TS 36.213 (10.1). \vr{[0..1]} 1 indicates that simultaneous transmission of ACK/NACK and CQI is allowed. - uint8_t simultaneousAckNackAndCQI; - /// parameter computed from Tables 7.2.2-1A and 7.2.2-1C - uint16_t Npd; - /// parameter computed from Tables 7.2.2-1A and 7.2.2-1C - uint16_t N_OFFSET_CQI; -} CQI_REPORTPERIODIC; - -/// Enumeration for parameter reporting mode \ref CQI_REPORT_CONFIG::cqi_ReportModeAperiodic. -typedef enum { - rm12=0, - rm20=1, - rm22=2, - rm30=3, - rm31=4 -} CQI_REPORTMODEAPERIODIC; - -/// CQI-ReportConfig Information Element from 36.331 RRC spec -typedef struct { - /// Parameter: reporting mode. Value rm12 corresponds to Mode 1-2, rm20 corresponds to Mode 2-0, rm22 corresponds to Mode 2-2 etc. PUSCH reporting modes are described in TS 36.213 [23, 7.2.1]. - CQI_REPORTMODEAPERIODIC cqi_ReportModeAperiodic; - /// Parameter: \f$\Delta_\text{offset}\f$, see TS 36.213 (7.2.3). \vr{[-1..6]}\n Actual value = IE value * 2 [dB]. - int8_t nomPDSCH_RS_EPRE_Offset; - CQI_REPORTPERIODIC CQI_ReportPeriodic; -} CQI_REPORT_CONFIG; - -/// MBSFN-SubframeConfig Information Element from 36.331 RRC spec \note deviates from specification. -typedef struct { - /// MBSFN subframe occurance. \details Radio-frames that contain MBSFN subframes occur when equation SFN mod radioFrameAllocationPeriod = radioFrameAllocationOffset is satisfied. When fourFrames is used for subframeAllocation, the equation defines the first radio frame referred to in the description below. Values n1 and n2 are not applicable when fourFrames is used. \note the specification sais it is an enumerated value {n1, n2, n4, n8, n16, n32}. - int radioframeAllocationPeriod; - /// MBSFN subframe occurance. \vr{[0..7]}\n Radio-frames that contain MBSFN subframes occur when equation SFN mod radioFrameAllocationPeriod = radioFrameAllocationOffset is satisfied. When fourFrames is used for subframeAllocation, the equation defines the first radio frame referred to in the description below. Values n1 and n2 are not applicable when fourFrames is used. - int radioframeAllocationOffset; - /// oneFrame or fourFrames. \vr{[0..1]} - int fourFrames_flag; - /// Subframe configuration. \vr{[0..63]} (\ref fourFrames_flag == 0) or \vr{[0..16777215]} (\ref fourFrames_flag == 1) - /// \par fourFrames_flag == 0 - /// "1" denotes that the corresponding subframe is allocated for MBSFN. The following mapping applies:\n FDD: The first/leftmost bit defines the MBSFN allocation for subframe #1, the second bit for #2, third bit for #3 , fourth bit for #6, fifth bit for #7, sixth bit for #8.\n TDD: The first/leftmost bit defines the allocation for subframe #3, the second bit for #4, third bit for #7, fourth bit for #8, fifth bit for #9. Uplink subframes are not allocated. The last bit is not used. - /// \par fourFrames_flag == 1 - /// A bit-map indicating MBSFN subframe allocation in four consecutive radio frames, "1" denotes that the corresponding subframe is allocated for MBSFN. The bitmap is interpreted as follows:\n FDD: Starting from the first radioframe and from the first/leftmost bit in the bitmap, the allocation applies to subframes #1, #2, #3 , #6, #7, and #8 in the sequence of the four radio-frames.\n TDD: Starting from the first radioframe and from the first/leftmost bit in the bitmap, the allocation applies to subframes #3, #4, #7, #8, and #9 in the sequence of the four radio-frames. The last four bits are not used. Uplink subframes are not allocated. - int mbsfn_SubframeConfig; -} MBSFN_config_t; - -typedef struct { - /// Number of resource blocks (RB) in DL - uint8_t N_RB_DL; - /// Number of resource blocks (RB) in UL - uint8_t N_RB_UL; - /// EUTRA Band - uint8_t eutra_band; - /// DL carrier frequency - uint32_t dl_CarrierFreq; - /// UL carrier frequency - uint32_t ul_CarrierFreq; - /// TX attenuation - uint32_t att_tx; - /// RX attenuation - uint32_t att_rx; - /// total Number of Resource Block Groups: this is ceil(N_PRB/P) - uint8_t N_RBG; - /// Total Number of Resource Block Groups SubSets: this is P - uint8_t N_RBGS; - /// Cell ID - uint16_t Nid_cell; - /// MBSFN Area ID - uint16_t Nid_cell_mbsfn; - /// Cyclic Prefix for DL (0=Normal CP, 1=Extended CP) - lte_prefix_type_t Ncp; - /// Cyclic Prefix for UL (0=Normal CP, 1=Extended CP) - lte_prefix_type_t Ncp_UL; - /// shift of pilot position in one RB - uint8_t nushift; - /// Frame type (0 FDD, 1 TDD) - lte_frame_type_t frame_type; - /// TDD subframe assignment (0-7) (default = 3) (254=RX only, 255=TX only) - uint8_t tdd_config; - /// TDD S-subframe configuration (0-9) - uint8_t tdd_config_S; - /// srs extra symbol flag for TDD - uint8_t srsX; - /// indicates if node is a UE (NODE=2) or eNB (PRIMARY_CH=0). - uint8_t node_id; - /// Indicator that 20 MHz channel uses 3/4 sampling frequency - uint8_t threequarter_fs; - /// Size of FFT - uint16_t ofdm_symbol_size; - /// Number of prefix samples in all but first symbol of slot - uint16_t nb_prefix_samples; - /// Number of prefix samples in first symbol of slot - uint16_t nb_prefix_samples0; - /// Carrier offset in FFT buffer for first RE in PRB0 - uint16_t first_carrier_offset; - /// Number of samples in a subframe - uint32_t samples_per_tti; - /// Number of OFDM/SC-FDMA symbols in one subframe (to be modified to account for potential different in UL/DL) - uint16_t symbols_per_tti; - /// Number of OFDM symbols in DL portion of S-subframe - uint16_t dl_symbols_in_S_subframe; - /// Number of SC-FDMA symbols in UL portion of S-subframe - uint16_t ul_symbols_in_S_subframe; - /// Number of Physical transmit antennas in node - uint8_t nb_antennas_tx; - /// Number of Receive antennas in node - uint8_t nb_antennas_rx; - /// Number of common transmit antenna ports in eNodeB (1 or 2) - uint8_t nb_antenna_ports_eNB; - /// PRACH_CONFIG - PRACH_CONFIG_COMMON prach_config_common; -#ifdef Rel14 - /// PRACH_eMTC_CONFIG - PRACH_eMTC_CONFIG_COMMON prach_emtc_config_common; -#endif - /// PUCCH Config Common (from 36-331 RRC spec) - PUCCH_CONFIG_COMMON pucch_config_common; - /// PDSCH Config Common (from 36-331 RRC spec) - PDSCH_CONFIG_COMMON pdsch_config_common; - /// PUSCH Config Common (from 36-331 RRC spec) - PUSCH_CONFIG_COMMON pusch_config_common; - /// PHICH Config (from 36-331 RRC spec) - PHICH_CONFIG_COMMON phich_config_common; - /// SRS Config (from 36-331 RRC spec) - SOUNDINGRS_UL_CONFIG_COMMON soundingrs_ul_config_common; - /// UL Power Control (from 36-331 RRC spec) - UL_POWER_CONTROL_CONFIG_COMMON ul_power_control_config_common; - /// Number of MBSFN Configurations - int num_MBSFN_config; - /// Array of MBSFN Configurations (max 8 (maxMBSFN-Allocations) elements as per 36.331) - MBSFN_config_t MBSFN_config[8]; - /// Maximum Number of Retransmissions of RRCConnectionRequest (from 36-331 RRC Spec) - uint8_t maxHARQ_Msg3Tx; - /// Size of SI windows used for repetition of one SI message (in frames) - uint8_t SIwindowsize; - /// Period of SI windows used for repetition of one SI message (in frames) - uint16_t SIPeriod; - /// REGs assigned to PCFICH - uint16_t pcfich_reg[4]; - /// Index of first REG assigned to PCFICH - uint8_t pcfich_first_reg_idx; - /// REGs assigned to PHICH - uint16_t phich_reg[MAX_NUM_PHICH_GROUPS][3]; - - struct MBSFN_SubframeConfig *mbsfn_SubframeConfig[MAX_MBSFN_AREA]; - -} LTE_DL_FRAME_PARMS; - -typedef enum { - /// TM1 - SISO=0, - /// TM2 - ALAMOUTI=1, - /// TM3 - LARGE_CDD=2, - /// the next 6 entries are for TM5 - UNIFORM_PRECODING11=3, - UNIFORM_PRECODING1m1=4, - UNIFORM_PRECODING1j=5, - UNIFORM_PRECODING1mj=6, - PUSCH_PRECODING0=7, - PUSCH_PRECODING1=8, - /// the next 3 entries are for TM4 - DUALSTREAM_UNIFORM_PRECODING1=9, - DUALSTREAM_UNIFORM_PRECODINGj=10, - DUALSTREAM_PUSCH_PRECODING=11, - TM7=12, - TM8=13, - TM9_10=14 -} MIMO_mode_t; - - -typedef enum { - /// MRT - MRT=0, - /// ZF - ZF=1, - /// MMSE - MMSE=2 -} PRECODE_TYPE_t; - -typedef struct { - /// \brief Pointers (dynamic) to the received data in the time domain. - /// - first index: rx antenna [0..nb_antennas_rx[ - /// - second index: ? [0..2*ofdm_symbol_size*frame_parms->symbols_per_tti[ - int32_t **rxdata; - /// \brief Pointers (dynamic) to the received data in the frequency domain. - /// - first index: rx antenna [0..nb_antennas_rx[ - /// - second index: ? [0..2*ofdm_symbol_size*frame_parms->symbols_per_tti[ - int32_t **rxdataF; - /// \brief holds the transmit data in the frequency domain. - /// For IFFT_FPGA this points to the same memory as PHY_vars->rx_vars[a].RX_DMA_BUFFER. //? - /// - first index: eNB id [0..2] (hard coded) - /// - second index: tx antenna [0..14[ where 14 is the total supported antenna ports. - /// - third index: sample [0..] - int32_t **txdataF; -} LTE_eNB_COMMON; - -typedef struct { - /// \brief Holds the transmit data in the frequency domain. - /// - first index: rx antenna [0..nb_antennas_rx[ - /// - second index: ? [0..2*ofdm_symbol_size*frame_parms->symbols_per_tti[ - int32_t **txdata; - /// \brief holds the transmit data after beamforming in the frequency domain. - /// - first index: tx antenna [0..nb_antennas_tx[ - /// - second index: sample [0..] - int32_t **txdataF_BF; - /// \brief holds the transmit data before beamforming for epdcch/mpdcch - /// - first index : tx antenna [0..nb_epdcch_antenna_ports[ - /// - second index: sampl [0..] - int32_t **txdataF_epdcch; - /// \brief Holds the receive data in the frequency domain. - /// - first index: rx antenna [0..nb_antennas_rx[ - /// - second index: ? [0..2*ofdm_symbol_size*frame_parms->symbols_per_tti[ - int32_t **rxdata; - /// \brief Holds the last subframe of received data in time domain after removal of 7.5kHz frequency offset. - /// - first index: rx antenna [0..nb_antennas_rx[ - /// - second index: sample [0..samples_per_tti[ - int32_t **rxdata_7_5kHz; - /// \brief Holds the received data in the frequency domain. - /// - first index: rx antenna [0..nb_antennas_rx[ - /// - second index: ? [0..2*ofdm_symbol_size*frame_parms->symbols_per_tti[ - int32_t **rxdataF; - /// \brief Holds output of the sync correlator. - /// - first index: sample [0..samples_per_tti*10[ - uint32_t *sync_corr; - /// \brief Holds the tdd reciprocity calibration coefficients - /// - first index: eNB id [0..2] (hard coded) - /// - second index: tx antenna [0..nb_antennas_tx[ - /// - third index: frequency [0..] - int32_t **tdd_calib_coeffs; -} RU_COMMON; - -typedef enum {format0, - format1, - format1A, - format1B, - format1C, - format1D, - format1E_2A_M10PRB, - format2, - format2A, - format2B, - format2C, - format2D, - format3, - format3A, - format4, - format5, - format6_0A, - format6_0B, - format6_1A, - format6_1B, - format6_2 - } DCI_format_t; - -typedef struct { - /// Length of DCI in bits - uint8_t dci_length; - /// Aggregation level - uint8_t L; - /// Position of first CCE of the dci - int firstCCE; - /// flag to indicate that this is a RA response - boolean_t ra_flag; - /// rnti - rnti_t rnti; - /// harq_pid - rnti_t harq_pid; - /// Format - DCI_format_t format; - /// DCI pdu - uint8_t dci_pdu[8]; -} DCI_ALLOC_t; - -#define MAX_EPDCCH_PRB 8 - -typedef struct { - /// Length of DCI in bits - uint8_t dci_length; - /// Aggregation level - uint8_t L; - /// Position of first CCE of the dci - int firstCCE; - /// flag to indicate that this is a RA response - boolean_t ra_flag; - /// rnti - rnti_t rnti; - /// Format - DCI_format_t format; - /// epdcch resource assignment (0=localized,1=distributed) - uint8_t epdcch_resource_assignment_flag; - /// epdcch index - uint16_t epdcch_id; - /// epdcch start symbol - uint8_t epdcch_start_symbol; - /// epdcch number of PRBs in set - uint8_t epdcch_num_prb; - /// vector of prb ids for set - uint8_t epdcch_prb_index[MAX_EPDCCH_PRB]; - /// LBT parameter for frame configuration - uint8_t dwpts_symbols; - /// LBT parameter for frame configuration - uint8_t initial_lbt_sf; - /// DCI pdu - uint8_t dci_pdu[8]; -} eDCI_ALLOC_t; - -typedef struct { - /// Length of DCI in bits - uint8_t dci_length; - /// Aggregation level - uint8_t L; - /// Position of first CCE of the dci - int firstCCE; - /// flag to indicate that this is a RA response - boolean_t ra_flag; - /// rnti - rnti_t rnti; - /// Format - DCI_format_t format; - /// harq process index - uint8_t harq_pid; - /// Narrowband index - uint8_t narrowband; - /// number of PRB pairs for MPDCCH - uint8_t number_of_prb_pairs; - /// mpdcch resource assignment (combinatorial index r) - uint8_t resource_block_assignment; - /// transmission type (0=localized,1=distributed) - uint8_t transmission_type; - /// mpdcch start symbol - uint8_t start_symbol; - /// CE mode (1=ModeA,2=ModeB) - uint8_t ce_mode; - /// 0-503 n_EPDCCHid_i - uint16_t dmrs_scrambling_init; - /// Absolute subframe of the initial transmission (0-10239) - uint16_t i0; - /// number of mdpcch repetitions - uint16_t reps; - /// current absolute subframe number - uint16_t absSF; - /// DCI pdu - uint8_t dci_pdu[8]; -} mDCI_ALLOC_t; - - -typedef struct { - uint8_t num_dci; - uint8_t num_pdcch_symbols; - DCI_ALLOC_t dci_alloc[32]; -} LTE_eNB_PDCCH; - -typedef struct { - uint8_t hi; - uint8_t first_rb; - uint8_t n_DMRS; -} phich_config_t; - -typedef struct { - uint8_t num_hi; - phich_config_t config[32]; -} LTE_eNB_PHICH; - -typedef struct { - uint8_t num_dci; - eDCI_ALLOC_t edci_alloc[32]; -} LTE_eNB_EPDCCH; - -typedef struct { - /// number of active MPDCCH allocations - uint8_t num_dci; - /// MPDCCH DCI allocations from MAC - mDCI_ALLOC_t mdci_alloc[32]; - // MAX SIZE of an EPDCCH set is 16EREGs * 9REs/EREG * 8 PRB pairs = 2304 bits - uint8_t e[2304]; -} LTE_eNB_MPDCCH; - - -typedef struct { - /// \brief Hold the channel estimates in frequency domain based on SRS. - /// - first index: rx antenna id [0..nb_antennas_rx[ - /// - second index: ? [0..ofdm_symbol_size[ - int32_t **srs_ch_estimates; - /// \brief Hold the channel estimates in time domain based on SRS. - /// - first index: rx antenna id [0..nb_antennas_rx[ - /// - second index: ? [0..2*ofdm_symbol_size[ - int32_t **srs_ch_estimates_time; - /// \brief Holds the SRS for channel estimation at the RX. - /// - first index: rx antenna id [0..nb_antennas_rx[ - /// - second index: ? [0..ofdm_symbol_size[ - int32_t *srs; -} LTE_eNB_SRS; - -typedef struct { - /// \brief Holds the received data in the frequency domain for the allocated RBs in repeated format. - /// - first index: rx antenna id [0..nb_antennas_rx[ - /// - second index: ? [0..2*ofdm_symbol_size[ - int32_t **rxdataF_ext; - /// \brief Holds the received data in the frequency domain for the allocated RBs in normal format. - /// - first index: rx antenna id [0..nb_antennas_rx[ - /// - second index (definition from phy_init_lte_eNB()): ? [0..12*N_RB_UL*frame_parms->symbols_per_tti[ - int32_t **rxdataF_ext2; - /// \brief Hold the channel estimates in time domain based on DRS. - /// - first index: rx antenna id [0..nb_antennas_rx[ - /// - second index: ? [0..4*ofdm_symbol_size[ - int32_t **drs_ch_estimates_time; - /// \brief Hold the channel estimates in frequency domain based on DRS. - /// - first index: rx antenna id [0..nb_antennas_rx[ - /// - second index: ? [0..12*N_RB_UL*frame_parms->symbols_per_tti[ - int32_t **drs_ch_estimates; - /// \brief Holds the compensated signal. - /// - first index: rx antenna id [0..nb_antennas_rx[ - /// - second index: ? [0..12*N_RB_UL*frame_parms->symbols_per_tti[ - int32_t **rxdataF_comp; - /// \brief Magnitude of the UL channel estimates. Used for 2nd-bit level thresholds in LLR computation - /// - first index: rx antenna id [0..nb_antennas_rx[ - /// - second index: ? [0..12*N_RB_UL*frame_parms->symbols_per_tti[ - int32_t **ul_ch_mag; - /// \brief Magnitude of the UL channel estimates scaled for 3rd bit level thresholds in LLR computation - /// - first index: rx antenna id [0..nb_antennas_rx[ - /// - second index: ? [0..12*N_RB_UL*frame_parms->symbols_per_tti[ - int32_t **ul_ch_magb; - /// measured RX power based on DRS - int ulsch_power[2]; - /// \brief llr values. - /// - first index: ? [0..1179743] (hard coded) - int16_t *llr; -} LTE_eNB_PUSCH; - -typedef struct { - - /// \brief Holds the received data in the frequency domain. - /// - 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 - /// - third index: samples? [0..2*ofdm_symbol_size[ - int32_t **dl_ch_estimates_time[7]; -}LTE_UE_COMMON_PER_THREAD; - -typedef struct { - /// \brief Holds the transmit data in time domain. - /// For IFFT_FPGA this points to the same memory as PHY_vars->tx_vars[a].TX_DMA_BUFFER. - /// - first index: tx antenna [0..nb_antennas_tx[ - /// - second index: sample [0..FRAME_LENGTH_COMPLEX_SAMPLES[ - int32_t **txdata; - /// \brief Holds the transmit data in the frequency domain. - /// For IFFT_FPGA this points to the same memory as PHY_vars->rx_vars[a].RX_DMA_BUFFER. - /// - first index: tx antenna [0..nb_antennas_tx[ - /// - second index: sample [0..FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX[ - int32_t **txdataF; - - /// \brief Holds the received data in time domain. - /// Should point to the same memory as PHY_vars->rx_vars[a].RX_DMA_BUFFER. - /// - first index: rx antenna [0..nb_antennas_rx[ - /// - second index: sample [0..FRAME_LENGTH_COMPLEX_SAMPLES+2048[ - int32_t **rxdata; - - LTE_UE_COMMON_PER_THREAD common_vars_rx_data_per_thread[RX_NB_TH_MAX]; - - /// holds output of the sync correlator - int32_t *sync_corr; - /// estimated frequency offset (in radians) for all subcarriers - int32_t freq_offset; - /// eNb_id user is synched to - int32_t eNb_id; -} LTE_UE_COMMON; - -typedef struct { - /// \brief Received frequency-domain signal after extraction. - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..168*N_RB_DL[ - int32_t **rxdataF_ext; - /// \brief Received frequency-domain ue specific pilots. - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..12*N_RB_DL[ - int32_t **rxdataF_uespec_pilots; - /// \brief Received frequency-domain signal after extraction and channel compensation. - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..168*N_RB_DL[ - int32_t **rxdataF_comp0; - /// \brief Received frequency-domain signal after extraction and channel compensation for the second stream. For the SIC receiver we need to store the history of this for each harq process and round - /// - first index: ? [0..7] (hard coded) accessed via \c harq_pid - /// - second index: ? [0..7] (hard coded) accessed via \c round - /// - third index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - fourth index: ? [0..168*N_RB_DL[ - int32_t **rxdataF_comp1[8][8]; - /// \brief Downlink channel estimates extracted in PRBS. - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..168*N_RB_DL[ - int32_t **dl_ch_estimates_ext; - /// \brief Downlink cross-correlation of MIMO channel estimates (unquantized PMI) extracted in PRBS. For the SIC receiver we need to store the history of this for each harq process and round - /// - first index: ? [0..7] (hard coded) accessed via \c harq_pid - /// - second index: ? [0..7] (hard coded) accessed via \c round - /// - third index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - fourth index: ? [0..168*N_RB_DL[ - int32_t **dl_ch_rho_ext[8][8]; - /// \brief Downlink beamforming channel estimates in frequency domain. - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: samples? [0..symbols_per_tti*(ofdm_symbol_size+LTE_CE_FILTER_LENGTH)[ - int32_t **dl_bf_ch_estimates; - /// \brief Downlink beamforming channel estimates. - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..168*N_RB_DL[ - int32_t **dl_bf_ch_estimates_ext; - /// \brief Downlink cross-correlation of MIMO channel estimates (unquantized PMI) extracted in PRBS. - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..168*N_RB_DL[ - int32_t **dl_ch_rho2_ext; - /// \brief Downlink PMIs extracted in PRBS and grouped in subbands. - /// - first index: ressource block [0..N_RB_DL[ - uint8_t *pmi_ext; - /// \brief Magnitude of Downlink Channel first layer (16QAM level/First 64QAM level). - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..168*N_RB_DL[ - int32_t **dl_ch_mag0; - /// \brief Magnitude of Downlink Channel second layer (16QAM level/First 64QAM level). - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..168*N_RB_DL[ - int32_t **dl_ch_mag1[8][8]; - /// \brief Magnitude of Downlink Channel, first layer (2nd 64QAM level). - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..168*N_RB_DL[ - int32_t **dl_ch_magb0; - /// \brief Magnitude of Downlink Channel second layer (2nd 64QAM level). - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..168*N_RB_DL[ - int32_t **dl_ch_magb1[8][8]; - /// \brief Cross-correlation of two eNB signals. - /// - first index: rx antenna [0..nb_antennas_rx[ - /// - second index: symbol [0..] - int32_t **rho; - /// never used... always send dl_ch_rho_ext instead... - int32_t **rho_i; - /// \brief Pointers to llr vectors (2 TBs). - /// - first index: ? [0..1] (hard coded) - /// - second index: ? [0..1179743] (hard coded) - int16_t *llr[2]; - /// \f$\log_2(\max|H_i|^2)\f$ - int16_t log2_maxh; - /// \f$\log_2(\max|H_i|^2)\f$ //this is for TM3-4 layer1 channel compensation - int16_t log2_maxh0; - /// \f$\log_2(\max|H_i|^2)\f$ //this is for TM3-4 layer2 channel commpensation - int16_t log2_maxh1; - /// \brief LLR shifts for subband scaling. - /// - first index: ? [0..168*N_RB_DL[ - uint8_t *llr_shifts; - /// \brief Pointer to LLR shifts. - /// - first index: ? [0..168*N_RB_DL[ - uint8_t *llr_shifts_p; - /// \brief Pointers to llr vectors (128-bit alignment). - /// - first index: ? [0..0] (hard coded) - /// - second index: ? [0..] - int16_t **llr128; - /// \brief Pointers to llr vectors (128-bit alignment). - /// - first index: ? [0..0] (hard coded) - /// - second index: ? [0..] - int16_t **llr128_2ndstream; - //uint32_t *rb_alloc; - //uint8_t Qm[2]; - //MIMO_mode_t mimo_mode; - // llr offset per ofdm symbol - uint32_t llr_offset[14]; - // llr length per ofdm symbol - uint32_t llr_length[14]; -} LTE_UE_PDSCH; - -typedef struct { - /// \brief Received frequency-domain signal after extraction. - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..] - int32_t **rxdataF_ext; - /// \brief Received frequency-domain signal after extraction and channel compensation. - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..] - double **rxdataF_comp; - /// \brief Downlink channel estimates extracted in PRBS. - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..] - int32_t **dl_ch_estimates_ext; - /// \brief Downlink cross-correlation of MIMO channel estimates (unquantized PMI) extracted in PRBS. - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..] - double **dl_ch_rho_ext; - /// \brief Downlink PMIs extracted in PRBS and grouped in subbands. - /// - first index: ressource block [0..N_RB_DL[ - uint8_t *pmi_ext; - /// \brief Magnitude of Downlink Channel (16QAM level/First 64QAM level). - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..] - double **dl_ch_mag; - /// \brief Magnitude of Downlink Channel (2nd 64QAM level). - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..] - double **dl_ch_magb; - /// \brief Cross-correlation of two eNB signals. - /// - first index: rx antenna [0..nb_antennas_rx[ - /// - second index: ? [0..] - double **rho; - /// never used... always send dl_ch_rho_ext instead... - double **rho_i; - /// \brief Pointers to llr vectors (2 TBs). - /// - first index: ? [0..1] (hard coded) - /// - second index: ? [0..1179743] (hard coded) - int16_t *llr[2]; - /// \f$\log_2(\max|H_i|^2)\f$ - uint8_t log2_maxh; - /// \brief Pointers to llr vectors (128-bit alignment). - /// - first index: ? [0..0] (hard coded) - /// - second index: ? [0..] - int16_t **llr128; - //uint32_t *rb_alloc; - //uint8_t Qm[2]; - //MIMO_mode_t mimo_mode; -} LTE_UE_PDSCH_FLP; - -typedef struct { - /// \brief Pointers to extracted PDCCH symbols in frequency-domain. - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..168*N_RB_DL[ - int32_t **rxdataF_ext; - /// \brief Pointers to extracted and compensated PDCCH symbols in frequency-domain. - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..168*N_RB_DL[ - int32_t **rxdataF_comp; - /// \brief Pointers to extracted channel estimates of PDCCH symbols. - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..168*N_RB_DL[ - int32_t **dl_ch_estimates_ext; - /// \brief Pointers to channel cross-correlation vectors for multi-eNB detection. - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..168*N_RB_DL[ - int32_t **dl_ch_rho_ext; - /// \brief Pointers to channel cross-correlation vectors for multi-eNB detection. - /// - first index: rx antenna [0..nb_antennas_rx[ - /// - second index: ? [0..] - int32_t **rho; - /// \brief Pointer to llrs, 4-bit resolution. - /// - first index: ? [0..48*N_RB_DL[ - uint16_t *llr; - /// \brief Pointer to llrs, 16-bit resolution. - /// - first index: ? [0..96*N_RB_DL[ - uint16_t *llr16; - /// \brief \f$\overline{w}\f$ from 36-211. - /// - first index: ? [0..48*N_RB_DL[ - uint16_t *wbar; - /// \brief PDCCH/DCI e-sequence (input to rate matching). - /// - first index: ? [0..96*N_RB_DL[ - int8_t *e_rx; - /// number of PDCCH symbols in current subframe - uint8_t num_pdcch_symbols; - /// Allocated CRNTI for UE - uint16_t crnti; - /// 1: the allocated crnti is Temporary C-RNTI / 0: otherwise - uint8_t crnti_is_temporary; - /// Total number of PDU errors (diagnostic mode) - uint32_t dci_errors; - /// Total number of PDU received - uint32_t dci_received; - /// Total number of DCI False detection (diagnostic mode) - uint32_t dci_false; - /// Total number of DCI missed (diagnostic mode) - uint32_t dci_missed; - /// nCCE for PUCCH per subframe - uint8_t nCCE[10]; - //Check for specific DCIFormat and AgregationLevel - uint8_t dciFormat; - uint8_t agregationLevel; -} LTE_UE_PDCCH; - -#define PBCH_A 24 -typedef struct { - uint8_t pbch_d[96+(3*(16+PBCH_A))]; - uint8_t pbch_w[3*3*(16+PBCH_A)]; - uint8_t pbch_e[1920]; -} LTE_eNB_PBCH; - -typedef struct { - /// \brief Pointers to extracted PBCH symbols in frequency-domain. - /// - first index: rx antenna [0..nb_antennas_rx[ - /// - second index: ? [0..287] (hard coded) - int32_t **rxdataF_ext; - /// \brief Pointers to extracted and compensated PBCH symbols in frequency-domain. - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..287] (hard coded) - int32_t **rxdataF_comp; - /// \brief Pointers to downlink channel estimates in frequency-domain extracted in PRBS. - /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx - /// - second index: ? [0..287] (hard coded) - int32_t **dl_ch_estimates_ext; - /// \brief Pointer to PBCH llrs. - /// - first index: ? [0..1919] (hard coded) - int8_t *llr; - /// \brief Pointer to PBCH decoded output. - /// - first index: ? [0..63] (hard coded) - uint8_t *decoded_output; - /// \brief Total number of PDU errors. - uint32_t pdu_errors; - /// \brief Total number of PDU errors 128 frames ago. - uint32_t pdu_errors_last; - /// \brief Total number of consecutive PDU errors. - uint32_t pdu_errors_conseq; - /// \brief FER (in percent) . - uint32_t pdu_fer; -} LTE_UE_PBCH; - -typedef struct { - int16_t amp; - int16_t *prachF; - int16_t *prach; -} LTE_UE_PRACH; - -#define MAX_NUM_RX_PRACH_PREAMBLES 4 - -typedef struct { - /// \brief ?. - /// first index: ? [0..1023] (hard coded) - int16_t *prachF; - /// \brief ?. - /// first index: ce_level [0..3] - /// second index: rx antenna [0..63] (hard coded) \note Hard coded array size indexed by \c nb_antennas_rx. - /// third index: frequency-domain sample [0..ofdm_symbol_size*12[ - int16_t **rxsigF[4]; - /// \brief local buffer to compute prach_ifft (necessary in case of multiple CCs) - /// first index: ce_level [0..3] (hard coded) \note Hard coded array size indexed by \c nb_antennas_rx. - /// second index: ? [0..63] (hard coded) - /// third index: ? [0..63] (hard coded) - int32_t **prach_ifft[4]; - - /// repetition number -#ifdef Rel14 - /// indicator of first frame in a group of PRACH repetitions - int first_frame[4]; - /// current repetition for each CE level - int repetition_number[4]; -#endif -} LTE_eNB_PRACH; - -typedef struct { - /// Preamble index for PRACH (0-63) - uint8_t ra_PreambleIndex; - /// RACH MaskIndex - uint8_t ra_RACH_MaskIndex; - /// Target received power at eNB (-120 ... -82 dBm) - int8_t ra_PREAMBLE_RECEIVED_TARGET_POWER; - /// PRACH index for TDD (0 ... 6) depending on TDD configuration and prachConfigIndex - uint8_t ra_TDD_map_index; - /// Corresponding RA-RNTI for UL-grant - uint16_t ra_RNTI; - /// Pointer to Msg3 payload for UL-grant - uint8_t *Msg3; -} PRACH_RESOURCES_t; - - -typedef struct { - /// Downlink Power offset field - uint8_t dl_pow_off; - ///Subband resource allocation field - uint8_t rballoc_sub[50]; - ///Total number of PRBs indicator - uint8_t pre_nb_available_rbs; -} MU_MIMO_mode; - -typedef enum { - NOT_SYNCHED=0, - PRACH=1, - RA_RESPONSE=2, - PUSCH=3, - RESYNCH=4 -} UE_MODE_t; - - - -typedef enum {SF_DL, SF_UL, SF_S} lte_subframe_t; - -typedef enum { - /// do not detect any DCIs in the current subframe - NO_DCI = 0x0, - /// detect only downlink DCIs in the current subframe - UL_DCI = 0x1, - /// detect only uplink DCIs in the current subframe - DL_DCI = 0x2, - /// detect both uplink and downlink DCIs in the current subframe - UL_DL_DCI = 0x3} dci_detect_mode_t; - #endif diff --git a/openair1/PHY/impl_defs_top.h b/openair1/PHY/impl_defs_top.h index 0b0f5b8ddb..93a59861e5 100644 --- a/openair1/PHY/impl_defs_top.h +++ b/openair1/PHY/impl_defs_top.h @@ -287,7 +287,7 @@ typedef struct { /// Measurement Variables -#define NUMBER_OF_SUBBANDS_MAX 13 +//#define NUMBER_OF_SUBBANDS_MAX 13 #define NUMBER_OF_HARQ_PID_MAX 8 #define MAX_FRAME_NUMBER 0x400 @@ -302,9 +302,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) @@ -321,9 +321,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_extern.h b/openair1/PHY/phy_extern.h index b19017613e..8bf3b49a3c 100644 --- a/openair1/PHY/phy_extern.h +++ b/openair1/PHY/phy_extern.h @@ -70,7 +70,6 @@ extern char mode_string[4][20]; -extern unsigned char NB_RU; #ifndef OPENAIR2 extern unsigned char NB_eNB_INST; diff --git a/openair1/PHY/phy_extern_ue.h b/openair1/PHY/phy_extern_ue.h index 98dbfb886e..964c9977b3 100644 --- a/openair1/PHY/phy_extern_ue.h +++ b/openair1/PHY/phy_extern_ue.h @@ -65,7 +65,6 @@ extern int flagMag; extern char mode_string[4][20]; -extern unsigned char NB_RU; #ifndef OPENAIR2 extern unsigned char NB_eNB_INST; diff --git a/openair1/PHY/phy_vars.h b/openair1/PHY/phy_vars.h index 29cba545e0..edd54783ff 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" @@ -67,7 +66,6 @@ char mode_string[4][20] = {"NOT SYNCHED","PRACH","RAR","PUSCH"}; #include "SIMULATION/ETH_TRANSPORT/vars.h" -unsigned char NB_RU=0; #ifndef OPENAIR2 unsigned char NB_eNB_INST=0; diff --git a/openair1/PHY/phy_vars_ue.h b/openair1/PHY/phy_vars_ue.h index c323d1eade..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 @@ -61,7 +60,6 @@ char mode_string[4][20] = {"NOT SYNCHED","PRACH","RAR","PUSCH"}; #include "SIMULATION/ETH_TRANSPORT/vars.h" -unsigned char NB_RU=0; #ifndef OPENAIR2 unsigned char NB_eNB_INST=0; diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c index 33096c1126..ad72c3d9f5 100644 --- a/openair1/SCHED/fapi_l1.c +++ b/openair1/SCHED/fapi_l1.c @@ -35,6 +35,7 @@ #include "SCHED/sched_eNB.h" #include "nfapi_interface.h" +#include "nfapi_pnf_interface.h" #include "fapi_l1.h" int oai_nfapi_dl_config_req(nfapi_dl_config_request_t *dl_config_req); @@ -62,7 +63,7 @@ void handle_nfapi_dci_dl_pdu(PHY_VARS_eNB *eNB, LOG_D(PHY,"Frame %d, Subframe %d: DCI processing - populated pdcch_vars->dci_alloc[%d] proc:subframe_tx:%d idx:%d pdcch_vars->num_dci:%d\n",proc->frame_tx,proc->subframe_tx, pdcch_vars->num_dci, proc->subframe_tx, idx, pdcch_vars->num_dci); } -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) void handle_nfapi_mpdcch_pdu(PHY_VARS_eNB *eNB, eNB_rxtx_proc_t *proc, @@ -127,7 +128,7 @@ void handle_nfapi_bch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, // adjust transmit amplitude here based on NFAPI info } -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) extern uint32_t localRIV2alloc_LUT6[32]; extern uint32_t localRIV2alloc_LUT25[512]; extern uint32_t localRIV2alloc_LUT50_0[1600]; @@ -144,10 +145,10 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_pr uint8_t *sdu) { nfapi_dl_config_dlsch_pdu_rel8_t *rel8 = &dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8; -#ifndef Rel8 +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) nfapi_dl_config_dlsch_pdu_rel10_t *rel10 = &dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10; #endif -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) nfapi_dl_config_dlsch_pdu_rel13_t *rel13 = &dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13; #endif LTE_eNB_DLSCH_t *dlsch0=NULL,*dlsch1=NULL; @@ -156,31 +157,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]; -#ifdef Rel14 - if ((rel13->pdsch_payload_type < 2) && (rel13->ue_type>0)) dlsch0->harq_ids[subframe] = 0; +#if (RRC_VERSION >= MAKE_VERSION(13, 0, 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]; @@ -189,11 +194,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); } @@ -201,10 +214,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; @@ -216,8 +236,12 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_pr rel8->rnti,UE_id,harq_pid); } -#ifdef Rel14 +#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; @@ -225,7 +249,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) { @@ -252,7 +280,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; @@ -267,12 +299,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 -#ifdef Rel14 +#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 ); @@ -305,6 +346,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}; @@ -529,8 +574,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 @@ -539,14 +583,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 for 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); @@ -555,7 +599,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); } @@ -563,7 +607,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); @@ -624,7 +668,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]; @@ -655,13 +698,19 @@ void schedule_response(Sched_Rsp_t *Sched_INFO) eNB->pdcch_vars[subframe&1].num_dci = 0; eNB->phich_vars[subframe&1].num_hi = 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, - NFAPI_SFNSF2SFN(UL_req->sfn_sf),NFAPI_SFNSF2SF(UL_req->sfn_sf),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; @@ -774,12 +823,10 @@ void schedule_response(Sched_Rsp_t *Sched_INFO) case NFAPI_DL_CONFIG_EPDCCH_DL_PDU_TYPE: // handle_nfapi_epdcch_pdu(eNB,dl_config_pdu); break; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) case NFAPI_DL_CONFIG_MPDCCH_PDU_TYPE: -#ifdef Rel14 handle_nfapi_mpdcch_pdu(eNB,proc,dl_config_pdu); eNB->mpdcch_vars[subframe&1].num_dci++; -#endif break; #endif } @@ -844,3 +891,25 @@ void schedule_response(Sched_Rsp_t *Sched_INFO) } } } + +/*Dummy functions*/ + +int memcpy_dl_config_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_dl_config_request_t* req) +{ + return 0; +} + +int memcpy_ul_config_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_ul_config_request_t* req) +{ + return 0; +} + +int memcpy_hi_dci0_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_hi_dci0_request_t* req) +{ + return 0; +} + +int memcpy_tx_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_tx_request_t* req) +{ + return 0; +} diff --git a/openair1/SCHED/phy_procedures_lte_common.c b/openair1/SCHED/phy_procedures_lte_common.c index 81679f199c..4871499af8 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 233d4f06ef..a6a44c66e2 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; @@ -138,7 +136,7 @@ lte_subframe_t get_subframe_direction(uint8_t Mod_id,uint8_t CC_id,uint8_t subfr void pmch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) { -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) MCH_PDU *mch_pduP=NULL; // uint8_t sync_area=255; #endif @@ -154,7 +152,7 @@ void pmch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) { subframe<<1,1); -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) // if mcch is active, send regardless of the node type: eNB or RN // when mcch is active, MAC sched does not allow MCCH and MTCH multiplexing /* @@ -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 @@ -544,11 +553,8 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB, - // num_pdcch_symbols = DCI_pdu->num_pdcch_symbols; num_pdcch_symbols = eNB->pdcch_vars[subframe&1].num_pdcch_symbols; num_dci = eNB->pdcch_vars[subframe&1].num_dci; - // LOG_D(PHY,"num_pdcch_symbols %"PRIu8",(dci common %"PRIu8", dci uespec %"PRIu8"\n",num_pdcch_symbols, - // DCI_pdu->Num_common_dci,DCI_pdu->Num_ue_spec_dci); LOG_D(PHY,"num_pdcch_symbols %"PRIu8",number dci %"PRIu8"\n",num_pdcch_symbols, num_dci); VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_DCI_INFO,num_pdcch_symbols); @@ -558,7 +564,6 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB, if (num_dci > 0) LOG_D(PHY,"[eNB %"PRIu8"] Frame %d, subframe %d: Calling generate_dci_top (pdcch) (num_dci %"PRIu8") num_pdcch_symbols:%d\n",eNB->Mod_id,frame, subframe, num_dci, num_pdcch_symbols); - //LOG_D(PHY,"Before generate_dci_top num_pdcch_symbols:%d num_dci:%d dci_alloc:dci_length:%d\n", num_pdcch_symbols, num_dci, eNB->pdcch_vars[subframe&1].dci_alloc[0].dci_length); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_PDCCH_TX,1); @@ -586,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) @@ -614,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; @@ -631,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); } @@ -686,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; @@ -710,7 +723,6 @@ void uci_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) int i; LTE_eNB_UCI *uci; uint16_t tdd_multiplexing_mask=0; - int res; for (i=0;iN_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: @@ -827,13 +840,44 @@ void uci_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) frame,subframe, pucch_b0b1[0][0],metric[0]); - uci->stat = 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) { #ifdef DEBUG_PHY_PROC @@ -880,25 +924,28 @@ 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]; + uci->stat = metric[0]; fill_uci_harq_indication(eNB,uci,frame,subframe,harq_ack,2,0xffff); // special_bundling mode } else if ((uci->tdd_bundling == 0) && (uci->num_pucch_resources==2)){ // multiplexing + no SR, implement Table 10.1.3-5 (Rel14) for multiplexing with M=2 @@ -940,7 +987,7 @@ void uci_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) } } } - uci->stat = max(metric[0],metric[1]); + uci->stat = max(metric[0],metric[1]); fill_uci_harq_indication(eNB,uci,frame,subframe,harq_ack,1,tdd_multiplexing_mask); // multiplexing mode } //else if ((uci->tdd_bundling == 0) && (res==2)) else if ((uci->tdd_bundling == 0) && (uci->num_pucch_resources==3)){ // multiplexing + no SR, implement Table 10.1.3-6 (Rel14) for multiplexing with M=3 @@ -1159,13 +1206,14 @@ void uci_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) } } } - uci->stat = max_metric; + uci->stat = max_metric; fill_uci_harq_indication(eNB,uci,frame,subframe,harq_ack,1,tdd_multiplexing_mask); // multiplexing mode } // else if ((uci->tdd_bundling == 0) && (res==4)) else { // bundling harq_ack[0] = pucch_b0b1[0][0]; harq_ack[1] = pucch_b0b1[0][1]; - uci->stat = metric[0]; + 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 } @@ -1211,8 +1259,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; - if (fp->frame_type == FDD) harq_pid = ((10*frame) + subframe)&7; - else harq_pid = subframe%10; + harq_pid = subframe2harq_pid(&eNB->frame_parms,frame,subframe); for (i=0; iulsch[i]; @@ -1235,84 +1282,85 @@ void pusch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) int rb2 = rb+ulsch_harq->first_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, @@ -1320,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 @@ -1376,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, @@ -1452,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]); } } @@ -1516,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; @@ -1538,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"); @@ -1548,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]; @@ -1573,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"); @@ -1608,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, @@ -1618,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]; @@ -1667,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]; @@ -1707,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 } } @@ -1727,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. @@ -1783,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); @@ -1805,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) { @@ -1834,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 @@ -1896,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 772dff3bfd..0c45b9ad80 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" @@ -55,7 +54,7 @@ extern uint32_t nfapi_mode; extern int oai_nfapi_rach_ind(nfapi_rach_indication_t *rach_ind); void prach_procedures(PHY_VARS_eNB *eNB -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) , int br_flag #endif @@ -64,7 +63,7 @@ void prach_procedures(PHY_VARS_eNB *eNB uint16_t i; int frame,subframe; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (br_flag==1) { subframe = eNB->proc.subframe_prach_br; frame = eNB->proc.frame_prach_br; @@ -94,7 +93,7 @@ void prach_procedures(PHY_VARS_eNB *eNB ru=eNB->RU_list[i]; for (ru_aa=0,aa=0;ru_aanb_rx;ru_aa++,aa++) { eNB->prach_vars.rxsigF[0][aa] = eNB->RU_list[i]->prach_rxsigF[ru_aa]; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) int ce_level; if (br_flag==1) @@ -110,7 +109,7 @@ void prach_procedures(PHY_VARS_eNB *eNB &max_preamble_delay[0], frame, 0 -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,br_flag #endif ); @@ -122,17 +121,14 @@ void prach_procedures(PHY_VARS_eNB *eNB max_preamble_delay[0], eNB->prach_energy_counter); -#ifdef Rel14 +#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 754cbc4cab..c27ce338a5 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" @@ -64,7 +63,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; @@ -111,7 +109,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) || @@ -128,7 +126,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); } @@ -152,6 +150,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; @@ -249,7 +248,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; @@ -344,25 +342,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)), @@ -410,11 +410,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 } } } @@ -460,6 +455,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); @@ -509,6 +505,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 fb493d395a..a3e717c3ba 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) || defined(OAI_ADRV9371_ZC706) @@ -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; @@ -722,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, @@ -732,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 @@ -1200,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) || defined(OAI_ADRV9371_ZC706) @@ -1209,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) || defined(OAI_ADRV9371_ZC706)//this is the EXPRESS MIMO case @@ -1232,50 +1249,27 @@ 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 +<<<<<<< HEAD //#if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR) || defined(OAI_ADRV9371_ZC706) +======= +>>>>>>> origin/develop 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) @@ -1298,7 +1292,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), @@ -1307,7 +1301,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) || defined(OAI_ADRV9371_ZC706) apply_7_5_kHz(ue,dummy_tx_buffer,0); @@ -1323,23 +1317,23 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt for (k=ulsch_start,l=0; ksamples_per_tti*LTE_NUMBER_OF_SUBFRAMES_PER_FRAME,ulsch_start+frame_parms->samples_per_tti); k++,l++) { - ((short*)ue->common_vars.txdata[aa])[2*k] = ((short*)dummy_tx_buffer)[2*l]<<4; - ((short*)ue->common_vars.txdata[aa])[2*k+1] = ((short*)dummy_tx_buffer)[2*l+1]<<4; + ((short*)ue->common_vars.txdata[aa])[2*k] = ((short*)dummy_tx_buffer)[2*l]; + ((short*)ue->common_vars.txdata[aa])[2*k+1] = ((short*)dummy_tx_buffer)[2*l+1]; } for (k=0; kcommon_vars.txdata[aa])[2*k] = ((short*)dummy_tx_buffer)[2*l]<<4; - ((short*)ue->common_vars.txdata[aa])[2*k+1] = ((short*)dummy_tx_buffer)[2*l+1]<<4; + ((short*)ue->common_vars.txdata[aa])[2*k] = ((short*)dummy_tx_buffer)[2*l]; + ((short*)ue->common_vars.txdata[aa])[2*k+1] = ((short*)dummy_tx_buffer)[2*l+1]; } #if defined(EXMIMO) // 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 @@ -1349,15 +1343,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); @@ -1367,7 +1361,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); @@ -1454,8 +1448,6 @@ void ue_prach_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin ue->tx_power_dBm[subframe_tx], dB_fixed(prach_power), ue->prach_vars[eNB_id]->amp); - - if (ue->mac_enabled==1){ Msg1_transmitted(ue->Mod_id, @@ -1646,7 +1638,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"); @@ -1659,19 +1651,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", @@ -1693,7 +1683,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 @@ -1715,9 +1705,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, @@ -1727,14 +1717,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 @@ -1754,6 +1742,7 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB if (ue->ulsch[eNB_id]->harq_processes[harq_pid]->round==0) { //if (ue->ulsch[eNB_id]->harq_processes[harq_pid]->calibration_flag == 0) { access_mode=SCHEDULED_ACCESS; + ue_get_sdu(Mod_id, CC_id, frame_tx, @@ -1767,16 +1756,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 +1773,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 +1787,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 +1821,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, @@ -1857,9 +1843,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 } @@ -2173,6 +2160,7 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin case pucch_format1a: case pucch_format1b: { +<<<<<<< HEAD if (ue->mac_enabled == 1) { Po_PUCCH = pucch_power_cntl(ue,proc,subframe_tx,eNB_id,format); } @@ -2187,15 +2175,29 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin ue->tx_power_max_dBm, ue->frame_parms.N_RB_UL, 1); +======= + 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); +>>>>>>> origin/develop #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", @@ -2236,9 +2238,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), @@ -2249,7 +2251,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, @@ -2285,11 +2287,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, @@ -2297,7 +2297,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, @@ -2333,6 +2333,27 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin } +void phy_procedures_UE_SL_TX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc) { + + int subframe_tx = proc->subframe_tx; + int frame_tx = proc->frame_tx; + SLSS_t *slss; + SLDCH_t *sldch; + SLSCH_t *slsch; + + LOG_D(PHY,"****** start Sidelink TX-Chain for AbsSubframe %d.%d ******\n", frame_tx, subframe_tx); + + // check for SLBCH/SLSS + if ((slss = ue_get_slss(ue->Mod_id,ue->CC_id,frame_tx,subframe_tx)) != NULL) generate_slss(ue,slss,frame_tx,subframe_tx); + + // check for SLDCH + if ((sldch = ue_get_sldch(ue->Mod_id,ue->CC_id,frame_tx,subframe_tx)) != NULL) generate_sldch(ue,sldch,frame_tx,subframe_tx); + + // check for SLSCH + if ((slsch = ue_get_slsch(ue->Mod_id,ue->CC_id,frame_tx,subframe_tx)) != NULL) generate_slsch(ue,slsch,frame_tx,subframe_tx); + +} + void phy_procedures_UE_TX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t abstraction_flag,runmode_t mode) { @@ -2349,14 +2370,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; @@ -2367,30 +2388,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) && @@ -2447,9 +2470,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) @@ -2466,8 +2489,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 } @@ -2502,7 +2525,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)), @@ -2512,7 +2535,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)) { @@ -2642,6 +2664,9 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin ue->UE_mode[eNB_id]==NOT_SYNCHED ? 1 : 0); } + // if this is the first PBCH after initial synchronization, make L1 state = PRACH + if (ue->UE_mode[eNB_id]==NOT_SYNCHED) ue->UE_mode[eNB_id] = PRACH; + if (first_run) { first_run = 0; @@ -2691,9 +2716,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, @@ -2703,7 +2728,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 { @@ -2714,15 +2739,15 @@ 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); */ @@ -2740,15 +2765,17 @@ 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); } + + int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t abstraction_flag) { @@ -2761,10 +2788,11 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint uint8_t next1_thread_id = ue->current_thread_id[subframe_rx]== (RX_NB_TH-1) ? 0:(ue->current_thread_id[subframe_rx]+1); uint8_t next2_thread_id = next1_thread_id== (RX_NB_TH-1) ? 0:(next1_thread_id+1); + 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, @@ -2891,17 +2919,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; @@ -2916,9 +2944,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, @@ -2947,9 +2975,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, @@ -2979,9 +3007,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, @@ -3002,18 +3030,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]); @@ -3031,37 +3059,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]); @@ -3080,28 +3107,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); } @@ -3112,7 +3139,7 @@ void ue_pmch_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc,int eNB_id,int abs int subframe_rx = proc->subframe_rx; int frame_rx = proc->frame_rx; int pmch_mcs=-1; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) int CC_id = ue->CC_id; #endif uint8_t sync_area=255; @@ -3125,7 +3152,7 @@ void ue_pmch_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc,int eNB_id,int abs LOG_D(PHY,"[UE %d] Frame %d, subframe %d: Querying for PMCH demodulation\n", ue->Mod_id,(subframe_rx==9?-1:0)+frame_rx,subframe_rx); -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) pmch_mcs = ue_query_mch(ue->Mod_id, CC_id, @@ -3203,20 +3230,20 @@ 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) // mac_xface->macphy_exit("Why are we exiting here?"); } else { // decoding successful -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) if (mcch_active == 1) { ue_send_mch_sdu(ue->Mod_id, @@ -3239,7 +3266,7 @@ void ue_pmch_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc,int eNB_id,int abs } -#endif // Rel10 || Rel14 +#endif // #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) } // decoding sucessful } // pmch_mcs>=0 } // is_pmch_subframe=true @@ -3340,12 +3367,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, @@ -3358,14 +3386,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) @@ -3559,9 +3587,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, @@ -3569,24 +3597,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, @@ -3598,21 +3624,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 @@ -3625,9 +3644,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, @@ -3635,23 +3654,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], @@ -3664,21 +3681,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)); } @@ -3716,7 +3726,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); @@ -3724,7 +3734,7 @@ 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) { @@ -3748,7 +3758,7 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue, ue->dlsch_SI[eNB_id]->harq_processes[0]->TBS>>3); break; case P_PDSCH: - ue_decode_p(ue->Mod_id, + ue_decode_p(ue->Mod_id, CC_id, frame_rx, eNB_id, @@ -3817,7 +3827,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, @@ -3836,7 +3846,7 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue, ue->measurements.wideband_cqi_tot[eNB_id]); } -#endif +LOG_DEBUG_END } @@ -3922,9 +3932,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 /* @@ -3949,9 +3959,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, @@ -3960,9 +3970,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 @@ -4015,15 +4025,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 @@ -4042,9 +4048,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; @@ -4114,14 +4120,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) { @@ -4156,23 +4158,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; @@ -4191,10 +4193,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 @@ -4268,9 +4270,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, @@ -4303,9 +4305,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, @@ -4313,9 +4315,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 @@ -4334,44 +4336,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; @@ -4381,22 +4371,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) @@ -4404,13 +4388,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, @@ -4471,20 +4455,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 @@ -4497,21 +4476,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, @@ -4573,15 +4547,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; @@ -4641,21 +4610,22 @@ 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) { + + +} + int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id, uint8_t abstraction_flag,uint8_t do_pdcch_flag,runmode_t mode) { @@ -4670,23 +4640,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; @@ -4705,10 +4675,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; @@ -4742,9 +4712,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, @@ -4753,9 +4723,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); @@ -4796,20 +4766,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); @@ -4879,9 +4845,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, @@ -4890,9 +4856,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); @@ -4911,15 +4877,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); @@ -4934,9 +4895,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, @@ -4948,10 +4909,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, @@ -4961,44 +4922,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)) { @@ -5103,29 +5058,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); @@ -5137,9 +5088,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 @@ -5147,7 +5095,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; @@ -5158,9 +5106,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 { @@ -5168,19 +5117,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; } @@ -5204,7 +5149,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); } @@ -5246,9 +5191,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/SCHED_UE/pusch_pc.c b/openair1/SCHED_UE/pusch_pc.c index 588720f18c..fa38d42c60 100644 --- a/openair1/SCHED_UE/pusch_pc.c +++ b/openair1/SCHED_UE/pusch_pc.c @@ -37,6 +37,8 @@ #include "PHY/phy_extern_ue.h" #include "PHY/LTE_ESTIMATION/lte_estimation.h" +extern uint8_t nfapi_mode; + int16_t get_hundred_times_delta_IF(PHY_VARS_UE *ue,uint8_t eNB_id,uint8_t harq_pid) { @@ -112,7 +114,7 @@ void pusch_power_cntl(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_ else if (ue->ulsch[eNB_id]->PHR > 40) ue->ulsch[eNB_id]->PHR = 40; - LOG_D(PHY,"[UE %d][PUSCH %d] AbsSubframe %d.%d: nb_rb: %d, Po_PUSCH %d dBm : tx power %d, Po_NOMINAL_PUSCH %d,log10(NPRB) %f,PHR %d, PL %d, alpha*PL %f,delta_IF %f,f_pusch %d\n", + LOG_D(PHY,"[UE %d][PUSCH %d] AbsSubframe %d.%d: nb_rb: %d, Po_PUSCH %d dBm : tx power max %d , Po_NOMINAL_PUSCH %d,log10(NPRB) %f,PHR %d, PL %d, alpha*PL %f,delta_IF %f,f_pusch %d\n", ue->Mod_id,harq_pid,proc->frame_tx,proc->subframe_tx,nb_rb, ue->ulsch[eNB_id]->Po_PUSCH, ue->tx_power_max_dBm, @@ -129,8 +131,8 @@ void pusch_power_cntl(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_ int8_t get_PHR(uint8_t Mod_id, uint8_t CC_id,uint8_t eNB_index) { - - return PHY_vars_UE_g[Mod_id][CC_id]->ulsch[eNB_index]->PHR; + if(nfapi_mode!=3) + return PHY_vars_UE_g[Mod_id][CC_id]->ulsch[eNB_index]->PHR; + else + return 40; // For nfapi_mode=3 consider ideal conditions } - - diff --git a/openair1/SCHED_UE/sched_UE.h b/openair1/SCHED_UE/sched_UE.h index 244d6789d2..32702b1148 100644 --- a/openair1/SCHED_UE/sched_UE.h +++ b/openair1/SCHED_UE/sched_UE.h @@ -51,6 +51,19 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,UE_rxtx_proc_t *proc,uint8_t @param phy_vars_rn pointer to RN variables */ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t abstraction_flag,uint8_t do_pdcch_flag,runmode_t mode); + +/*! \brief Scheduling for UE Sidelink RX procedures in normal subframes. + @param ue Pointer to UE variables on which to act + @param proc Pointer to RXn_TXnp4 proc information +*/ +void phy_procedures_UE_SL_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc); + +/*! \brief Scheduling for UE Sidelink TX procedures in normal subframes. + @param ue Pointer to UE variables on which to act + @param proc Pointer to RXn_TXnp4 proc information +*/ +void phy_procedures_UE_SL_TX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc); + int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id, uint8_t abstraction_flag,uint8_t do_pdcch_flag,runmode_t mode); #ifdef UE_SLOT_PARALLELISATION diff --git a/openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c b/openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c index 1ba724976f..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(EMU, "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(EMU, "[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, 4) < 0) { - LOG_E(EMU, + multicast_if, strlen(multicast_if)) < 0) { + LOG_E(PHY, "[MULTICAST] ERROR : setsockopt:SO_BINDTODEVICE on interface %s, exiting ...\n", multicast_if); - LOG_E(EMU, + 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(EMU, + 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(EMU, "[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(EMU, "[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(EMU, "[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(EMU, "[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(EMU, "[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(EMU, "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(EMU, "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_EMU - LOG_D(EMU, "Multicast Normal read\n"); -#endif multicast_link_read(); } else { /* Timeout */ - LOG_I(EMU, "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(EMU, "[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(EMU, "[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(EMU, "[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(EMU, "[MULTICAST LINK] Thread detached\n"); + LOG_I(PHY, "[MULTICAST LINK] Thread detached\n"); } #endif diff --git a/openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c b/openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c index b90961a1c0..230eeac726 100644 --- a/openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c +++ b/openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c @@ -107,9 +107,7 @@ int netlink_init(void) if (nas_sock_fd[i] == -1) { printf("[NETLINK] Error opening socket %d (%d:%s)\n",nas_sock_fd[i],errno, strerror(errno)); -#if defined(LINK_ENB_PDCP_TO_IP_DRIVER) exit(1); -#endif } printf("[NETLINK]Opened socket with fd %d\n",nas_sock_fd[i]); 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 dc86e76113..586193484d 100644 --- a/openair1/SIMULATION/LTE_PHY/dummy_functions.c +++ b/openair1/SIMULATION/LTE_PHY/dummy_functions.c @@ -38,6 +38,14 @@ void ue_send_sdu(module_id_t module_idP, uint8_t CC_id, frame_t frame, sub_frame_t subframe, uint8_t * sdu, uint16_t sdu_len, uint8_t CH_index){} +SLSS_t *ue_get_slss(module_id_t module_idP, int CC_id,frame_t frameP, sub_frame_t subframe) {return(NULL);} + +SLDCH_t *ue_get_sldch(module_id_t module_idP, int CC_id,frame_t frameP, sub_frame_t subframe) {return(NULL);} + +SLSCH_t *ue_get_slsch(module_id_t module_idP, int CC_id,frame_t frameP, sub_frame_t subframe) {return(NULL);} + +void multicast_link_write_sock(int groupP, char *dataP, uint32_t sizeP) {} + uint16_t ue_process_rar(const module_id_t module_idP, const int CC_id, @@ -52,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/adc.c b/openair1/SIMULATION/RF/adc.c index 3bf70a203a..e424131c6f 100644 --- a/openair1/SIMULATION/RF/adc.c +++ b/openair1/SIMULATION/RF/adc.c @@ -38,12 +38,7 @@ void adc(double *r_re[2], for (aa=0; aa 30000) { - //("Adc outputs %d %e %d \n",i,((short *)output[0])[((i+output_offset)<<1)], ((i+output_offset)<<1) ); - } } - //printf("Adc outputs %d %e %d \n",i,((short *)output[0])[((i+output_offset)<<1)], ((i+output_offset)<<1) ); } } diff --git a/openair1/SIMULATION/RF/dac.c b/openair1/SIMULATION/RF/dac.c index b09bd20374..15fdaa8c01 100644 --- a/openair1/SIMULATION/RF/dac.c +++ b/openair1/SIMULATION/RF/dac.c @@ -26,7 +26,7 @@ #include "rf.h" void dac(double *s_re[2], double *s_im[2], - uint32_t **input, + int32_t **input, uint32_t input_offset, uint32_t nb_tx_antennas, uint32_t length, @@ -76,7 +76,7 @@ void dac(double *s_re[2], double dac_fixed_gain(double *s_re[2], double *s_im[2], - uint32_t **input, + int32_t **input, uint32_t input_offset, uint32_t nb_tx_antennas, uint32_t length, 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/RF/rf.h b/openair1/SIMULATION/RF/rf.h index 65055bc71a..d37fa3ed48 100644 --- a/openair1/SIMULATION/RF/rf.h +++ b/openair1/SIMULATION/RF/rf.h @@ -69,14 +69,14 @@ void adc(double *r_re[2], double *r_im[2], unsigned int input_offset, unsigned int output_offset, - int **output, + int32_t **output, unsigned int nb_rx_antennas, unsigned int length, unsigned char B); void dac(double *s_re[2], double *s_im[2], - unsigned int **input, + int32_t **input, unsigned int input_offset, unsigned int nb_tx_antennas, unsigned int length, @@ -87,7 +87,7 @@ void dac(double *s_re[2], double dac_fixed_gain(double *s_re[2], double *s_im[2], - unsigned int **input, + int32_t **input, unsigned int input_offset, unsigned int nb_tx_antennas, unsigned int length, diff --git a/openair1/SIMULATION/TOOLS/channel_sim.c b/openair1/SIMULATION/TOOLS/channel_sim.c new file mode 100644 index 0000000000..d6d63bfc6c --- /dev/null +++ b/openair1/SIMULATION/TOOLS/channel_sim.c @@ -0,0 +1,482 @@ +/* + * 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 +#include +#include +#include + +#include "SIMULATION/TOOLS/sim.h" +#include "SIMULATION/RF/rf.h" +#include "PHY/types.h" +#include "PHY/defs_eNB.h" +#include "PHY/phy_extern.h" +#include "PHY/phy_extern_ue.h" + +#include "LAYER2/MAC/mac.h" +#include "LAYER2/MAC/mac_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" +#include "UTIL/OPT/opt.h" // to test OPT + +#include "UTIL/FIFO/types.h" + +#define RF + + + + + +void do_DL_sig(sim_t *sim, + uint16_t subframe, + uint32_t offset, + uint32_t length, + uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *ue_frame_parms, + uint8_t UE_id, + int CC_id) +{ + + int32_t **txdata,**rxdata; + + uint32_t ru_id=0; + double tx_pwr; + double rx_pwr; + int32_t rx_pwr2; + uint32_t i,aa; + uint32_t sf_offset; + + uint8_t hold_channel=0; + uint8_t nb_antennas_rx = sim->RU2UE[0][0][CC_id]->nb_rx; // number of rx antennas at UE + uint8_t nb_antennas_tx = sim->RU2UE[0][0][CC_id]->nb_tx; // number of tx antennas at eNB + + double s_re0[30720]; + double s_re1[30720]; + double *s_re[2]; + double s_im0[30720]; + double s_im1[30720]; + double *s_im[2]; + double r_re00[30720]; + double r_re01[30720]; + double *r_re0[2]; + double r_im00[30720]; + double r_im01[30720]; + double *r_im0[2]; + LTE_DL_FRAME_PARMS *frame_parms; + + s_re[0] = s_re0; + s_im[0] = s_im0; + s_re[1] = s_re1; + s_im[1] = s_im1; + + r_re0[0] = r_re00; + r_im0[0] = r_im00; + r_re0[1] = r_re01; + r_im0[1] = r_im01; + + if (subframe==0) + hold_channel = 0; + else + hold_channel = 1; + + pthread_mutex_lock(&sim->RU_output_mutex[UE_id]); + + if (sim->RU_output_mask[UE_id] == 0) { // This is the first eNodeB for this UE, clear the buffer + for (aa=0; aar_re_DL[UE_id][aa],0,(RC.ru[0]->frame_parms.samples_per_tti)*sizeof(double)); + memset((void*)sim->r_im_DL[UE_id][aa],0,(RC.ru[0]->frame_parms.samples_per_tti)*sizeof(double)); + } + } + pthread_mutex_unlock(&sim->RU_output_mutex[UE_id]); + + for (ru_id=0; ru_idcommon.txdata; + frame_parms = &RC.ru[ru_id]->frame_parms; + + // sf_offset = (subframe*frame_parms->samples_per_tti) + offset; + sf_offset = (subframe*frame_parms->samples_per_tti); + LOG_D(OCM,">>>>>>>>>>>>>>>>>TXPATH: RU %d : DL_sig reading TX for subframe %d (sf_offset %d, length %d) from %p\n",ru_id,subframe,sf_offset,length,txdata[0]+sf_offset); + int length_meas = frame_parms->ofdm_symbol_size; + if (sf_offset+length <= frame_parms->samples_per_tti*10) { + + tx_pwr = dac_fixed_gain(s_re, + s_im, + txdata, + sf_offset+offset, + nb_antennas_tx, + length, + sf_offset, + length_meas, + 14, + frame_parms->pdsch_config_common.referenceSignalPower, // dBm/RE + 0, + &sim->ru_amp[ru_id], + frame_parms->N_RB_DL*12); + + } + else { + tx_pwr = dac_fixed_gain(s_re, + s_im, + txdata, + sf_offset, + nb_antennas_tx, + (frame_parms->samples_per_tti*10)-sf_offset, + sf_offset, + length_meas, + 14, + frame_parms->pdsch_config_common.referenceSignalPower, // dBm/RE + 0, + &sim->ru_amp[ru_id], + frame_parms->N_RB_DL*12); + + tx_pwr = dac_fixed_gain(s_re, + s_im, + txdata, + sf_offset, + nb_antennas_tx, + length+sf_offset-(frame_parms->samples_per_tti*10), + sf_offset, + length_meas, + 14, + frame_parms->pdsch_config_common.referenceSignalPower, // dBm/RE + 0, + &sim->ru_amp[ru_id], + frame_parms->N_RB_DL*12); + } +#ifdef DEBUG_SIM + LOG_D(OCM,"[SIM][DL] subframe %d: txp (time) %d dB\n", + subframe,dB_fixed(signal_energy(&txdata[0][sf_offset],length_meas))); + + LOG_D(OCM,"[SIM][DL] RU %d (CCid %d): tx_pwr %.1f dBm/RE (target %d dBm/RE), for subframe %d\n", + ru_id,CC_id, + 10*log10(tx_pwr), + frame_parms->pdsch_config_common.referenceSignalPower, + subframe); + +#endif + tx_pwr = signal_energy_fp(s_re,s_im,nb_antennas_tx, + lengthN_RB_DL); + + //RU2UE[eNB_id][UE_id]->path_loss_dB = 0; + multipath_channel(sim->RU2UE[ru_id][UE_id][CC_id],s_re,s_im,r_re0,r_im0, + length,hold_channel); +#ifdef DEBUG_SIM + rx_pwr = signal_energy_fp2(sim->RU2UE[ru_id][UE_id][CC_id]->ch[0], + sim->RU2UE[ru_id][UE_id][CC_id]->channel_length)*sim->RU2UE[ru_id][UE_id][CC_id]->channel_length; + LOG_D(OCM,"[SIM][DL] Channel RU %d => UE %d (CCid %d): Channel gain %f dB (%f)\n",ru_id,UE_id,CC_id,10*log10(rx_pwr),rx_pwr); +#endif + + +#ifdef DEBUG_SIM + + for (i=0; iRU2UE[ru_id][UE_id][CC_id]->channel_length; i++) + LOG_D(OCM,"channel(%d,%d)[%d] : (%f,%f)\n",ru_id,UE_id,i,sim->RU2UE[ru_id][UE_id][CC_id]->ch[0][i].x,sim->RU2UE[ru_id][UE_id][CC_id]->ch[0][i].y); + +#endif + + LOG_D(OCM,"[SIM][DL] Channel RU %d => UE %d (CCid %d): tx_power %.1f dBm/RE, path_loss %1.f dB\n", + ru_id,UE_id,CC_id, + (double)frame_parms->pdsch_config_common.referenceSignalPower, + sim->RU2UE[ru_id][UE_id][CC_id]->path_loss_dB); + +#ifdef DEBUG_SIM + rx_pwr = signal_energy_fp(r_re0,r_im0,nb_antennas_rx, + lengthN_RB_DL); + LOG_D(OCM,"[SIM][DL] UE %d : rx_pwr %f dBm/RE (%f dBm RSSI,tx %f dB)for subframe %d (length %d)\n",UE_id, + 10*log10(rx_pwr), + 10*log10(rx_pwr*(double)frame_parms->N_RB_DL*12), + 10*log10(tx_pwr),subframe, + lengthRU2UE[ru_id][UE_id][CC_id]->sampling_rate*1e6)-174, + 10*log10(sim->RU2UE[ru_id][UE_id][CC_id]->sampling_rate*1e6*12*frame_parms->N_RB_DL/(double)frame_parms->ofdm_symbol_size)-174, + subframe); +#endif + + if (sim->RU2UE[ru_id][UE_id][CC_id]->first_run == 1) + sim->RU2UE[ru_id][UE_id][CC_id]->first_run = 0; + + + // RF model +#ifdef DEBUG_SIM + LOG_D(OCM,"[SIM][DL] UE %d (CCid %d): rx_gain %d dB (-ADC %f) for subframe %d\n",UE_id,CC_id,PHY_vars_UE_g[UE_id][CC_id]->rx_total_gain_dB, + PHY_vars_UE_g[UE_id][CC_id]->rx_total_gain_dB-66.227,subframe); +#endif + + rf_rx_simple(r_re0, + r_im0, + nb_antennas_rx, + length, + 1e3/sim->RU2UE[ru_id][UE_id][CC_id]->sampling_rate, // sampling time (ns) + (double)PHY_vars_UE_g[UE_id][CC_id]->rx_total_gain_dB - 66.227); // rx_gain (dB) (66.227 = 20*log10(pow2(11)) = gain from the adc that will be applied later) + +#ifdef DEBUG_SIM + rx_pwr = signal_energy_fp(r_re0,r_im0, + nb_antennas_rx, + lengthN_RB_DL); + LOG_D(OCM,"[SIM][DL] UE %d : ADC in (RU %d) %f dBm/RE for subframe %d\n", + UE_id,ru_id, + 10*log10(rx_pwr),subframe); +#endif + + + pthread_mutex_lock(&sim->RU_output_mutex[UE_id]); + for (i=0; isamples_per_tti; i++) { + for (aa=0; aar_re_DL[UE_id][aa][i]+=r_re0[aa][i]; + sim->r_im_DL[UE_id][aa][i]+=r_im0[aa][i]; + } + } + sim->RU_output_mask[UE_id] |= (1<RU_output_mask[UE_id] == (1<RU_output_mask[UE_id]=0; + + + + double *r_re_p[2] = {sim->r_re_DL[UE_id][0],sim->r_re_DL[UE_id][1]}; + double *r_im_p[2] = {sim->r_im_DL[UE_id][0],sim->r_im_DL[UE_id][1]}; + +#ifdef DEBUG_SIM + rx_pwr = signal_energy_fp(r_re_p,r_im_p,nb_antennas_rx,lengthN_RB_DL); + LOG_D(OCM,"[SIM][DL] UE %d : ADC in %f dBm/RE for subframe %d\n",UE_id,10*log10(rx_pwr),subframe); +#endif + + rxdata = PHY_vars_UE_g[UE_id][CC_id]->common_vars.rxdata; + sf_offset = (subframe*frame_parms->samples_per_tti)+offset; + + + adc(r_re_p, + r_im_p, + 0, + sf_offset, + rxdata, + nb_antennas_rx, + length, + 12); + +#ifdef DEBUG_SIM + rx_pwr2 = signal_energy(rxdata[0]+sf_offset,lengthN_RB_DL); + LOG_D(OCM,"[SIM][DL] UE %d : rx_pwr (ADC out) %f dB/RE (%d) for subframe %d, writing to %p, length %d\n",UE_id, 10*log10((double)rx_pwr2),rx_pwr2,subframe,rxdata,lengthN_RB_DL) ,subframe); +#else + UNUSED_VARIABLE(rx_pwr2); + UNUSED_VARIABLE(tx_pwr); + UNUSED_VARIABLE(rx_pwr); +#endif + + } // RU_output_mask + pthread_mutex_unlock(&sim->RU_output_mutex[UE_id]); + } // ru_id + +} + + + + +void do_UL_sig(sim_t *sim, + uint16_t subframe,uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms, + uint32_t frame,int ru_id,uint8_t CC_id) +{ + + int32_t **txdata,**rxdata; + uint8_t UE_id=0; + + uint8_t nb_antennas_rx = sim->UE2RU[0][0][CC_id]->nb_rx; // number of rx antennas at eNB + uint8_t nb_antennas_tx = sim->UE2RU[0][0][CC_id]->nb_tx; // number of tx antennas at UE + + double tx_pwr, rx_pwr; + int32_t rx_pwr2; + uint32_t i,aa; + uint32_t sf_offset,sf_offset_tdd; + + uint8_t hold_channel=0; + + double s_re0[30720]; + double s_re1[30720]; + double *s_re[2]; + double s_im0[30720]; + double s_im1[30720]; + double *s_im[2]; + double r_re00[30720]; + double r_re01[30720]; + double *r_re0[2]; + double r_im00[30720]; + double r_im01[30720]; + double *r_im0[2]; + + s_re[0] = s_re0; + s_im[0] = s_im0; + s_re[1] = s_re1; + s_im[1] = s_im1; + + r_re0[0] = r_re00; + r_im0[0] = r_im00; + r_re0[1] = r_re01; + r_im0[1] = r_im01; + + pthread_mutex_lock(&sim->UE_output_mutex[ru_id]); + // Clear RX signal for eNB = eNB_id + for (i=0; isamples_per_tti; i++) { + for (aa=0; aar_re_UL[ru_id][aa][i]=0.0; + sim->r_im_UL[ru_id][aa][i]=0.0; + } + } + pthread_mutex_unlock(&sim->UE_output_mutex[ru_id]); + + // Compute RX signal for eNB = eNB_id + for (UE_id=0; UE_idcommon_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,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,sf_offset_tdd); + } else { + tx_pwr = dac_fixed_gain((double**)s_re, + (double**)s_im, + txdata, + sf_offset_tdd, + nb_antennas_tx, + frame_parms->samples_per_tti, + 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,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,sf_offset_tdd); + + + multipath_channel(sim->UE2RU[UE_id][ru_id][CC_id],s_re,s_im,r_re0,r_im0, + frame_parms->samples_per_tti,hold_channel); + + + rx_pwr = signal_energy_fp2(sim->UE2RU[UE_id][ru_id][CC_id]->ch[0], + sim->UE2RU[UE_id][ru_id][CC_id]->channel_length)*sim->UE2RU[UE_id][ru_id][CC_id]->channel_length; + + LOG_D(OCM,"[SIM][UL] subframe %d Channel UE %d => RU %d : %f dB (hold %d,length %d, PL %f)\n",subframe,UE_id,ru_id,10*log10(rx_pwr), + hold_channel,sim->UE2RU[UE_id][ru_id][CC_id]->channel_length, + sim->UE2RU[UE_id][ru_id][CC_id]->path_loss_dB); + + rx_pwr = signal_energy_fp(r_re0,r_im0,nb_antennas_rx,frame_parms->samples_per_tti,0); + LOG_D(OCM,"[SIM][UL] RU %d (%d/%d rx antennas) : rx_pwr %f dBm (tx_pwr - PL %f) for subframe %d, sptti %d\n", + ru_id,nb_antennas_rx,sim->UE2RU[UE_id][ru_id][CC_id]->nb_rx,10*log10(rx_pwr),10*log10(tx_pwr*PHY_vars_UE_g[UE_id][CC_id]->tx_total_RE[subframe])+sim->UE2RU[UE_id][ru_id][CC_id]->path_loss_dB,subframe,frame_parms->samples_per_tti); + /* + if (abs(10*log10(rx_pwr)-10*log10(tx_pwr*PHY_vars_UE_g[UE_id][CC_id]->tx_total_RE[subframe])-UE2RU[UE_id][ru_id][CC_id]->path_loss_dB)>3) { + write_output("txsig_re.m","s_re",s_re[0],frame_parms->samples_per_tti,1,7); + write_output("txsig_im.m","s_im",s_im[0],frame_parms->samples_per_tti,1,7); + write_output("rxsig_re.m","r_re",r_re0[0],frame_parms->samples_per_tti,1,7); + write_output("rxsig_im.m","r_im",r_im0[0],frame_parms->samples_per_tti,1,7); + exit(-1); + }*/ + + if (sim->UE2RU[UE_id][ru_id][CC_id]->first_run == 1) + sim->UE2RU[UE_id][ru_id][CC_id]->first_run = 0; + + + pthread_mutex_lock(&sim->UE_output_mutex[ru_id]); + for (aa=0; aasamples_per_tti; i++) { + sim->r_re_UL[ru_id][aa][i]+=r_re0[aa][i]; + sim->r_im_UL[ru_id][aa][i]+=r_im0[aa][i]; + } + } + pthread_mutex_unlock(&sim->UE_output_mutex[ru_id]); + } + } //UE_id + + double *r_re_p[2] = {sim->r_re_UL[ru_id][0],sim->r_re_UL[ru_id][1]}; + double *r_im_p[2] = {sim->r_im_UL[ru_id][0],sim->r_im_UL[ru_id][1]}; + + rx_pwr = signal_energy_fp(r_re_p,r_im_p,nb_antennas_rx,frame_parms->samples_per_tti,0); + LOG_D(OCM,"[SIM][UL] RU %d (%d/%d rx antennas) : rx_pwr %f dBm (before RF) for subframe %d, gain %f\n", + ru_id,nb_antennas_rx,nb_antennas_rx,10*log10(rx_pwr),subframe, + (double)RC.ru[ru_id]->max_rxgain-(double)RC.ru[ru_id]->att_rx - 66.227); + rf_rx_simple(r_re_p, + r_im_p, + nb_antennas_rx, + frame_parms->samples_per_tti, + 1e3/sim->UE2RU[0][ru_id][CC_id]->sampling_rate, // sampling time (ns) + (double)RC.ru[ru_id]->max_rxgain-(double)RC.ru[ru_id]->att_rx - 66.227); // rx_gain (dB) (66.227 = 20*log10(pow2(11)) = gain from the adc that will be applied later) + +#ifdef DEBUG_SIM + rx_pwr = signal_energy_fp(r_re_p,r_im_p,nb_antennas_rx,frame_parms->samples_per_tti,0);//*(double)frame_parms->ofdm_symbol_size/(12.0*frame_parms->N_RB_DL; + LOG_D(OCM,"[SIM][UL] rx_pwr (ADC in) %f dB for subframe %d (rx_gain %f)\n",10*log10(rx_pwr),subframe, + (double)RC.ru[ru_id]->max_rxgain-(double)RC.ru[ru_id]->att_rx); +#endif + + 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_tdd, + rxdata, + nb_antennas_rx, + frame_parms->samples_per_tti, + 12); + +#ifdef DEBUG_SIM + 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); + UNUSED_VARIABLE(rx_pwr2); +#endif + +} + + + + 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/sim.h b/openair1/SIMULATION/TOOLS/sim.h index 420e5d0072..bde7b92506 100644 --- a/openair1/SIMULATION/TOOLS/sim.h +++ b/openair1/SIMULATION/TOOLS/sim.h @@ -22,7 +22,7 @@ #ifndef __SIMULATION_TOOLS_DEFS_H__ #define __SIMULATION_TOOLS_DEFS_H__ #include "PHY/defs_common.h" - +#include /** @defgroup _numerical_ Useful Numerical Functions *@{ The present clause specifies several numerical functions for testing of digital communication systems. @@ -181,6 +181,31 @@ typedef enum { EPA_high, } SCM_t; +#include "platform_constants.h" + +typedef struct { + channel_desc_t *RU2UE[NUMBER_OF_RU_MAX][NUMBER_OF_UE_MAX][MAX_NUM_CCs]; + channel_desc_t *UE2RU[NUMBER_OF_UE_MAX][NUMBER_OF_RU_MAX][MAX_NUM_CCs]; + double r_re_DL[NUMBER_OF_UE_MAX][2][30720]; + double r_im_DL[NUMBER_OF_UE_MAX][2][30720]; + double r_re_UL[NUMBER_OF_eNB_MAX][2][30720]; + double r_im_UL[NUMBER_OF_eNB_MAX][2][30720]; + int RU_output_mask[NUMBER_OF_UE_MAX]; + int UE_output_mask[NUMBER_OF_RU_MAX]; + pthread_mutex_t RU_output_mutex[NUMBER_OF_UE_MAX]; + pthread_mutex_t UE_output_mutex[NUMBER_OF_RU_MAX]; + pthread_mutex_t subframe_mutex; + int subframe_ru_mask; + int subframe_UE_mask; + openair0_timestamp current_ru_rx_timestamp[NUMBER_OF_RU_MAX][MAX_NUM_CCs]; + openair0_timestamp current_UE_rx_timestamp[MAX_MOBILES_PER_ENB][MAX_NUM_CCs]; + openair0_timestamp last_ru_rx_timestamp[NUMBER_OF_RU_MAX][MAX_NUM_CCs]; + openair0_timestamp last_UE_rx_timestamp[MAX_MOBILES_PER_ENB][MAX_NUM_CCs]; + double ru_amp[NUMBER_OF_RU_MAX]; + pthread_t rfsim_thread; +} sim_t; + + /** \brief This routine initializes a new channel descriptor \param nb_tx Number of TX antennas @@ -373,6 +398,20 @@ void multipath_tv_channel(channel_desc_t *desc, double N_RB2sampling_rate(uint16_t N_RB); double N_RB2channel_bandwidth(uint16_t N_RB); +#include "targets/RT/USER/rfsim.h" + +void do_DL_sig(sim_t *sim, + uint16_t subframe, + uint32_t offset, + uint32_t length, + uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *ue_frame_parms, + uint8_t UE_id, + int CC_id); + +void do_UL_sig(sim_t *sim, + uint16_t subframe,uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms, + uint32_t frame,int ru_id,uint8_t CC_id); + #endif 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 3a73000e50..d902de15d9 100644 --- a/openair2/COMMON/mac_rrc_primitives.h +++ b/openair2/COMMON/mac_rrc_primitives.h @@ -34,7 +34,7 @@ #include "RadioResourceConfigDedicated.h" #include "MeasGapConfig.h" #include "TDD-Config.h" -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) #include "MBSFN-AreaInfoList-r9.h" #include "MBSFN-SubframeConfigList.h" #endif @@ -356,7 +356,7 @@ typedef struct { TDD_Config_t *tdd_Config, uint8_t *SIwindowsize, uint16_t *SIperiod -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) , MBMS_flag_t MBMS_Flag, struct MBSFN_SubframeConfigList *mbsfn_SubframeConfigList, @@ -364,10 +364,20 @@ typedef struct { struct PMCH_InfoList_r9 *pmch_InfoList #endif ); - unsigned int (*mac_rlc_data_req)(module_id_t, unsigned int, const unsigned int,char*); + unsigned int (*mac_rlc_data_req)(module_id_t, unsigned int, const unsigned int,char* +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,uint32_t + ,uint32_t +#endif + ); 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); + logical_chan_id_t channel_idP, tb_size_t tb_sizeP +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,uint32_t sourceL2Id + ,uint32_t destinationL2Id +#endif + ); signed int (*rrc_rlc_data_req)(module_id_t, rb_id_t, mui_t, confirm_t, sdu_size_t, char *); void (*rrc_rlc_register_rrc) (void (*rrc_data_indP)(module_id_t , rb_id_t , sdu_size_t , char* ), void (*rrc_data_confP) (module_id_t , rb_id_t , mui_t ) ) ; diff --git a/openair2/COMMON/platform_constants.h b/openair2/COMMON/platform_constants.h index 3621a06018..eb5fda8f8d 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,7 +67,8 @@ # 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_MOBILES_PER_GNB 128 @@ -79,8 +80,15 @@ # define MAX_MOBILES_PER_GNB 16 # define MAX_eNB 2 # define MAX_gNB 2 +# endif +#else +# define MAX_MOBILES_PER_ENB 256 +# define MAX_MOBILES_PER_ENB_NB_IoT 256 +# define MAX_eNB 2 +# define MAC_eNG 2 #endif + #define MAX_MANAGED_ENB_PER_MOBILE 2 #define MAX_MANAGED_GNB_PER_MOBILE 2 @@ -91,7 +99,7 @@ #define DEFAULT_RAB_ID 1 #define NB_RB_MAX (maxDRB + 3) /* was 11, now 14, maxDRB comes from asn1_constants.h, + 3 because of 3 SRB, one invisible id 0, then id 1 and 2 */ -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) #define NB_RB_MBMS_MAX (maxSessionPerPMCH*maxServiceCount) #else // Do not allocate unused memory diff --git a/openair2/COMMON/platform_types.h b/openair2/COMMON/platform_types.h index b0f458c804..7949b82e37 100644 --- a/openair2/COMMON/platform_types.h +++ b/openair2/COMMON/platform_types.h @@ -93,6 +93,10 @@ typedef boolean_t srb_flag_t; #define SRB_FLAG_NO FALSE #define SRB_FLAG_YES TRUE +typedef boolean_t sl_discovery_flag_t; +#define SL_DISCOVERY_FLAG_NO FALSE +#define SL_DISCOVERY_FLAG_YES TRUE + typedef enum link_direction_e { UNKNOWN_DIR = 0, DIR_UPLINK = 1, @@ -169,7 +173,9 @@ typedef enum ip_traffic_type_e { TRAFFIC_IPV4_TYPE_UNICAST = 5, TRAFFIC_IPV4_TYPE_MULTICAST = 6, TRAFFIC_IPV4_TYPE_BROADCAST = 7, - TRAFFIC_IPV4_TYPE_UNKNOWN = 8 + TRAFFIC_IPV4_TYPE_UNKNOWN = 8, + TRAFFIC_PC5S_SIGNALLING = 9, + TRAFFIC_PC5S_SESSION_INIT = 10 } ip_traffic_type_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 edf84fb73e..edb4e82e58 100644 --- a/openair2/COMMON/rrc_messages_types.h +++ b/openair2/COMMON/rrc_messages_types.h @@ -35,8 +35,14 @@ #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" +#include "SL-CP-Len-r12.h" +#include "SL-PeriodComm-r12.h" +#include "SL-DiscResourcePool-r12.h" + //-------------------------------------------------------------------------------------------// // Messages for RRC logging @@ -119,9 +125,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 !defined(Rel10) && !defined(Rel14) +//#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]; @@ -170,8 +176,56 @@ 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 + e_SL_CP_Len_r12 rxPool_sc_CP_Len[MAX_NUM_CCs]; + e_SL_PeriodComm_r12 rxPool_sc_Period[MAX_NUM_CCs]; + e_SL_CP_Len_r12 rxPool_data_CP_Len[MAX_NUM_CCs]; + long rxPool_ResourceConfig_prb_Num[MAX_NUM_CCs]; + long rxPool_ResourceConfig_prb_Start[MAX_NUM_CCs]; + long rxPool_ResourceConfig_prb_End[MAX_NUM_CCs]; + SL_OffsetIndicator_r12_PR rxPool_ResourceConfig_offsetIndicator_present[MAX_NUM_CCs]; + long rxPool_ResourceConfig_offsetIndicator_choice[MAX_NUM_CCs]; + SubframeBitmapSL_r12_PR rxPool_ResourceConfig_subframeBitmap_present[MAX_NUM_CCs]; + char* rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[MAX_NUM_CCs]; + long rxPool_ResourceConfig_subframeBitmap_choice_bs_size[MAX_NUM_CCs]; + long rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[MAX_NUM_CCs]; + + //SIB19 + //for discRxPool + SL_CP_Len_r12_t discRxPool_cp_Len[MAX_NUM_CCs]; + e_SL_DiscResourcePool_r12__discPeriod_r12 discRxPool_discPeriod[MAX_NUM_CCs]; + long discRxPool_numRetx[MAX_NUM_CCs]; + long discRxPool_numRepetition[MAX_NUM_CCs]; + long discRxPool_ResourceConfig_prb_Num[MAX_NUM_CCs]; + long discRxPool_ResourceConfig_prb_Start[MAX_NUM_CCs]; + long discRxPool_ResourceConfig_prb_End[MAX_NUM_CCs]; + SL_OffsetIndicator_r12_PR discRxPool_ResourceConfig_offsetIndicator_present[MAX_NUM_CCs]; + long discRxPool_ResourceConfig_offsetIndicator_choice[MAX_NUM_CCs]; + SubframeBitmapSL_r12_PR discRxPool_ResourceConfig_subframeBitmap_present[MAX_NUM_CCs]; + char* discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[MAX_NUM_CCs]; + long discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[MAX_NUM_CCs]; + long discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[MAX_NUM_CCs]; + //for discRxPoolPS + SL_CP_Len_r12_t discRxPoolPS_cp_Len[MAX_NUM_CCs]; + e_SL_DiscResourcePool_r12__discPeriod_r12 discRxPoolPS_discPeriod[MAX_NUM_CCs]; + long discRxPoolPS_numRetx[MAX_NUM_CCs]; + long discRxPoolPS_numRepetition[MAX_NUM_CCs]; + long discRxPoolPS_ResourceConfig_prb_Num[MAX_NUM_CCs]; + long discRxPoolPS_ResourceConfig_prb_Start[MAX_NUM_CCs]; + long discRxPoolPS_ResourceConfig_prb_End[MAX_NUM_CCs]; + SL_OffsetIndicator_r12_PR discRxPoolPS_ResourceConfig_offsetIndicator_present[MAX_NUM_CCs]; + long discRxPoolPS_ResourceConfig_offsetIndicator_choice[MAX_NUM_CCs]; + SubframeBitmapSL_r12_PR discRxPoolPS_ResourceConfig_subframeBitmap_present[MAX_NUM_CCs]; + 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 a39953d8f7..f98782f19e 100644 --- a/openair2/COMMON/s1ap_messages_def.h +++ b/openair2/COMMON/s1ap_messages_def.h @@ -38,6 +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_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 f561ceab13..737397d8d4 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" @@ -102,6 +101,53 @@ 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; + e_SL_CP_Len_r12 rxPool_data_CP_Len; + long rxPool_ResourceConfig_prb_Num; + long rxPool_ResourceConfig_prb_Start; + long rxPool_ResourceConfig_prb_End; + SL_OffsetIndicator_r12_PR rxPool_ResourceConfig_offsetIndicator_present; + long rxPool_ResourceConfig_offsetIndicator_choice; + SubframeBitmapSL_r12_PR rxPool_ResourceConfig_subframeBitmap_present; + char* rxPool_ResourceConfig_subframeBitmap_choice_bs_buf; + long rxPool_ResourceConfig_subframeBitmap_choice_bs_size; + long rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused; + + //SIB19 + //for discRxPool + SL_CP_Len_r12_t discRxPool_cp_Len; + e_SL_DiscResourcePool_r12__discPeriod_r12 discRxPool_discPeriod; + long discRxPool_numRetx; + long discRxPool_numRepetition; + long discRxPool_ResourceConfig_prb_Num; + long discRxPool_ResourceConfig_prb_Start; + long discRxPool_ResourceConfig_prb_End; + SL_OffsetIndicator_r12_PR discRxPool_ResourceConfig_offsetIndicator_present; + long discRxPool_ResourceConfig_offsetIndicator_choice; + SubframeBitmapSL_r12_PR discRxPool_ResourceConfig_subframeBitmap_present; + char* discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf; + long discRxPool_ResourceConfig_subframeBitmap_choice_bs_size; + long discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused; + //for discRxPoolPS + SL_CP_Len_r12_t discRxPoolPS_cp_Len; + e_SL_DiscResourcePool_r12__discPeriod_r12 discRxPoolPS_discPeriod; + long discRxPoolPS_numRetx; + long discRxPoolPS_numRepetition; + long discRxPoolPS_ResourceConfig_prb_Num; + long discRxPoolPS_ResourceConfig_prb_Start; + long discRxPoolPS_ResourceConfig_prb_End; + SL_OffsetIndicator_r12_PR discRxPoolPS_ResourceConfig_offsetIndicator_present; + long discRxPoolPS_ResourceConfig_offsetIndicator_choice; + SubframeBitmapSL_r12_PR discRxPoolPS_ResourceConfig_subframeBitmap_present; + char* discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf; + long discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size; + long discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused; + + + /* get number of eNBs */ paramdef_t ENBSParams[] = ENBSPARAMS_DESC; config_get(ENBSParams, sizeof(ENBSParams)/sizeof(paramdef_t), NULL); @@ -182,6 +228,7 @@ void RCconfig_flexran() } } + void RCconfig_L1(void) { int i,j; paramdef_t L1_Params[] = L1PARAMS_DESC; @@ -197,7 +244,6 @@ void RCconfig_L1(void) { config_getlist( &L1_ParamList,L1_Params,sizeof(L1_Params)/sizeof(paramdef_t), NULL); if (L1_ParamList.numelt > 0) { - for (j = 0; j < RC.nb_L1_inst; j++) { RC.nb_L1_CC[j] = *(L1_ParamList.paramarray[j][L1_CC_IDX].uptr); @@ -299,6 +345,8 @@ void RCconfig_macrlc() { RC.nb_mac_CC = (int*)malloc(RC.nb_macrlc_inst*sizeof(int)); 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); @@ -339,7 +387,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, @@ -351,7 +409,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; @@ -380,7 +437,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { int32_t pucch_delta_shift = 0; int32_t pucch_nRB_CQI = 0; int32_t pucch_nCS_AN = 0; -//#if !defined(Rel10) && !defined(Rel14) +//#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) int32_t pucch_n1_AN = 0; //#endif int32_t pdsch_referenceSignalPower = 0; @@ -433,6 +490,53 @@ 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; + const char* rxPool_sc_Period = NULL; + const char* rxPool_data_CP_Len = NULL; + libconfig_int rxPool_ResourceConfig_prb_Num = 0; + libconfig_int rxPool_ResourceConfig_prb_Start = 0; + libconfig_int rxPool_ResourceConfig_prb_End = 0; + const char* rxPool_ResourceConfig_offsetIndicator_present = NULL; + libconfig_int rxPool_ResourceConfig_offsetIndicator_choice = 0; + const char* rxPool_ResourceConfig_subframeBitmap_present = NULL; + char* rxPool_ResourceConfig_subframeBitmap_choice_bs_buf = NULL; + libconfig_int rxPool_ResourceConfig_subframeBitmap_choice_bs_size = 0; + libconfig_int rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0; + //SIB19 + //For discRxPool + const char* discRxPool_cp_Len = NULL; + const char* discRxPool_discPeriod = NULL; + libconfig_int discRxPool_numRetx = 0; + libconfig_int discRxPool_numRepetition = 0; + + libconfig_int discRxPool_ResourceConfig_prb_Num = 0; + libconfig_int discRxPool_ResourceConfig_prb_Start = 0; + libconfig_int discRxPool_ResourceConfig_prb_End = 0; + const char* discRxPool_ResourceConfig_offsetIndicator_present = NULL; + libconfig_int discRxPool_ResourceConfig_offsetIndicator_choice = 0; + const char* discRxPool_ResourceConfig_subframeBitmap_present = NULL; + char* discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf = NULL; + libconfig_int discRxPool_ResourceConfig_subframeBitmap_choice_bs_size = 0; + libconfig_int discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0; + //For discRxPoolPS + const char* discRxPoolPS_cp_Len = NULL; + const char* discRxPoolPS_discPeriod = NULL; + libconfig_int discRxPoolPS_numRetx = 0; + libconfig_int discRxPoolPS_numRepetition = 0; + + libconfig_int discRxPoolPS_ResourceConfig_prb_Num = 0; + libconfig_int discRxPoolPS_ResourceConfig_prb_Start = 0; + libconfig_int discRxPoolPS_ResourceConfig_prb_End = 0; + const char* discRxPoolPS_ResourceConfig_offsetIndicator_present = NULL; + libconfig_int discRxPoolPS_ResourceConfig_offsetIndicator_choice = 0; + const char* discRxPoolPS_ResourceConfig_subframeBitmap_present = NULL; + char* discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf = NULL; + 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; @@ -598,20 +702,14 @@ 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); + LOG_I(RRC, "enb_config::RCconfig_RRC() parameter number: %d, total number of parameters: %zd, ccspath: %s \n \n", j, sizeof(CCsParams)/sizeof(paramdef_t), ccspath); config_get( CCsParams,sizeof(CCsParams)/sizeof(paramdef_t),ccspath); @@ -646,7 +744,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 \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", RC.config_file_name, i, prefix_type); } -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (!pbch_repetition) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: TRUE,FALSE!\n", @@ -783,13 +881,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)) @@ -811,7 +907,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 !defined(Rel10) && !defined(Rel14) +//#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)) @@ -819,7 +915,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)) @@ -991,7 +1087,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 pusch_p0_Nominal choice: -126..24 !\n", RC.config_file_name, i, pusch_p0_Nominal); -#ifndef Rel14 +#if (RRC_VERSION <= MAKE_VERSION(12, 0, 0)) if (strcmp(pusch_alpha,"AL0")==0) { RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al0; } else if (strcmp(pusch_alpha,"AL04")==0) { @@ -1009,7 +1105,9 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } else if (strcmp(pusch_alpha,"AL1")==0) { RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al1; } -#else +#endif + +#if (RRC_VERSION >= MAKE_VERSION(12, 0, 0)) if (strcmp(pusch_alpha,"AL0")==0) { RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al0; } else if (strcmp(pusch_alpha,"AL04")==0) { @@ -1212,7 +1310,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { switch (rach_preambleTransMax) { -#ifndef Rel14 +#if (RRC_VERSION < MAKE_VERSION(14, 0, 0)) case 3: RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3; break; @@ -1442,6 +1540,295 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i, ue_TransmissionMode); 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) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_CP_Len[j] = SL_CP_Len_r12_normal; + } else if (strcmp(rxPool_sc_CP_Len,"extended")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_CP_Len[j] = SL_CP_Len_r12_extended; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_sc_CP_Len choice: normal,extended!\n", + RC.config_file_name, i, rxPool_sc_CP_Len); + + if (strcmp(rxPool_sc_Period,"sf40")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf40; + } else if (strcmp(rxPool_sc_Period,"sf60")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf60; + } else if (strcmp(rxPool_sc_Period,"sf70")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf70; + } else if (strcmp(rxPool_sc_Period,"sf80")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf80; + } else if (strcmp(rxPool_sc_Period,"sf120")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf120; + } else if (strcmp(rxPool_sc_Period,"sf140")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf140; + } else if (strcmp(rxPool_sc_Period,"sf160")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf160; + } else if (strcmp(rxPool_sc_Period,"sf240")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf240; + } else if (strcmp(rxPool_sc_Period,"sf280")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf280; + } else if (strcmp(rxPool_sc_Period,"sf320")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf320; + } else if (strcmp(rxPool_sc_Period,"spare6")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare6; + } else if (strcmp(rxPool_sc_Period,"spare5")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare5; + } else if (strcmp(rxPool_sc_Period,"spare4")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare4; + } else if (strcmp(rxPool_sc_Period,"spare3")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare3; + } else if (strcmp(rxPool_sc_Period,"spare2")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare2; + } else if (strcmp(rxPool_sc_Period,"spare")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_sc_Period choice: sf40,sf60,sf70,sf80,sf120,sf140,sf160,sf240,sf280,sf320,spare6,spare5,spare4,spare3,spare2,spare!\n", + RC.config_file_name, i, rxPool_sc_Period); + + if (strcmp(rxPool_data_CP_Len,"normal")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_data_CP_Len[j] = SL_CP_Len_r12_normal; + } else if (strcmp(rxPool_data_CP_Len,"extended")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_data_CP_Len[j] = SL_CP_Len_r12_extended; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_data_CP_Len choice: normal,extended!\n", + RC.config_file_name, i, rxPool_data_CP_Len); + + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_prb_Num[j] = rxPool_ResourceConfig_prb_Num; + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_prb_Start[j] = rxPool_ResourceConfig_prb_Start; + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_prb_End[j] = rxPool_ResourceConfig_prb_End; + + if (strcmp(rxPool_ResourceConfig_offsetIndicator_present,"prNothing")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_NOTHING; + } else if (strcmp(rxPool_ResourceConfig_offsetIndicator_present,"prSmall")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_small_r12; + } else if (strcmp(rxPool_ResourceConfig_offsetIndicator_present,"prLarge")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_large_r12; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_ResourceConfig_offsetIndicator_present choice: prNothing,prSmal,prLarge!\n", + RC.config_file_name, i, rxPool_ResourceConfig_offsetIndicator_present); + + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_offsetIndicator_choice[j] = rxPool_ResourceConfig_offsetIndicator_choice; + + if (strcmp(rxPool_ResourceConfig_subframeBitmap_present,"prNothing")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_NOTHING; + } else if (strcmp(rxPool_ResourceConfig_subframeBitmap_present,"prBs4")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs4_r12; + } else if (strcmp(rxPool_ResourceConfig_subframeBitmap_present,"prBs8")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs8_r12; + } else if (strcmp(rxPool_ResourceConfig_subframeBitmap_present,"prBs12")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs12_r12; + } else if (strcmp(rxPool_ResourceConfig_subframeBitmap_present,"prBs16")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs16_r12; + } else if (strcmp(rxPool_ResourceConfig_subframeBitmap_present,"prBs30")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs30_r12; + } else if (strcmp(rxPool_ResourceConfig_subframeBitmap_present,"prBs40")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs40_r12; + } else if (strcmp(rxPool_ResourceConfig_subframeBitmap_present,"prBs42")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs42_r12; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_ResourceConfig_subframeBitmap_present choice: prNothing,prBs4,prBs8,prBs12,prBs16,prBs30,prBs40,prBs42!\n", + RC.config_file_name, i, rxPool_ResourceConfig_subframeBitmap_present); + + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[j] = rxPool_ResourceConfig_subframeBitmap_choice_bs_buf; + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_choice_bs_size[j] = rxPool_ResourceConfig_subframeBitmap_choice_bs_size; + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[j] = rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused; + + //SIB19 - for discRxPool + if (strcmp(discRxPool_cp_Len,"normal")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_cp_Len[j] = SL_CP_Len_r12_normal; + } else if (strcmp(discRxPool_cp_Len,"extended")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_cp_Len[j] = SL_CP_Len_r12_extended; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPool_cp_Len choice: normal,extended!\n", + RC.config_file_name, i, discRxPool_cp_Len); + + + if (strcmp(discRxPool_discPeriod,"rf32")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf32; + } else if (strcmp(discRxPool_discPeriod,"rf64")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf64; + } else if (strcmp(discRxPool_discPeriod,"rf128")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf128; + } else if (strcmp(discRxPool_discPeriod,"rf256")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf256; + } else if (strcmp(discRxPool_discPeriod,"rf512")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf512; + } else if (strcmp(discRxPool_discPeriod,"rf1024")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf1024; + } else if (strcmp(discRxPool_discPeriod,"rf16")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf16_v1310; + } else if (strcmp(discRxPool_discPeriod,"spare")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_spare; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPool_discPeriod choice: rf32,rf64,rf128,rf512,rf1024,rf16,spare!\n", + RC.config_file_name, i, discRxPool_discPeriod); + + + + RRC_CONFIGURATION_REQ (msg_p).discRxPool_numRetx[j] = discRxPool_numRetx; + RRC_CONFIGURATION_REQ (msg_p).discRxPool_numRepetition[j] = discRxPool_numRepetition; + + + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_prb_Num[j] = discRxPool_ResourceConfig_prb_Num; + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_prb_Start[j] = discRxPool_ResourceConfig_prb_Start; + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_prb_End[j] = discRxPool_ResourceConfig_prb_End; + + if (strcmp(discRxPool_ResourceConfig_offsetIndicator_present,"prNothing")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_NOTHING; + } else if (strcmp(discRxPool_ResourceConfig_offsetIndicator_present,"prSmall")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_small_r12; + } else if (strcmp(discRxPool_ResourceConfig_offsetIndicator_present,"prLarge")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_large_r12; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPool_ResourceConfig_offsetIndicator_present choice: prNothing,prSmal,prLarge!\n", + RC.config_file_name, i, discRxPool_ResourceConfig_offsetIndicator_present); + + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_offsetIndicator_choice[j] = discRxPool_ResourceConfig_offsetIndicator_choice; + + if (strcmp(discRxPool_ResourceConfig_subframeBitmap_present,"prNothing")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_NOTHING; + } else if (strcmp(discRxPool_ResourceConfig_subframeBitmap_present,"prBs4")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs4_r12; + } else if (strcmp(discRxPool_ResourceConfig_subframeBitmap_present,"prBs8")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs8_r12; + } else if (strcmp(discRxPool_ResourceConfig_subframeBitmap_present,"prBs12")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs12_r12; + } else if (strcmp(discRxPool_ResourceConfig_subframeBitmap_present,"prBs16")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs16_r12; + } else if (strcmp(discRxPool_ResourceConfig_subframeBitmap_present,"prBs30")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs30_r12; + } else if (strcmp(discRxPool_ResourceConfig_subframeBitmap_present,"prBs40")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs40_r12; + } else if (strcmp(discRxPool_ResourceConfig_subframeBitmap_present,"prBs42")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs42_r12; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPool_ResourceConfig_subframeBitmap_present choice: prNothing,prBs4,prBs8,prBs12,prBs16,prBs30,prBs40,prBs42!\n", + RC.config_file_name, i, discRxPool_ResourceConfig_subframeBitmap_present); + + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[j] = discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf; + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[j] = discRxPool_ResourceConfig_subframeBitmap_choice_bs_size; + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[j] = discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused; + + //SIB19 - For discRxPoolPS + if (strcmp(discRxPoolPS_cp_Len,"normal")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_cp_Len[j] = SL_CP_Len_r12_normal; + } else if (strcmp(discRxPoolPS_cp_Len,"extended")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_cp_Len[j] = SL_CP_Len_r12_extended; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPoolPS_cp_Len choice: normal,extended!\n", + RC.config_file_name, i, discRxPoolPS_cp_Len); + + + if (strcmp(discRxPoolPS_discPeriod,"rf32")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf32; + } else if (strcmp(discRxPoolPS_discPeriod,"rf64")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf64; + } else if (strcmp(discRxPoolPS_discPeriod,"rf128")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf128; + } else if (strcmp(discRxPoolPS_discPeriod,"rf256")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf256; + } else if (strcmp(discRxPoolPS_discPeriod,"rf512")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf512; + } else if (strcmp(discRxPoolPS_discPeriod,"rf1024")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf1024; + } else if (strcmp(discRxPoolPS_discPeriod,"rf16")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf16_v1310; + } else if (strcmp(discRxPoolPS_discPeriod,"spare")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_spare; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPoolPS_discPeriod choice: rf32,rf64,rf128,rf512,rf1024,rf16,spare!\n", + RC.config_file_name, i, discRxPoolPS_discPeriod); + + + + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_numRetx[j] = discRxPoolPS_numRetx; + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_numRepetition[j] = discRxPoolPS_numRepetition; + + + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_prb_Num[j] = discRxPoolPS_ResourceConfig_prb_Num; + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_prb_Start[j] = discRxPoolPS_ResourceConfig_prb_Start; + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_prb_End[j] = discRxPoolPS_ResourceConfig_prb_End; + + if (strcmp(discRxPoolPS_ResourceConfig_offsetIndicator_present,"prNothing")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_NOTHING; + } else if (strcmp(discRxPoolPS_ResourceConfig_offsetIndicator_present,"prSmall")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_small_r12; + } else if (strcmp(discRxPoolPS_ResourceConfig_offsetIndicator_present,"prLarge")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_large_r12; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPoolPS_ResourceConfig_offsetIndicator_present choice: prNothing,prSmal,prLarge!\n", + RC.config_file_name, i, discRxPoolPS_ResourceConfig_offsetIndicator_present); + + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_offsetIndicator_choice[j] = discRxPoolPS_ResourceConfig_offsetIndicator_choice; + + if (strcmp(discRxPoolPS_ResourceConfig_subframeBitmap_present,"prNothing")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_NOTHING; + } else if (strcmp(discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs4")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs4_r12; + } else if (strcmp(discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs8")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs8_r12; + } else if (strcmp(discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs12")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs12_r12; + } else if (strcmp(discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs16")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs16_r12; + } else if (strcmp(discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs30")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs30_r12; + } else if (strcmp(discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs40")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs40_r12; + } else if (strcmp(discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs42")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs42_r12; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPoolPS_ResourceConfig_subframeBitmap_present choice: prNothing,prBs4,prBs8,prBs12,prBs16,prBs30,prBs40,prBs42!\n", + RC.config_file_name, i, discRxPoolPS_ResourceConfig_subframeBitmap_present); + + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[j] = discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf; + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[j] = discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size; + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[j] = discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused; + + } } char srb1path[MAX_OPTNAME_SIZE*2 + 8]; @@ -1968,12 +2355,12 @@ int RCconfig_S1(MessageDef *msg_p, uint32_t i) { #endif } if (strcmp(*(S1ParamList.paramarray[l][ENB_MME_IP_ADDRESS_PREFERENCE_IDX].strptr), "ipv4") == 0) { - S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv4 = 1; + S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[l].ipv4 = 1; } else if (strcmp(*(S1ParamList.paramarray[l][ENB_MME_IP_ADDRESS_PREFERENCE_IDX].strptr), "ipv6") == 0) { - S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv6 = 1; + S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[l].ipv6 = 1; } else if (strcmp(*(S1ParamList.paramarray[l][ENB_MME_IP_ADDRESS_PREFERENCE_IDX].strptr), "no") == 0) { - S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv4 = 1; - S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv6 = 1; + S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[l].ipv4 = 1; + S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[l].ipv6 = 1; } } diff --git a/openair2/ENB_APP/enb_config.h b/openair2/ENB_APP/enb_config.h index 82e86847bc..4b5019bb73 100644 --- a/openair2/ENB_APP/enb_config.h +++ b/openair2/ENB_APP/enb_config.h @@ -43,7 +43,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" @@ -96,6 +96,7 @@ extern void RCconfig_RU(void); extern void RCconfig_flexran(void); extern void RCconfig_L1(void); extern void RCconfig_macrlc(void); +extern void UE_config_stub_pnf(void); extern int RCconfig_gtpu(void ); extern void RCConfig(void); diff --git a/openair2/ENB_APP/enb_paramdef.h b/openair2/ENB_APP/enb_paramdef.h index fe2b5a8515..23b4c2a837 100755 --- a/openair2/ENB_APP/enb_paramdef.h +++ b/openair2/ENB_APP/enb_paramdef.h @@ -35,11 +35,6 @@ - - - - - #define ENB_CONFIG_STRING_CC_NODE_FUNCTION "node_function" #define ENB_CONFIG_STRING_CC_NODE_TIMING "node_timing" #define ENB_CONFIG_STRING_CC_NODE_SYNCH_REF "node_synch_ref" @@ -259,7 +254,7 @@ typedef enum { #define ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT "pucch_delta_shift" #define ENB_CONFIG_STRING_PUCCH_NRB_CQI "pucch_nRB_CQI" #define ENB_CONFIG_STRING_PUCCH_NCS_AN "pucch_nCS_AN" -//#if !defined(Rel10) && !defined(Rel14) +//#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #define ENB_CONFIG_STRING_PUCCH_N1_AN "pucch_n1_AN" //#endif #define ENB_CONFIG_STRING_PDSCH_RS_EPRE "pdsch_referenceSignalPower" @@ -309,7 +304,56 @@ 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 +#define ENB_CONFIG_STRING_RXPOOL_SC_CP_LEN "rxPool_sc_CP_Len" +#define ENB_CONFIG_STRING_RXPOOL_SC_PRIOD "rxPool_sc_Period" +#define ENB_CONFIG_STRING_RXPOOL_DATA_CP_LEN "rxPool_data_CP_Len" +#define ENB_CONFIG_STRING_RXPOOL_RC_PRB_NUM "rxPool_ResourceConfig_prb_Num" +#define ENB_CONFIG_STRING_RXPOOL_RC_PRB_START "rxPool_ResourceConfig_prb_Start" +#define ENB_CONFIG_STRING_RXPOOL_RC_PRB_END "rxPool_ResourceConfig_prb_End" +#define ENB_CONFIG_STRING_RXPOOL_RC_OFFSETIND_PRESENT "rxPool_ResourceConfig_offsetIndicator_present" +#define ENB_CONFIG_STRING_RXPOOL_RC_OFFSETIND_CHOICE "rxPool_ResourceConfig_offsetIndicator_choice" +#define ENB_CONFIG_STRING_RXPOOL_RC_SFBITMAP_PRESENT "rxPool_ResourceConfig_subframeBitmap_present" +#define ENB_CONFIG_STRING_RXPOOL_RC_SFBITMAP_CHOICE_BS_BUF "rxPool_ResourceConfig_subframeBitmap_choice_bs_buf" +#define ENB_CONFIG_STRING_RXPOOL_RC_SFBITMAP_CHOICE_BS_SIZE "rxPool_ResourceConfig_subframeBitmap_choice_bs_size" +#define ENB_CONFIG_STRING_RXPOOL_RC_SFBITMAP_CHOICE_BS_ASN_BITS_UNUSED "rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused" +//SIB19 for DiscRxPool +#define ENB_CONFIG_STRING_DISCRXPOOL_CP_LEN "discRxPool_cp_Len" +#define ENB_CONFIG_STRING_DISCRXPOOL_DISCPERIOD "discRxPool_discPeriod" +#define ENB_CONFIG_STRING_DISCRXPOOL_NUMRETX "discRxPool_numRetx" +#define ENB_CONFIG_STRING_DISCRXPOOL_NUMREPETITION "discRxPool_numRepetition" +#define ENB_CONFIG_STRING_DISCRXPOOL_RC_PRB_NUM "discRxPool_ResourceConfig_prb_Num" +#define ENB_CONFIG_STRING_DISCRXPOOL_RC_PRB_START "discRxPool_ResourceConfig_prb_Start" +#define ENB_CONFIG_STRING_DISCRXPOOL_RC_PRB_END "discRxPool_ResourceConfig_prb_End" +#define ENB_CONFIG_STRING_DISCRXPOOL_RC_OFFSETIND_PRESENT "discRxPool_ResourceConfig_offsetIndicator_present" +#define ENB_CONFIG_STRING_DISCRXPOOL_RC_OFFSETIND_CHOICE "discRxPool_ResourceConfig_offsetIndicator_choice" +#define ENB_CONFIG_STRING_DISCRXPOOL_RC_SFBITMAP_PRESENT "discRxPool_ResourceConfig_subframeBitmap_present" +#define ENB_CONFIG_STRING_DISCRXPOOL_RC_SFBITMAP_CHOICE_BS_BUF "discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf" +#define ENB_CONFIG_STRING_DISCRXPOOL_RC_SFBITMAP_CHOICE_BS_SIZE "discRxPool_ResourceConfig_subframeBitmap_choice_bs_size" +#define ENB_CONFIG_STRING_DISCRXPOOL_RC_SFBITMAP_CHOICE_BS_ASN_BITS_UNUSED "discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused" + +//SIB19 for DiscRxPoolPS +#define ENB_CONFIG_STRING_DISCRXPOOLPS_CP_LEN "DISCRXPOOLPS_cp_Len" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_DISCPERIOD "DISCRXPOOLPS_discPeriod" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_NUMRETX "DISCRXPOOLPS_numRetx" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_NUMREPETITION "DISCRXPOOLPS_numRepetition" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_RC_PRB_NUM "DISCRXPOOLPS_ResourceConfig_prb_Num" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_RC_PRB_START "DISCRXPOOLPS_ResourceConfig_prb_Start" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_RC_PRB_END "DISCRXPOOLPS_ResourceConfig_prb_End" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_RC_OFFSETIND_PRESENT "DISCRXPOOLPS_ResourceConfig_offsetIndicator_present" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_RC_OFFSETIND_CHOICE "DISCRXPOOLPS_ResourceConfig_offsetIndicator_choice" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_PRESENT "DISCRXPOOLPS_ResourceConfig_subframeBitmap_present" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_BUF "DISCRXPOOLPS_ResourceConfig_subframeBitmap_choice_bs_buf" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_SIZE "DISCRXPOOLPS_ResourceConfig_subframeBitmap_choice_bs_size" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_ASN_BITS_UNUSED "DISCRXPOOLPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused" + +/*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ +/* component carriers configuration parameters */ +/* optname helpstr paramflags XXXptr defXXXval type numelt */ +/*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ /* init for checkedparam_t structure */ #define CCPARAMS_CHECK { \ @@ -381,11 +425,51 @@ typedef enum { { .s1a= { config_check_modify_integer, UETIMER_N310_OKVALUES, UETIMER_N310_MODVALUES,8}} , \ { .s1a= { config_check_modify_integer, UETIMER_N311_OKVALUES, UETIMER_N311_MODVALUES,8}} , \ { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ } /*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ /* component carriers configuration parameters */ /* optname helpstr paramflags XXXptr defXXXval type numelt checked_param */ /*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ + #define CCPARAMS_DESC { \ {ENB_CONFIG_STRING_FRAME_TYPE, NULL, 0, strptr:&frame_type, defstrval:"FDD", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_TDD_CONFIG, NULL, 0, iptr:&tdd_config, defintval:3, TYPE_UINT, 0}, \ @@ -407,7 +491,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}, \ @@ -454,7 +538,46 @@ typedef enum { {ENB_CONFIG_STRING_UETIMERS_T311, NULL, 0, iptr:&ue_TimersAndConstants_t311, defintval:10000, TYPE_UINT, 0}, \ {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_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}, \ +{ENB_CONFIG_STRING_RXPOOL_RC_PRB_NUM, NULL, 0, iptr:(int32_t *)&rxPool_ResourceConfig_prb_Num, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RXPOOL_RC_PRB_START, NULL, 0, iptr:(int32_t *)&rxPool_ResourceConfig_prb_Start, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RXPOOL_RC_PRB_END, NULL, 0, iptr:(int32_t *)&rxPool_ResourceConfig_prb_End, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RXPOOL_RC_OFFSETIND_PRESENT, NULL, 0, strptr:(char **)&rxPool_ResourceConfig_offsetIndicator_present, defstrval:"prNothing", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RXPOOL_RC_OFFSETIND_CHOICE, NULL, 0, iptr:(int32_t *)&rxPool_ResourceConfig_offsetIndicator_choice, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RXPOOL_RC_SFBITMAP_PRESENT, NULL, 0, strptr:(char **)&rxPool_ResourceConfig_subframeBitmap_present, defstrval:"prNothing", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RXPOOL_RC_SFBITMAP_CHOICE_BS_BUF, NULL, 0, strptr:(char **)&rxPool_ResourceConfig_subframeBitmap_choice_bs_buf, defstrval:"001001", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RXPOOL_RC_SFBITMAP_CHOICE_BS_SIZE, NULL, 0, iptr:(int32_t *)&rxPool_ResourceConfig_subframeBitmap_choice_bs_size, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RXPOOL_RC_SFBITMAP_CHOICE_BS_ASN_BITS_UNUSED, NULL, 0, iptr:(int32_t *)&rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_CP_LEN, NULL, 0, strptr:(char **)&discRxPool_cp_Len, defstrval:"normal", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_DISCPERIOD, NULL, 0, strptr:(char **)&discRxPool_discPeriod, defstrval:"rf32", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_NUMRETX, NULL, 0, iptr:(int32_t *)&discRxPool_numRetx, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_NUMREPETITION, NULL, 0, iptr:(int32_t *)&discRxPool_numRepetition, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_RC_PRB_NUM, NULL, 0, iptr:(int32_t *)&discRxPool_ResourceConfig_prb_Num, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_RC_PRB_START, NULL, 0, iptr:(int32_t *)&discRxPool_ResourceConfig_prb_Start, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_RC_PRB_END, NULL, 0, iptr:(int32_t *)&discRxPool_ResourceConfig_prb_End, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_RC_OFFSETIND_PRESENT, NULL, 0, strptr:(char **)&discRxPool_ResourceConfig_offsetIndicator_present, defstrval:"prNothing", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_RC_OFFSETIND_CHOICE, NULL, 0, iptr:(int32_t *)&discRxPool_ResourceConfig_offsetIndicator_choice, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_RC_SFBITMAP_PRESENT, NULL, 0, strptr:(char **)&discRxPool_ResourceConfig_subframeBitmap_present, defstrval:"prNothing", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_RC_SFBITMAP_CHOICE_BS_BUF, NULL, 0, strptr:(char **)&discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf, defstrval:"001001", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_RC_SFBITMAP_CHOICE_BS_SIZE, NULL, 0, iptr:(int32_t *)&discRxPool_ResourceConfig_subframeBitmap_choice_bs_size, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_RC_SFBITMAP_CHOICE_BS_ASN_BITS_UNUSED,NULL, 0, iptr:(int32_t *)&discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_CP_LEN, NULL, 0, strptr:(char **)&discRxPoolPS_cp_Len, defstrval:"normal", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_DISCPERIOD, NULL, 0, strptr:(char **)&discRxPoolPS_discPeriod, defstrval:"rf32", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_NUMRETX, NULL, 0, iptr:(int32_t *)&discRxPoolPS_numRetx, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_NUMREPETITION, NULL, 0, iptr:(int32_t *)&discRxPoolPS_numRepetition, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_PRB_NUM, NULL, 0, iptr:(int32_t *)&discRxPoolPS_ResourceConfig_prb_Num, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_PRB_START, NULL, 0, iptr:(int32_t *)&discRxPoolPS_ResourceConfig_prb_Start, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_PRB_END, NULL, 0, iptr:(int32_t *)&discRxPoolPS_ResourceConfig_prb_End, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_OFFSETIND_PRESENT, NULL, 0, strptr:(char **)&discRxPoolPS_ResourceConfig_offsetIndicator_present, defstrval:"prNothing", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_OFFSETIND_CHOICE, NULL, 0, iptr:(int32_t *)&discRxPoolPS_ResourceConfig_offsetIndicator_choice, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_PRESENT, NULL, 0, strptr:(char **)&discRxPoolPS_ResourceConfig_subframeBitmap_present, defstrval:"prNothing", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_BUF, NULL, 0, strptr:(char **)&discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf, defstrval:"001001", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_SIZE, NULL, 0, iptr:(int32_t *)&discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_ASN_BITS_UNUSED,NULL, 0, iptr:(int32_t *)&discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused, defintval:1, TYPE_UINT, 0} \ } #define ENB_CONFIG_FRAME_TYPE_IDX 0 @@ -705,9 +828,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 @@ -725,5 +848,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 d2d8174dd4..e39d676061 100644 --- a/openair2/ENB_APP/flexran_agent_ran_api.c +++ b/openair2/ENB_APP/flexran_agent_ran_api.c @@ -140,7 +140,11 @@ rlc_buffer_occupancy_t flexran_get_tx_queue_size(mid_t mod_id, mid_t ue_id, logi rnti_t rnti = flexran_get_ue_crnti(mod_id, ue_id); 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); + 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 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); return rlc_status.bytes_in_buffer; } @@ -149,7 +153,11 @@ rlc_buffer_occupancy_t flexran_get_num_pdus_buffer(mid_t mod_id, mid_t ue_id, lo rnti_t rnti = flexran_get_ue_crnti(mod_id,ue_id); 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); + 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 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); return rlc_status.pdus_in_buffer; } @@ -158,7 +166,11 @@ frame_t flexran_get_hol_delay(mid_t mod_id, mid_t ue_id, logical_chan_id_t chann rnti_t rnti = flexran_get_ue_crnti(mod_id,ue_id); 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); + 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 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); return rlc_status.head_sdu_creation_time; } diff --git a/openair2/LAYER2/MAC/config.c b/openair2/LAYER2/MAC/config.c index 6be1c948c9..8fd85e7811 100644 --- a/openair2/LAYER2/MAC/config.c +++ b/openair2/LAYER2/MAC/config.c @@ -35,7 +35,7 @@ #include "SystemInformationBlockType2.h" //#include "RadioResourceConfigCommonSIB.h" #include "RadioResourceConfigDedicated.h" -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) #include "PRACH-ConfigSIB-v1310.h" #endif #include "MeasGapConfig.h" @@ -45,11 +45,11 @@ #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 defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) #include "MBSFN-AreaInfoList-r9.h" #include "MBSFN-AreaInfo-r9.h" #include "MBSFN-SubframeConfigList.h" @@ -193,7 +193,7 @@ void config_mib(int Mod_idP, int p_eNBP, uint32_t dl_CarrierFreqP, uint32_t ul_CarrierFreqP -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) , uint32_t pbch_repetitionP #endif @@ -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; @@ -265,14 +265,14 @@ void config_mib(int Mod_idP, cfg->sch_config.physical_cell_id.tl.tag = NFAPI_SCH_CONFIG_PHYSICAL_CELL_ID_TAG; cfg->num_tlv++; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) cfg->emtc_config.pbch_repetitions_enable_r13.value = pbch_repetitionP; cfg->emtc_config.pbch_repetitions_enable_r13.tl.tag = NFAPI_EMTC_CONFIG_PBCH_REPETITIONS_ENABLE_R13_TAG; cfg->num_tlv++; #endif LOG_I(MAC, "%s() NFAPI_CONFIG_REQUEST(num_tlv:%u) DL_BW:%u UL_BW:%u Ncp %d,p_eNB %d,earfcn %d,band %d,phich_resource %u phich_duration %u phich_power_offset %u PSS %d SSS %d PCI %d" -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) " PBCH repetition %d" #endif @@ -290,7 +290,7 @@ void config_mib(int Mod_idP, ,cfg->sch_config.primary_synchronization_signal_epre_eprers.value ,cfg->sch_config.secondary_synchronization_signal_epre_eprers.value ,cfg->sch_config.physical_cell_id.value -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,cfg->emtc_config.pbch_repetitions_enable_r13.value #endif ); @@ -329,7 +329,7 @@ void config_sib2(int Mod_idP, int CC_idP, RadioResourceConfigCommonSIB_t * radioResourceConfigCommonP, -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) RadioResourceConfigCommonSIB_t * radioResourceConfigCommon_BRP, #endif ARFCN_ValueEUTRA_t *ul_CArrierFreqP, @@ -445,7 +445,7 @@ config_sib2(int Mod_idP, cfg->num_tlv++; } -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (RC.mac[Mod_idP]->common_channels[CC_idP].mib->message.schedulingInfoSIB1_BR_r13 > 0) { AssertFatal(radioResourceConfigCommon_BRP != NULL, "radioResource rou is missing\n"); AssertFatal(radioResourceConfigCommon_BRP->ext4 != NULL, "ext4 is missing\n"); @@ -676,20 +676,20 @@ rrc_mac_config_req_eNB(module_id_t Mod_idP, int physCellId, int p_eNB, int Ncp, int eutra_band, uint32_t dl_CarrierFreq, -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) int pbch_repetition, #endif rnti_t rntiP, BCCH_BCH_Message_t * mib, RadioResourceConfigCommonSIB_t * radioResourceConfigCommon, -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) RadioResourceConfigCommonSIB_t * radioResourceConfigCommon_BR, #endif struct PhysicalConfigDedicated *physicalConfigDedicated, -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) SCellToAddMod_r10_t * sCellToAddMod_r10, //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif @@ -707,12 +707,12 @@ rrc_mac_config_req_eNB(module_id_t Mod_idP, additionalSpectrumEmission, struct MBSFN_SubframeConfigList *mbsfn_SubframeConfigList -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) , uint8_t MBMS_Flag, MBSFN_AreaInfoList_r9_t * mbsfn_AreaInfoList, PMCH_InfoList_r9_t * pmch_InfoList #endif -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) , SystemInformationBlockType1_v1310_IEs_t * sib1_v13ext @@ -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) @@ -763,7 +763,7 @@ rrc_mac_config_req_eNB(module_id_t Mod_idP, p_eNB, dl_CarrierFreq, ul_CarrierFreq -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) , pbch_repetition #endif ); @@ -775,7 +775,7 @@ rrc_mac_config_req_eNB(module_id_t Mod_idP, RC.mac[Mod_idP]->common_channels[CC_idP].schedulingInfoList = schedulingInfoList; config_sib1(Mod_idP,CC_idP,tdd_Config); } -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) if (sib1_v13ext != NULL) { RC.mac[Mod_idP]->common_channels[CC_idP].sib1_v13ext = sib1_v13ext; } @@ -834,7 +834,7 @@ rrc_mac_config_req_eNB(module_id_t Mod_idP, dl_Bandwidth; config_sib2(Mod_idP, CC_idP, radioResourceConfigCommon, -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) radioResourceConfigCommon_BR, #endif NULL, ul_Bandwidth, additionalSpectrumEmission, @@ -876,7 +876,7 @@ rrc_mac_config_req_eNB(module_id_t Mod_idP, } -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) if (sCellToAddMod_r10 != NULL) { UE_id = find_UE_id(Mod_idP, rntiP); @@ -909,11 +909,11 @@ rrc_mac_config_req_eNB(module_id_t Mod_idP, subframeAllocation.choice.oneFrame.buf[0]); } -#ifdef Rel10 +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) RC.mac[Mod_idP]->common_channels[0].MBMS_flag = MBMS_Flag; #endif } -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) if (mbsfn_AreaInfoList != NULL) { // One eNB could be part of multiple mbsfn syc area, this could change over time so reset each time @@ -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 cac3323b0c..c38c32a4de 100644 --- a/openair2/LAYER2/MAC/config_ue.c +++ b/openair2/LAYER2/MAC/config_ue.c @@ -36,7 +36,7 @@ #include "SystemInformationBlockType2.h" //#include "RadioResourceConfigCommonSIB.h" #include "RadioResourceConfigDedicated.h" -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) #include "PRACH-ConfigSIB-v1310.h" #endif #include "MeasGapConfig.h" @@ -46,11 +46,12 @@ #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" -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) #include "MBSFN-AreaInfoList-r9.h" #include "MBSFN-AreaInfo-r9.h" #include "MBSFN-SubframeConfigList.h" @@ -60,6 +61,8 @@ extern void mac_init_cell_params(int Mod_idP,int CC_idP); extern void phy_reset_ue(module_id_t Mod_id,uint8_t CC_id,uint8_t eNB_index); +extern uint8_t nfapi_mode; + /* sec 5.9, 36.321: MAC Reset Procedure */ void ue_mac_reset(module_id_t module_idP, uint8_t eNB_index) @@ -108,7 +111,7 @@ rrc_mac_config_req_ue(module_id_t Mod_idP, radioResourceConfigCommon, struct PhysicalConfigDedicated *physicalConfigDedicated, -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) SCellToAddMod_r10_t * sCellToAddMod_r10, //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif @@ -127,13 +130,18 @@ rrc_mac_config_req_ue(module_id_t Mod_idP, additionalSpectrumEmission, struct MBSFN_SubframeConfigList *mbsfn_SubframeConfigList -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) , uint8_t MBMS_Flag, MBSFN_AreaInfoList_r9_t * mbsfn_AreaInfoList, PMCH_InfoList_r9_t * pmch_InfoList #endif #ifdef CBA , uint8_t num_active_cba_groups, uint16_t cba_rnti +#endif +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,config_action_t config_action + ,const uint32_t * const sourceL2Id + ,const uint32_t * const destinationL2Id #endif ) { @@ -211,7 +219,7 @@ rrc_mac_config_req_ue(module_id_t Mod_idP, mac_MainConfig->ul_SCH_Config->periodicBSR_Timer; } else { UE_mac_inst[Mod_idP].scheduling_info.periodicBSR_Timer = -#ifndef Rel14 +#if (RRC_VERSION < MAKE_VERSION(12, 0, 0)) (uint16_t) MAC_MainConfig__ul_SCH_Config__periodicBSR_Timer_infinity #else @@ -228,16 +236,17 @@ rrc_mac_config_req_ue(module_id_t Mod_idP, (uint16_t) MAC_MainConfig__ul_SCH_Config__maxHARQ_Tx_n5; } - phy_config_harq_ue(Mod_idP, 0, eNB_index, - UE_mac_inst[Mod_idP]. - scheduling_info.maxHARQ_Tx); + if(nfapi_mode!=3) + phy_config_harq_ue(Mod_idP, 0, eNB_index, + UE_mac_inst[Mod_idP]. + scheduling_info.maxHARQ_Tx); if (mac_MainConfig->ul_SCH_Config->retxBSR_Timer) { UE_mac_inst[Mod_idP].scheduling_info.retxBSR_Timer = (uint16_t) mac_MainConfig->ul_SCH_Config-> retxBSR_Timer; } else { -#ifndef Rel14 +#if (RRC_VERSION < MAKE_VERSION(12, 0, 0)) UE_mac_inst[Mod_idP].scheduling_info.retxBSR_Timer = (uint16_t) MAC_MainConfig__ul_SCH_Config__retxBSR_Timer_sf2560; @@ -247,7 +256,7 @@ rrc_mac_config_req_ue(module_id_t Mod_idP, #endif } } -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) if (mac_MainConfig->ext1 && mac_MainConfig->ext1->sr_ProhibitTimer_r9) { @@ -348,11 +357,12 @@ rrc_mac_config_req_ue(module_id_t Mod_idP, if (physicalConfigDedicated != NULL) { - phy_config_dedicated_ue(Mod_idP, 0, eNB_index, - physicalConfigDedicated); + if(nfapi_mode!=3) + phy_config_dedicated_ue(Mod_idP, 0, eNB_index, + physicalConfigDedicated); UE_mac_inst[Mod_idP].physicalConfigDedicated = physicalConfigDedicated; // for SR proc } -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) if (sCellToAddMod_r10 != NULL) { @@ -522,7 +532,7 @@ rrc_mac_config_req_ue(module_id_t Mod_idP, // UE_mac_inst[Mod_idP].mbsfn_SubframeConfig[i]->subframeAllocation.choice.oneFrame.buf[0]); } } -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) if (mbsfn_AreaInfoList != NULL) { LOG_I(MAC, "[UE %d][CONFIG] Received %d MBSFN Area Info\n", @@ -579,6 +589,34 @@ rrc_mac_config_req_ue(module_id_t Mod_idP, #endif VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME (VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_MAC_CONFIG, VCD_FUNCTION_OUT); + //for D2D + #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + switch (config_action) { + case CONFIG_ACTION_ADD: + if (sourceL2Id){ + UE_mac_inst[Mod_idP].sourceL2Id = *sourceL2Id; + LOG_I(MAC,"[UE %d] Configure source L2Id 0x%08x \n", Mod_idP, *sourceL2Id ); + } + if (destinationL2Id) { + LOG_I(MAC,"[UE %d] Configure destination L2Id 0x%08x\n", Mod_idP, *destinationL2Id ); + int j = 0; + int i = 0; + for (i=0; i< MAX_NUM_DEST; i++) { + if ((UE_mac_inst[Mod_idP].destinationList[i] == 0) && (j == 0)) j = i+1; + if (UE_mac_inst[Mod_idP].destinationList[i] == *destinationL2Id) break; //destination already exists! + } + if ((i == MAX_NUM_DEST) && (j > 0)) UE_mac_inst[Mod_idP].destinationList[j-1] = *destinationL2Id; + UE_mac_inst[Mod_idP].numCommFlows++; + } + break; + case CONFIG_ACTION_REMOVE: + //TODO + break; + default: + break; + } + + #endif return (0); } diff --git a/openair2/LAYER2/MAC/eNB_scheduler.c b/openair2/LAYER2/MAC/eNB_scheduler.c index 34cb94c2ab..c867736d95 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler.c +++ b/openair2/LAYER2/MAC/eNB_scheduler.c @@ -36,8 +36,8 @@ #include "LAYER2/MAC/mac_proto.h" #include "LAYER2/NR_MAC_gNB/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" @@ -53,6 +53,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 @@ -208,7 +211,7 @@ schedule_CSI(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP) ul_req->number_of_pdus++; ul_req->tl.tag = NFAPI_UL_CONFIG_REQUEST_BODY_TAG; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) // PUT rel10-13 UCI options here #endif } else @@ -311,7 +314,7 @@ schedule_SR(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP) LOG_D(MAC,"Frame %d, Subframe %d : Scheduling SR for UE %d/%x is_harq:%d\n",frameP,subframeP,UE_id,UE_list->UE_template[CC_id][UE_id].rnti, is_harq); // check Rel10 or Rel8 SR -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) if ((UE_list-> UE_template[CC_id][UE_id].physicalConfigDedicated->ext2) && (UE_list->UE_template[CC_id][UE_id].physicalConfigDedicated->ext2->schedulingRequestConfig_v1020) && (UE_list->UE_template[CC_id][UE_id].physicalConfigDedicated->ext2->schedulingRequestConfig_v1020)) { @@ -361,8 +364,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)) { - 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); + 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); 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,23 +391,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 - LOG_I(MAC, + 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 % 40) == 0) UE_list->UE_sched_ctrl[UE_id].ra_pdcch_order_sent = 0; // resend every 4 frames + 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", @@ -420,16 +425,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 @@ -438,7 +433,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; @@ -451,8 +446,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; @@ -524,7 +519,7 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frameP, memset(cc[CC_id].vrb_map_UL, 0, 100); -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) cc[CC_id].mcch_active = 0; #endif @@ -534,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); @@ -572,18 +566,26 @@ 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]; if((ulsch != NULL) && (ulsch->rnti == rnti)){ + void clean_eNb_ulsch(LTE_eNB_ULSCH_t *ulsch); LOG_I(MAC, "clean_eNb_ulsch UE %x \n", rnti); clean_eNb_ulsch(ulsch); } @@ -591,6 +593,7 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frameP, for (int ii=0; iidlsch[ii][0]; if((dlsch != NULL) && (dlsch->rnti == rnti)){ + void clean_eNb_dlsch(LTE_eNB_DLSCH_t *dlsch); LOG_I(MAC, "clean_eNb_dlsch UE %x \n", rnti); clean_eNb_dlsch(dlsch); } @@ -617,15 +620,17 @@ 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 defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { if (cc[CC_id].MBMS_flag > 0) { @@ -637,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){ @@ -659,13 +680,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); @@ -676,8 +706,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 d9aee92a91..35590ec896 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -40,15 +40,17 @@ #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" +#include "PHY/LTE_TRANSPORT/transport_common_proto.h" #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" @@ -61,6 +63,7 @@ #include "T.h" #include "common/ran_context.h" +#include "LAYER2/MAC/eNB_scheduler_fairRR.h" extern RAN_CONTEXT_t RC; @@ -105,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 }; @@ -117,7 +120,7 @@ add_msg3(module_id_t module_idP, int CC_id, RA_t * ra, frame_t frameP, AssertFatal(ra->state != IDLE, "RA is not active for RA %X\n", ra->rnti); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (ra->rach_resource_type > 0) { LOG_D(MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : CC_id %d CE level %d is active, Msg3 in (%d,%d)\n", @@ -173,9 +176,9 @@ add_msg3(module_id_t module_idP, int CC_id, RA_t * ra, frame_t frameP, ra->Msg3_subframe); LOG_D(MAC, - "Frame %d, Subframe %d Adding Msg3 UL Config Request for (%d,%d) : (%d,%d,%d)\n", + "Frame %d, Subframe %d Adding Msg3 UL Config Request for (%d,%d) : (%d,%d,%d) for rnti: %d\n", frameP, subframeP, ra->Msg3_frame, ra->Msg3_subframe, - ra->msg3_nb_rb, ra->msg3_first_rb, ra->msg3_round); + ra->msg3_nb_rb, ra->msg3_first_rb, ra->msg3_round, ra->rnti); ul_config_pdu = &ul_req_body->ul_config_pdu_list[ul_req_body->number_of_pdus]; @@ -210,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)); @@ -224,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) { @@ -266,7 +272,7 @@ generate_Msg2(module_id_t module_idP, int CC_idP, frame_t frameP, dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; N_RB_DL = to_prb(cc[CC_idP].mib->message.dl_Bandwidth); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) int rmax = 0; int rep = 0; int reps = 0; @@ -282,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) { @@ -485,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); + } } } @@ -586,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 @@ -619,7 +631,7 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP, uint8_t offset; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) int rmax = 0; int rep = 0; int reps = 0; @@ -692,25 +704,25 @@ 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 + /* // 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, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: UE_id %d, rrc_sdu_length %d\n", - module_idP, CC_idP, frameP, subframeP, UE_id, rrc_sdu_length); + module_idP, CC_idP, frameP, subframeP, UE_id, rrc_sdu_length);*/ -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (ra->rach_resource_type > 0) { // Generate DCI + repetitions first @@ -816,6 +828,20 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP, // Program PDSCH + // 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], ENB_FLAG_YES, module_idP, 0); // not used in this case*/ + + 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 + + LOG_D(MAC, + "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: UE_id %d, rrc_sdu_length %d\n", + module_idP, CC_idP, frameP, subframeP, UE_id, rrc_sdu_length); + + AssertFatal(rrc_sdu_length > 0, + "[MAC][eNB Scheduler] CCCH not allocated\n"); + LOG_D(MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Generating Msg4 BR with RRC Piggyback (ce_level %d RNTI %x)\n", module_idP, CC_idP, frameP, subframeP, @@ -972,13 +998,35 @@ 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 else #endif - { // This is normal LTE case - if ((ra->Msg4_frame == frameP) && (ra->Msg4_subframe == subframeP)) { + { + // This is normal LTE case + 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 + /*rrc_sdu_length = mac_rrc_data_req(module_idP, CC_idP, frameP, CCCH, 1, // 1 transport block + &cc[CC_idP].CCCH_pdu.payload[0], ENB_FLAG_YES, module_idP, 0); // not used in this case*/ + + 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 + + LOG_D(MAC, + "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: UE_id %d, rrc_sdu_length %d\n", + module_idP, CC_idP, frameP, subframeP, UE_id, rrc_sdu_length); + + AssertFatal(rrc_sdu_length > 0, + "[MAC][eNB Scheduler] CCCH not allocated, rrc_sdu_length: %d\n", rrc_sdu_length); + + + LOG_D(MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Generating Msg4 with RRC Piggyback (RNTI %x)\n", module_idP, CC_idP, frameP, subframeP, ra->rnti); @@ -1052,10 +1100,8 @@ 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 (ra->Msg4_subframe > 1) - ra->Msg4_frame++; - ra->Msg4_frame &= 1023; - ra->Msg4_subframe = (ra->Msg4_subframe + 8) % 10; + 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, @@ -1063,9 +1109,7 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP, 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) { @@ -1160,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 @@ -1184,7 +1230,7 @@ check_Msg4_retransmission(module_id_t module_idP, int CC_idP, int round; /* - #ifdef Rel14 + #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) COMMON_channels_t *cc = mac->common_channels; int rmax = 0; @@ -1232,12 +1278,12 @@ check_Msg4_retransmission(module_id_t module_idP, int CC_idP, N_RB_DL = to_prb(cc[CC_idP].mib->message.dl_Bandwidth); LOG_D(MAC, - "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Checking if Msg4 for harq_pid %d was acknowledged (round %d)\n", - module_idP, CC_idP, frameP, subframeP, ra->harq_pid, round); + "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Checking if Msg4 for harq_pid %d was acknowledged (round %d), UE_id: %d \n", + module_idP, CC_idP, frameP, subframeP, ra->harq_pid, round, UE_id); if (round != 8) { -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (ra->rach_resource_type > 0) { AssertFatal(1 == 0, "Msg4 Retransmissions not handled yet for BL/CE UEs\n"); @@ -1282,6 +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, "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 */ @@ -1304,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", @@ -1320,10 +1370,7 @@ check_Msg4_retransmission(module_id_t module_idP, int CC_idP, dci_dl_pdu_rel8.cce_idx); // prepare frame for retransmission - if (ra->Msg4_subframe > 1) - ra->Msg4_frame++; - ra->Msg4_frame &= 1023; - ra->Msg4_subframe = (ra->Msg4_subframe + 8) % 10; + 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", @@ -1341,6 +1388,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); } } @@ -1371,7 +1419,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, @@ -1392,7 +1440,7 @@ initiate_ra_proc(module_id_t module_idP, sub_frame_t subframeP, uint16_t preamble_index, int16_t timing_offset, uint16_t ra_rnti -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) , uint8_t rach_resource_type #endif ) @@ -1403,10 +1451,12 @@ initiate_ra_proc(module_id_t module_idP, COMMON_channels_t *cc = &RC.mac[module_idP]->common_channels[CC_id]; RA_t *ra = &cc->ra[0]; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) 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) { @@ -1414,12 +1464,12 @@ initiate_ra_proc(module_id_t module_idP, prach_ParametersListCE_r13 = &ext4_prach->prach_ParametersListCE_r13; } -#endif /* Rel14 */ +#endif /* #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) */ LOG_D(MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, Subframe %d Initiating RA procedure for preamble index %d\n", module_idP, CC_id, frameP, subframeP, preamble_index); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) LOG_D(MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, Subframe %d PRACH resource type %d\n", module_idP, CC_id, frameP, subframeP, rach_resource_type); @@ -1429,7 +1479,7 @@ initiate_ra_proc(module_id_t module_idP, uint16_t msg2_subframe = subframeP; int offset; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) if (prach_ParametersListCE_r13 && prach_ParametersListCE_r13->list.count < rach_resource_type) { @@ -1440,7 +1490,7 @@ initiate_ra_proc(module_id_t module_idP, return; } -#endif /* Rel14 */ +#endif /* #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) */ VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_INITIATE_RA_PROC, 1); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_INITIATE_RA_PROC, 0); @@ -1453,17 +1503,28 @@ initiate_ra_proc(module_id_t module_idP, ra[i].state = MSG2; ra[i].timing_offset = timing_offset; ra[i].preamble_subframe = subframeP; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ra[i].rach_resource_type = rach_resource_type; ra[i].msg2_mpdcch_repetition_cnt = 0; 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); @@ -1510,6 +1571,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, @@ -1522,6 +1584,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 @@ -1544,6 +1613,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 8b391a0c1d..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" @@ -59,7 +59,7 @@ extern RAN_CONTEXT_t RC; // NEED TO ADD schedule_SI_BR for SIB1_BR and SIB23_BR // CCE_allocation_infeasible to be done for EPDCCH/MPDCCH -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #define size_Sj25 2 int Sj25[size_Sj25] = { 0, 3 }; @@ -81,7 +81,6 @@ schedule_SIB1_BR(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP) //------------------------------------------------------------------------------ { - int8_t bcch_sdu_length; int CC_id; eNB_MAC_INST *eNB = RC.mac[module_idP]; @@ -506,7 +505,6 @@ schedule_SI_BR(module_id_t module_idP, frame_t frameP, void schedule_mib(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP) { - eNB_MAC_INST *eNB = RC.mac[module_idP]; COMMON_channels_t *cc; nfapi_dl_config_request_pdu_t *dl_config_pdu; @@ -535,7 +533,7 @@ schedule_mib(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP) LOG_D(MAC, "Frame %d, subframe %d: Adding BCH PDU in position %d (length %d)\n", frameP, subframeP, dl_req->number_pdu, mib_sdu_length); if ((frameP & 1023) < 40) -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) LOG_D(MAC, "[eNB %d] Frame %d : MIB->BCH CC_id %d, Received %d bytes (cc->mib->message.schedulingInfoSIB1_BR_r13 %d)\n", module_idP, frameP, CC_id, mib_sdu_length, @@ -791,7 +789,7 @@ schedule_SI(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP) } } } -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) schedule_SIB1_BR(module_idP, frameP, subframeP); schedule_SI_BR(module_idP, frameP, subframeP); #endif diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index ba5d43899c..df52b83d72 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -33,11 +33,12 @@ #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" +#include "PHY/LTE_TRANSPORT/transport_common_proto.h" #include "RRC/LTE/rrc_extern.h" #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h" @@ -367,22 +368,25 @@ 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; } + break; case 2: // if ((subframeP==3)||(subframeP==8)) @@ -471,7 +475,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 @@ -479,7 +483,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; @@ -492,7 +496,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]; @@ -502,7 +506,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 { @@ -513,7 +517,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]; } @@ -539,7 +543,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]; } @@ -594,12 +598,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); @@ -631,8 +629,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: @@ -641,8 +638,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; @@ -760,19 +756,10 @@ schedule_ue_spec(module_id_t module_idP,slice_id_t slice_idP, CC_id, UE_id, subframeP, S_DL_NONE); continue; } -#warning RK->CR This old API call has to be revisited for FAPI, or logic must be changed -#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 +818,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, @@ -1003,7 +990,11 @@ schedule_ue_spec(module_id_t module_idP,slice_id_t slice_idP, // RLC data on DCCH 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); + TBS - ta_len - header_length_total - sdu_length_total - 3 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); sdu_lengths[0] = 0; @@ -1014,7 +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]); + (char *)&dlsch_buffer[0] +#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), @@ -1053,7 +1099,11 @@ schedule_ue_spec(module_id_t module_idP,slice_id_t slice_idP, // RLC data on DCCH1 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); + TBS - ta_len - header_length_total - sdu_length_total - 3 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); // DCCH SDU sdu_lengths[num_sdus] = 0; @@ -1065,7 +1115,11 @@ 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]); + (char *)&dlsch_buffer[sdu_length_total] +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), @@ -1095,6 +1149,7 @@ schedule_ue_spec(module_id_t module_idP,slice_id_t slice_idP, LOG_T(MAC, "\n"); #endif + } } @@ -1115,7 +1170,11 @@ schedule_ue_spec(module_id_t module_idP,slice_id_t slice_idP, ENB_FLAG_YES, MBMS_FLAG_NO, lcid, - TBS - ta_len - header_length_total - sdu_length_total - 3); + TBS - ta_len - header_length_total - sdu_length_total - 3 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); @@ -1129,7 +1188,11 @@ 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]); + (char *)&dlsch_buffer[sdu_length_total] +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), @@ -1290,12 +1353,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; @@ -1342,18 +1399,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; @@ -1501,7 +1558,6 @@ schedule_ue_spec(module_id_t module_idP,slice_id_t slice_idP, } // CC_id loop - fill_DLSCH_dci(module_idP, frameP, subframeP, mbsfn_flag); stop_meas(&eNB->schedule_dlsch); @@ -1558,8 +1614,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 @@ -1638,12 +1693,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]; @@ -1652,7 +1707,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) && @@ -1726,7 +1781,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; } } @@ -1791,21 +1846,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 */ @@ -1832,18 +1875,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 */ @@ -1910,7 +1941,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: @@ -1988,16 +2019,24 @@ void schedule_PCH(module_id_t module_idP,frame_t frameP,sub_frame_t subframeP) dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1 = mcs; // Rel10 fields +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10.pdsch_start = 3; +#endif // Rel13 fields +#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = 0; // regular UE dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not BR dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = 0xFFFF; +#endif if (!CCE_allocation_infeasible(module_idP, CC_id, 0, subframeP, dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level, P_RNTI)) { 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; @@ -2038,6 +2077,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 ccaceba079..63a4711778 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_mch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_mch.c @@ -33,11 +33,12 @@ #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" +#include "PHY/LTE_TRANSPORT/transport_common_proto.h" #include "RRC/LTE/rrc_extern.h" #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h" @@ -58,7 +59,7 @@ extern RAN_CONTEXT_t RC; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) int8_t get_mbsfn_sf_alloction(module_id_t module_idP, uint8_t CC_id, uint8_t mbsfn_sync_area) @@ -584,7 +585,7 @@ schedule_MBMS(module_id_t module_idP, uint8_t CC_id, frame_t frameP, TBS = get_TBS_DL(cc->MCH_pdu.mcs, to_prb(cc->mib->message.dl_Bandwidth)); -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) // do not let mcch and mtch multiplexing when relaying is active // for sync area 1, so not transmit data //if ((i == 0) && ((RC.mac[module_idP]->MBMS_flag != multicast_relay) || (RC.mac[module_idP]->mcch_active==0))) { @@ -631,7 +632,12 @@ schedule_MBMS(module_id_t module_idP, uint8_t CC_id, frame_t frameP, module_idP, ENB_FLAG_YES, MBMS_FLAG_YES, MTCH, TBS - header_len_mcch - header_len_msi - - sdu_length_total - header_len_mtch); + sdu_length_total - header_len_mtch +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); + LOG_D(MAC, "e-MBMS log channel %u frameP %d, subframeP %d, rlc_status.bytes_in_buffer is %d\n", MTCH, frameP, subframeP, rlc_status.bytes_in_buffer); @@ -645,8 +651,14 @@ 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]); + &mch_buffer[sdu_length_total] +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, + 0 +#endif + ); + + //sdu_lengths[num_sdus] = mac_rlc_data_req(module_idP,frameP, MBMS_FLAG_NO, MTCH+(MAX_NUM_RB*(MAX_MOBILES_PER_ENB+1)), (char*)&mch_buffer[sdu_length_total]); LOG_I(MAC, "[eNB %d][MBMS USER-PLANE] CC_id %d Got %d bytes for MTCH %d\n", @@ -664,7 +676,7 @@ schedule_MBMS(module_id_t module_idP, uint8_t CC_id, frame_t frameP, header_len_mtch = 0; } } -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) // } #endif diff --git a/openair2/LAYER2/MAC/eNB_scheduler_phytest.c b/openair2/LAYER2/MAC/eNB_scheduler_phytest.c index 9532222fb8..49cc68b06a 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_phytest.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_phytest.c @@ -32,14 +32,15 @@ #include "assertions.h" #include "PHY/defs_eNB.h" #include "PHY/phy_extern.h" +#include "PHY/LTE_TRANSPORT/transport_common_proto.h" #include "SCHED/sched_eNB.h" #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" @@ -66,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]; @@ -91,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)); @@ -135,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 /* @@ -149,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, @@ -195,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]; @@ -244,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 @@ -280,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); @@ -297,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 @@ -324,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 @@ -334,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 ae8524dd59..b85335caab 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; @@ -555,11 +557,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; @@ -568,72 +620,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)); // 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; } } @@ -890,7 +963,7 @@ get_dl_cqi_pmi_size_pusch(COMMON_channels_t * cc, uint8_t tmode, else if (ri >= 2 && cc->p_eNB == 4) return (4 + (N << 1) + 4 + (N << 1) + 4); break; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(12, 5, 0)) case CQI_ReportModeAperiodic_rm32_v1250: AssertFatal(tmode == 4 || tmode == 6 || tmode == 8 || tmode == 9 || tmode == 10, @@ -924,7 +997,7 @@ get_dl_cqi_pmi_size_pusch(COMMON_channels_t * cc, uint8_t tmode, return (4 + 4 + 4); break; -#endif /* Rel14 */ +#endif /* #if (RRC_VERSION >= MAKE_VERSION(12, 5, 0)) */ } AssertFatal(1 == 0, "Shouldn't get here\n"); return (0); @@ -1032,7 +1105,7 @@ program_dlsch_acknak(module_id_t module_idP, int CC_idP, int UE_idP, nfapi_ul_config_ulsch_harq_information *ulsch_harq_information = NULL; nfapi_ul_config_harq_information *harq_information = NULL; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 2, 0)) if ((UE_list->UE_template[CC_idP][UE_idP].physicalConfigDedicated->ext2) && (UE_list->UE_template[CC_idP][UE_idP].physicalConfigDedicated->ext2->pucch_ConfigDedicated_v1020) @@ -1156,7 +1229,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, @@ -1164,9 +1237,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++) { @@ -1181,7 +1254,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]; @@ -1202,12 +1276,15 @@ fill_nfapi_ulsch_harq_information(module_id_t module_ UE_list->UE_template[CC_idP][UE_id].physicalConfigDedicated->pusch_ConfigDedicated) != NULL, "physicalConfigDedicated->puschConfigDedicated for rnti %x is null\n", rntiP); -#if defined(Rel14) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 2, 0)) /* if (UE_list->UE_template[CC_idP][UE_id].physicalConfigDedicated->ext2) puschConfigDedicated_v1020 = UE_list->UE_template[CC_idP][UE_id].physicalConfigDedicated->ext2->pusch_ConfigDedicated_v1020; #endif - #ifdef Rel14 + #if (RRC_VERSION >= MAKE_VERSION(11, 3, 0)) if (UE_list->UE_template[CC_idP][UE_id].physicalConfigDedicated->ext4) puschConfigDedicated_v1130 = UE_list->UE_template[CC_idP][UE_id].physicalConfigDedicated->ext4->pusch_ConfigDedicated_v1130; + #endif + #if (RRC_VERSION >= MAKE_VERSION(12, 5, 0)) if (UE_list->UE_template[CC_idP][UE_id].physicalConfigDedicated->ext5) puschConfigDedicated_v1250 = UE_list->UE_template[CC_idP][UE_id].physicalConfigDedicated->ext5->pusch_ConfigDedicated_v1250; + #endif */ #endif harq_information->harq_information_rel10.delta_offset_harq = puschConfigDedicated->betaOffset_ACK_Index; @@ -1229,7 +1306,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; } @@ -1239,7 +1316,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; } @@ -1247,6 +1324,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, @@ -1263,13 +1360,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; @@ -1281,19 +1371,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; @@ -1371,7 +1464,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 @@ -1431,7 +1524,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]; @@ -1482,7 +1575,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; @@ -1523,7 +1617,7 @@ fill_nfapi_ulsch_config_request_rel8(nfapi_ul_config_request_pdu_t *ul_config_pd } } -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) void fill_nfapi_ulsch_config_request_emtc(nfapi_ul_config_request_pdu_t * ul_config_pdu, uint8_t ue_type, @@ -1824,7 +1918,7 @@ void dump_ue_list(UE_list_t * listP, int ul_flag) } int add_new_ue(module_id_t mod_idP, int cc_idP, rnti_t rntiP, int harq_pidP -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) , uint8_t rach_resource_type #endif ) @@ -1858,7 +1952,7 @@ int add_new_ue(module_id_t mod_idP, int cc_idP, rnti_t rntiP, int harq_pidP UE_list->UE_template[cc_idP][UE_id].pre_assigned_mcs_ul = 0; #endif -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) UE_list->UE_template[cc_idP][UE_id].rach_resource_type = rach_resource_type; #endif @@ -1899,7 +1993,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); @@ -1964,17 +2057,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; } @@ -2763,13 +2869,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 = @@ -2780,6 +2886,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", @@ -2808,7 +2925,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", @@ -2830,7 +2947,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, @@ -2873,7 +2990,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", @@ -2901,7 +3018,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", @@ -2922,7 +3039,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, @@ -2962,7 +3079,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); @@ -2986,7 +3103,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", @@ -3004,7 +3121,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, @@ -3012,7 +3129,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, @@ -3044,11 +3161,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 @@ -3131,7 +3262,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; @@ -3155,7 +3286,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--; } @@ -3170,7 +3301,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--; } @@ -3178,6 +3309,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, @@ -3195,10 +3524,13 @@ 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; - -#ifdef Rel14 + 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 && (UE_list->UE_template[pCCid][UE_id].physicalConfigDedicated->ext7) @@ -3208,21 +3540,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]; + + 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; + } + } + } break; case 1: // Channel Selection break; @@ -3238,7 +3615,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_D(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]); @@ -3262,6 +3639,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; @@ -3271,6 +3664,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 @@ -3942,7 +4345,7 @@ extract_pusch_csi(module_id_t mod_idP, int CC_idP, int UE_id, } break; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(12, 5, 0)) case CQI_ReportModeAperiodic_rm32_v1250: AssertFatal(tmode == 4 || tmode == 5 || tmode == 6 || tmode == 8 || tmode == 9 @@ -3951,6 +4354,8 @@ extract_pusch_csi(module_id_t mod_idP, int CC_idP, int UE_id, tmode); AssertFatal(1 == 0, "CQI_ReportModeAperiodic_rm32 to be done\n"); break; +#endif +#if (RRC_VERSION >= MAKE_VERSION(13, 1, 0)) case CQI_ReportModeAperiodic_rm10_v1310: AssertFatal(tmode == 1 || tmode == 2 || tmode == 3 || tmode == 7, @@ -3966,7 +4371,7 @@ extract_pusch_csi(module_id_t mod_idP, int CC_idP, int UE_id, tmode); AssertFatal(1 == 0, "CQI_ReportModeAperiodic_rm11 to be done\n"); break; -#endif /* Rel14 */ +#endif /* #if (RRC_VERSION >= MAKE_VERSION(13, 1, 0)) */ } } @@ -4006,6 +4411,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 @@ -4031,14 +4440,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 @@ -4084,8 +4485,11 @@ static int nack_or_dtx_reported( int i; if (cc->tdd_Config) { - AssertFatal(0==1, "TDD to be done. FAPI structures (see nfapi_harq_indication_tdd_rel13_t) are not clean. To be cleaned as well?\n"); - abort(); + 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[0].bundling.value_0 != 1) //only bundling is used for tdd for now + return 1; + return 0; } else { nfapi_harq_indication_fdd_rel13_t *hi = &harq_pdu->harq_indication_fdd_rel13; for (i = 0; i < hi->number_of_ack_nack; hi++) diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c index fd2817e341..04415a8386 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c @@ -36,11 +36,12 @@ #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" +#include "PHY/LTE_TRANSPORT/transport_common_proto.h" #include "RRC/LTE/rrc_extern.h" #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h" @@ -106,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}; @@ -156,8 +158,8 @@ rx_sdu(const module_id_t enb_mod_idP, if (UE_id != -1) { LOG_D(MAC, - "[eNB %d][PUSCH %d] CC_id %d Received ULSCH sdu round %d from PHY (rnti %x, UE_id %d) ul_cqi %d\n", - enb_mod_idP, harq_pid, CC_idP, + "[eNB %d][PUSCH %d] CC_id %d %d.%d Received ULSCH sdu round %d from PHY (rnti %x, UE_id %d) ul_cqi %d\n", + enb_mod_idP, harq_pid, CC_idP,frameP,subframeP, UE_list->UE_sched_ctrl[UE_id].round_UL[CC_idP][harq_pid], current_rnti, UE_id, ul_cqi); @@ -189,12 +191,16 @@ rx_sdu(const module_id_t enb_mod_idP, 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; } else { // we've got an error - LOG_D(MAC, - "[eNB %d][PUSCH %d] CC_id %d ULSCH in error in round %d, ul_cqi %d\n", - enb_mod_idP, harq_pid, CC_idP, + LOG_I(MAC, + "[eNB %d][PUSCH %d] CC_id %d %d.%d ULSCH in error in round %d, ul_cqi %d\n", + enb_mod_idP, harq_pid, CC_idP,frameP,subframeP, 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)); @@ -206,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]++; @@ -215,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]; @@ -229,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; @@ -259,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); } @@ -267,8 +278,9 @@ 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 - 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; + 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); } @@ -284,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)); @@ -331,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 @@ -345,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; @@ -543,14 +590,15 @@ rx_sdu(const module_id_t enb_mod_idP, if ((UE_id = add_new_ue(enb_mod_idP, CC_idP, mac->common_channels[CC_idP]. ra[ii].rnti, harq_pid -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) , mac->common_channels[CC_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, @@ -583,10 +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 - 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 @@ -713,7 +773,10 @@ 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_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]; @@ -727,7 +790,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; /* NN--> FK: we could either check the payload, or use a phy helper to detect a false msg3 */ @@ -737,7 +800,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; } } */ @@ -847,7 +910,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; } } } @@ -894,6 +958,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]; @@ -903,8 +968,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; @@ -913,6 +980,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; @@ -935,12 +1004,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; @@ -950,21 +1019,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++) { @@ -1024,7 +1095,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){ @@ -1032,7 +1103,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 { @@ -1044,7 +1115,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; @@ -1054,7 +1125,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 { @@ -1066,7 +1137,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]; } @@ -1111,8 +1182,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; @@ -1125,19 +1195,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"); @@ -1260,25 +1332,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 = 178; - + //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; @@ -1403,9 +1482,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! @@ -1417,8 +1497,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 @@ -1434,31 +1524,50 @@ schedule_ulsch_rnti(module_id_t module_idP, mcs_UL[harq_pid], rb_table [rb_table_index])); -#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_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, 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); + 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); LOG_D(MAC,"[PUSCH %d] SFN/SF:%04d%d UL_CFG:SFN/SF:%04d%d CQI:%d for UE %d/%x\n", harq_pid,frameP,subframeP,ul_sched_frame,ul_sched_subframeP,cqi_req,UE_id,rnti); // increment first rb for next UE allocation @@ -1471,40 +1580,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 @@ -1517,16 +1607,35 @@ schedule_ulsch_rnti(module_id_t module_idP, 0, // n_srs UE_template-> TBS_UL[harq_pid]); -#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_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 cb837cae6d..3b57d8240b 100644 --- a/openair2/LAYER2/MAC/mac.h +++ b/openair2/LAYER2/MAC/mac.h @@ -54,22 +54,26 @@ #include "RACH-ConfigCommon.h" #include "MeasObjectToAddModList.h" #include "MobilityControlInfo.h" -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) #include "MBSFN-AreaInfoList-r9.h" #include "MBSFN-SubframeConfigList.h" #include "PMCH-InfoList-r9.h" +#endif +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) #include "SCellToAddMod-r10.h" #endif -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) #include "SystemInformationBlockType1-v1310-IEs.h" +#include "SystemInformationBlockType18-r12.h" #endif - +#include "RadioResourceConfigCommonSIB.h" #include "nfapi_interface.h" #include "PHY_INTERFACE/IF_Module.h" #include "PHY/TOOLS/time_meas.h" #include "PHY/defs_common.h" // for PRACH_RESOURCES_t +#include "PHY/LTE_TRANSPORT/transport_common.h" #include "targets/ARCH/COMMON/common_lib.h" @@ -88,10 +92,11 @@ #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) -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) // Mask for identifying subframe for MBMS #define MBSFN_TDD_SF3 0x80 // for TDD @@ -130,11 +135,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 */ @@ -165,6 +166,7 @@ /*!\brief maximum number of slices / groups */ #define MAX_NUM_SLICES 4 + #define U_PLANE_INACTIVITY_VALUE 6000 /* @@ -243,6 +245,75 @@ typedef struct { uint8_t R:2; } __attribute__ ((__packed__)) SCH_SUBHEADER_FIXED; + + +/*!\brief MAC subheader long with 24bit DST field */ +typedef struct { + uint8_t R0:4; + uint8_t V:4;//Version number: Possible values "0001", "0010", "0011" based on TS36.321 section 6.2.3. + uint8_t SRC07; //Prose UE source ID. Size 24 bits. + uint8_t SRC815; //Prose UE source ID. Size 24 bits. + uint8_t SRC1623; //Prose UE source ID. Size 24 bits. + uint8_t DST07; //Prose UE destination ID. Size 24 bits. + uint8_t DST815; //Prose UE destination ID. Size 24 bits. + uint8_t DST1623; //Prose UE destination ID. Size 24 bits. + uint8_t LCID:5; + uint8_t E:1; + uint8_t R1:2; + uint8_t L:7; // Length field indicating the size of the corresponding SDU in bytes. + uint8_t F:1; +}__attribute__((__packed__))SLSCH_SUBHEADER_24_Bit_DST_SHORT; + +/*!\brief MAC subheader long with 24bit DST field */ +typedef struct { + uint8_t R0:4; + uint8_t V:4;//Version number: Possible values "0001", "0010", "0011" based on TS36.321 section 6.2.3. + uint8_t SRC07; //Prose UE source ID. Size 24 bits. + uint8_t SRC815; //Prose UE source ID. Size 24 bits. + uint8_t SRC1623; //Prose UE source ID. Size 24 bits. + uint8_t DST07; //Prose UE destination ID. Size 24 bits. + uint8_t DST815; //Prose UE destination ID. Size 24 bits. + uint8_t DST1623; //Prose UE destination ID. Size 24 bits. + uint8_t LCID:5; + uint8_t E:1; + uint8_t R1:2; + uint8_t L_MSB:7; // Length field indicating the size of the corresponding SDU in bytes. + uint8_t F:1; + uint8_t L_LSB:8; +}__attribute__((__packed__))SLSCH_SUBHEADER_24_Bit_DST_LONG; + +/*!\brief MAC subheader long with 24bit DST field */ +typedef struct { + uint8_t R0:4; + uint8_t V:4;//Version number: Possible values "0001", "0010", "0011" based on TS36.321 section 6.2.3. + uint8_t SRC07; //Prose UE source ID. Size 24 bits. + uint8_t SRC815; //Prose UE source ID. Size 24 bits. + uint8_t DST07; //Prose UE destination ID. Size 16 bits. + uint8_t DST815; //Prose UE destination ID. Size 16 bits. + uint8_t LCID:5; + uint8_t E:1; + uint8_t R1:2; + uint8_t L:7; // Length field indicating the size of the corresponding SDU in bytes. + uint8_t F:1; +}__attribute__((__packed__))SLSCH_SUBHEADER_16_Bit_DST_SHORT; + +/*!\brief MAC subheader long with 24bit DST field */ +typedef struct { + uint8_t R0:4; + uint8_t V:4;//Version number: Possible values "0001", "0010", "0011" based on TS36.321 section 6.2.3. + uint8_t SRC07; //Prose UE source ID. Size 24 bits. + uint8_t SRC815; //Prose UE source ID. Size 24 bits. + uint8_t SRC1623; //Prose UE source ID. Size 24 bits. + uint8_t DST07; //Prose UE destination ID. Size 16 bits. + uint8_t DST815; //Prose UE destination ID. Size 16 bits. + uint8_t LCID:5; + uint8_t E:1; + uint8_t R1:2; + uint8_t L_MSB:7; // Length field indicating the size of the corresponding SDU in bytes. + uint8_t F:1; + uint8_t L_LSB:8; +}__attribute__((__packed__))SLSCH_SUBHEADER_16_Bit_DST_LONG; + /*!\brief mac control element: short buffer status report for a specific logical channel group ID*/ typedef struct { uint8_t Buffer_size:6; // octet 1 LSB @@ -258,6 +329,29 @@ typedef struct { uint8_t Buffer_size0:6; } __attribute__ ((__packed__)) BSR_LONG; +/*!\brief mac control element: sidelink buffer status report */ +typedef struct { + uint8_t DST_1:4; + uint8_t LCGID_1: 2; + uint8_t Buffer_size_1:6; + uint8_t DST_2:4; + uint8_t LCGID_2: 2; + uint8_t Buffer_size_2:6; +}__attribute__((__packed__))SL_BSR; + +/*!\brief mac control element: truncated sidelink buffer status report */ +typedef struct { + uint8_t DST:4; + uint8_t LCGID: 2; + uint8_t Buffer_size:6; + uint8_t R1:1; + uint8_t R2:1; + uint8_t R3:1; + uint8_t R4:1; +}__attribute__((__packed__))SL_BSR_Truncated; + + + #define BSR_LONG_SIZE (sizeof(BSR_LONG)) /*!\brief mac control element: timing advance */ typedef struct { @@ -291,7 +385,7 @@ typedef struct { uint8_t payload[PCCH_PAYLOAD_SIZE_MAX]; } __attribute__ ((__packed__)) PCCH_PDU; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) /*! \brief MCCH payload */ typedef struct { uint8_t payload[MCCH_PAYLOAD_SIZE_MAX]; @@ -348,7 +442,7 @@ typedef struct { /*!\brief LCID of padding LCID for DLSCH */ #define SHORT_PADDING 31 -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) // MCH LCHAN IDs (table6.2.1-4 TS36.321) /*!\brief LCID of MCCH for DL */ #define MCCH_LCHANID 0 @@ -356,6 +450,9 @@ typedef struct { #define MCH_SCHDL_INFO 3 /*!\brief LCID of Carrier component activation/deactivation */ #define CC_ACT_DEACT 27 +//TTN (for D2D) +#define SL_DISCOVERY 8 //LCID (fake) +#define MAX_NUM_DEST 10 #endif // ULSCH LCHAN IDs @@ -402,6 +499,11 @@ typedef struct { uint16_t Pdu_size; } __attribute__ ((__packed__)) ULSCH_PDU; +/*! \brief Uplink SCH PDU Structure */ +typedef struct { + int8_t payload[DCH_PAYLOAD_SIZE_MAX]; /*!< \brief SACH payload */ + uint16_t Pdu_size; +} __attribute__ ((__packed__)) ULDCH_PDU; /*!\brief RA process state*/ typedef enum { @@ -409,7 +511,9 @@ typedef enum { MSG2, WAITMSG3, MSG4, - WAITMSG4ACK + WAITMSG4ACK, + MSGCRNTI, + MSGCRNTI_ACK } RA_state; /*!\brief UE ULSCH scheduling states*/ @@ -439,6 +543,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 { @@ -531,7 +641,6 @@ typedef struct { } eNB_STATS; /*! \brief eNB statistics for the connected UEs*/ typedef struct { - /// CRNTI of UE rnti_t crnti; ///user id (rnti) of connected UEs // rrc status @@ -793,7 +902,7 @@ typedef struct { eNB_UE_estimated_distances distance; #endif -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) uint8_t rach_resource_type; uint16_t mpdcch_repetition_cnt; frame_t Msg2_frame; @@ -847,7 +956,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; @@ -883,7 +995,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 { @@ -935,13 +1049,15 @@ typedef struct { int msg4_TBsize; /// MCS used for Msg4 int msg4_mcs; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) uint8_t rach_resource_type; uint8_t msg2_mpdcch_repetition_cnt; uint8_t msg4_mpdcch_repetition_cnt; uint8_t msg2_narrowband; uint8_t msg34_narrowband; #endif + int32_t crnti_rrc_mui; + int8_t crnti_harq_pid; } RA_t; @@ -991,6 +1107,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; @@ -1000,7 +1132,7 @@ typedef struct { uint32_t dl_CarrierFreq; BCCH_BCH_Message_t *mib; RadioResourceConfigCommonSIB_t *radioResourceConfigCommon; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) RadioResourceConfigCommonSIB_t *radioResourceConfigCommon_BR; #endif TDD_Config_t *tdd_Config; @@ -1031,7 +1163,7 @@ typedef struct { struct MBSFN_SubframeConfig *mbsfn_SubframeConfig[8]; /// number of subframe allocation pattern available for MBSFN sync area uint8_t num_sf_allocation_pattern; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) /// MBMS Flag uint8_t MBMS_flag; /// Outgoing MCCH pdu for PHY @@ -1053,7 +1185,7 @@ typedef struct { /// Outgoing MCH pdu for PHY MCH_PDU MCH_pdu; #endif -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) /// Rel13 parameters from SIB1 SystemInformationBlockType1_v1310_IEs_t *sib1_v13ext; /// Counter for SIB1-BR scheduling @@ -1079,7 +1211,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]; @@ -1100,9 +1232,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]; @@ -1141,6 +1273,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; /* @@ -1248,10 +1387,36 @@ typedef struct { struct RACH_ConfigDedicated *rach_ConfigDedicated; /// pointer to RRC PHY configuration struct PhysicalConfigDedicated *physicalConfigDedicated; -#if defined(Rel10) || defined(Rel14) - /// pointer to RRC PHY configuration SCEll - struct PhysicalConfigDedicatedSCell_r10 - *physicalConfigDedicatedSCell_r10; +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + /// pointer to RRC PHY configuration SCEll + struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10; + /// Preconfiguration for Sidelink + struct SL_Preconfiguration_r12 *SL_Preconfiguration; + /// RX Pool for Sidelink from SIB18 + SL_CommRxPoolList_r12_t commRxPool_r12; + /// TX Pool Normal for Sidelink from SIB18 + struct SL_CommTxPoolList_r12 *commTxPoolNormalCommon_r12; + /// TX Pool Exceptional for Sidelink from SIB18 + struct SL_CommTxPoolList_r12 *commTxPoolExceptional_r12; + /// Common Sync Config for Sidelink from SIB18 + struct SL_SyncConfigList_r12 *commSyncConfig_r12; + /// Dedicated Sync TX control for Sidelink + struct SL_SyncTxControl_r12 *sl_SyncTxControl_r12; + /// Dedicated Discovery TX control for Sidelink + struct SL_DiscConfig_r12 *sl_DiscConfig_r12; + /// Dedicated TX config for Sidelink + struct SL_CommConfig_r12 *sl_CommConfig_r12; + //SL sourceL2ID + uint32_t sourceL2Id; + //SL groupL2Id + uint32_t groupL2Id; + //SL destinationL2Id + uint32_t destinationL2Id; + //List of destinations + uint32_t destinationList[MAX_NUM_DEST]; + uint8_t numCommFlows; + uint32_t SL_LCID[MAX_NUM_LCID]; + #endif /// pointer to TDD Configuration (NULL for FDD) TDD_Config_t *tdd_Config; @@ -1273,6 +1438,13 @@ typedef struct { RAR_PDU RAR_pdu; /// Incoming DLSCH pdu for PHY DLSCH_PDU DLSCH_pdu[MAX_MOBILES_PER_ENB][2]; +#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; /// Random-access procedure flag @@ -1325,7 +1497,7 @@ typedef struct { struct MBSFN_SubframeConfig *mbsfn_SubframeConfig[8]; // FIXME replace 8 by MAX_MBSFN_AREA? /// number of subframe allocation pattern available for MBSFN sync area uint8_t num_sf_allocation_pattern; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) /// number of active MBSFN area uint8_t num_active_mbsfn_area; /// MBSFN Area Info @@ -1337,26 +1509,41 @@ typedef struct { /// MSI status uint8_t msi_status; // could be an array if there are >1 MCH in one MBSFN area #endif - //#ifdef CBA - /// CBA RNTI for each group - uint16_t cba_rnti[NUM_MAX_CBA_GROUP]; - /// last SFN for CBA channel access - uint8_t cba_last_access[NUM_MAX_CBA_GROUP]; - //#endif - /// total UE scheduler processing time - time_stats_t ue_scheduler; // total - /// UE ULSCH tx processing time inlcuding RLC interface (rlc_data_req) and mac header generation - time_stats_t tx_ulsch_sdu; - /// UE DLSCH rx processing time inlcuding RLC interface (mac_rrc_data_ind or mac_rlc_status_ind+mac_rlc_data_ind) and mac header parser - time_stats_t rx_dlsch_sdu; - /// UE query for MCH subframe processing time - time_stats_t ue_query_mch; - /// UE MCH rx processing time - time_stats_t rx_mch_sdu; - /// UE BCCH rx processing time including RLC interface (mac_rrc_data_ind) - time_stats_t rx_si; - /// UE PCCH rx processing time including RLC interface (mac_rrc_data_ind) - time_stats_t rx_p; + //#ifdef CBA + /// CBA RNTI for each group + uint16_t cba_rnti[NUM_MAX_CBA_GROUP]; + /// last SFN for CBA channel access + uint8_t cba_last_access[NUM_MAX_CBA_GROUP]; + //#endif + /// total UE scheduler processing time + time_stats_t ue_scheduler; // total + /// UE ULSCH tx processing time inlcuding RLC interface (rlc_data_req) and mac header generation + time_stats_t tx_ulsch_sdu; + /// UE DLSCH rx processing time inlcuding RLC interface (mac_rrc_data_ind or mac_rlc_status_ind+mac_rlc_data_ind) and mac header parser + time_stats_t rx_dlsch_sdu ; + /// UE query for MCH subframe processing time + time_stats_t ue_query_mch; + /// UE MCH rx processing time + time_stats_t rx_mch_sdu; + /// UE BCCH rx processing time including RLC interface (mac_rrc_data_ind) + time_stats_t rx_si; + /// UE PCCH rx processing time including RLC interface (mac_rrc_data_ind) + time_stats_t rx_p; + /// Mutex for nfapi UL_INFO + pthread_mutex_t UL_INFO_mutex; + /// 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]; + /// 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; + int ra_frame; // This variable keeps the frame in which the RA started for the specific UE. It is used in order + // to make sure that different UEs RA starts within a number of frames difference. + + eth_params_t eth_params_n; + } UE_MAC_INST; /*! \brief ID of the neighboring cells used for HO*/ typedef struct { @@ -1364,6 +1551,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 81cf2075f7..3b3095b59c 100644 --- a/openair2/LAYER2/MAC/mac_proto.h +++ b/openair2/LAYER2/MAC/mac_proto.h @@ -136,8 +136,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 @@ -268,7 +267,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frameP, sub_frame void initiate_ra_proc(module_id_t module_idP, int CC_id, frame_t frameP, sub_frame_t subframeP, uint16_t preamble_index, int16_t timing_offset, uint16_t rnti -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) , uint8_t rach_resource_type #endif ); @@ -287,7 +286,7 @@ unsigned short fill_rar(const module_id_t module_idP, const uint16_t N_RB_UL, const uint8_t input_buffer_length); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) unsigned short fill_rar_br(eNB_MAC_INST * eNB, int CC_id, RA_t * ra, @@ -315,6 +314,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, @@ -428,7 +430,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, @@ -440,6 +442,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 @@ -513,8 +516,17 @@ void ue_send_sdu(module_id_t module_idP, uint8_t CC_id, frame_t frame, sub_frame_t subframe, uint8_t * sdu, uint16_t sdu_len, uint8_t CH_index); +void ue_send_sl_sdu(module_id_t module_idP, + uint8_t CC_id, + frame_t frameP, + sub_frame_t subframeP, + uint8_t* sdu, + uint16_t sdu_len, + uint8_t eNB_index, + sl_discovery_flag_t sl_discovery_flag + ); -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) /* \brief Called by PHY to transfer MCH transport block to ue MAC. @param Mod_id Index of module instance @param frame Frame index @@ -535,7 +547,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); @@ -546,13 +558,36 @@ int ue_query_mch(uint8_t Mod_id, uint8_t CC_id, uint32_t frame, @param eNB_id Index of eNB that UE is attached to @param rnti C_RNTI of UE @param subframe subframe number -@returns 0 for no SR, 1 for SR */ void ue_get_sdu(module_id_t module_idP, int CC_id, frame_t frameP, sub_frame_t subframe, uint8_t eNB_index, uint8_t * ulsch_buffer, uint16_t buflen, uint8_t * access_mode); +/* \brief Called by PHY to get sdu for PSBCH/SSS/PSS transmission. +@param Mod_id Instance id of UE in machine +@param frame_tx TX frame index +@param subframe_tx TX subframe index +@returns pointer to SLSS_t descriptor +*/ +SLSS_t *ue_get_slss(module_id_t module_idP, int CC_id,frame_t frameP, sub_frame_t subframe); + +/* \brief Called by PHY to get sdu for PSDCH transmission. +@param Mod_id Instance id of UE in machine +@param frame_tx TX frame index +@param subframe_tx TX subframe index +@returns pointer to SLDCH_t descriptor +*/ +SLDCH_t *ue_get_sldch(module_id_t module_idP, int CC_id,frame_t frameP, sub_frame_t subframe); + +/* \brief Called by PHY to get sdu for PSSCH transmission. +@param Mod_id Instance id of UE in machine +@param frame_tx TX frame index +@param subframe_tx TX subframe index +@returns pointer to SLSCH_t descriptor +*/ +SLSCH_t *ue_get_slsch(module_id_t module_idP, int CC_id,frame_t frameP, sub_frame_t subframe); + /* \brief Function called by PHY to retrieve information to be transmitted using the RA procedure. If the UE is not in PUSCH mode for a particular eNB index, this is assumed to be an Msg3 and MAC attempts to retrieves the CCCH message from RRC. If the UE is in PUSCH mode for a particular eNB index and PUCCH format 0 (Scheduling Request) is not activated, the MAC may use this resource for random-access to transmit a BSR along with the C-RNTI control element (see 5.1.4 from 36.321) @param Mod_id Index of UE instance @param Mod_id Component Carrier Index @@ -636,12 +671,14 @@ int to_prb(int); int to_rbg(int); int mac_init(void); int add_new_ue(module_id_t Mod_id, int CC_id, rnti_t rnti, int harq_pid -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) , uint8_t rach_resource_type #endif ); 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); @@ -652,9 +689,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); @@ -663,6 +708,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); @@ -829,7 +875,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); @@ -887,20 +933,20 @@ int rrc_mac_config_req_eNB(module_id_t module_idP, int p_eNB, int Ncp, int eutra_band, uint32_t dl_CarrierFreq, -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) int pbch_repetition, #endif rnti_t rntiP, BCCH_BCH_Message_t * mib, RadioResourceConfigCommonSIB_t * radioResourceConfigCommon, -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) RadioResourceConfigCommonSIB_t * radioResourceConfigCommon_BR, #endif struct PhysicalConfigDedicated *physicalConfigDedicated, -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) SCellToAddMod_r10_t * sCellToAddMod_r10, //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif @@ -918,13 +964,13 @@ int rrc_mac_config_req_eNB(module_id_t module_idP, additionalSpectrumEmission, struct MBSFN_SubframeConfigList *mbsfn_SubframeConfigList -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) , uint8_t MBMS_Flag, MBSFN_AreaInfoList_r9_t * mbsfn_AreaInfoList, PMCH_InfoList_r9_t * pmch_InfoList #endif -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) , SystemInformationBlockType1_v1310_IEs_t * sib1_ext_r13 @@ -958,7 +1004,7 @@ int rrc_mac_config_req_ue(module_id_t module_idP, radioResourceConfigCommon, struct PhysicalConfigDedicated *physicalConfigDedicated, -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) SCellToAddMod_r10_t * sCellToAddMod_r10, //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif @@ -977,7 +1023,7 @@ int rrc_mac_config_req_ue(module_id_t module_idP, additionalSpectrumEmission, struct MBSFN_SubframeConfigList *mbsfn_SubframeConfigList -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) , uint8_t MBMS_Flag, MBSFN_AreaInfoList_r9_t * mbsfn_AreaInfoList, @@ -987,7 +1033,13 @@ int rrc_mac_config_req_ue(module_id_t module_idP, , uint8_t num_active_cba_groups, uint16_t cba_rnti #endif - ); +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,config_action_t config_action + ,const uint32_t * const sourceL2Id + ,const uint32_t * const destinationL2Id +#endif + ); + uint16_t getRIV(uint16_t N_RB_DL, uint16_t RBstart, uint16_t Lcrbs); @@ -1009,6 +1061,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); @@ -1054,7 +1112,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, @@ -1078,7 +1136,7 @@ void fill_nfapi_ulsch_config_request_rel8(nfapi_ul_config_request_pdu_t * uint8_t current_tx_nb, uint8_t n_srs, uint16_t size); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) void fill_nfapi_ulsch_config_request_emtc(nfapi_ul_config_request_pdu_t * ul_config_pdu, uint8_t ue_type, uint16_t @@ -1094,7 +1152,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 @@ -1128,7 +1186,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, @@ -1154,7 +1213,7 @@ uint8_t get_tmode(module_id_t module_idP, int CC_idP, int UE_idP); uint8_t get_ul_req_index(module_id_t module_idP, int CC_idP, sub_frame_t subframeP); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) int get_numnarrowbandbits(long dl_Bandwidth); int mpdcch_sf_condition(eNB_MAC_INST * eNB, int CC_id, frame_t frameP, @@ -1177,11 +1236,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 f90ba1ec9e..76842afd38 100644 --- a/openair2/LAYER2/MAC/mac_vars.h +++ b/openair2/LAYER2/MAC/mac_vars.h @@ -124,7 +124,7 @@ DCI1A_5MHz_TDD_1_6_t BCCH_alloc_pdu; DCI1A_5MHz_TDD_1_6_t CCCH_alloc_pdu; DCI1_5MHz_TDD_t DLSCH_alloc_pdu; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) DCI1C_5MHz_t MCCH_alloc_pdu; #endif @@ -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 5c9e5241b8..39c26f2286 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" @@ -48,22 +48,71 @@ extern RAN_CONTEXT_t RC; void mac_top_init_eNB(void) { - module_id_t i, j; - int list_el; - UE_list_t *UE_list; - eNB_MAC_INST *mac; + module_id_t i, j; + int list_el; + UE_list_t *UE_list; + eNB_MAC_INST *mac; - LOG_I(MAC, "[MAIN] Init function start:nb_macrlc_inst=%d\n", - RC.nb_macrlc_inst); + LOG_I(MAC, "[MAIN] Init function start:nb_macrlc_inst=%d\n", + RC.nb_macrlc_inst); + + if (RC.nb_macrlc_inst > 0) { + 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++) { + 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. + dl_config_pdu_list = RC.mac[i]->dl_config_pdu_list[j]; + RC.mac[i]->UL_req[j].ul_config_request_body. + ul_config_pdu_list = RC.mac[i]->ul_config_pdu_list[j]; + for (int k = 0; k < 10; k++) + 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]; + 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; + } + } + + AssertFatal(rlc_module_init() == 0, + "Could not initialize RLC layer\n"); + + // These should be out of here later + pdcp_layer_init(); + + rrc_init_global_param(); + + } else { + RC.mac = NULL; + } + + // Initialize Linked-List for Active UEs - if (RC.nb_macrlc_inst > 0) { - - RC.mac = (eNB_MAC_INST **) malloc16(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)); 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 0e052a2b62..16cbd3fc19 100644 --- a/openair2/LAYER2/MAC/pre_processor.c +++ b/openair2/LAYER2/MAC/pre_processor.c @@ -36,14 +36,15 @@ #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" #include "RRC/LTE/rrc_extern.h" #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h" #include "rlc.h" +#include "PHY/LTE_TRANSPORT/transport_common_proto.h" #include "common/ran_context.h" @@ -125,13 +126,19 @@ store_dlsch_buffer(module_id_t Mod_id, slice_id_t slice_id, frame_t frameP, UE_template->dl_buffer_head_sdu_remaining_size_to_send[i] = 0; } + 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); + ENB_FLAG_YES, MBMS_FLAG_NO, i, 0 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); + UE_template->dl_buffer_info[i] = rlc_status.bytes_in_buffer; //storing the dlsch buffer for each logical channel UE_template->dl_pdus_in_buffer[i] = rlc_status.pdus_in_buffer; UE_template->dl_buffer_head_sdu_creation_time[i] = @@ -208,7 +215,6 @@ assign_rbs_required(module_id_t Mod_id, //update CQI information across component carriers for (n = 0; n < UE_list->numactiveCCs[UE_id]; n++) { - CC_id = UE_list->ordered_CCids[n][UE_id]; eNB_UE_stats = &UE_list->eNB_UE_stats[CC_id][UE_id]; @@ -312,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) { @@ -426,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) { @@ -495,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; @@ -516,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, @@ -632,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; @@ -713,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; @@ -722,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 @@ -791,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; @@ -1157,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 = @@ -1168,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) @@ -1187,7 +1076,6 @@ dlsch_scheduler_pre_processor_reset(int module_idP, &ue_sched_ctl->round[CC_id], openair_harq_DL); - if (ue_sched_ctl->ta_timer == 0) { // WE SHOULD PROTECT the eNB_UE_stats with a mutex here ... @@ -1396,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; @@ -1525,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); @@ -1596,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) @@ -1796,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) @@ -1855,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 4a2a7d35f0..f5df67ab64 100644 --- a/openair2/LAYER2/MAC/ra_procedures.c +++ b/openair2/LAYER2/MAC/ra_procedures.c @@ -33,17 +33,22 @@ #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" #include "SIMULATION/TOOLS/sim.h" // for taus +#include "PHY/LTE_TRANSPORT/transport_common_proto.h" +#include "PHY/LTE_ESTIMATION/lte_estimation.h" + +extern uint8_t nfapi_mode; +extern UE_MODE_t get_ue_mode(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_index); /// This routine implements Section 5.1.2 (UE Random Access Resource Selection) from 36.321 void @@ -54,7 +59,6 @@ get_prach_resources(module_id_t module_idP, uint8_t first_Msg3, RACH_ConfigDedicated_t * rach_ConfigDedicated) { - uint8_t Msg3_size = UE_mac_inst[module_idP].RA_Msg3_size; PRACH_RESOURCES_t *prach_resources = &UE_mac_inst[module_idP].RA_prach_resources; @@ -293,23 +297,32 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP, int CC_id, sub_frame_t subframeP) { - uint8_t Size = 0; - UE_MODE_t UE_mode = get_ue_mode(module_idP, 0, eNB_indexP); + UE_MODE_t 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); + } + else { // Full stack mode + UE_mode = get_ue_mode(module_idP,0,eNB_indexP); + } + + uint8_t lcid = CCCH; uint16_t Size16; 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, "Transmission on secondary CCs is not supported yet\n"); if (UE_mode == PRACH) { + LOG_D(MAC, "ue_get_rach 3, RA_active value: %d", UE_mac_inst[module_idP].RA_active); if (UE_mac_inst[module_idP].radioResourceConfigCommon) { rach_ConfigCommon = &UE_mac_inst[module_idP]. @@ -341,7 +354,6 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP, int CC_id, module_idP, frameP, Size); if (Size > 0) { - UE_mac_inst[module_idP].RA_active = 1; UE_mac_inst[module_idP].RA_PREAMBLE_TRANSMISSION_COUNTER = 1; @@ -392,11 +404,14 @@ 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); + ENB_FLAG_NO, MBMS_FLAG_NO, DCCH, 6 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); if (UE_mac_inst[module_idP].crnti_before_ho) LOG_D(MAC, @@ -411,11 +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 - (char *) &ulsch_buff[0]); + 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] +#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 68183f2f89..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) | @@ -98,7 +108,7 @@ fill_rar(const module_id_t module_idP, return (ra->rnti); } -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) //------------------------------------------------------------------------------ unsigned short fill_rar_br(eNB_MAC_INST * eNB, diff --git a/openair2/LAYER2/MAC/rar_tools_ue.c b/openair2/LAYER2/MAC/rar_tools_ue.c index 7d24e4c0af..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" @@ -93,7 +93,7 @@ uint16_t ue_process_rar(const module_id_t module_idP, const int CC_id, const fra } LOG_I(MAC, - "[eNB %d][RAPROC] Frame %d Received RAR (%02x|%02x.%02x.%02x.%02x.%02x.%02x) for preamble %d/%d\n", + "[UE %d][RAPROC] Frame %d Received RAR (%02x|%02x.%02x.%02x.%02x.%02x.%02x) for preamble %d/%d\n", module_idP, frameP, *(uint8_t *) rarh, rar[0], rar[1], rar[2], rar[3], rar[4], rar[5], rarh->RAPID, preamble_index); #ifdef DEBUG_RAR diff --git a/openair2/LAYER2/MAC/ue_procedures.c b/openair2/LAYER2/MAC/ue_procedures.c index 16a7a373c7..dd78da7275 100644 --- a/openair2/LAYER2/MAC/ue_procedures.c +++ b/openair2/LAYER2/MAC/ue_procedures.c @@ -40,14 +40,18 @@ #include "PHY/impl_defs_top.h" #include "PHY_INTERFACE/phy_interface_extern.h" #include "COMMON/mac_rrc_primitives.h" +#include "PHY/INIT/phy_init.h" +#include "PHY/LTE_ESTIMATION/lte_estimation.h" #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" +#include "openair2/PHY_INTERFACE/phy_stub_UE.h" + #include "pdcp.h" #if defined(ENABLE_ITTI) @@ -63,6 +67,17 @@ extern uint8_t usim_test; +extern UL_IND_t *UL_INFO; + +extern uint8_t nfapi_mode; + +/* + * +#ifndef USER_MODE +#define msg debug_msg +#endif + */ + mapping BSR_names[] = { {"NONE", 0}, {"SHORT BSR", 1}, @@ -75,6 +90,7 @@ mapping BSR_names[] = { void ue_init_mac(module_id_t module_idP) { + int i; // default values as deined in 36.331 sec 9.2.2 LOG_I(MAC, "[UE%d] Applying default macMainConfig\n", module_idP); @@ -137,6 +153,19 @@ void ue_init_mac(module_id_t module_idP) UE_mac_inst[module_idP].scheduling_info.LCID_buffer_remain[i] = 0; } + if(nfapi_mode == 3) { + pthread_mutex_init(&UE_mac_inst[module_idP].UL_INFO_mutex,NULL); + UE_mac_inst[module_idP].UE_mode[0] = NOT_SYNCHED; //PRACH; + UE_mac_inst[module_idP].first_ULSCH_Tx =0; + UE_mac_inst[module_idP].SI_Decoded = 0; + next_ra_frame = 0; + next_Mod_id = 0; + tx_request_pdu_list = NULL; + tx_req_num_elems = 0; + + + } + #ifdef CBA for (i = 0; i < NUM_MAX_CBA_GROUP; i++) { @@ -387,7 +416,8 @@ ue_send_sdu(module_id_t module_idP, VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME (VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SEND_SDU, VCD_FUNCTION_IN); - LOG_T(MAC, "sdu: %x.%x.%x\n", sdu[0], sdu[1], sdu[2]); + + //LOG_D(MAC,"sdu: %x.%x.%x\n",sdu[0],sdu[1],sdu[2]); if (opt_enabled) { trace_pdu(1, sdu, sdu_len, module_idP, 3, @@ -445,7 +475,16 @@ ue_send_sdu(module_id_t module_idP, LOG_E(MAC, "[UE %d][RAPROC] Contention detected, RA failed\n", module_idP); - ra_failed(module_idP, CC_id, eNB_index); + 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; + //ra_failed(module_idP,CC_id,eNB_index);UE_mac_inst[module_idP].RA_contention_resolution_timer_active = 0; + } + else{ + ra_failed(module_idP, CC_id, eNB_index); + } UE_mac_inst [module_idP]. RA_contention_resolution_timer_active = 0; @@ -461,7 +500,14 @@ ue_send_sdu(module_id_t module_idP, UE_mac_inst [module_idP]. RA_contention_resolution_timer_active = 0; - ra_succeeded(module_idP, CC_id, eNB_index); + if(nfapi_mode == 3) // phy_stub mode + { + // 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 + ra_succeeded(module_idP,CC_id,eNB_index); + } } payload_ptr += 6; @@ -472,9 +518,14 @@ ue_send_sdu(module_id_t module_idP, LOG_D(MAC, "[UE] CE %d : UE Timing Advance : %d\n", i, payload_ptr[0]); #endif - process_timing_advance(module_idP, CC_id, payload_ptr[0]); - payload_ptr++; - break; + + // 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]); + } + payload_ptr++; + break; case DRX_CMD: #ifdef DEBUG_HEADER_PARSING @@ -490,7 +541,6 @@ ue_send_sdu(module_id_t module_idP, LOG_D(MAC, "[UE] SDU %d : LCID %d, length %d\n", i, rx_lcids[i], rx_lengths[i]); #endif - if (rx_lcids[i] == CCCH) { LOG_D(MAC, @@ -507,6 +557,7 @@ ue_send_sdu(module_id_t module_idP, LOG_T(MAC, "\n"); #endif + mac_rrc_data_ind_ue(module_idP, CC_id, frameP, subframeP, @@ -638,7 +689,7 @@ ue_decode_p(module_id_t module_idP, int CC_id, frame_t frameP, } } -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) unsigned char *parse_mch_header(unsigned char *mac_header, unsigned char *num_sdu, unsigned char *rx_lcids, @@ -770,9 +821,82 @@ ue_send_mch_sdu(module_id_t module_idP, uint8_t CC_id, frame_t frameP, #endif } -int8_t -ue_get_mbsfn_sf_alloction(module_id_t module_idP, - uint8_t mbsfn_sync_area, unsigned char eNB_index) +void ue_send_sl_sdu(module_id_t module_idP, + uint8_t CC_id, + frame_t frameP, + sub_frame_t subframeP, + uint8_t* sdu, + uint16_t sdu_len, + uint8_t eNB_index, + sl_discovery_flag_t sl_discovery_flag + ) { + + int rlc_sdu_len; + char *rlc_sdu; + uint32_t destinationL2Id =0x00000000; + + if (sl_discovery_flag == SL_DISCOVERY_FLAG_NO) { + + // Notes: 1. no control elements are supported yet + // 2. we exit with error if LCID != 3 + // 3. we exit with error if E=1 (more than one SDU/CE) + // extract header + SLSCH_SUBHEADER_24_Bit_DST_LONG *longh = (SLSCH_SUBHEADER_24_Bit_DST_LONG *)sdu; + AssertFatal(longh->E==0,"E is non-zero\n"); + AssertFatal(((longh->LCID==3)|(longh->LCID==10)),"LCID is %d (not 3 or 10)\n",longh->LCID); + //filter incoming packet based on destination address + destinationL2Id = (longh->DST07<<16) | (longh->DST815 <<8) | (longh->DST1623); + LOG_I( MAC, "[DestinationL2Id: 0x%08x] \n", destinationL2Id ); + //in case of 1-n communication, verify that UE belongs to that group + int i=0; + for (i=0; i< MAX_NUM_DEST; i++) + if (UE_mac_inst[module_idP].destinationList[i] == destinationL2Id) break; + //match the destinationL2Id with UE L2Id or groupL2ID + if (!((destinationL2Id == UE_mac_inst[module_idP].sourceL2Id) | (i < MAX_NUM_DEST))){ + LOG_I( MAC, "[Destination Id is neither matched with Source Id nor with Group Id, drop the packet!!! \n"); + return; + } + + + if (longh->F==1) { + rlc_sdu_len = ((longh->L_MSB<<8)&0x7F00)|(longh->L_LSB&0xFF); + rlc_sdu = (char *)sdu+sizeof(SLSCH_SUBHEADER_24_Bit_DST_LONG); + } + else { + rlc_sdu_len = ((SLSCH_SUBHEADER_24_Bit_DST_SHORT *)sdu)->L; + rlc_sdu = (char *)sdu+sizeof(SLSCH_SUBHEADER_24_Bit_DST_SHORT); + } + mac_rlc_data_ind( + module_idP, + 0x1234, + eNB_index, + frameP, + ENB_FLAG_NO, + MBMS_FLAG_NO, + longh->LCID, //3/10 + rlc_sdu, + rlc_sdu_len, + 1, + NULL); + } else { //SL_DISCOVERY + uint16_t len = sdu_len; + LOG_I( MAC, "SL DISCOVERY \n"); + mac_rrc_data_ind_ue(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_index, + 0); + + } +} + + +int8_t ue_get_mbsfn_sf_alloction (module_id_t module_idP, uint8_t mbsfn_sync_area, unsigned char eNB_index) + { // currently there is one-to-one mapping between sf allocation pattern and sync area if (mbsfn_sync_area >= MAX_MBSFN_AREA) { @@ -1716,9 +1840,13 @@ ue_get_sdu(module_id_t module_idP, int CC_id, frame_t frameP, MBMS_FLAG_NO, lcid, buflen_remain, - (char *) - &ulsch_buff - [sdu_length_total]); + (char *)&ulsch_buff[sdu_length_total] +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, + 0 +#endif + ); + AssertFatal(buflen_remain >= sdu_lengths[num_sdus], @@ -1856,7 +1984,15 @@ 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)) { - phr_p->PH = get_phr_mapping(module_idP, CC_id, eNB_index); + if(nfapi_mode ==3){ + //Substitute with a static value for the MAC layer abstraction (phy_stub mode) + phr_p->PH = 40; + } + else{ + phr_p->PH = get_phr_mapping(module_idP, CC_id, eNB_index); + } + + phr_p->R = 0; LOG_D(MAC, "[UE %d] Frame %d report PHR with mapping (%d->%d) for LCID %d\n", @@ -1870,7 +2006,6 @@ ue_get_sdu(module_id_t module_idP, int CC_id, frame_t frameP, LOG_T(MAC, "[UE %d] Frame %d: bsr s %p bsr_l %p, phr_p %p\n", module_idP, frameP, bsr_s, bsr_l, phr_p); - // Check BSR padding: it is done after PHR according to Logical Channel Prioritization order // Check for max padding size, ie MAC Hdr for last RLC PDU = 1 /* For Padding BSR: @@ -2131,6 +2266,8 @@ ue_get_sdu(module_id_t module_idP, int CC_id, frame_t frameP, } } + + //------------------------------------------------------------------------------ // called at each subframe // Performs : @@ -2161,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 @@ -2181,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); @@ -2197,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; } @@ -2249,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, @@ -2292,6 +2425,7 @@ ue_scheduler(const module_id_t module_idP, #if UE_TIMING_TRACE stop_meas(&UE_mac_inst[module_idP].ue_scheduler); #endif + //return(RRC_OK); } @@ -2315,7 +2449,17 @@ ue_scheduler(const module_id_t module_idP, LOG_E(MAC, "Module id %u Contention resolution timer expired, RA failed\n", module_idP); - ra_failed(module_idP, 0, eNB_indexP); + 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; + //ra_failed(module_idP,CC_id,eNB_index);UE_mac_inst[module_idP].RA_contention_resolution_timer_active = 0; + } + else{ + ra_failed(module_idP, CC_id, eNB_indexP); + } + //ra_failed(module_idP, 0, eNB_indexP); } } // Get RLC status info and update Bj for all lcids that are active @@ -2633,92 +2777,92 @@ update_bsr(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP, eNB_index_t eNB_index) { - mac_rlc_status_resp_t rlc_status; - boolean_t bsr_regular_triggered = FALSE; - uint8_t lcid; - uint8_t lcgid; - uint8_t num_lcid_with_data = 0; // for LCID with data only if LCGID is defined - uint16_t lcgid_buffer_remain[MAX_NUM_LCGID] = { 0, 0, 0, 0 }; - int32_t lcid_bytes_in_buffer[MAX_NUM_LCID]; - /* Array for ordering LCID with data per decreasing priority order */ - uint8_t lcid_reordered_array[MAX_NUM_LCID] = - { MAX_NUM_LCID, MAX_NUM_LCID, MAX_NUM_LCID, MAX_NUM_LCID, - MAX_NUM_LCID, MAX_NUM_LCID, MAX_NUM_LCID, MAX_NUM_LCID, - MAX_NUM_LCID, - MAX_NUM_LCID, MAX_NUM_LCID - }; - uint8_t pos_next = 0; - uint8_t highest_priority = 16; - uint8_t array_index = 0; + mac_rlc_status_resp_t rlc_status; + boolean_t bsr_regular_triggered = FALSE; + uint8_t lcid; + uint8_t lcgid; + uint8_t num_lcid_with_data = 0; // for LCID with data only if LCGID is defined + uint16_t lcgid_buffer_remain[MAX_NUM_LCGID] = {0,0,0,0}; + int32_t lcid_bytes_in_buffer[MAX_NUM_LCID]; + /* Array for ordering LCID with data per decreasing priority order */ + uint8_t lcid_reordered_array[MAX_NUM_LCID]= + {MAX_NUM_LCID,MAX_NUM_LCID,MAX_NUM_LCID,MAX_NUM_LCID,MAX_NUM_LCID,MAX_NUM_LCID,MAX_NUM_LCID,MAX_NUM_LCID,MAX_NUM_LCID,MAX_NUM_LCID,MAX_NUM_LCID}; + uint8_t pos_next = 0; + uint8_t highest_priority = 16; + uint8_t array_index = 0; - // Reset All BSR Infos - lcid_bytes_in_buffer[0] = 0; - for (lcid = DCCH; lcid < MAX_NUM_LCID; lcid++) { - // Reset transmission status - lcid_bytes_in_buffer[lcid] = 0; - UE_mac_inst[module_idP].scheduling_info.LCID_status[lcid] = - LCID_EMPTY; - } + // Reset All BSR Infos + lcid_bytes_in_buffer[0] = 0; + for (lcid=DCCH; lcid < MAX_NUM_LCID; lcid++) + { + // Reset transmission status + lcid_bytes_in_buffer[lcid] = 0; + UE_mac_inst[module_idP].scheduling_info.LCID_status[lcid]=LCID_EMPTY; + } - for (lcgid = 0; lcgid < MAX_NUM_LCGID; lcgid++) { - // Reset Buffer Info - UE_mac_inst[module_idP].scheduling_info.BSR[lcgid] = 0; - UE_mac_inst[module_idP].scheduling_info.BSR_bytes[lcgid] = 0; - } + for (lcgid=0; lcgid < MAX_NUM_LCGID; lcgid++) + { + // Reset Buffer Info + UE_mac_inst[module_idP].scheduling_info.BSR[lcgid]=0; + UE_mac_inst[module_idP].scheduling_info.BSR_bytes[lcgid]=0; + } - //Get Buffer Occupancy and fill lcid_reordered_array - for (lcid = DCCH; lcid < MAX_NUM_LCID; lcid++) { - if (UE_mac_inst[module_idP].logicalChannelConfig[lcid]) { - lcgid = UE_mac_inst[module_idP].scheduling_info.LCGID[lcid]; + //Get Buffer Occupancy and fill lcid_reordered_array + for (lcid=DCCH; lcid < MAX_NUM_LCID; lcid++) + { + if (UE_mac_inst[module_idP].logicalChannelConfig[lcid]) + { + lcgid = UE_mac_inst[module_idP].scheduling_info.LCGID[lcid]; - // Store already available data to transmit per Group - if (lcgid < MAX_NUM_LCGID) { - lcgid_buffer_remain[lcgid] += - UE_mac_inst[module_idP]. - scheduling_info.LCID_buffer_remain[lcid]; - } + // Store already available data to transmit per Group + if (lcgid < MAX_NUM_LCGID) + { + lcgid_buffer_remain[lcgid] += UE_mac_inst[module_idP].scheduling_info.LCID_buffer_remain[lcid]; + } - 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 + 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 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); - lcid_bytes_in_buffer[lcid] = rlc_status.bytes_in_buffer; + lcid_bytes_in_buffer[lcid] = rlc_status.bytes_in_buffer; - if (rlc_status.bytes_in_buffer > 0) { - LOG_D(MAC, - "[UE %d] PDCCH Tick : LCID%d LCGID%d has data to transmit =%d bytes at frame %d subframe %d\n", - module_idP, lcid, lcgid, rlc_status.bytes_in_buffer, - frameP, subframeP); + if (rlc_status.bytes_in_buffer > 0) + { + LOG_D(MAC,"[UE %d] PDCCH Tick : LCID%d LCGID%d has data to transmit =%d bytes at frame %d subframe %d\n", + module_idP, lcid,lcgid,rlc_status.bytes_in_buffer,frameP,subframeP); - UE_mac_inst[module_idP].scheduling_info.LCID_status[lcid] = - LCID_NOT_EMPTY; - //Update BSR_bytes and position in lcid_reordered_array only if Group is defined - if (lcgid < MAX_NUM_LCGID) { - num_lcid_with_data++; - // sum lcid buffer which has same lcgid - UE_mac_inst[module_idP].scheduling_info. - BSR_bytes[lcgid] += rlc_status.bytes_in_buffer; + UE_mac_inst[module_idP].scheduling_info.LCID_status[lcid] = LCID_NOT_EMPTY; + //Update BSR_bytes and position in lcid_reordered_array only if Group is defined + if (lcgid < MAX_NUM_LCGID) + { + num_lcid_with_data ++; + // sum lcid buffer which has same lcgid + UE_mac_inst[module_idP].scheduling_info.BSR_bytes[lcgid] += rlc_status.bytes_in_buffer; - //Fill in the array - array_index = 0; - do { - if (UE_mac_inst[module_idP].logicalChannelConfig - [lcid]->ul_SpecificParameters->priority <= - highest_priority) { - //Insert if priority is higher or equal (lower or equal in value) - for (pos_next = num_lcid_with_data - 1; - pos_next > array_index; pos_next--) { - lcid_reordered_array[pos_next] = - lcid_reordered_array[pos_next - 1]; + //Fill in the array + array_index = 0; + do + { + if (UE_mac_inst[module_idP].logicalChannelConfig[lcid]->ul_SpecificParameters->priority <= highest_priority) + { + //Insert if priority is higher or equal (lower or equal in value) + for (pos_next=num_lcid_with_data-1; pos_next > array_index; pos_next--) + { + lcid_reordered_array[pos_next] = lcid_reordered_array[pos_next - 1]; - } - lcid_reordered_array[array_index] = lcid; - break; + } + lcid_reordered_array[array_index] = lcid; + break; - } - array_index++; - } - while ((array_index < num_lcid_with_data) - && (array_index < MAX_NUM_LCID)); - } + } + array_index ++; + } + while ((array_index < num_lcid_with_data) && (array_index < MAX_NUM_LCID)); + } } } @@ -3029,3 +3173,154 @@ int get_db_dl_PathlossChange(uint8_t dl_PathlossChange) break; } } + + +SLSS_t *ue_get_slss(module_id_t Mod_id,int CC_id,frame_t frame_tx,sub_frame_t subframe_tx) { + + return((SLSS_t*)NULL); +} + +SLDCH_t *ue_get_sldch(module_id_t Mod_id,int CC_id,frame_t frame_tx,sub_frame_t subframe_tx) { + + //UE_MAC_INST *ue = &UE_mac_inst[Mod_id]; + SLDCH_t *sldch = &UE_mac_inst[Mod_id].sldch; + + sldch->payload_length = mac_rrc_data_req_ue(Mod_id, + CC_id, + frame_tx, + SL_DISCOVERY, + 1, + (uint8_t*)(sldch->payload), //&UE_mac_inst[Mod_id].SL_Discovery[0].Tx_buffer.Payload[0], + 0, //eNB_indexP + 0); + + + + if (sldch->payload_length >0 ) { + LOG_I(MAC,"Got %d bytes from RRC for SLDCH @ %p\n",sldch->payload_length,sldch); + return (sldch); + } + else + + return((SLDCH_t*)NULL); +} + + +SLSCH_t *ue_get_slsch(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_t subframeP) { + + mac_rlc_status_resp_t rlc_status; //, rlc_status_data; + uint32_t absSF = (frameP*10)+subframeP; + UE_MAC_INST *ue = &UE_mac_inst[module_idP]; + int rvtab[4] = {0,2,3,1}; + int sdu_length; + //uint8_t sl_lcids[2] = {3, 10}; //list of lcids for SL - hardcoded + int i = 0; + + // Note: this is hard-coded for now for the default SL configuration (4 SF PSCCH, 36 SF PSSCH) + SLSCH_t *slsch = &UE_mac_inst[module_idP].slsch; + + LOG_D(MAC,"Checking SLSCH for absSF %d\n",absSF); + if ((absSF%40) == 0) { // fill PSCCH data later in first subframe of SL period + ue->sltx_active = 0; + + for (i = 0; i < MAX_NUM_LCID; i++){ + if (ue->SL_LCID[i] > 0) { + for (int j = 0; j < ue->numCommFlows; j++){ + if ((ue->sourceL2Id > 0) && (ue->destinationList[j] >0) ){ + rlc_status = mac_rlc_status_ind(module_idP, 0x1234,0,frameP,subframeP,ENB_FLAG_NO,MBMS_FLAG_NO, + ue->SL_LCID[i], 0xFFFF, ue->sourceL2Id, ue->destinationList[j]); + if (rlc_status.bytes_in_buffer > 2){ + LOG_I(MAC,"SFN.SF %d.%d: Scheduling for %d bytes in Sidelink buffer\n",frameP,subframeP,rlc_status.bytes_in_buffer); + // Fill in group id for off-network communications + ue->sltx_active = 1; + //store LCID, destinationL2Id + ue->slsch_lcid = ue->SL_LCID[i]; + ue->destinationL2Id = ue->destinationList[j]; + break; + } + } + } + } + if ( ue->sltx_active == 1) break; + } + } // we're not in the SCCH period + else if (((absSF & 3) == 0 ) && + (ue->sltx_active == 1)) { // every 4th subframe, check for new data from RLC + // 10 PRBs, mcs 19 + int TBS = 4584/8; + int req; + + + if (TBS <= rlc_status.bytes_in_buffer) req = TBS; + else req = rlc_status.bytes_in_buffer; + + if (req>0) { + sdu_length = mac_rlc_data_req(module_idP, + 0x1234, + 0, + frameP, + ENB_FLAG_NO, + MBMS_FLAG_NO, + ue->slsch_lcid, + req, + (char*)(ue->slsch_pdu.payload + sizeof(SLSCH_SUBHEADER_24_Bit_DST_LONG)) +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,ue->sourceL2Id, + ue->destinationL2Id +#endif + ); + + // Notes: 1. hard-coded to 24-bit destination format for now + if (sdu_length > 0) { + + LOG_I(MAC,"SFN.SF %d.%d : got %d bytes from Sidelink buffer (%d requested)\n",frameP,subframeP,sdu_length,req); + LOG_I(MAC,"sourceL2Id: 0x%08x \n",ue->sourceL2Id); + LOG_I(MAC,"groupL2Id/destinationL2Id: 0x%08x \n",ue->destinationL2Id); + + slsch->payload = (unsigned char*)ue->slsch_pdu.payload; + if (sdu_length < 128) { + slsch->payload++; + SLSCH_SUBHEADER_24_Bit_DST_SHORT *shorth= (SLSCH_SUBHEADER_24_Bit_DST_SHORT *)slsch->payload; + shorth->F = 0; + shorth->L = sdu_length; + shorth->E = 0; + shorth->LCID = ue->slsch_lcid; + shorth->SRC07 = (ue->sourceL2Id>>16) & 0x000000ff; + shorth->SRC815 = (ue->sourceL2Id>>8) & 0x000000ff; + shorth->SRC1623 = ue->sourceL2Id & 0x000000ff; + shorth->DST07 = (ue->destinationL2Id >>16) & 0x000000ff; + shorth->DST815 = (ue->destinationL2Id >>8) & 0x000000ff; + shorth->DST1623 = ue->destinationL2Id & 0x000000ff; + shorth->V = 0x1; + } + else { + SLSCH_SUBHEADER_24_Bit_DST_LONG *longh= (SLSCH_SUBHEADER_24_Bit_DST_LONG *)slsch->payload; + longh->F = 1; + longh->L_LSB = sdu_length&0xff; + longh->L_MSB = (sdu_length>>8)&0x7f; + longh->E = 0; + longh->LCID = ue->slsch_lcid; + longh->SRC07 = (ue->sourceL2Id >>16) & 0x000000ff; + longh->SRC815 = (ue->sourceL2Id>>8) & 0x000000ff; + longh->SRC1623 = ue->sourceL2Id & 0x000000ff; + longh->DST07 = (ue->destinationL2Id >>16) & 0x000000ff; + longh->DST815 = (ue->destinationL2Id>>8) & 0x000000ff; + longh->DST1623 = ue->destinationL2Id & 0x000000ff; + longh->V = 0x1; + } + slsch->rvidx = 0; + slsch->payload_length = TBS; + // fill in SLSCH configuration + return(&ue->slsch); + } + else ue->sltx_active = 0; + } + + } else if ((absSF%40)>3 && ue->sltx_active == 1) { // handle retransmission of SDU + LOG_I(MAC,"SFN.SF %d.%d : retransmission\n",frameP,subframeP); + slsch->rvidx = rvtab[absSF&3]; + return(&ue->slsch); + } + + return(NULL); +} diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c index 67571f8736..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,6 +83,10 @@ boolean_t pdcp_data_req( const sdu_size_t sdu_buffer_sizeP, unsigned char *const sdu_buffer_pP, const pdcp_transmission_mode_t modeP +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,const uint32_t * const sourceL2Id + ,const uint32_t * const destinationL2Id +#endif ) //----------------------------------------------------------------------------- { @@ -165,7 +169,11 @@ boolean_t pdcp_data_req( (unsigned char*)&pdcp_pdu_p->data[0], 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); + rlc_status = rlc_data_req(ctxt_pP, srb_flagP, MBMS_FLAG_YES, rb_idP, muiP, confirmP, sdu_buffer_sizeP, pdcp_pdu_p +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,NULL, NULL +#endif + ); } else { rlc_status = RLC_OP_STATUS_OUT_OF_RESSOURCES; LOG_W(PDCP,PROTOCOL_CTXT_FMT" PDCP_DATA_REQ SDU DROPPED, OUT OF MEMORY \n", @@ -351,7 +359,12 @@ 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); + rlc_status = rlc_data_req(ctxt_pP, srb_flagP, MBMS_FLAG_NO, rb_idP, muiP, confirmP, pdcp_pdu_size, pdcp_pdu_p +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,sourceL2Id + ,destinationL2Id +#endif + ); } @@ -582,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 @@ -599,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 @@ -780,6 +787,8 @@ pdcp_data_ind( } else { ((pdcp_data_ind_header_t*) new_sdu_p->data)->rb_id = rb_id + (ctxt_pP->module_id * maxDRB); } + ((pdcp_data_ind_header_t*) new_sdu_p->data)->inst = ctxt_pP->module_id; + #ifdef DEBUG_PDCP_FIFO_FLUSH_SDU static uint32_t pdcp_inst = 0; ((pdcp_data_ind_header_t*) new_sdu_p->data)->inst = pdcp_inst++; @@ -851,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 @@ -906,15 +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 { @@ -929,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: @@ -950,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, @@ -965,7 +966,11 @@ pdcp_run ( RRC_DCCH_DATA_REQ (msg_p).confirmp, RRC_DCCH_DATA_REQ (msg_p).sdu_size, RRC_DCCH_DATA_REQ (msg_p).sdu_p, - RRC_DCCH_DATA_REQ (msg_p).mode); + RRC_DCCH_DATA_REQ (msg_p).mode +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + , NULL, NULL +#endif + ); if (result != TRUE) LOG_E(PDCP, "PDCP data request failed!\n"); @@ -990,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; } @@ -999,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 @@ -1143,7 +1125,7 @@ rrc_pdcp_config_asn1_req ( uint8_t *const kRRCenc_pP, uint8_t *const kRRCint_pP, uint8_t *const kUPenc_pP -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) ,PMCH_InfoList_r9_t* const pmch_InfoList_r9_pP #endif ,rb_id_t *const defaultDRB @@ -1170,7 +1152,7 @@ rrc_pdcp_config_asn1_req ( hashtable_rc_t h_rc; hash_key_t key_defaultDRB = HASHTABLE_NOT_A_KEY_VALUE; hashtable_rc_t h_defaultDRB_rc; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) int i,j; MBMS_SessionInfoList_r9_t *mbms_SessionInfoList_r9_p = NULL; MBMS_SessionInfo_r9_t *MBMS_SessionInfo_p = NULL; @@ -1468,7 +1450,7 @@ rrc_pdcp_config_asn1_req ( } } -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) if (pmch_InfoList_r9_pP != NULL) { for (i=0; ilist.count; i++) { @@ -1592,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, @@ -1641,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, @@ -1678,7 +1660,7 @@ pdcp_config_req_asn1 ( memset(pdcp_pP, 0, sizeof(pdcp_t)); break; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) case CONFIG_ACTION_MBMS_ADD: case CONFIG_ACTION_MBMS_MODIFY: @@ -1794,6 +1776,7 @@ rrc_pdcp_config_req ( if (ctxt_pP->enb_flag == ENB_FLAG_NO) { pdcp_p->is_ue = TRUE; + pdcp_UE_UE_module_id_to_rnti[ctxt_pP->module_id] = ctxt_pP->rnti; } else { pdcp_p->is_ue = FALSE; } @@ -1812,9 +1795,9 @@ rrc_pdcp_config_req ( } pdcp_p->first_missing_pdu = -1; - LOG_D(PDCP,PROTOCOL_PDCP_CTXT_FMT" Config request : Action ADD: radio bearer id %d (already added) configured\n", - PROTOCOL_PDCP_CTXT_ARGS(ctxt_pP,pdcp_p), - rb_idP); + LOG_D(PDCP,PROTOCOL_PDCP_CTXT_FMT" Config request : Action ADD: radio bearer id %d (already added) configured\n", + PROTOCOL_PDCP_CTXT_ARGS(ctxt_pP,pdcp_p), + rb_idP); break; case CONFIG_ACTION_MODIFY: @@ -1871,10 +1854,10 @@ rrc_pdcp_config_req ( if (ctxt_pP->enb_flag == ENB_FLAG_NO) { pdcp_p->is_ue = TRUE; - + pdcp_UE_UE_module_id_to_rnti[ctxt_pP->module_id] = ctxt_pP->rnti; } else { pdcp_p->is_ue = FALSE; -} + } pdcp_p->next_pdcp_tx_sn = 0; pdcp_p->next_pdcp_rx_sn = 0; @@ -1998,7 +1981,7 @@ void pdcp_layer_init(void) module_id_t instance; int i,j; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) mbms_session_id_t session_id; mbms_service_id_t service_id; #endif @@ -2010,7 +1993,7 @@ void pdcp_layer_init(void) AssertFatal(pdcp_coll_p != NULL, "UNRECOVERABLE error, PDCP hashtable_create failed"); for (instance = 0; instance < MAX_MOBILES_PER_ENB; instance++) { -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) for (service_id = 0; service_id < maxServiceCount; service_id++) { for (session_id = 0; session_id < maxSessionPerPMCH; session_id++) { @@ -2024,7 +2007,7 @@ void pdcp_layer_init(void) for (instance = 0; instance < NUMBER_OF_eNB_MAX; instance++) { -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) for (service_id = 0; service_id < maxServiceCount; service_id++) { for (session_id = 0; session_id < maxSessionPerPMCH; session_id++) { diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp.h b/openair2/LAYER2/PDCP_v10.1.0/pdcp.h index ed5e1c6b42..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" @@ -74,7 +46,7 @@ #include "DRB-ToAddModList.h" #include "SRB-ToAddMod.h" #include "SRB-ToAddModList.h" -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) #include "MBMS-SessionInfoList-r9.h" #include "PMCH-InfoList-r9.h" #endif @@ -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; @@ -223,7 +195,7 @@ typedef struct pdcp_s { } pdcp_t; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) typedef struct pdcp_mbms_s { boolean_t instanciated_instance; rb_id_t rb_id; @@ -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, @@ -259,7 +231,12 @@ public_pdcp(boolean_t pdcp_data_req( const confirm_t confirmP, \ const sdu_size_t sdu_buffer_size, unsigned char* const sdu_buffer, - const pdcp_transmission_mode_t mode)); + const pdcp_transmission_mode_t mode +#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 @@ -274,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 @@ -292,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. @@ -313,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, @@ -323,11 +299,11 @@ public_pdcp( uint8_t *const kRRCenc, uint8_t *const kRRCint, uint8_t *const kUPenc -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) ,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. @@ -349,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, @@ -364,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 @@ -389,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 @@ -398,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); //----------------------------------------------------------------------------- @@ -432,6 +404,10 @@ typedef struct pdcp_data_req_header_s { sdu_size_t data_size; signed int inst; ip_traffic_type_t traffic_type; +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + uint32_t sourceL2Id; + uint32_t destinationL2Id; +#endif } pdcp_data_req_header_t; typedef struct pdcp_data_ind_header_s { @@ -439,6 +415,10 @@ typedef struct pdcp_data_ind_header_s { sdu_size_t data_size; signed int inst; ip_traffic_type_t dummy_traffic_type; +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + uint32_t sourceL2Id; + uint32_t destinationL2Id; +#endif } pdcp_data_ind_header_t; struct pdcp_netlink_element_s { @@ -448,14 +428,40 @@ struct pdcp_netlink_element_s { uint8_t *data; }; -#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; +//TTN for D2D (PC5S) +#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; +struct sockaddr_in prose_ctrl_addr; +struct sockaddr_in prose_pdcp_addr; +struct sockaddr_in pdcp_sin; +void pdcp_pc5_socket_init(void); + +typedef struct { + rb_id_t rb_id; + sdu_size_t data_size; + signed int inst; + ip_traffic_type_t traffic_type; + uint32_t sourceL2Id; + uint32_t destinationL2Id; +} __attribute__((__packed__)) pc5s_header_t; + +//new PC5S-message +typedef struct { + unsigned char bytes[PC5_SIGNALLING_PAYLOAD_SIZE]; +} __attribute__((__packed__)) PC5SignallingMessage ; + +//example of PC5-S messages +typedef struct { + pc5s_header_t pc5s_header; + union { + uint8_t status; + PC5SignallingMessage pc5_signalling_message; + } pc5sPrimitive; +} __attribute__((__packed__)) sidelink_pc5s_element; + + #endif /* @@ -481,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;) -#if defined(Rel10) || defined(Rel14) -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 +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)) +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 | \ @@ -536,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 d564b7cad6..b9e605ca24 100644 --- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c +++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c @@ -52,12 +52,13 @@ 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" #include "assertions.h" @@ -112,129 +113,163 @@ pdcp_data_req_header_t pdcp_read_header_g; //----------------------------------------------------------------------------- int pdcp_fifo_flush_sdus(const protocol_ctxt_t* const ctxt_pP) { - //----------------------------------------------------------------------------- + //----------------------------------------------------------------------------- -//#if defined(PDCP_USE_NETLINK) && defined(LINUX) - int ret = 0; -//#endif + //#if defined(PDCP_USE_NETLINK) && defined(LINUX) + int ret = 0; + //#endif #ifdef DEBUG_PDCP_FIFO_FLUSH_SDU #define THREAD_NAME_LEN 16 - static char threadname[THREAD_NAME_LEN]; - ret = pthread_getname_np(pthread_self(), threadname, THREAD_NAME_LEN); - if (ret != 0) - { - perror("pthread_getname_np : "); - exit_fun("Error getting thread name"); - } + static char threadname[THREAD_NAME_LEN]; + ret = pthread_getname_np(pthread_self(), threadname, THREAD_NAME_LEN); + if (ret != 0) + { + perror("pthread_getname_np : "); + exit_fun("Error getting thread name"); + } #undef THREAD_NAME_LEN #endif #ifdef PDCP_SDU_FLUSH_LOCK - ret = pthread_mutex_trylock(&mtex); - if (ret == EBUSY) { + ret = pthread_mutex_trylock(&mtex); + if (ret == EBUSY) { #ifdef DEBUG_PDCP_FIFO_FLUSH_SDU - LOG_W(PDCP, "[%s] at SFN/SF=%d/%d wait for PDCP FIFO to be unlocked\n", - threadname, ctxt_pP->frame, ctxt_pP->subframe); + LOG_W(PDCP, "[%s] at SFN/SF=%d/%d wait for PDCP FIFO to be unlocked\n", + threadname, ctxt_pP->frame, ctxt_pP->subframe); #endif - if (pthread_mutex_lock(&mtex)) { - exit_fun("PDCP_SDU_FLUSH_LOCK lock error!"); - } + if (pthread_mutex_lock(&mtex)) { + exit_fun("PDCP_SDU_FLUSH_LOCK lock error!"); + } #ifdef DEBUG_PDCP_FIFO_FLUSH_SDU - LOG_I(PDCP, "[%s] at SFN/SF=%d/%d PDCP FIFO is unlocked\n", - threadname, ctxt_pP->frame, ctxt_pP->subframe); + LOG_I(PDCP, "[%s] at SFN/SF=%d/%d PDCP FIFO is unlocked\n", + threadname, ctxt_pP->frame, ctxt_pP->subframe); #endif - } else if (ret != 0) { - exit_fun("PDCP_SDU_FLUSH_LOCK trylock error!"); - } + } else if (ret != 0) { + exit_fun("PDCP_SDU_FLUSH_LOCK trylock error!"); + } #endif - mem_block_t *sdu_p = list_get_head (&pdcp_sdu_list); - int bytes_wrote = 0; - int pdcp_nb_sdu_sent = 0; - uint8_t cont = 1; + mem_block_t *sdu_p = list_get_head (&pdcp_sdu_list); + int bytes_wrote = 0; + int pdcp_nb_sdu_sent = 0; + uint8_t cont = 1; #if defined(LINK_ENB_PDCP_TO_GTPV1U) - //MessageDef *message_p = NULL; + //MessageDef *message_p = NULL; #endif - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_FIFO_FLUSH, 1 ); - while (sdu_p && cont) { + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_FIFO_FLUSH, 1 ); + while (sdu_p && cont) { #ifdef DEBUG_PDCP_FIFO_FLUSH_SDU - LOG_D(PDCP, "[%s] SFN/SF=%d/%d inst=%d size=%d\n", - threadname, ctxt_pP->frame, ctxt_pP->subframe, - ((pdcp_data_ind_header_t*) sdu_p->data)->inst, - ((pdcp_data_ind_header_t *) sdu_p->data)->data_size); + LOG_D(PDCP, "[%s] SFN/SF=%d/%d inst=%d size=%d\n", + threadname, ctxt_pP->frame, ctxt_pP->subframe, + ((pdcp_data_ind_header_t*) sdu_p->data)->inst, + ((pdcp_data_ind_header_t *) sdu_p->data)->data_size); +#else + ((pdcp_data_ind_header_t *)(sdu_p->data))->inst = 0; #endif #if defined(LINK_ENB_PDCP_TO_GTPV1U) - if (ctxt_pP->enb_flag) { - AssertFatal(0, "Now execution should not go here"); - LOG_D(PDCP,"Sending to GTPV1U %d bytes\n", ((pdcp_data_ind_header_t *)(sdu_p->data))->data_size); - gtpv1u_new_data_req( - ctxt_pP->module_id, //gtpv1u_data_t *gtpv1u_data_p, - ctxt_pP->rnti,//rb_id/maxDRB, TO DO UE ID - ((pdcp_data_ind_header_t *)(sdu_p->data))->rb_id + 4, - &(((uint8_t *) sdu_p->data)[sizeof (pdcp_data_ind_header_t)]), - ((pdcp_data_ind_header_t *)(sdu_p->data))->data_size, - 0); + if (ctxt_pP->enb_flag) { + AssertFatal(0, "Now execution should not go here"); + LOG_D(PDCP,"Sending to GTPV1U %d bytes\n", ((pdcp_data_ind_header_t *)(sdu_p->data))->data_size); + gtpv1u_new_data_req( + ctxt_pP->module_id, //gtpv1u_data_t *gtpv1u_data_p, + ctxt_pP->rnti,//rb_id/maxDRB, TO DO UE ID + ((pdcp_data_ind_header_t *)(sdu_p->data))->rb_id + 4, + &(((uint8_t *) sdu_p->data)[sizeof (pdcp_data_ind_header_t)]), + ((pdcp_data_ind_header_t *)(sdu_p->data))->data_size, + 0); - list_remove_head (&pdcp_sdu_list); - free_mem_block (sdu_p, __func__); - cont = 1; - pdcp_nb_sdu_sent += 1; - sdu_p = list_get_head (&pdcp_sdu_list); - LOG_D(OTG,"After GTPV1U\n"); - continue; // loop again - } + list_remove_head (&pdcp_sdu_list); + free_mem_block (sdu_p, __func__); + cont = 1; + pdcp_nb_sdu_sent += 1; + sdu_p = list_get_head (&pdcp_sdu_list); + LOG_D(OTG,"After GTPV1U\n"); + continue; // loop again + } #endif /* defined(ENABLE_USE_MME) */ #ifdef PDCP_DEBUG - LOG_D(PDCP, "PDCP->IP TTI %d INST %d: Preparing %d Bytes of data from rab %d to Nas_mesh\n", - ctxt_pP->frame, ((pdcp_data_ind_header_t *)(sdu_p->data))->inst, - ((pdcp_data_ind_header_t *)(sdu_p->data))->data_size, ((pdcp_data_ind_header_t *)(sdu_p->data))->rb_id); + LOG_D(PDCP, "PDCP->IP TTI %d INST %d: Preparing %d Bytes of data from rab %d to Nas_mesh\n", + ctxt_pP->frame, ((pdcp_data_ind_header_t *)(sdu_p->data))->inst, + ((pdcp_data_ind_header_t *)(sdu_p->data))->data_size, ((pdcp_data_ind_header_t *)(sdu_p->data))->rb_id); #endif //PDCP_DEBUG - cont = 0; + cont = 0; - if (!pdcp_output_sdu_bytes_to_write) { - if (!pdcp_output_header_bytes_to_write) { - pdcp_output_header_bytes_to_write = sizeof (pdcp_data_ind_header_t); +//TTN - for D2D (PC5S) +#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; + + if (rb_id == 10) { //hardcoded for PC5-Signaling + //if ((rb_id == 28) | (rb_id == 29) | (rb_id == 30)) + +#ifdef PDCP_DEBUG + sl_pc5s_msg_recv = calloc(1, sizeof(sidelink_pc5s_element)); + memcpy((void*)sl_pc5s_msg_recv, (void*)(sdu_p->data+sizeof(pdcp_data_ind_header_t)), sizeof(sidelink_pc5s_element)); + LOG_D(PDCP,"Received PC5S message, header traffic_type: %d)\n", sl_pc5s_msg_recv->pc5s_header.traffic_type); + LOG_D(PDCP,"Received PC5S message, header rb_id: %d)\n", sl_pc5s_msg_recv->pc5s_header.rb_id); + LOG_D(PDCP,"Received PC5S message, header data_size: %d)\n", sl_pc5s_msg_recv->pc5s_header.data_size); + LOG_D(PDCP,"Received PC5S message, header inst: %d)\n", sl_pc5s_msg_recv->pc5s_header.inst); + LOG_D(PDCP,"Received PC5-S message, sourceL2Id: 0x%08x\n)\n", sl_pc5s_msg_recv->pc5s_header.sourceL2Id); + LOG_D(PDCP,"Received PC5-S message, destinationL1Id: 0x%08x\n)\n", sl_pc5s_msg_recv->pc5s_header.destinationL2Id); + free(sl_pc5s_msg_recv); +#endif + memset(send_buf, 0, BUFSIZE); + memcpy((void *)send_buf, (void*)(sdu_p->data+sizeof(pdcp_data_ind_header_t)), sizeof(sidelink_pc5s_element)); + + int prose_addr_len = sizeof(prose_pdcp_addr); + int n = sendto(pdcp_pc5_sockfd, (char *)send_buf, sizeof(sidelink_pc5s_element), 0, (struct sockaddr *)&prose_pdcp_addr, prose_addr_len); + if (n < 0) { + LOG_E(PDCP, "ERROR: Failed to send to ProSe App\n"); + exit(EXIT_FAILURE); + } } +#endif + + if (!pdcp_output_sdu_bytes_to_write) { + if (!pdcp_output_header_bytes_to_write) { + pdcp_output_header_bytes_to_write = sizeof (pdcp_data_ind_header_t); + } #ifdef PDCP_USE_RT_FIFO - bytes_wrote = rtf_put (PDCP2PDCP_USE_RT_FIFO, - &(((uint8_t *) sdu->data)[sizeof (pdcp_data_ind_header_t) - pdcp_output_header_bytes_to_write]), - pdcp_output_header_bytes_to_write); + bytes_wrote = rtf_put (PDCP2PDCP_USE_RT_FIFO, + &(((uint8_t *) sdu->data)[sizeof (pdcp_data_ind_header_t) - pdcp_output_header_bytes_to_write]), + pdcp_output_header_bytes_to_write); #else #ifdef PDCP_USE_NETLINK #ifdef LINUX - memcpy(NLMSG_DATA(nas_nlh_tx), &(((uint8_t *) sdu_p->data)[sizeof (pdcp_data_ind_header_t) - pdcp_output_header_bytes_to_write]), - pdcp_output_header_bytes_to_write); - nas_nlh_tx->nlmsg_len = pdcp_output_header_bytes_to_write; + memcpy(NLMSG_DATA(nas_nlh_tx), &(((uint8_t *) sdu_p->data)[sizeof (pdcp_data_ind_header_t) - pdcp_output_header_bytes_to_write]), + pdcp_output_header_bytes_to_write); + nas_nlh_tx->nlmsg_len = pdcp_output_header_bytes_to_write; #endif //LINUX #endif //PDCP_USE_NETLINK - bytes_wrote = pdcp_output_header_bytes_to_write; + bytes_wrote = pdcp_output_header_bytes_to_write; #endif //PDCP_USE_RT_FIFO #ifdef PDCP_DEBUG - LOG_D(PDCP, "Frame %d Sent %d Bytes of header to Nas_mesh\n", - ctxt_pP->frame, - bytes_wrote); + LOG_D(PDCP, "Frame %d Sent %d Bytes of header to Nas_mesh\n", + ctxt_pP->frame, + bytes_wrote); #endif //PDCP_DEBUG - if (bytes_wrote > 0) { - pdcp_output_header_bytes_to_write = pdcp_output_header_bytes_to_write - bytes_wrote; + if (bytes_wrote > 0) { + pdcp_output_header_bytes_to_write = pdcp_output_header_bytes_to_write - bytes_wrote; - if (!pdcp_output_header_bytes_to_write) { // continue with sdu - pdcp_output_sdu_bytes_to_write = ((pdcp_data_ind_header_t *) sdu_p->data)->data_size; - AssertFatal(pdcp_output_sdu_bytes_to_write >= 0, "invalid data_size!"); + if (!pdcp_output_header_bytes_to_write) { // continue with sdu + pdcp_output_sdu_bytes_to_write = ((pdcp_data_ind_header_t *) sdu_p->data)->data_size; + AssertFatal(pdcp_output_sdu_bytes_to_write >= 0, "invalid data_size!"); #ifdef PDCP_USE_RT_FIFO - bytes_wrote = rtf_put (PDCP2PDCP_USE_RT_FIFO, &(sdu->data[sizeof (pdcp_data_ind_header_t)]), pdcp_output_sdu_bytes_to_write); + bytes_wrote = rtf_put (PDCP2PDCP_USE_RT_FIFO, &(sdu->data[sizeof (pdcp_data_ind_header_t)]), pdcp_output_sdu_bytes_to_write); #else #ifdef PDCP_USE_NETLINK @@ -278,103 +313,104 @@ int pdcp_fifo_flush_sdus(const protocol_ctxt_t* const ctxt_pP) #endif // LINUX #endif //PDCP_USE_NETLINK - bytes_wrote= pdcp_output_sdu_bytes_to_write; + bytes_wrote= pdcp_output_sdu_bytes_to_write; #endif // PDCP_USE_RT_FIFO #ifdef PDCP_DEBUG - LOG_D(PDCP, "PDCP->IP Frame %d INST %d: Sent %d Bytes of data from rab %d to higher layers\n", - ctxt_pP->frame, - ((pdcp_data_ind_header_t *)(sdu_p->data))->inst, - bytes_wrote, - ((pdcp_data_ind_header_t *)(sdu_p->data))->rb_id); + LOG_D(PDCP, "PDCP->IP Frame %d INST %d: Sent %d Bytes of data from rab %d to higher layers\n", + ctxt_pP->frame, + ((pdcp_data_ind_header_t *)(sdu_p->data))->inst, + bytes_wrote, + ((pdcp_data_ind_header_t *)(sdu_p->data))->rb_id); #endif //PDCP_DEBUG - if (bytes_wrote > 0) { + if (bytes_wrote > 0) { + pdcp_output_sdu_bytes_to_write -= bytes_wrote; + + if (!pdcp_output_sdu_bytes_to_write) { // OK finish with this SDU + // LOG_D(PDCP, "rb sent a sdu qos_sap %d\n", sapiP); + LOG_D(PDCP, + "[FRAME %05d][xxx][PDCP][MOD xx/xx][RB %u][--- PDCP_DATA_IND / %d Bytes --->][IP][INSTANCE %u][RB %u]\n", + ctxt_pP->frame, + ((pdcp_data_ind_header_t *)(sdu_p->data))->rb_id, + ((pdcp_data_ind_header_t *)(sdu_p->data))->data_size, + ((pdcp_data_ind_header_t *)(sdu_p->data))->inst, + ((pdcp_data_ind_header_t *)(sdu_p->data))->rb_id); + + list_remove_head (&pdcp_sdu_list); + free_mem_block (sdu_p, __func__); + cont = 1; + pdcp_nb_sdu_sent += 1; + sdu_p = list_get_head (&pdcp_sdu_list); + } else { + LOG_D(PDCP, "1 skip free_mem_block: pdcp_output_sdu_bytes_to_write = %d\n", pdcp_output_sdu_bytes_to_write); + AssertFatal(pdcp_output_sdu_bytes_to_write > 0, "pdcp_output_sdu_bytes_to_write cannot be negative!"); + } + } else { + LOG_W(PDCP, "2: RADIO->IP SEND SDU CONGESTION!\n"); + } + } else { + LOG_W(PDCP, "3: RADIO->IP SEND SDU CONGESTION!\n"); + } + } else { + LOG_D(PDCP, "4 skip free_mem_block: bytes_wrote = %d\n", bytes_wrote); + } + } else { + // continue writing sdu +#ifdef PDCP_USE_RT_FIFO + bytes_wrote = rtf_put (PDCP2PDCP_USE_RT_FIFO, + (uint8_t *) (&(sdu_p->data[sizeof (pdcp_data_ind_header_t) + ((pdcp_data_ind_header_t *) sdu_p->data)->data_size - pdcp_output_sdu_bytes_to_write])), + pdcp_output_sdu_bytes_to_write); +#else // PDCP_USE_RT_FIFO + bytes_wrote = pdcp_output_sdu_bytes_to_write; +#endif // PDCP_USE_RT_FIFO + LOG_D(PDCP, "THINH 2 bytes_wrote = %d\n", bytes_wrote); + + if (bytes_wrote > 0) { pdcp_output_sdu_bytes_to_write -= bytes_wrote; - if (!pdcp_output_sdu_bytes_to_write) { // OK finish with this SDU - // LOG_D(PDCP, "rb sent a sdu qos_sap %d\n", sapiP); - LOG_D(PDCP, - "[FRAME %05d][xxx][PDCP][MOD xx/xx][RB %u][--- PDCP_DATA_IND / %d Bytes --->][IP][INSTANCE %u][RB %u]\n", - ctxt_pP->frame, - ((pdcp_data_ind_header_t *)(sdu_p->data))->rb_id, - ((pdcp_data_ind_header_t *)(sdu_p->data))->data_size, - ((pdcp_data_ind_header_t *)(sdu_p->data))->inst, - ((pdcp_data_ind_header_t *)(sdu_p->data))->rb_id); - - list_remove_head (&pdcp_sdu_list); - free_mem_block (sdu_p, __func__); - cont = 1; - pdcp_nb_sdu_sent += 1; - sdu_p = list_get_head (&pdcp_sdu_list); + if (!pdcp_output_sdu_bytes_to_write) { // OK finish with this SDU + //PRINT_RB_SEND_OUTPUT_SDU ("[PDCP] RADIO->IP SEND SDU\n"); + list_remove_head (&pdcp_sdu_list); + free_mem_block (sdu_p, __func__); + cont = 1; + pdcp_nb_sdu_sent += 1; + sdu_p = list_get_head (&pdcp_sdu_list); + // LOG_D(PDCP, "rb sent a sdu from rab\n"); } else { - LOG_D(PDCP, "1 skip free_mem_block: pdcp_output_sdu_bytes_to_write = %d\n", pdcp_output_sdu_bytes_to_write); - AssertFatal(pdcp_output_sdu_bytes_to_write > 0, "pdcp_output_sdu_bytes_to_write cannot be negative!"); + LOG_D(PDCP, "5 skip free_mem_block: pdcp_output_sdu_bytes_to_write = %d\n", pdcp_output_sdu_bytes_to_write); } - } else { - LOG_W(PDCP, "2: RADIO->IP SEND SDU CONGESTION!\n"); - } - } else { - LOG_W(PDCP, "3: RADIO->IP SEND SDU CONGESTION!\n"); - } - } else { - LOG_D(PDCP, "4 skip free_mem_block: bytes_wrote = %d\n", bytes_wrote); + } else { + LOG_D(PDCP, "6 skip free_mem_block: bytes_wrote = %d\n", bytes_wrote); + } } - } else { - // continue writing sdu -#ifdef PDCP_USE_RT_FIFO - bytes_wrote = rtf_put (PDCP2PDCP_USE_RT_FIFO, - (uint8_t *) (&(sdu_p->data[sizeof (pdcp_data_ind_header_t) + ((pdcp_data_ind_header_t *) sdu_p->data)->data_size - pdcp_output_sdu_bytes_to_write])), - pdcp_output_sdu_bytes_to_write); -#else // PDCP_USE_RT_FIFO - bytes_wrote = pdcp_output_sdu_bytes_to_write; -#endif // PDCP_USE_RT_FIFO - - if (bytes_wrote > 0) { - pdcp_output_sdu_bytes_to_write -= bytes_wrote; - - if (!pdcp_output_sdu_bytes_to_write) { // OK finish with this SDU - //PRINT_RB_SEND_OUTPUT_SDU ("[PDCP] RADIO->IP SEND SDU\n"); - list_remove_head (&pdcp_sdu_list); - free_mem_block (sdu_p, __func__); - cont = 1; - pdcp_nb_sdu_sent += 1; - sdu_p = list_get_head (&pdcp_sdu_list); - // LOG_D(PDCP, "rb sent a sdu from rab\n"); - } else { - LOG_D(PDCP, "5 skip free_mem_block: pdcp_output_sdu_bytes_to_write = %d\n", pdcp_output_sdu_bytes_to_write); - } - } else { - LOG_D(PDCP, "6 skip free_mem_block: bytes_wrote = %d\n", bytes_wrote); - } - } - } - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_FIFO_FLUSH, 0 ); + } + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_FIFO_FLUSH, 0 ); #ifdef PDCP_USE_RT_FIFO - if ((pdcp_nb_sdu_sent)) { - if ((pdcp_2_nas_irq > 0)) { + if ((pdcp_nb_sdu_sent)) { + if ((pdcp_2_nas_irq > 0)) { #ifdef PDCP_DEBUG - LOG_D(PDCP, "Frame %d : Trigger NAS RX interrupt\n", - ctxt_pP->frame); + LOG_D(PDCP, "Frame %d : Trigger NAS RX interrupt\n", + ctxt_pP->frame); #endif //PDCP_DEBUG - rt_pend_linux_srq (pdcp_2_nas_irq); + rt_pend_linux_srq (pdcp_2_nas_irq); - } else { - LOG_E(PDCP, "Frame %d: ERROR IF IP STACK WANTED : NOTIF PACKET(S) pdcp_2_nas_irq not initialized : %d\n", - ctxt_pP->frame, - pdcp_2_nas_irq); - } - } + } else { + LOG_E(PDCP, "Frame %d: ERROR IF IP STACK WANTED : NOTIF PACKET(S) pdcp_2_nas_irq not initialized : %d\n", + ctxt_pP->frame, + pdcp_2_nas_irq); + } + } #endif //PDCP_USE_RT_FIFO #ifdef PDCP_SDU_FLUSH_LOCK - if (pthread_mutex_unlock(&mtex)) exit_fun("PDCP_SDU_FLUSH_LOCK unlock error!"); + if (pthread_mutex_unlock(&mtex)) exit_fun("PDCP_SDU_FLUSH_LOCK unlock error!"); #endif - return pdcp_nb_sdu_sent; + return pdcp_nb_sdu_sent; } //----------------------------------------------------------------------------- @@ -414,8 +450,12 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP) ctxt.instance, rab_id, rab_id, len); pdcp_data_req(&ctxt, SRB_FLAG_NO, rab_id, RLC_MUI_UNDEFINED, - RLC_SDU_CONFIRM_NO, len, nl_rx_buf, - PDCP_TRANSMISSION_MODE_DATA); + RLC_SDU_CONFIRM_NO, len, (unsigned char *)nl_rx_buf, + PDCP_TRANSMISSION_MODE_DATA +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + , NULL, NULL +#endif + ); } else { MSC_LOG_RX_DISCARDED_MESSAGE( (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_PDCP_ENB:MSC_PDCP_UE, @@ -437,185 +477,451 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP) #else /* UE_NAS_USE_TUN */ #ifdef PDCP_USE_NETLINK - protocol_ctxt_t ctxt_cpy = *ctxt_pP; - protocol_ctxt_t ctxt; - hash_key_t key = HASHTABLE_NOT_A_KEY_VALUE; - hashtable_rc_t h_rc; - struct pdcp_netlink_element_s* data_p = NULL; - /* avoid gcc warnings */ - (void)data_p; - module_id_t ue_id = 0; - pdcp_t* pdcp_p = NULL; + protocol_ctxt_t ctxt_cpy = *ctxt_pP; + protocol_ctxt_t ctxt; + hash_key_t key = HASHTABLE_NOT_A_KEY_VALUE; + hashtable_rc_t h_rc; + struct pdcp_netlink_element_s* data_p = NULL; + /* avoid gcc warnings */ + (void)data_p; + module_id_t ue_id = 0; + pdcp_t* pdcp_p = NULL; + +//TTN for D2D (PC5S) +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + int prose_addr_len; + char send_buf[BUFSIZE], receive_buf[BUFSIZE]; + //int optval; + int bytes_received; + sidelink_pc5s_element *sl_pc5s_msg_recv = NULL; + sidelink_pc5s_element *sl_pc5s_msg_send = NULL; + //uint32_t sourceL2Id; + //uint32_t groupL2Id; + //module_id_t module_id = 0; + pc5s_header_t *pc5s_header; +#endif + # if defined(PDCP_USE_NETLINK_QUEUES) - rb_id_t rab_id = 0; + rb_id_t rab_id = 0; - pdcp_transmission_mode_t pdcp_mode = PDCP_TRANSMISSION_MODE_UNKNOWN; + pdcp_transmission_mode_t pdcp_mode = PDCP_TRANSMISSION_MODE_UNKNOWN; - while (pdcp_netlink_dequeue_element(ctxt_pP, &data_p) != 0) { - DevAssert(data_p != NULL); - rab_id = data_p->pdcp_read_header.rb_id % maxDRB; - // ctxt_pP->rnti is NOT_A_RNTI - ctxt_cpy.rnti = pdcp_module_id_to_rnti[ctxt_cpy.module_id][data_p->pdcp_read_header.inst]; - key = PDCP_COLL_KEY_VALUE(ctxt_pP->module_id, ctxt_cpy.rnti, ctxt_pP->enb_flag, rab_id, SRB_FLAG_NO); - h_rc = hashtable_get(pdcp_coll_p, key, (void**)&pdcp_p); + while (pdcp_netlink_dequeue_element(ctxt_pP, &data_p) != 0) { + DevAssert(data_p != NULL); + rab_id = data_p->pdcp_read_header.rb_id % maxDRB; + // ctxt_pP->rnti is NOT_A_RNTI + ctxt_cpy.rnti = pdcp_module_id_to_rnti[ctxt_cpy.module_id][data_p->pdcp_read_header.inst]; + key = PDCP_COLL_KEY_VALUE(ctxt_pP->module_id, ctxt_cpy.rnti, ctxt_pP->enb_flag, rab_id, SRB_FLAG_NO); + h_rc = hashtable_get(pdcp_coll_p, key, (void**)&pdcp_p); + + if (h_rc != HASH_TABLE_OK) { + LOG_W(PDCP, PROTOCOL_CTXT_FMT" Dropped IP PACKET cause no PDCP instanciated\n", + PROTOCOL_CTXT_ARGS(ctxt_pP)); + free(data_p->data); + free(data_p); + data_p = NULL; + continue; + } + + CHECK_CTXT_ARGS(&ctxt_cpy); + + AssertFatal (rab_id < maxDRB, "RB id is too high (%u/%d)!\n", rab_id, maxDRB); + + if (rab_id != 0) { + LOG_D(PDCP, "[FRAME %05d][%s][IP][INSTANCE %u][RB %u][--- PDCP_DATA_REQ " + "/ %d Bytes --->][PDCP][MOD %u][RB %u]\n", + ctxt_cpy.frame, + (ctxt_cpy.enb_flag) ? "eNB" : "UE", + data_p->pdcp_read_header.inst, + data_p->pdcp_read_header.rb_id, + data_p->pdcp_read_header.data_size, + ctxt_cpy.module_id, + rab_id); +#ifdef OAI_NW_DRIVER_TYPE_ETHERNET + + if ((data_p->pdcp_read_header.traffic_type == TRAFFIC_IPV6_TYPE_MULTICAST) /*TRAFFIC_IPV6_TYPE_MULTICAST */ || + (data_p->pdcp_read_header.traffic_type == TRAFFIC_IPV4_TYPE_MULTICAST) /*TRAFFIC_IPV4_TYPE_MULTICAST */ || + (data_p->pdcp_read_header.traffic_type == TRAFFIC_IPV4_TYPE_BROADCAST) /*TRAFFIC_IPV4_TYPE_BROADCAST */ ) { +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + PDCP_TRANSMISSION_MODE_TRANSPARENT; +#else + pdcp_mode= PDCP_TRANSMISSION_MODE_DATA; +#endif + } else if ((data_p->pdcp_read_header.traffic_type == TRAFFIC_IPV6_TYPE_UNICAST) /* TRAFFIC_IPV6_TYPE_UNICAST */ || + (data_p->pdcp_read_header.traffic_type == TRAFFIC_IPV4_TYPE_UNICAST) /*TRAFFIC_IPV4_TYPE_UNICAST*/ ) { + pdcp_mode= PDCP_TRANSMISSION_MODE_DATA; + } else { + pdcp_mode= PDCP_TRANSMISSION_MODE_DATA; + LOG_W(PDCP,"unknown IP traffic type \n"); + } + +#else // OAI_NW_DRIVER_TYPE_ETHERNET NASMESH driver does not curreenlty support multicast traffic + pdcp_mode = PDCP_TRANSMISSION_MODE_DATA; +#endif + pdcp_data_req(&ctxt_cpy, + SRB_FLAG_NO, + rab_id % maxDRB, + RLC_MUI_UNDEFINED, + RLC_SDU_CONFIRM_NO, + data_p->pdcp_read_header.data_size, + data_p->data, + pdcp_mode +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,NULL, NULL +#endif + ); + } else if (ctxt_cpy.enb_flag) { + /* rb_id = 0, thus interpreated as broadcast and transported as + * multiple unicast is a broadcast packet, we have to send this + * packet on all default RABS of all connected UEs + */ + LOG_D(PDCP, "eNB Try Forcing send on DEFAULT_RAB_ID first_ue_local %u nb_ue_local %u\n", oai_emulation.info.first_ue_local, oai_emulation.info.nb_ue_local); + + for (ue_id = 0; ue_id < NB_UE_INST; ue_id++) { + if (pdcp_module_id_to_rnti[ctxt_cpy.module_id][ue_id] != NOT_A_RNTI) { + LOG_D(PDCP, "eNB Try Forcing send on DEFAULT_RAB_ID UE %d\n", ue_id); + ctxt.module_id = ctxt_cpy.module_id; + ctxt.rnti = ctxt_cpy.pdcp_module_id_to_rnti[ctxt_cpy.module_id][ue_id]; + ctxt.frame = ctxt_cpy.frame; + ctxt.enb_flag = ctxt_cpy.enb_flag; + + pdcp_data_req( + &ctxt, + SRB_FLAG_NO, + DEFAULT_RAB_ID, + RLC_MUI_UNDEFINED, + RLC_SDU_CONFIRM_NO, + data_p->pdcp_read_header.data_size, + data_p->data, + PDCP_TRANSMISSION_MODE_DATA +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,NULL, NULL +#endif + ); + } + } + } else { + LOG_D(PDCP, "Forcing send on DEFAULT_RAB_ID\n"); + pdcp_data_req( + &ctxt_cpy, + SRB_FLAG_NO, + DEFAULT_RAB_ID, + RLC_MUI_UNDEFINED, + RLC_SDU_CONFIRM_NO, + data_p->pdcp_read_header.data_size, + data_p->data, + PDCP_TRANSMISSION_MODE_DATA +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,NULL, NULL +#endif + ); + } - if (h_rc != HASH_TABLE_OK) { - LOG_W(PDCP, PROTOCOL_CTXT_FMT" Dropped IP PACKET cause no PDCP instanciated\n", - PROTOCOL_CTXT_ARGS(ctxt_pP)); free(data_p->data); free(data_p); data_p = NULL; - continue; - } + } - CHECK_CTXT_ARGS(&ctxt_cpy); - - AssertFatal (rab_id < maxDRB, "RB id is too high (%u/%d)!\n", rab_id, maxDRB); - - if (rab_id != 0) { - LOG_D(PDCP, "[FRAME %05d][%s][IP][INSTANCE %u][RB %u][--- PDCP_DATA_REQ " - "/ %d Bytes --->][PDCP][MOD %u][RB %u]\n", - ctxt_cpy.frame, - (ctxt_cpy.enb_flag) ? "eNB" : "UE", - data_p->pdcp_read_header.inst, - data_p->pdcp_read_header.rb_id, - data_p->pdcp_read_header.data_size, - ctxt_cpy.module_id, - rab_id); -#ifdef OAI_NW_DRIVER_TYPE_ETHERNET - - if ((data_p->pdcp_read_header.traffic_type == TRAFFIC_IPV6_TYPE_MULTICAST) /*TRAFFIC_IPV6_TYPE_MULTICAST */ || - (data_p->pdcp_read_header.traffic_type == TRAFFIC_IPV4_TYPE_MULTICAST) /*TRAFFIC_IPV4_TYPE_MULTICAST */ || - (data_p->pdcp_read_header.traffic_type == TRAFFIC_IPV4_TYPE_BROADCAST) /*TRAFFIC_IPV4_TYPE_BROADCAST */ ) { -#if defined(Rel10) || defined(Rel14) - PDCP_TRANSMISSION_MODE_TRANSPARENT; -#else - pdcp_mode= PDCP_TRANSMISSION_MODE_DATA; -#endif - } else if ((data_p->pdcp_read_header.traffic_type == TRAFFIC_IPV6_TYPE_UNICAST) /* TRAFFIC_IPV6_TYPE_UNICAST */ || - (data_p->pdcp_read_header.traffic_type == TRAFFIC_IPV4_TYPE_UNICAST) /*TRAFFIC_IPV4_TYPE_UNICAST*/ ) { - pdcp_mode= PDCP_TRANSMISSION_MODE_DATA; - } else { - pdcp_mode= PDCP_TRANSMISSION_MODE_DATA; - LOG_W(PDCP,"unknown IP traffic type \n"); - } - -#else // OAI_NW_DRIVER_TYPE_ETHERNET NASMESH driver does not curreenlty support multicast traffic - pdcp_mode = PDCP_TRANSMISSION_MODE_DATA; -#endif - pdcp_data_req(&ctxt_cpy, - SRB_FLAG_NO, - rab_id % maxDRB, - RLC_MUI_UNDEFINED, - RLC_SDU_CONFIRM_NO, - data_p->pdcp_read_header.data_size, - data_p->data, - pdcp_mode); - } else if (ctxt_cpy.enb_flag) { - /* rb_id = 0, thus interpreated as broadcast and transported as - * multiple unicast is a broadcast packet, we have to send this - * packet on all default RABS of all connected UEs - */ - LOG_D(PDCP, "eNB Try Forcing send on DEFAULT_RAB_ID first_ue_local %u nb_ue_local %u\n", oai_emulation.info.first_ue_local, oai_emulation.info.nb_ue_local); - - for (ue_id = 0; ue_id < NB_UE_INST; ue_id++) { - if (pdcp_module_id_to_rnti[ctxt_cpy.module_id][ue_id] != NOT_A_RNTI) { - LOG_D(PDCP, "eNB Try Forcing send on DEFAULT_RAB_ID UE %d\n", ue_id); - ctxt.module_id = ctxt_cpy.module_id; - ctxt.rnti = ctxt_cpy.pdcp_module_id_to_rnti[ctxt_cpy.module_id][ue_id]; - ctxt.frame = ctxt_cpy.frame; - ctxt.enb_flag = ctxt_cpy.enb_flag; - - pdcp_data_req( - &ctxt, - SRB_FLAG_NO, - DEFAULT_RAB_ID, - RLC_MUI_UNDEFINED, - RLC_SDU_CONFIRM_NO, - data_p->pdcp_read_header.data_size, - data_p->data, - PDCP_TRANSMISSION_MODE_DATA); - } - } - } else { - LOG_D(PDCP, "Forcing send on DEFAULT_RAB_ID\n"); - pdcp_data_req( - &ctxt_cpy, - SRB_FLAG_NO, - DEFAULT_RAB_ID, - RLC_MUI_UNDEFINED, - RLC_SDU_CONFIRM_NO, - data_p->pdcp_read_header.data_size, - data_p->data, - PDCP_TRANSMISSION_MODE_DATA); - } - - free(data_p->data); - free(data_p); - data_p = NULL; - } - - return 0; + return 0; # else /* PDCP_USE_NETLINK_QUEUES*/ - int len = 1; - int msg_len; - rb_id_t rab_id = 0; - int rlc_data_req_flag = 3; - - while ((len > 0) && (rlc_data_req_flag !=0)) { - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_FIFO_READ, 1 ); - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_FIFO_READ_BUFFER, 1 ); - len = recvmsg(nas_sock_fd, &nas_msg_rx, 0); - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_FIFO_READ_BUFFER, 0 ); + int len = 1; + int msg_len; + rb_id_t rab_id = 0; + int rlc_data_req_flag = 3; - if (len<=0) { - // nothing in pdcp NAS socket - //LOG_D(PDCP, "[PDCP][NETLINK] Nothing in socket, length %d \n", len); - } else { - - msg_len = len; - for (nas_nlh_rx = (struct nlmsghdr *) nl_rx_buf; - NLMSG_OK (nas_nlh_rx, msg_len); - nas_nlh_rx = NLMSG_NEXT (nas_nlh_rx, msg_len)) { - if (nas_nlh_rx->nlmsg_type == NLMSG_DONE) { - LOG_D(PDCP, "[PDCP][NETLINK] RX NLMSG_DONE\n"); - //return; - } +//TTN for D2D (PC5S) +#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); + bytes_received = recvfrom(pdcp_pc5_sockfd, receive_buf, BUFSIZE, 0, + (struct sockaddr *) &prose_pdcp_addr, (socklen_t *)&prose_addr_len); + // if (bytes_received < 0){ + // LOG_E(RRC, "ERROR: Failed to receive from ProSe App\n"); + // exit(EXIT_FAILURE); + // } + if (bytes_received > 0) { + pc5s_header = calloc(1, sizeof(pc5s_header_t)); + memcpy((void *)pc5s_header, (void *)receive_buf, sizeof(pc5s_header_t)); - if (nas_nlh_rx->nlmsg_type == NLMSG_ERROR) { - LOG_D(PDCP, "[PDCP][NETLINK] RX NLMSG_ERROR\n"); - } + if (pc5s_header->traffic_type == TRAFFIC_PC5S_SESSION_INIT){ + //send reply to ProSe app + LOG_D(PDCP,"Received a request to open PDCP socket and establish a new PDCP session ... send response to ProSe App \n"); + memset(send_buf, 0, BUFSIZE); + sl_pc5s_msg_send = calloc(1, sizeof(sidelink_pc5s_element)); + sl_pc5s_msg_send->pc5s_header.traffic_type = TRAFFIC_PC5S_SESSION_INIT; + sl_pc5s_msg_send->pc5sPrimitive.status = 1; - if (pdcp_read_state_g == 0) { - if (nas_nlh_rx->nlmsg_len == sizeof (pdcp_data_req_header_t) + sizeof(struct nlmsghdr)) { - pdcp_read_state_g = 1; //get - memcpy((void *)&pdcp_read_header_g, (void *)NLMSG_DATA(nas_nlh_rx), sizeof(pdcp_data_req_header_t)); - LOG_D(PDCP, "[PDCP][NETLINK] RX pdcp_data_req_header_t inst %u, rb_id %u data_size %d\n", - pdcp_read_header_g.inst, pdcp_read_header_g.rb_id, pdcp_read_header_g.data_size); - } else { - LOG_E(PDCP, "[PDCP][NETLINK] WRONG size %d should be sizeof (pdcp_data_req_header_t) + sizeof(struct nlmsghdr)\n", - nas_nlh_rx->nlmsg_len); - } - } else { - pdcp_read_state_g = 0; - // print_active_requests() + memcpy((void *)send_buf, (void *)sl_pc5s_msg_send, sizeof(sidelink_pc5s_element)); + int prose_addr_len = sizeof(prose_pdcp_addr); + int bytes_sent = sendto(pdcp_pc5_sockfd, (char *)send_buf, sizeof(sidelink_pc5s_element), 0, (struct sockaddr *)&prose_pdcp_addr, prose_addr_len); + if (bytes_sent < 0) { + LOG_E(PDCP, "ERROR: Failed to send to ProSe App\n"); + exit(EXIT_FAILURE); + } + } else if (pc5s_header->traffic_type == TRAFFIC_PC5S_SIGNALLING) { //if containing PC5-S message -> send to other UE + LOG_D(PDCP,"Received PC5-S message ... send to the other UE\n"); #ifdef PDCP_DEBUG - LOG_D(PDCP, "[PDCP][NETLINK] Something in socket, length %zu\n", - nas_nlh_rx->nlmsg_len - sizeof(struct nlmsghdr)); + LOG_D(PDCP,"Received PC5-S message, traffic_type: %d)\n", pc5s_header->traffic_type); + LOG_D(PDCP,"Received PC5-S message, rbid: %d)\n", pc5s_header->rb_id); + LOG_D(PDCP,"Received PC5-S message, data_size: %d)\n", pc5s_header->data_size); + LOG_D(PDCP,"Received PC5-S message, inst: %d)\n", pc5s_header->inst); + LOG_D(PDCP,"Received PC5-S message,sourceL2Id: 0x%08x\n)\n", pc5s_header->sourceL2Id); + LOG_D(PDCP,"Received PC5-S message,destinationL1Id: 0x%08x\n)\n", pc5s_header->destinationL2Id); + #endif - /* TODO: do we have to reset to 0 or not? not for a scenario with 1 UE at least */ -// pdcp_read_header_g.inst = 0; -//#warning "TO DO CORRCT VALUES FOR ue mod id, enb mod id" - ctxt.frame = ctxt_cpy.frame; - ctxt.enb_flag = ctxt_cpy.enb_flag; +#ifdef OAI_EMU -#ifdef PDCP_DEBUG - LOG_D(PDCP, "[PDCP][NETLINK] pdcp_read_header_g.rb_id = %d\n", pdcp_read_header_g.rb_id); + // overwrite function input parameters, because only one netlink socket for all instances + if (pc5s_header->inst < oai_emulation.info.nb_enb_local) { + ctxt.frame = ctxt_cpy.frame; + ctxt.enb_flag = ENB_FLAG_YES; + ctxt.module_id = pc5s_header.inst + oai_emulation.info.first_enb_local; + ctxt.rnti = oai_emulation.info.eNB_ue_module_id_to_rnti[ctxt.module_id ][pc5s_header->rb_id / maxDRB + oai_emulation.info.first_ue_local]; + rab_id = pc5s_header->rb_id % maxDRB; + } else { + ctxt.frame = ctxt_cpy.frame; + ctxt.enb_flag = ENB_FLAG_NO; + ctxt.module_id = pc5s_header->inst - oai_emulation.info.nb_enb_local + oai_emulation.info.first_ue_local; + ctxt.rnti = pdcp_UE_UE_module_id_to_rnti[ctxt.module_id]; + rab_id = pc5s_header->rb_id % maxDRB; + } + + CHECK_CTXT_ARGS(&ctxt); + AssertFatal (rab_id < maxDRB, "RB id is too high (%u/%d)!\n", rab_id, maxDRB); + /*LGpdcp_read_header.inst = (pc5s_header.inst >= oai_emulation.info.nb_enb_local) ? \ + pc5s_header.inst - oai_emulation.info.nb_enb_local+ NB_eNB_INST + oai_emulation.info.first_ue_local : + pc5s_header.inst + oai_emulation.info.first_enb_local;*/ +#else // OAI_EMU + /* TODO: do we have to reset to 0 or not? not for a scenario with 1 UE at least */ + // pc5s_header.inst = 0; + //#warning "TO DO CORRCT VALUES FOR ue mod id, enb mod id" + ctxt.frame = ctxt_cpy.frame; + ctxt.enb_flag = ctxt_cpy.enb_flag; + + LOG_I(PDCP, "[PDCP] pc5s_header->rb_id = %d\n", pc5s_header->rb_id); + + if (ctxt_cpy.enb_flag) { + ctxt.module_id = 0; + rab_id = pc5s_header->rb_id % maxDRB; + ctxt.rnti = pdcp_eNB_UE_instance_to_rnti[pdcp_eNB_UE_instance_to_rnti_index]; + } else { + ctxt.module_id = 0; + rab_id = pc5s_header->rb_id % maxDRB; + ctxt.rnti = pdcp_UE_UE_module_id_to_rnti[ctxt.module_id]; + } #endif + //UE + if (!ctxt.enb_flag) { + if (rab_id != 0) { + if (rab_id == UE_IP_DEFAULT_RAB_ID) { + LOG_I(PDCP, "PDCP_COLL_KEY_DEFAULT_DRB_VALUE(module_id=%d, rnti=%x, enb_flag=%d)\n", + ctxt.module_id, ctxt.rnti, ctxt.enb_flag); + key = PDCP_COLL_KEY_DEFAULT_DRB_VALUE(ctxt.module_id, ctxt.rnti, ctxt.enb_flag); + h_rc = hashtable_get(pdcp_coll_p, key, (void**)&pdcp_p); + LOG_I(PDCP,"request key %x : (%d,%x,%d,%d)\n", + (uint8_t)key,ctxt.module_id, ctxt.rnti, ctxt.enb_flag, rab_id); + } else { + rab_id = rab_id % maxDRB; + LOG_I(PDCP, "PDCP_COLL_KEY_VALUE(module_id=%d, rnti=%x, enb_flag=%d, rab_id=%d, SRB_FLAG=%d)\n", + ctxt.module_id, ctxt.rnti, ctxt.enb_flag, rab_id, SRB_FLAG_NO); + key = PDCP_COLL_KEY_VALUE(ctxt.module_id, ctxt.rnti, ctxt.enb_flag, rab_id, SRB_FLAG_NO); + h_rc = hashtable_get(pdcp_coll_p, key, (void**)&pdcp_p); + LOG_I(PDCP,"request key %x : (%d,%x,%d,%d)\n", + (uint8_t)key,ctxt.module_id, ctxt.rnti, ctxt.enb_flag, rab_id); + } + + if (h_rc == HASH_TABLE_OK) { + rab_id = pdcp_p->rb_id; +#ifdef PDCP_DEBUG + LOG_I(PDCP, "[FRAME %5u][UE][NETLINK][IP->PDCP] INST %d: Received socket with length %d on Rab %d \n", + ctxt.frame, + pc5s_header->inst, + bytes_received, + pc5s_header->rb_id); + + LOG_I(PDCP, "[FRAME %5u][UE][IP][INSTANCE %u][RB %u][--- PDCP_DATA_REQ / %d Bytes --->][PDCP][MOD %u][UE %u][RB %u]\n", + ctxt.frame, + pc5s_header->inst, + pc5s_header->rb_id, + pc5s_header->data_size, + ctxt.module_id, + ctxt.rnti, + rab_id); +#endif + MSC_LOG_RX_MESSAGE( + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_PDCP_ENB:MSC_PDCP_UE, + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_IP_ENB:MSC_IP_UE, + NULL, + 0, + MSC_AS_TIME_FMT" DATA-REQ inst %u rb %u rab %u size %u", + MSC_AS_TIME_ARGS(ctxt_pP), + pc5s_header.inst, + pc5s_header.rb_id, + rab_id, + pc5s_header.data_size); + + pdcp_data_req( + &ctxt, + SRB_FLAG_NO, + rab_id, + RLC_MUI_UNDEFINED, + RLC_SDU_CONFIRM_NO, + pc5s_header->data_size, + (unsigned char *)receive_buf, + PDCP_TRANSMISSION_MODE_DATA +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,&pc5s_header->sourceL2Id + ,&pc5s_header->destinationL2Id +#endif + ); + } else { + MSC_LOG_RX_DISCARDED_MESSAGE( + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_PDCP_ENB:MSC_PDCP_UE, + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_IP_ENB:MSC_IP_UE, + NULL, + 0, + MSC_AS_TIME_FMT" DATA-REQ inst %u rb %u rab %u size %u", + MSC_AS_TIME_ARGS(ctxt_pP), + pc5s_header.inst, + pc5s_header.rb_id, + rab_id, + pc5s_header.data_size); + LOG_D(PDCP, + "[FRAME %5u][UE][IP][INSTANCE %u][RB %u][--- PDCP_DATA_REQ / %d Bytes ---X][PDCP][MOD %u][UE %u][RB %u] NON INSTANCIATED INSTANCE key 0x%"PRIx64", DROPPED\n", + ctxt.frame, + pc5s_header->inst, + pc5s_header->rb_id, + pc5s_header->data_size, + ctxt.module_id, + ctxt.rnti, + rab_id, + key); + } + } else { //if (rab_id == 0) + LOG_D(PDCP, "Forcing send on DEFAULT_RAB_ID\n"); + LOG_D(PDCP, "[FRAME %5u][eNB][IP][INSTANCE %u][RB %u][--- PDCP_DATA_REQ / %d Bytes --->][PDCP][MOD %u][UE %u][RB DEFAULT_RAB_ID %u]\n", + ctxt.frame, + pc5s_header->inst, + pc5s_header->rb_id, + pc5s_header->data_size, + ctxt.module_id, + ctxt.rnti, + DEFAULT_RAB_ID); + MSC_LOG_RX_MESSAGE( + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_PDCP_ENB:MSC_PDCP_UE, + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_IP_ENB:MSC_IP_UE, + NULL,0, + MSC_AS_TIME_FMT" DATA-REQ inst %u rb %u default rab %u size %u", + MSC_AS_TIME_ARGS(ctxt_pP), + pc5s_header->inst, + pc5s_header->rb_id, + DEFAULT_RAB_ID, + pc5s_header->data_size); + + pdcp_data_req ( + &ctxt, + SRB_FLAG_NO, + DEFAULT_RAB_ID, + RLC_MUI_UNDEFINED, + RLC_SDU_CONFIRM_NO, + pc5s_header->data_size, + (unsigned char *)receive_buf, + PDCP_TRANSMISSION_MODE_DATA +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,&pc5s_header->sourceL2Id + ,&pc5s_header->destinationL2Id +#endif + ); + } + } + free (sl_pc5s_msg_recv); + free (sl_pc5s_msg_send); + } + } + +#endif + + while ((len > 0) && (rlc_data_req_flag !=0)) { + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_FIFO_READ, 1 ); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_FIFO_READ_BUFFER, 1 ); + len = recvmsg(nas_sock_fd, &nas_msg_rx, 0); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_FIFO_READ_BUFFER, 0 ); + + if (len<=0) { + // nothing in pdcp NAS socket + //LOG_D(PDCP, "[PDCP][NETLINK] Nothing in socket, length %d \n", len); + } else { + + msg_len = len; + for (nas_nlh_rx = (struct nlmsghdr *) nl_rx_buf; + NLMSG_OK (nas_nlh_rx, msg_len); + nas_nlh_rx = NLMSG_NEXT (nas_nlh_rx, msg_len)) { + + if (nas_nlh_rx->nlmsg_type == NLMSG_DONE) { + LOG_D(PDCP, "[PDCP][NETLINK] RX NLMSG_DONE\n"); + //return; + } + + if (nas_nlh_rx->nlmsg_type == NLMSG_ERROR) { + LOG_D(PDCP, "[PDCP][NETLINK] RX NLMSG_ERROR\n"); + } + + if (pdcp_read_state_g == 0) { + if (nas_nlh_rx->nlmsg_len == sizeof (pdcp_data_req_header_t) + sizeof(struct nlmsghdr)) { + pdcp_read_state_g = 1; //get + memcpy((void *)&pdcp_read_header_g, (void *)NLMSG_DATA(nas_nlh_rx), sizeof(pdcp_data_req_header_t)); + LOG_D(PDCP, "[PDCP][NETLINK] RX pdcp_data_req_header_t inst %u, rb_id %u data_size %d, source L2Id 0x%08x, destination L2Id 0x%08x\n", + pdcp_read_header_g.inst, pdcp_read_header_g.rb_id, pdcp_read_header_g.data_size,pdcp_read_header_g.sourceL2Id, pdcp_read_header_g.destinationL2Id ); + } else { + LOG_E(PDCP, "[PDCP][NETLINK] WRONG size %d should be sizeof (pdcp_data_req_header_t) + sizeof(struct nlmsghdr)\n", + nas_nlh_rx->nlmsg_len); + } + } else { + pdcp_read_state_g = 0; + // print_active_requests() +#ifdef PDCP_DEBUG + LOG_D(PDCP, "[PDCP][NETLINK] Something in socket, length %zu\n", + nas_nlh_rx->nlmsg_len - sizeof(struct nlmsghdr)); +#endif + +#ifdef OAI_EMU + + + // overwrite function input parameters, because only one netlink socket for all instances + if (pdcp_read_header_g.inst < oai_emulation.info.nb_enb_local) { + ctxt.frame = ctxt_cpy.frame; + ctxt.enb_flag = ENB_FLAG_YES; + ctxt.module_id = pdcp_read_header_g.inst + oai_emulation.info.first_enb_local; + ctxt.rnti = oai_emulation.info.eNB_ue_module_id_to_rnti[ctxt.module_id ][pdcp_read_header_g.rb_id / maxDRB + oai_emulation.info.first_ue_local]; + rab_id = pdcp_read_header_g.rb_id % maxDRB; + } else { + ctxt.frame = ctxt_cpy.frame; + ctxt.enb_flag = ENB_FLAG_NO; + ctxt.module_id = pdcp_read_header_g.inst - oai_emulation.info.nb_enb_local + oai_emulation.info.first_ue_local; + ctxt.rnti = pdcp_UE_UE_module_id_to_rnti[ctxt.module_id]; + rab_id = pdcp_read_header_g.rb_id % maxDRB; + } + + CHECK_CTXT_ARGS(&ctxt); + AssertFatal (rab_id < maxDRB, "RB id is too high (%u/%d)!\n", rab_id, maxDRB); + /*LGpdcp_read_header.inst = (pdcp_read_header_g.inst >= oai_emulation.info.nb_enb_local) ? \ + pdcp_read_header_g.inst - oai_emulation.info.nb_enb_local+ NB_eNB_INST + oai_emulation.info.first_ue_local : + pdcp_read_header_g.inst + oai_emulation.info.first_enb_local;*/ +#else // OAI_EMU + /* TODO: do we have to reset to 0 or not? not for a scenario with 1 UE at least */ + // pdcp_read_header_g.inst = 0; + //#warning "TO DO CORRCT VALUES FOR ue mod id, enb mod id" + ctxt.frame = ctxt_cpy.frame; + ctxt.enb_flag = ctxt_cpy.enb_flag; + +#ifdef PDCP_DEBUG + LOG_D(PDCP, "[PDCP][NETLINK] pdcp_read_header_g.rb_id = %d, source L2Id = 0x%08x, destination L2Id = 0x%08x \n", pdcp_read_header_g.rb_id, pdcp_read_header_g.sourceL2Id, pdcp_read_header_g.destinationL2Id); +#endif if (ctxt_cpy.enb_flag) { ctxt.module_id = 0; rab_id = pdcp_read_header_g.rb_id % maxDRB; @@ -626,207 +932,233 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP) ctxt.rnti = pdcp_UE_UE_module_id_to_rnti[ctxt.module_id]; } +#endif + if (ctxt.enb_flag) { if (rab_id != 0) { rab_id = rab_id % maxDRB; key = PDCP_COLL_KEY_VALUE(ctxt.module_id, ctxt.rnti, ctxt.enb_flag, rab_id, SRB_FLAG_NO); h_rc = hashtable_get(pdcp_coll_p, key, (void**)&pdcp_p); - if (h_rc == HASH_TABLE_OK) { + + if (h_rc == HASH_TABLE_OK) { #ifdef PDCP_DEBUG - LOG_D(PDCP, "[FRAME %5u][eNB][NETLINK][IP->PDCP] INST %d: Received socket with length %d (nlmsg_len = %zu) on Rab %d \n", - ctxt.frame, - pdcp_read_header_g.inst, - len, - nas_nlh_rx->nlmsg_len-sizeof(struct nlmsghdr), - pdcp_read_header_g.rb_id); + LOG_D(PDCP, "[FRAME %5u][eNB][NETLINK][IP->PDCP] INST %d: Received socket with length %d (nlmsg_len = %zu) on Rab %d \n", + ctxt.frame, + pdcp_read_header_g.inst, + len, + nas_nlh_rx->nlmsg_len-sizeof(struct nlmsghdr), + pdcp_read_header_g.rb_id); #endif - MSC_LOG_RX_MESSAGE( - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_PDCP_ENB:MSC_PDCP_UE, - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_IP_ENB:MSC_IP_UE, - NULL, - 0, - MSC_AS_TIME_FMT" DATA-REQ inst %u rb %u rab %u size %u", - MSC_AS_TIME_ARGS(ctxt_pP), - pdcp_read_header_g.inst, - pdcp_read_header_g.rb_id, - rab_id, - pdcp_read_header_g.data_size); - LOG_D(PDCP, "[FRAME %5u][eNB][IP][INSTANCE %u][RB %u][--- PDCP_DATA_REQ / %d Bytes --->][PDCP][MOD %u]UE %u][RB %u]\n", - ctxt_cpy.frame, - pdcp_read_header_g.inst, - pdcp_read_header_g.rb_id, - pdcp_read_header_g.data_size, - ctxt.module_id, - ctxt.rnti, - rab_id); + MSC_LOG_RX_MESSAGE( + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_PDCP_ENB:MSC_PDCP_UE, + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_IP_ENB:MSC_IP_UE, + NULL, + 0, + MSC_AS_TIME_FMT" DATA-REQ inst %u rb %u rab %u size %u", + MSC_AS_TIME_ARGS(ctxt_pP), + pdcp_read_header_g.inst, + pdcp_read_header_g.rb_id, + rab_id, + pdcp_read_header_g.data_size); + LOG_D(PDCP, "[FRAME %5u][eNB][IP][INSTANCE %u][RB %u][--- PDCP_DATA_REQ / %d Bytes --->][PDCP][MOD %u]UE %u][RB %u]\n", + ctxt_cpy.frame, + pdcp_read_header_g.inst, + pdcp_read_header_g.rb_id, + pdcp_read_header_g.data_size, + ctxt.module_id, + ctxt.rnti, + rab_id); - pdcp_data_req(&ctxt, + pdcp_data_req(&ctxt, SRB_FLAG_NO, rab_id, RLC_MUI_UNDEFINED, RLC_SDU_CONFIRM_NO, pdcp_read_header_g.data_size, (unsigned char *)NLMSG_DATA(nas_nlh_rx), - PDCP_TRANSMISSION_MODE_DATA); - } else { - LOG_D(PDCP, "[FRAME %5u][eNB][IP][INSTANCE %u][RB %u][--- PDCP_DATA_REQ / %d Bytes ---X][PDCP][MOD %u][UE %u][RB %u] NON INSTANCIATED INSTANCE, DROPPED\n", - ctxt.frame, - pdcp_read_header_g.inst, - pdcp_read_header_g.rb_id, - pdcp_read_header_g.data_size, - ctxt.module_id, - ctxt.rnti, - rab_id); - } - } else { // rb_id =0, thus interpreated as broadcast and transported as multiple unicast - // is a broadcast packet, we have to send this packet on all default RABS of all connected UEs -//#warning CODE TO BE REVIEWED, ONLY WORK FOR SIMPLE TOPOLOGY CASES - for (ue_id = 0; ue_id < NB_UE_INST; ue_id++) { - if (oai_emulation.info.eNB_ue_module_id_to_rnti[ctxt_cpy.module_id][ue_id] != NOT_A_RNTI) { - ctxt.rnti = oai_emulation.info.eNB_ue_module_id_to_rnti[ctxt_cpy.module_id][ue_id]; - LOG_D(PDCP, "[FRAME %5u][eNB][IP][INSTANCE %u][RB %u][--- PDCP_DATA_REQ / %d Bytes --->][PDCP][MOD %u][UE %u][RB DEFAULT_RAB_ID %u]\n", - ctxt.frame, - pdcp_read_header_g.inst, - pdcp_read_header_g.rb_id, - pdcp_read_header_g.data_size, - ctxt.module_id, - ctxt.rnti, - DEFAULT_RAB_ID); - pdcp_data_req ( - &ctxt, - SRB_FLAG_NO, - DEFAULT_RAB_ID, - RLC_MUI_UNDEFINED, - RLC_SDU_CONFIRM_NO, - pdcp_read_header_g.data_size, - (unsigned char *)NLMSG_DATA(nas_nlh_rx), - PDCP_TRANSMISSION_MODE_DATA); - } - } - } - } else { // enb_flag - if (rab_id != 0) { - if (rab_id == UE_IP_DEFAULT_RAB_ID) { - LOG_D(PDCP, "PDCP_COLL_KEY_DEFAULT_DRB_VALUE(module_id=%d, rnti=%x, enb_flag=%d)\n", - ctxt.module_id, ctxt.rnti, ctxt.enb_flag); - key = PDCP_COLL_KEY_DEFAULT_DRB_VALUE(ctxt.module_id, ctxt.rnti, ctxt.enb_flag); - h_rc = hashtable_get(pdcp_coll_p, key, (void**)&pdcp_p); - } else { - rab_id = rab_id % maxDRB; - LOG_D(PDCP, "PDCP_COLL_KEY_VALUE(module_id=%d, rnti=%x, enb_flag=%d, rab_id=%d, SRB_FLAG=%d)\n", - ctxt.module_id, ctxt.rnti, ctxt.enb_flag, rab_id, SRB_FLAG_NO); - key = PDCP_COLL_KEY_VALUE(ctxt.module_id, ctxt.rnti, ctxt.enb_flag, rab_id, SRB_FLAG_NO); - h_rc = hashtable_get(pdcp_coll_p, key, (void**)&pdcp_p); - } - - if (h_rc == HASH_TABLE_OK) { - rab_id = pdcp_p->rb_id; -#ifdef PDCP_DEBUG - LOG_D(PDCP, "[FRAME %5u][UE][NETLINK][IP->PDCP] INST %d: Received socket with length %d (nlmsg_len = %zu) on Rab %d \n", - ctxt.frame, - pdcp_read_header_g.inst, - len, - nas_nlh_rx->nlmsg_len-sizeof(struct nlmsghdr), - pdcp_read_header_g.rb_id); - - LOG_D(PDCP, "[FRAME %5u][UE][IP][INSTANCE %u][RB %u][--- PDCP_DATA_REQ / %d Bytes --->][PDCP][MOD %u][UE %u][RB %u]\n", - ctxt.frame, - pdcp_read_header_g.inst, - pdcp_read_header_g.rb_id, - pdcp_read_header_g.data_size, - ctxt.module_id, - ctxt.rnti, - rab_id); + PDCP_TRANSMISSION_MODE_DATA +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,NULL, NULL #endif - MSC_LOG_RX_MESSAGE( - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_PDCP_ENB:MSC_PDCP_UE, - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_IP_ENB:MSC_IP_UE, - NULL, - 0, - MSC_AS_TIME_FMT" DATA-REQ inst %u rb %u rab %u size %u", - MSC_AS_TIME_ARGS(ctxt_pP), - pdcp_read_header_g.inst, - pdcp_read_header_g.rb_id, - rab_id, - pdcp_read_header_g.data_size); + ); + } else { + LOG_D(PDCP, "[FRAME %5u][eNB][IP][INSTANCE %u][RB %u][--- PDCP_DATA_REQ / %d Bytes ---X][PDCP][MOD %u][UE %u][RB %u] NON INSTANCIATED INSTANCE, DROPPED\n", + ctxt.frame, + pdcp_read_header_g.inst, + pdcp_read_header_g.rb_id, + pdcp_read_header_g.data_size, + ctxt.module_id, + ctxt.rnti, + rab_id); + } + } else { // rb_id =0, thus interpreated as broadcast and transported as multiple unicast + // is a broadcast packet, we have to send this packet on all default RABS of all connected UEs + //#warning CODE TO BE REVIEWED, ONLY WORK FOR SIMPLE TOPOLOGY CASES + for (ue_id = 0; ue_id < NB_UE_INST; ue_id++) { + if (oai_emulation.info.eNB_ue_module_id_to_rnti[ctxt_cpy.module_id][ue_id] != NOT_A_RNTI) { + ctxt.rnti = oai_emulation.info.eNB_ue_module_id_to_rnti[ctxt_cpy.module_id][ue_id]; + LOG_D(PDCP, "[FRAME %5u][eNB][IP][INSTANCE %u][RB %u][--- PDCP_DATA_REQ / %d Bytes --->][PDCP][MOD %u][UE %u][RB DEFAULT_RAB_ID %u]\n", + ctxt.frame, + pdcp_read_header_g.inst, + pdcp_read_header_g.rb_id, + pdcp_read_header_g.data_size, + ctxt.module_id, + ctxt.rnti, + DEFAULT_RAB_ID); + pdcp_data_req ( + &ctxt, + SRB_FLAG_NO, + DEFAULT_RAB_ID, + RLC_MUI_UNDEFINED, + RLC_SDU_CONFIRM_NO, + pdcp_read_header_g.data_size, + (unsigned char *)NLMSG_DATA(nas_nlh_rx), + PDCP_TRANSMISSION_MODE_DATA +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,NULL, NULL +#endif + ); + } + } + } + } else { // enb_flag + if (rab_id != 0) { + if (rab_id == UE_IP_DEFAULT_RAB_ID) { + LOG_D(PDCP, "PDCP_COLL_KEY_DEFAULT_DRB_VALUE(module_id=%d, rnti=%x, enb_flag=%d)\n", + ctxt.module_id, ctxt.rnti, ctxt.enb_flag); + key = PDCP_COLL_KEY_DEFAULT_DRB_VALUE(ctxt.module_id, ctxt.rnti, ctxt.enb_flag); + h_rc = hashtable_get(pdcp_coll_p, key, (void**)&pdcp_p); + LOG_D(PDCP,"request key %x : (%d,%x,%d,%d)\n", + (uint8_t)key,ctxt.module_id, ctxt.rnti, ctxt.enb_flag, rab_id); + } else { + rab_id = rab_id % maxDRB; + LOG_D(PDCP, "PDCP_COLL_KEY_VALUE(module_id=%d, rnti=%x, enb_flag=%d, rab_id=%d, SRB_FLAG=%d)\n", + ctxt.module_id, ctxt.rnti, ctxt.enb_flag, rab_id, SRB_FLAG_NO); + key = PDCP_COLL_KEY_VALUE(ctxt.module_id, ctxt.rnti, ctxt.enb_flag, rab_id, SRB_FLAG_NO); + h_rc = hashtable_get(pdcp_coll_p, key, (void**)&pdcp_p); + LOG_D(PDCP,"request key %x : (%d,%x,%d,%d)\n", + (uint8_t)key,ctxt.module_id, ctxt.rnti, ctxt.enb_flag, rab_id); + } - pdcp_data_req( - &ctxt, - SRB_FLAG_NO, - rab_id, - RLC_MUI_UNDEFINED, - RLC_SDU_CONFIRM_NO, - pdcp_read_header_g.data_size, - (unsigned char *)NLMSG_DATA(nas_nlh_rx), - PDCP_TRANSMISSION_MODE_DATA); - } else { - MSC_LOG_RX_DISCARDED_MESSAGE( - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_PDCP_ENB:MSC_PDCP_UE, - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_IP_ENB:MSC_IP_UE, - NULL, - 0, - MSC_AS_TIME_FMT" DATA-REQ inst %u rb %u rab %u size %u", - MSC_AS_TIME_ARGS(ctxt_pP), - pdcp_read_header_g.inst, - pdcp_read_header_g.rb_id, - rab_id, - pdcp_read_header_g.data_size); - LOG_D(PDCP, - "[FRAME %5u][UE][IP][INSTANCE %u][RB %u][--- PDCP_DATA_REQ / %d Bytes ---X][PDCP][MOD %u][UE %u][RB %u] NON INSTANCIATED INSTANCE key 0x%"PRIx64", DROPPED\n", - ctxt.frame, - pdcp_read_header_g.inst, - pdcp_read_header_g.rb_id, - pdcp_read_header_g.data_size, - ctxt.module_id, - ctxt.rnti, - rab_id, - key); - } - } else { - LOG_D(PDCP, "Forcing send on DEFAULT_RAB_ID\n"); - LOG_D(PDCP, "[FRAME %5u][eNB][IP][INSTANCE %u][RB %u][--- PDCP_DATA_REQ / %d Bytes --->][PDCP][MOD %u][UE %u][RB DEFAULT_RAB_ID %u]\n", - ctxt.frame, - pdcp_read_header_g.inst, - pdcp_read_header_g.rb_id, - pdcp_read_header_g.data_size, - ctxt.module_id, - ctxt.rnti, - DEFAULT_RAB_ID); - MSC_LOG_RX_MESSAGE( - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_PDCP_ENB:MSC_PDCP_UE, - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_IP_ENB:MSC_IP_UE, - NULL,0, - MSC_AS_TIME_FMT" DATA-REQ inst %u rb %u default rab %u size %u", - MSC_AS_TIME_ARGS(ctxt_pP), - pdcp_read_header_g.inst, - pdcp_read_header_g.rb_id, - DEFAULT_RAB_ID, - pdcp_read_header_g.data_size); + if (h_rc == HASH_TABLE_OK) { + rab_id = pdcp_p->rb_id; +#ifdef PDCP_DEBUG + LOG_D(PDCP, "[FRAME %5u][UE][NETLINK][IP->PDCP] INST %d: Received socket with length %d (nlmsg_len = %zu) on Rab %d \n", + ctxt.frame, + pdcp_read_header_g.inst, + len, + nas_nlh_rx->nlmsg_len-sizeof(struct nlmsghdr), + pdcp_read_header_g.rb_id); + + LOG_D(PDCP, "[FRAME %5u][UE][IP][INSTANCE %u][RB %u][--- PDCP_DATA_REQ / %d Bytes --->][PDCP][MOD %u][UE %u][RB %u]\n", + ctxt.frame, + pdcp_read_header_g.inst, + pdcp_read_header_g.rb_id, + pdcp_read_header_g.data_size, + ctxt.module_id, + ctxt.rnti, + rab_id); +#endif + MSC_LOG_RX_MESSAGE( + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_PDCP_ENB:MSC_PDCP_UE, + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_IP_ENB:MSC_IP_UE, + NULL, + 0, + MSC_AS_TIME_FMT" DATA-REQ inst %u rb %u rab %u size %u", + MSC_AS_TIME_ARGS(ctxt_pP), + pdcp_read_header_g.inst, + pdcp_read_header_g.rb_id, + rab_id, + pdcp_read_header_g.data_size); + + pdcp_data_req( + &ctxt, + SRB_FLAG_NO, + rab_id, + RLC_MUI_UNDEFINED, + RLC_SDU_CONFIRM_NO, + pdcp_read_header_g.data_size, + (unsigned char *)NLMSG_DATA(nas_nlh_rx), + PDCP_TRANSMISSION_MODE_DATA +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,&pdcp_read_header_g.sourceL2Id + ,&pdcp_read_header_g.destinationL2Id +#endif + ); + } else { + MSC_LOG_RX_DISCARDED_MESSAGE( + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_PDCP_ENB:MSC_PDCP_UE, + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_IP_ENB:MSC_IP_UE, + NULL, + 0, + MSC_AS_TIME_FMT" DATA-REQ inst %u rb %u rab %u size %u", + MSC_AS_TIME_ARGS(ctxt_pP), + pdcp_read_header_g.inst, + pdcp_read_header_g.rb_id, + rab_id, + pdcp_read_header_g.data_size); + LOG_D(PDCP, + "[FRAME %5u][UE][IP][INSTANCE %u][RB %u][--- PDCP_DATA_REQ / %d Bytes ---X][PDCP][MOD %u][UE %u][RB %u] NON INSTANCIATED INSTANCE key 0x%"PRIx64", DROPPED\n", + ctxt.frame, + pdcp_read_header_g.inst, + pdcp_read_header_g.rb_id, + pdcp_read_header_g.data_size, + ctxt.module_id, + ctxt.rnti, + rab_id, + key); + } + } else { + LOG_D(PDCP, "Forcing send on DEFAULT_RAB_ID\n"); + LOG_D(PDCP, "[FRAME %5u][eNB][IP][INSTANCE %u][RB %u][--- PDCP_DATA_REQ / %d Bytes --->][PDCP][MOD %u][UE %u][RB DEFAULT_RAB_ID %u]\n", + ctxt.frame, + pdcp_read_header_g.inst, + pdcp_read_header_g.rb_id, + pdcp_read_header_g.data_size, + ctxt.module_id, + ctxt.rnti, + DEFAULT_RAB_ID); + MSC_LOG_RX_MESSAGE( + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_PDCP_ENB:MSC_PDCP_UE, + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_IP_ENB:MSC_IP_UE, + NULL,0, + MSC_AS_TIME_FMT" DATA-REQ inst %u rb %u default rab %u size %u", + MSC_AS_TIME_ARGS(ctxt_pP), + pdcp_read_header_g.inst, + pdcp_read_header_g.rb_id, + DEFAULT_RAB_ID, + pdcp_read_header_g.data_size); + + pdcp_data_req ( + &ctxt, + SRB_FLAG_NO, + DEFAULT_RAB_ID, + RLC_MUI_UNDEFINED, + RLC_SDU_CONFIRM_NO, + pdcp_read_header_g.data_size, + (unsigned char *)NLMSG_DATA(nas_nlh_rx), + PDCP_TRANSMISSION_MODE_DATA +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,&pdcp_read_header_g.sourceL2Id + ,&pdcp_read_header_g.destinationL2Id +#endif + ); + } + } - pdcp_data_req ( - &ctxt, - SRB_FLAG_NO, - DEFAULT_RAB_ID, - RLC_MUI_UNDEFINED, - RLC_SDU_CONFIRM_NO, - pdcp_read_header_g.data_size, - (unsigned char *)NLMSG_DATA(nas_nlh_rx), - PDCP_TRANSMISSION_MODE_DATA); } - } - - } + } } - } - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_FIFO_READ, 0 ); - } + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_FIFO_READ, 0 ); + } - return len; + + return len; # endif #else // neither PDCP_USE_NETLINK nor PDCP_USE_RT_FIFO - return 0; + return 0; #endif // PDCP_USE_NETLINK #endif /* #else UE_NAS_USE_TUN */ } @@ -840,9 +1172,6 @@ void pdcp_fifo_read_input_sdus_from_otg (const protocol_ctxt_t* const ctxt_pP) // we need to add conditions to avoid transmitting data when the UE is not RRC connected. if ((otg_enabled==1) && (ctxt_pP->enb_flag == ENB_FLAG_YES)) { // generate DL traffic - - - PROTOCOL_CTXT_SET_BY_MODULE_ID( &ctxt, ctxt_pP->module_id, @@ -854,7 +1183,44 @@ void pdcp_fifo_read_input_sdus_from_otg (const protocol_ctxt_t* const ctxt_pP) for (dst_id = 0; dst_id= MAKE_VERSION(14, 0, 0)) + +void +pdcp_pc5_socket_init() { + //pthread_attr_t attr; + //struct sched_param sched_param; + int optval; // flag value for setsockopt + //int n; // message byte size + + //create PDCP socket + pdcp_pc5_sockfd = socket(AF_INET, SOCK_DGRAM, 0); + if (pdcp_pc5_sockfd < 0){ + LOG_E(PDCP,"[pdcp_pc5_socket_init] Error opening socket %d (%d:%s)\n",pdcp_pc5_sockfd,errno, strerror(errno)); + exit(EXIT_FAILURE); + } + + optval = 1; + setsockopt(pdcp_pc5_sockfd, SOL_SOCKET, SO_REUSEADDR, + (const void *)&optval , sizeof(int)); + + fcntl(pdcp_pc5_sockfd,F_SETFL,O_NONBLOCK); + + bzero((char *) &pdcp_sin, sizeof(pdcp_sin)); + pdcp_sin.sin_family = AF_INET; + pdcp_sin.sin_addr.s_addr = htonl(INADDR_ANY); + pdcp_sin.sin_port = htons(PDCP_SOCKET_PORT_NO); + // associate the parent socket with a port + if (bind(pdcp_pc5_sockfd, (struct sockaddr *) &pdcp_sin, + sizeof(pdcp_sin)) < 0) { + LOG_E(PDCP,"[pdcp_pc5_socket_init] ERROR: Failed on binding the socket\n"); + exit(1); + } + +} + +#endif 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 afcc2fdd02..291ec5e2a7 100644 --- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h +++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h @@ -52,7 +52,12 @@ extern int reception_from_rohc_bs(void); #else 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); + uint8_t is_data_pdu +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,const uint32_t * const sourceL2Id + ,const uint32_t * const destinationL2Id +#endif + ); //extern BOOL pdcp_data_req (struct pdcp_entity *pdcpP, mem_block * sduP); extern void send_pdcp_control_primitive (struct pdcp_entity *pdcpP, mem_block * cprimitiveP); extern void control_pdcp (struct pdcp_entity *pdcpP); @@ -63,4 +68,7 @@ extern void pdcp_process_input_sdus_tr (struct pdcp_entity *pdcpP); extern void init_pdcp (struct pdcp_entity *pdcpP, struct rb_dispatcher *rbP, uint8_t rb_idP); extern void *pdcp_tx (void *argP); #endif + +extern void pdcp_pc5_socket_init(void); + #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 34c9baf537..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 ) @@ -240,7 +240,7 @@ config_req_rlc_am ( uint16_t pollPDU_tab[PollPDU_pInfinity+1]= {4,8,16,32,64,128,256,RLC_AM_POLL_PDU_INFINITE}; //PollPDU_pInfinity is chosen to 0xFFFF for now uint32_t maxRetxThreshold_tab[UL_AM_RLC__maxRetxThreshold_t32+1]= {1,2,3,4,6,8,16,32}; uint32_t pollByte_tab[PollByte_spare1]= {25000,50000,75000,100000,125000,250000,375000,500000,750000,1000000,1250000,1500000,2000000,3000000,RLC_AM_POLL_BYTE_INFINITE}; // PollByte_kBinfinity is chosen to 0xFFFFFFFF for now -#if defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) uint32_t PollRetransmit_tab[T_PollRetransmit_spare5]= {5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,110,115,120,125,130,135,140,145,150,155,160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,300,350,400,450,500,800,1000,2000,4000}; uint32_t am_t_Reordering_tab[32]= {0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,110,120,130,140,150,160,170,180,190,200,1600}; uint32_t t_StatusProhibit_tab[T_StatusProhibit_spare2]= {0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,110,115,120,125,130,135,140,145,150,155,160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,300,350,400,450,500,800,1000,1200,1600,2000,2400}; @@ -271,7 +271,7 @@ void config_req_rlc_am_asn1 ( if ((config_am_pP->ul_AM_RLC.maxRetxThreshold <= UL_AM_RLC__maxRetxThreshold_t32) && (config_am_pP->ul_AM_RLC.pollPDU<=PollPDU_pInfinity) && (config_am_pP->ul_AM_RLC.pollByte= MAKE_VERSION(14, 0, 0)) (config_am_pP->ul_AM_RLC.t_PollRetransmitdl_AM_RLC.t_Reordering<32) && (config_am_pP->dl_AM_RLC.t_StatusProhibitprotocol_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 2561ff81be..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" @@ -78,7 +78,7 @@ void config_req_rlc_um ( } } //----------------------------------------------------------------------------- -#if defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) const uint32_t t_Reordering_tab[32] = {0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,110,120,130,140,150,160,170,180,190,200,1600}; #else const uint32_t t_Reordering_tab[T_Reordering_spare1] = {0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,110,120,130,140,150,160,170,180,190,200}; @@ -93,7 +93,12 @@ void config_req_rlc_um_asn1 ( const UL_UM_RLC_t * const ul_rlc_pP, const DL_UM_RLC_t * const dl_rlc_pP, const rb_id_t rb_idP, - const logical_chan_id_t chan_idP) + const logical_chan_id_t chan_idP +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,const uint32_t sourceL2Id + ,const uint32_t destinationL2Id +#endif + ) { uint32_t ul_sn_FieldLength = 0; uint32_t dl_sn_FieldLength = 0; @@ -103,33 +108,56 @@ void config_req_rlc_um_asn1 ( hash_key_t key = RLC_COLL_KEY_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, srb_flagP); hashtable_rc_t h_rc; -#if defined(Rel10) || defined(Rel14) +#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)){ + key = RLC_COLL_KEY_SOURCE_DEST_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, sourceL2Id, destinationL2Id, srb_flagP); } else #endif { - 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); - rlc_p = &rlc_union_p->rlc.um; + 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); + 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; //----------------------------------------------------------------------------- LOG_D(RLC, PROTOCOL_RLC_UM_CTXT_FMT" CONFIG_REQ timer_reordering=%dms sn_field_length= RB %u \n", @@ -198,7 +226,7 @@ void config_req_rlc_um_asn1 ( return; } -#if defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (dl_rlc_pP->t_Reordering<32) { #else if (dl_rlc_pP->t_Reorderinginitialized) { 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 5847a8bb13..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, @@ -115,32 +100,37 @@ public_rlc_um_control_primitives( void config_req_rlc_um_asn1 ( const UL_UM_RLC_t * const ul_rlc_pP, const DL_UM_RLC_t * const dl_rlc_pP, const rb_id_t rb_idP, - const logical_chan_id_t chan_idP);) + const logical_chan_id_t chan_idP +#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, @@ -157,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, @@ -177,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 2db98fc3ca..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, @@ -314,7 +319,12 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, const mui_t muiP, confirm_t confirmP, sdu_size_t sdu_sizeP, - mem_block_t *sdu_pP) + mem_block_t *sdu_pP +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,const uint32_t * const sourceL2Id + ,const uint32_t * const destinationL2Id +#endif + ) { //----------------------------------------------------------------------------- mem_block_t *new_sdu_p = NULL; @@ -323,7 +333,7 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, hash_key_t key = HASHTABLE_NOT_A_KEY_VALUE; hashtable_rc_t h_rc; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) rlc_mbms_id_t *mbms_id_p = NULL; logical_chan_id_t log_ch_id = 0; #endif @@ -337,7 +347,7 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, sdu_sizeP, sdu_pP); #endif -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) #else AssertFatal(MBMS_flagP == 0, "MBMS_flagP %u", MBMS_flagP); #endif @@ -348,21 +358,38 @@ 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 !defined(Rel10) && !defined(Rel14) +#if (RRC_VERSION < MAKE_VERSION(10, 0, 0)) DevCheck(MBMS_flagP == 0, MBMS_flagP, 0, 0); #endif VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_IN); -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) if (MBMS_flagP == TRUE) { if (ctxt_pP->enb_flag) { @@ -374,6 +401,10 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, } key = RLC_COLL_KEY_MBMS_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, mbms_id_p->service_id, mbms_id_p->session_id); + } + if (sourceL2Id && destinationL2Id){ + key = RLC_COLL_KEY_SOURCE_DEST_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, *sourceL2Id, *destinationL2Id, srb_flagP); + //key_lcid = RLC_COLL_KEY_LCID_SOURCE_DEST_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, chan_idP, *sourceL2Id, *destinationL2Id, srb_flagP); } else #endif { @@ -386,7 +417,9 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, rlc_mode = rlc_union_p->mode; } else { rlc_mode = RLC_MODE_NONE; - AssertFatal (0 , "RLC not configured key %ju\n", key); + //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) { @@ -431,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; } @@ -464,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; } @@ -486,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; } @@ -498,7 +534,7 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, } -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) } else { /* MBMS_flag != 0 */ // LOG_I(RLC,"DUY rlc_data_req: mbms_rb_id in RLC instant is: %d\n", mbms_rb_id); if (sdu_pP != NULL) { @@ -520,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 { @@ -613,10 +650,14 @@ 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 defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) for (k=0; k < RLC_MAX_MBMS_LC; k++) { rlc_mbms_lcid2service_session_id_ue[module_id1][k].service_id = 0; @@ -631,7 +672,7 @@ rlc_module_init (void) } for (module_id1=0; module_id1 < NUMBER_OF_eNB_MAX; module_id1++) { -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) for (k=0; k < RLC_MAX_MBMS_LC; k++) { rlc_mbms_lcid2service_session_id_eNB[module_id1][k].service_id = 0; diff --git a/openair2/LAYER2/RLC/rlc.h b/openair2/LAYER2/RLC/rlc.h index 5ab33d1cd5..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" @@ -55,53 +55,12 @@ # include "SRB-ToAddModList.h" # include "DRB-ToReleaseList.h" -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) #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, @@ -224,7 +183,7 @@ typedef struct rlc_mbms_id_s { mbms_session_id_t session_id; } rlc_mbms_id_t; -#if !defined(Rel10) && !defined(Rel14) +#if (RRC_VERSION < MAKE_VERSION(10, 0, 0)) # if !defined(maxServiceCount) //unused arrays rlc_mbms_array_ue rlc_mbms_array_eNB # define maxServiceCount 1 @@ -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) \ @@ -275,6 +234,23 @@ public_rlc(logical_chan_id_t rlc_mbms_rbid2lcid_eNB[MAX_eNB][NB_RB_MBMS_MAX]; (((hash_key_t)(iS_sRB)) << 33) | \ (((hash_key_t)(0x0a)) << 34)) +#define RLC_COLL_KEY_SOURCE_DEST_VALUE(eNB_iD, rNTI, iS_eNB, lC_iD, sOURCE_iD, dEST_iD, iS_sRB) \ + ((hash_key_t)eNB_iD | \ + (((hash_key_t)(rNTI)) << 8) | \ + (((hash_key_t)(iS_eNB)) << 24) | \ + (((hash_key_t)(lC_iD)) << 25) | \ + (((hash_key_t)(dEST_iD)) << 33) | \ + (((hash_key_t)(0x05)) << 57)) + +#define RLC_COLL_KEY_LCID_SOURCE_DEST_VALUE(eNB_iD, rNTI, iS_eNB, lC_iD, sOURCE_iD, dEST_iD, iS_sRB) \ + ((hash_key_t)eNB_iD | \ + (((hash_key_t)(rNTI)) << 8) | \ + (((hash_key_t)(iS_eNB)) << 24) | \ + (((hash_key_t)(lC_iD)) << 25) | \ + (((hash_key_t)(dEST_iD)) << 33) | \ + (((hash_key_t)(0x0a)) << 57)) + + // service id max val is maxServiceCount = 16 (asn1_constants.h) #define RLC_COLL_KEY_MBMS_VALUE(eNB_iD, rNTI, iS_eNB, sERVICE_ID, sESSION_ID) \ @@ -285,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. @@ -293,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. @@ -303,13 +279,13 @@ 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 *); //----------------------------------------------------------------------------- // PUBLIC INTERFACE WITH RRC //----------------------------------------------------------------------------- -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) /*! \fn rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t* const ctxtP, const srb_flag_t srb_flagP, const SRB_ToAddMod_t* const srb2addmod, const DRB_ToAddModList_t* const drb2add_listP, const DRB_ToReleaseList_t* const drb2release_listP, const PMCH_InfoList_r9_t * const pmch_info_listP) * \brief Function for RRC to configure a Radio Bearer. * \param[in] ctxtP Running context. @@ -319,12 +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 PMCH_InfoList_r9_t * const pmch_info_listP , + 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. @@ -334,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 @@ -347,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) @@ -356,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) @@ -367,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. @@ -379,7 +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);) +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, @@ -397,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. @@ -416,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 @@ -440,7 +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*);) +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. @@ -455,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. @@ -470,7 +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 );) +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. @@ -482,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 //----------------------------------------------------------------------------- @@ -493,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); @@ -512,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 , @@ -520,7 +513,12 @@ public_rlc(rlc_op_status_t rlc_data_req ( const mui_t , const confirm_t , const sdu_size_t , - mem_block_t * const);) + mem_block_t * const +#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. @@ -531,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) @@ -548,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 ( @@ -623,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, @@ -654,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 ded682ee7c..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 @@ -126,7 +127,12 @@ tbs_size_t mac_rlc_data_req( const MBMS_flag_t MBMS_flagP, const logical_chan_id_t channel_idP, const tb_size_t tb_sizeP, - char *buffer_pP) + char *buffer_pP +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,const uint32_t sourceL2Id + ,const uint32_t destinationL2Id +#endif + ) { //----------------------------------------------------------------------------- struct mac_data_req data_request; @@ -143,7 +149,7 @@ tbs_size_t mac_rlc_data_req( VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_MAC_RLC_DATA_REQ,VCD_FUNCTION_IN); #ifdef DEBUG_MAC_INTERFACE - LOG_D(RLC, PROTOCOL_CTXT_FMT" MAC_RLC_DATA_REQ channel %d (%d) MAX RB %d, Num_tb %d\n", + LOG_D(RLC, PROTOCOL_CTXT_FMT" MAC_RLC_DATA_REQ channel %d (%d) MAX RB %d\n", PROTOCOL_CTXT_ARGS((&ctxt)), channel_idP, RLC_MAX_LC, @@ -152,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) { @@ -166,6 +180,10 @@ tbs_size_t mac_rlc_data_req( } } else { key = RLC_COLL_KEY_LCID_VALUE(module_idP, rntiP, enb_flagP, channel_idP, srb_flag); +#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 } h_rc = hashtable_get(rlc_coll_p, key, (void**)&rlc_union_p); @@ -174,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) { @@ -183,13 +202,14 @@ 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); break; case RLC_MODE_UM: - if (!enb_flagP) rlc_um_set_nb_bytes_requested_by_mac(&rlc_union_p->rlc.um,tb_sizeP); + if (!enb_flagP) rlc_um_set_nb_bytes_requested_by_mac(&rlc_union_p->rlc.um,tb_sizeP); data_request = rlc_um_mac_data_request(&ctxt, &rlc_union_p->rlc.um,enb_flagP); ret_tb_size = mac_rlc_serialize_tb(buffer_pP, data_request.data); break; @@ -215,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, @@ -280,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: @@ -308,7 +329,12 @@ mac_rlc_status_resp_t mac_rlc_status_ind( const eNB_flag_t enb_flagP, const MBMS_flag_t MBMS_flagP, const logical_chan_id_t channel_idP, - const tb_size_t tb_sizeP) + const tb_size_t tb_sizeP +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,const uint32_t sourceL2Id + ,const uint32_t destinationL2Id +#endif + ) { //----------------------------------------------------------------------------- mac_rlc_status_resp_t mac_rlc_status_resp; @@ -337,8 +363,15 @@ 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 { +#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 + { key = RLC_COLL_KEY_LCID_VALUE(module_idP, rntiP, enb_flagP, channel_idP, srb_flag); - } + } +} h_rc = hashtable_get(rlc_coll_p, key, (void**)&rlc_union_p); @@ -346,7 +379,7 @@ mac_rlc_status_resp_t mac_rlc_status_ind( rlc_mode = rlc_union_p->mode; } else { rlc_mode = RLC_MODE_NONE; - //LOG_W(RLC , "[%s] RLC not configured rb id %u lcid %u module %u!\n", __FUNCTION__, rb_id, channel_idP, ue_module_idP); + //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); } @@ -417,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 34e4f028ae..8c6cea379b 100644 --- a/openair2/LAYER2/RLC/rlc_mpls.c +++ b/openair2/LAYER2/RLC/rlc_mpls.c @@ -40,6 +40,10 @@ 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); + return rlc_data_req(ctxtP, SRB_FLAG_NO, MBMS_FLAG_NO, rb_idP, RLC_MUI_UNDEFINED, RLC_SDU_CONFIRM_NO, sdu_sizeP, sduP +#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 5dd1d82279..aa00ffb773 100644 --- a/openair2/LAYER2/RLC/rlc_rrc.c +++ b/openair2/LAYER2/RLC/rlc_rrc.c @@ -32,14 +32,14 @@ #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" #include "SRB-ToAddMod.h" #include "SRB-ToAddModList.h" #include "DL-UM-RLC.h" -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) #include "PMCH-InfoList-r9.h" #endif @@ -50,8 +50,10 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP const SRB_ToAddModList_t * const srb2add_listP, const DRB_ToAddModList_t * const drb2add_listP, const DRB_ToReleaseList_t * const drb2release_listP -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) ,const PMCH_InfoList_r9_t * const pmch_InfoList_r9_pP + ,const uint32_t sourceL2Id + ,const uint32_t destinationL2Id #endif ) { @@ -66,7 +68,7 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP rlc_union_t *rlc_union_p = NULL; hash_key_t key = HASHTABLE_NOT_A_KEY_VALUE; hashtable_rc_t h_rc; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) int i, j; MBMS_SessionInfoList_r9_t *mbms_SessionInfoList_r9_p = NULL; MBMS_SessionInfo_r9_t *MBMS_SessionInfo_p = NULL; @@ -104,7 +106,12 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP break; 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) != NULL) { + if (rrc_rlc_add_rlc (ctxt_pP, SRB_FLAG_YES, MBMS_FLAG_NO, rb_id, lc_id, RLC_MODE_AM +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, + 0 +#endif + ) != NULL) { config_req_rlc_am_asn1 ( ctxt_pP, SRB_FLAG_YES, @@ -119,7 +126,12 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP break; 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) != NULL) { + if (rrc_rlc_add_rlc (ctxt_pP, SRB_FLAG_YES, MBMS_FLAG_NO, rb_id, lc_id, RLC_MODE_UM +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, + 0 +#endif + ) != NULL) { config_req_rlc_um_asn1( ctxt_pP, SRB_FLAG_YES, @@ -128,7 +140,11 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP UNUSED_PARAM_MBMS_SERVICE_ID, &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); + rb_id, lc_id +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); } else { LOG_E(RLC, PROTOCOL_CTXT_FMT" ERROR IN ALLOCATING SRB %d \n", PROTOCOL_CTXT_ARGS(ctxt_pP), @@ -138,7 +154,12 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP break; 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) != NULL) { + if (rrc_rlc_add_rlc (ctxt_pP, SRB_FLAG_YES, MBMS_FLAG_NO, rb_id, lc_id, RLC_MODE_UM +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, + 0 +#endif + ) != NULL) { config_req_rlc_um_asn1( ctxt_pP, SRB_FLAG_YES, @@ -147,7 +168,11 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP UNUSED_PARAM_MBMS_SERVICE_ID, &srb_toaddmod_p->rlc_Config->choice.explicitValue.choice.um_Uni_Directional_UL.ul_UM_RLC, NULL, - rb_id, lc_id); + rb_id, lc_id +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); } else { LOG_E(RLC, PROTOCOL_CTXT_FMT" ERROR IN ALLOCATING SRB %d \n", PROTOCOL_CTXT_ARGS(ctxt_pP), @@ -157,7 +182,12 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP break; 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) != NULL) { + if (rrc_rlc_add_rlc (ctxt_pP, SRB_FLAG_YES, MBMS_FLAG_NO, rb_id, lc_id, RLC_MODE_UM +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, + 0 +#endif + ) != NULL) { config_req_rlc_um_asn1( ctxt_pP, SRB_FLAG_YES, @@ -166,7 +196,11 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP UNUSED_PARAM_MBMS_SERVICE_ID, NULL, &srb_toaddmod_p->rlc_Config->choice.explicitValue.choice.um_Uni_Directional_DL.dl_UM_RLC, - rb_id, lc_id); + rb_id, lc_id +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); } else { LOG_E(RLC, PROTOCOL_CTXT_FMT" ERROR IN ALLOCATING SRB %d \n", PROTOCOL_CTXT_ARGS(ctxt_pP), @@ -195,7 +229,12 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP config_am_pP->ul_AM_RLC.pollByte = PollByte_kBinfinity; 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) != NULL) { + if (rrc_rlc_add_rlc (ctxt_pP, SRB_FLAG_YES, MBMS_FLAG_NO, rb_id, lc_id, RLC_MODE_AM +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, + 0 +#endif + ) != NULL) { config_req_rlc_am_asn1 ( ctxt_pP, SRB_FLAG_YES, @@ -252,7 +291,6 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP LOG_D(RLC, "Adding DRB %ld, lc_id %d\n",drb_id,lc_id); - if (drb_toaddmod_p->rlc_Config) { switch (drb_toaddmod_p->rlc_Config->present) { @@ -260,7 +298,12 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP break; 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) != NULL) { + if (rrc_rlc_add_rlc (ctxt_pP, SRB_FLAG_NO, MBMS_FLAG_NO, drb_id, lc_id, RLC_MODE_AM +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, + 0 +#endif + ) != NULL) { config_req_rlc_am_asn1 ( ctxt_pP, SRB_FLAG_NO, @@ -271,7 +314,12 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP break; 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) != NULL) { + if (rrc_rlc_add_rlc (ctxt_pP, SRB_FLAG_NO, MBMS_FLAG_NO, drb_id, lc_id, RLC_MODE_UM +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,sourceL2Id, + destinationL2Id +#endif + ) != NULL) { config_req_rlc_um_asn1( ctxt_pP, SRB_FLAG_NO, @@ -280,13 +328,23 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP UNUSED_PARAM_MBMS_SERVICE_ID, &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); + drb_id, lc_id +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,sourceL2Id, + destinationL2Id +#endif + ); } break; 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) != NULL) { + if (rrc_rlc_add_rlc (ctxt_pP, SRB_FLAG_NO, MBMS_FLAG_NO, drb_id, lc_id, RLC_MODE_UM +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, + 0 +#endif + ) != NULL) { config_req_rlc_um_asn1( ctxt_pP, SRB_FLAG_NO, @@ -295,13 +353,22 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP UNUSED_PARAM_MBMS_SERVICE_ID, &drb_toaddmod_p->rlc_Config->choice.um_Uni_Directional_UL.ul_UM_RLC, NULL, - drb_id, lc_id); + drb_id, lc_id +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); } break; 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) != NULL) { + if (rrc_rlc_add_rlc (ctxt_pP, SRB_FLAG_NO, MBMS_FLAG_NO, drb_id, lc_id, RLC_MODE_UM +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, + 0 +#endif + ) != NULL) { config_req_rlc_um_asn1( ctxt_pP, SRB_FLAG_NO, @@ -310,7 +377,11 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP UNUSED_PARAM_MBMS_SERVICE_ID, NULL, &drb_toaddmod_p->rlc_Config->choice.um_Uni_Directional_DL.dl_UM_RLC, - drb_id, lc_id); + drb_id, lc_id +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); } break; @@ -335,7 +406,7 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP } } -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (pmch_InfoList_r9_pP != NULL) { for (i=0; ilist.count; i++) { @@ -372,8 +443,11 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP MBMS_FLAG_YES, rb_id, lc_id, - RLC_MODE_UM); - AssertFatal(rlc_union_p != NULL, "ADD MBMS RLC UM FAILED"); + RLC_MODE_UM, 0, 0); + //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", @@ -394,7 +468,11 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP mbms_service_id, NULL, &dl_um_rlc, - rb_id, lc_id); + rb_id, lc_id +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); } } } @@ -478,14 +556,14 @@ rlc_op_status_t rrc_rlc_remove_rlc ( hash_key_t key_lcid = HASHTABLE_NOT_A_KEY_VALUE; hashtable_rc_t h_lcid_rc; rlc_union_t *rlc_union_p = NULL; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) rlc_mbms_id_t *mbms_id_p = NULL; #endif /* for no gcc warnings */ (void)lcid; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) if (MBMS_flagP == TRUE) { if (ctxt_pP->enb_flag) { @@ -511,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); @@ -571,25 +653,41 @@ rlc_union_t* rrc_rlc_add_rlc ( const MBMS_flag_t MBMS_flagP, const rb_id_t rb_idP, const logical_chan_id_t chan_idP, - const rlc_mode_t rlc_modeP) + const rlc_mode_t rlc_modeP +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,const uint32_t sourceL2Id, + const uint32_t destinationL2Id +#endif +) { + //----------------------------------------------------------------------------- hash_key_t key = HASHTABLE_NOT_A_KEY_VALUE; hashtable_rc_t h_rc; hash_key_t key_lcid = HASHTABLE_NOT_A_KEY_VALUE; hashtable_rc_t h_lcid_rc; rlc_union_t *rlc_union_p = NULL; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) rlc_mbms_id_t *mbms_id_p = NULL; logical_chan_id_t lcid = 0; #endif + 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 defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) if (MBMS_flagP == TRUE) { if (ctxt_pP->enb_flag) { @@ -608,6 +706,10 @@ rlc_union_t* rrc_rlc_add_rlc ( } key = RLC_COLL_KEY_MBMS_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, mbms_id_p->service_id, mbms_id_p->session_id); + } + if ((sourceL2Id > 0) && (destinationL2Id > 0) ){ + key = RLC_COLL_KEY_SOURCE_DEST_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, sourceL2Id, destinationL2Id, srb_flagP); + key_lcid = RLC_COLL_KEY_LCID_SOURCE_DEST_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, chan_idP, sourceL2Id, destinationL2Id, srb_flagP); } else #endif { @@ -623,15 +725,19 @@ 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); h_lcid_rc = hashtable_insert(rlc_coll_p, key_lcid, rlc_union_p); if ((h_rc == HASH_TABLE_OK) && (h_lcid_rc == HASH_TABLE_OK)) { -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) if (MBMS_flagP == TRUE) { LOG_I(RLC, PROTOCOL_CTXT_FMT" RLC service id %u session id %u rrc_rlc_add_rlc\n", @@ -668,7 +774,6 @@ rlc_union_t* rrc_rlc_add_rlc ( rb_idP, (srb_flagP) ? "SRB" : "DRB"); } - return NULL; } //----------------------------------------------------------------------------- @@ -687,12 +792,21 @@ 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) != NULL) { + if (rrc_rlc_add_rlc(ctxt_pP, srb_flagP, MBMS_FLAG_NO, rb_idP, rb_idP, rlc_infoP.rlc_mode +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, + 0 +#endif + ) != NULL) { return RLC_OP_STATUS_INTERNAL_ERROR; } @@ -766,7 +880,11 @@ 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); + return rlc_data_req(ctxt_pP, SRB_FLAG_YES, MBMS_flagP, rb_idP, muiP, confirmP, sdu_sizeP, sdu +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,NULL, NULL +#endif + ); } else { return RLC_OP_STATUS_INTERNAL_ERROR; } 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/MESH/device.c b/openair2/NETWORK_DRIVER/MESH/device.c index f8a420697a..f5d31742bc 100644 --- a/openair2/NETWORK_DRIVER/MESH/device.c +++ b/openair2/NETWORK_DRIVER/MESH/device.c @@ -324,7 +324,11 @@ static const struct net_device_ops nasmesh_netdev_ops = { .ndo_set_mac_address = NULL, .ndo_set_config = nas_set_config, .ndo_do_ioctl = nas_CTL_ioctl, +#if RHEL_RELEASE_CODE>=1797 + .extended.ndo_change_mtu = nas_change_mtu, +#else .ndo_change_mtu = nas_change_mtu, +#endif .ndo_tx_timeout = nas_tx_timeout, }; diff --git a/openair2/NETWORK_DRIVER/UE_IP/common.c b/openair2/NETWORK_DRIVER/UE_IP/common.c index 99712cc5d2..84f425ef3c 100644 --- a/openair2/NETWORK_DRIVER/UE_IP/common.c +++ b/openair2/NETWORK_DRIVER/UE_IP/common.c @@ -248,6 +248,13 @@ ue_ip_common_ip2wireless( //--------------------------------------------------------------------------- struct pdcp_data_req_header_s pdcph; ue_ip_priv_t *priv_p=netdev_priv(ue_ip_dev[instP]); +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ipversion_t *ipv_p = NULL; + unsigned int hard_header_len = 0; + unsigned char *src_addr = 0; + unsigned char *dst_addr = 0; +#endif + #ifdef LOOPBACK_TEST int i; #endif @@ -278,6 +285,37 @@ ue_ip_common_ip2wireless( pdcph.inst = instP; + //pass source/destination IP addresses to PDCP header + hard_header_len = ue_ip_dev[instP]->hard_header_len; + ipv_p = (ipversion_t *)((void *)&(skb_pP->data[hard_header_len])); + + switch (ipv_p->version) { + case 6: + printk("[UE_IP_DRV][%s] receive IPv6 message\n",__FUNCTION__); + //TODO + break; + + case 4: + src_addr = (unsigned char *)&((struct iphdr *)&skb_pP->data[hard_header_len])->saddr; + if (src_addr) { + printk("[UE_IP_DRV][%s] Source %d.%d.%d.%d\n",__FUNCTION__, src_addr[0],src_addr[1],src_addr[2],src_addr[3]); + } + dst_addr = (unsigned char *)&((struct iphdr *)&skb_pP->data[hard_header_len])->daddr; + if (dst_addr) { + printk("[UE_IP_DRV][%s] Dest %d.%d.%d.%d\n",__FUNCTION__, dst_addr[0],dst_addr[1],dst_addr[2],dst_addr[3]); + } + + //get Ipv4 address and pass to PCDP header + printk("[UE_IP_DRV] source Id: 0x%08x\n",pdcph.sourceL2Id ); + printk("[UE_IP_DRV] destinationL2Id Id: 0x%08x\n",pdcph.destinationL2Id ); + pdcph.sourceL2Id = ntohl( ((struct iphdr *)&skb_pP->data[hard_header_len])->saddr) & 0x00FFFFFF; + pdcph.destinationL2Id = ntohl( ((struct iphdr *)&skb_pP->data[hard_header_len])->daddr) & 0x00FFFFFF; + break; + + default: + break; + } + bytes_wrote = ue_ip_netlink_send((char *)&pdcph,UE_IP_PDCPH_SIZE); #ifdef OAI_DRV_DEBUG_SEND diff --git a/openair2/NETWORK_DRIVER/UE_IP/constant.h b/openair2/NETWORK_DRIVER/UE_IP/constant.h index 0746651d07..ccd992dd4e 100644 --- a/openair2/NETWORK_DRIVER/UE_IP/constant.h +++ b/openair2/NETWORK_DRIVER/UE_IP/constant.h @@ -52,7 +52,7 @@ -#define UE_IP_NB_INSTANCES_MAX MAX_MOBILES_PER_ENB +#define UE_IP_NB_INSTANCES_MAX NUMBER_OF_UE_MAX /*MAX_MOBILES_PER_ENB*/ #endif diff --git a/openair2/NETWORK_DRIVER/UE_IP/device.c b/openair2/NETWORK_DRIVER/UE_IP/device.c index 36c6afe914..47c820fe77 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; @@ -330,7 +349,11 @@ static const struct net_device_ops ue_ip_netdev_ops = { .ndo_set_mac_address = ue_ip_set_mac_address, .ndo_set_config = ue_ip_set_config, .ndo_do_ioctl = NULL, - .ndo_change_mtu = ue_ip_change_mtu, +#if RHEL_RELEASE_CODE>=1797 + .extended.ndo_change_mtu = ue_ip_change_mtu, +#else + .ndo_change_mtu = ue_ip_change_mtu, +#endif .ndo_tx_timeout = ue_ip_tx_timeout, .ndo_change_rx_flags = ue_ip_change_rx_flags, }; diff --git a/openair2/NETWORK_DRIVER/UE_IP/local.h b/openair2/NETWORK_DRIVER/UE_IP/local.h index ac3b040995..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,6 +90,10 @@ typedef struct pdcp_data_req_header_s { sdu_size_t data_size; signed int inst; ip_traffic_type_t traffic_type; +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + uint32_t sourceL2Id; + uint32_t destinationL2Id; +#endif } pdcp_data_req_header_t; typedef struct pdcp_data_ind_header_s { @@ -96,6 +101,10 @@ typedef struct pdcp_data_ind_header_s { sdu_size_t data_size; signed int inst; ip_traffic_type_t dummy_traffic_type; +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + uint32_t sourceL2Id; + uint32_t destinationL2Id; +#endif } pdcp_data_ind_header_t; diff --git a/openair2/PHY_INTERFACE/IF_Module.c b/openair2/PHY_INTERFACE/IF_Module.c index 6d9fe013a5..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; @@ -33,13 +33,13 @@ void handle_rach(UL_IND_t *UL_info) { UL_info->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.preamble, UL_info->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.timing_advance, UL_info->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.rnti -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0 #endif ); } -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (UL_info->rach_ind_br.rach_indication_body.number_of_preambles>0) { AssertFatal(UL_info->rach_ind_br.rach_indication_body.number_of_preambles<5,"More than 4 preambles not supported\n"); @@ -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,9 +581,9 @@ 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+sf_ahead)%10)>0)) + (is_UL_sf(&mac->common_channels[CC_id],sched_info->subframe)>0)) sched_info->UL_req = &mac->UL_req[CC_id]; else sched_info->UL_req = NULL; diff --git a/openair2/PHY_INTERFACE/IF_Module.h b/openair2/PHY_INTERFACE/IF_Module.h index ccce490c75..0390a90551 100644 --- a/openair2/PHY_INTERFACE/IF_Module.h +++ b/openair2/PHY_INTERFACE/IF_Module.h @@ -76,7 +76,7 @@ typedef struct{ /// RACH indication list nfapi_rach_indication_t rach_ind; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /// RACH indication list for BR UEs nfapi_rach_indication_t rach_ind_br; #endif diff --git a/openair2/PHY_INTERFACE/UE_MAC_interface.h b/openair2/PHY_INTERFACE/UE_MAC_interface.h new file mode 100644 index 0000000000..d010109f99 --- /dev/null +++ b/openair2/PHY_INTERFACE/UE_MAC_interface.h @@ -0,0 +1,498 @@ +/* + * 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 + */ + +/* This is the interface module between PHY + * Provided the FAPI style interface structures for P7. + */ + +/*! \file openair2/PHY_INTERFACE/IF_Module.h +* \brief data structures for PHY/MAC interface modules +* \author EURECOM/NTUST +* \date 2017 +* \version 0.1 +* \company Eurecom +* \email: raymond.knopp@eurecom.fr +* \note +* \warning +*/ +#ifndef __UE_MAC_INTERFACE__H__ +#define __UE_MAC_INTERFACE__H__ + +#include "nfapi_interface.h" +#include "openair1/PHY/impl_defs_lte.h" +#include "targets/COMMON/openairinterface5g_limits.h" + + + +#define MAX_NUM_DL_PDU 100 +#define MAX_NUM_UL_PDU 100 +#define MAX_NUM_HI_DCI0_PDU 100 +#define MAX_NUM_TX_REQUEST_PDU 100 + +#define MAX_NUM_HARQ_IND 100 +#define MAX_NUM_CRC_IND 100 +#define MAX_NUM_SR_IND 100 +#define MAX_NUM_CQI_IND 100 +#define MAX_NUM_RACH_IND 100 +#define MAX_NUM_SRS_IND 100 + + +// UE_MAC enums +typedef enum { + UE_MAC_DL_IND_PDSCH_PDU_TYPE =0, + UE_MAC_DL_IND_SI_PDSCH_PDU_TYPE, + UE_MAC_DL_IND_P_PDSCH_PDU_TYPE, + UE_MAC_DL_IND_DLSCH_RAR_PDU_TYPE +} UE_MAC_dl_ind_pdu_type_e; + +// UE_MAC enums +typedef enum { + UE_MAC_Tx_IND_Msg1_TYPE =0, + UE_MAC_Tx_IND_Msg3_TYPE +} UE_MAC_Tx_ind_type_e; + + + +// *** UE_UL_Config.request related structures + + +typedef struct{ + //module_id_t module_idP; + //int CC_id; + //frame_t frameP; + uint8_t eNB_id; + //uint16_t rnti; + //sub_frame_t subframe_tx; + uint32_t SR_payload; //0 or 1 +}UE_MAC_ul_config_SR; + + + +typedef struct{ + //module_id_t module_idP; + //int CC_id; + //frame_t frameP; + uint8_t eNB_indexP; + //sub_frame_t subframeP; + + uint8_t ra_RACH_MaskIndex; + int8_t ra_PREAMBLE_RECEIVED_TARGET_POWER; + uint8_t ra_TDD_map_index; + uint16_t ra_RNTI; + uint8_t *Msg3; +}UE_MAC_ul_config_rach; + +typedef struct { + union { + UE_MAC_ul_config_rach ue_rach_config; + //UE_MAC_ul_config_ULSCH ue_ULSCH_pdu; + UE_MAC_ul_config_SR ue_SR_config; + }; +} UE_MAC_ul_config_request_list; + +typedef struct { + nfapi_tl_t tl; + uint16_t length_list; + UE_MAC_ul_config_request_list* ue_ul_config_list; +} UE_MAC_ul_config_request_body_t; + +typedef struct { + //nfapi_p7_message_header_t header; + uint16_t sfn_sf; + UE_MAC_ul_config_request_body_t ue_ul_config_request_body; //nfapi_dl_config_request_body_t +} UE_MAC_ul_config_request_t; + + + + + + + + + +// *** UE_Tx.request related structures + +typedef struct { + uint16_t pdu_length; + uint16_t pdu_index; + uint8_t num_segments; + struct { + uint32_t segment_length; + uint8_t* segment_data; + } segments[NFAPI_TX_MAX_SEGMENTS]; +} UE_MAC_tx_request_pdu_t; + + +typedef struct { + nfapi_tl_t tl; + uint16_t number_of_pdus; + UE_MAC_tx_request_pdu_t* ue_tx_pdu_list; +} UE_MAC_tx_request_body_t; + + +typedef struct { + //nfapi_p7_message_header_t header; + uint16_t sfn_sf; + UE_MAC_tx_request_body_t ue_tx_request_body; +} UE_MAC_tx_request_t; + + +typedef struct{ + + +}UE_MAC_sl_config_request_Tx_t; + +typedef struct{ + + +}UE_MAC_sl_config_request_Rx_t; + + +typedef struct{ + + +}UE_MAC_sl_tx_request_t; + + + + + + +// *** UE_DL.indication related structures + +typedef struct{ + unsigned char eNB_index; + uint8_t first_sync; //boolean 0 or 1 + uint8_t sync; // boolean 0 or 1 to indicate whether rrc_out_of_sync_ind() or dl_phy_sync_success() + // should be called from the handler function of the interface respectively. +}UE_MAC_bch_indication_pdu_t; + + +typedef struct{ + nfapi_tl_t tl; + UE_MAC_bch_indication_pdu_t* bch_ind_list; +}UE_MAC_BCH_indication_body_t; + + +// 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; + + +// Corresponding to inputs of MAC function: process_rar(). +typedef struct{ + rnti_t ra_rnti; + uint8_t* rar_input_buffer; // Originating from PHY + rnti_t* t_crnti; + uint8_t preamble_index; + uint8_t* rar_output_buffer; //should be returned to PHY: dlsch0->harq_processes[0]->b +}UE_MAC_dlsch_rar_pdu; + + +typedef struct{ + uint8_t pdu_type; + uint8_t eNB_index; + union{ + UE_MAC_dlsch_pdu dlsch_pdu_ind; + UE_MAC_dlsch_rar_pdu dlsch_rar_pdu_ind; + }; +}UE_MAC_dlsch_indication_pdu_t; + + +typedef struct{ + nfapi_tl_t tl; + uint16_t number_of_pdus; + UE_MAC_dlsch_indication_pdu_t* dlsch_ind_list; +}UE_MAC_DLSCH_indication_body_t; + + + + + + +// *** UE_SL.indication related structures + +typedef struct{ + +}ue_sci_indication_body_t; + + +typedef struct{ + +}ue_SLSCH_indication_body_t; + + +typedef struct{ + +}ue_SLDCH_indication_body_t; + +typedef struct{ + +}ue_SLBCH_indication_body_t; + + +// *** UE_Config_common.request related structures + +typedef struct { + uint8_t subframeAssignment; + uint8_t specialSubframePatterns; +}UE_PHY_tdd_frame_structure_t; + + +typedef struct { + uint16_t rootSequenceIndex; + uint8_t prach_Config_enabled; + uint8_t prach_ConfigIndex; + uint8_t highSpeedFlag; + uint8_t zeroCorrelationZoneConfig; + uint8_t prach_FreqOffset; +}UE_PHY_prach_config_t; + +typedef struct { + uint8_t deltaPUCCH_Shift; + uint8_t nRB_CQI; + uint8_t nCS_AN; + uint16_t n1PUCCH_AN; +}UE_PHY_pucch_config_t; + + +typedef struct { + int8_t referenceSignalPower; + uint8_t p_b; +}UE_PHY_pdsch_config_t; + + +typedef struct { + uint8_t n_SB; + PUSCH_HOPPING_t hoppingMode; + uint8_t pusch_HoppingOffset; + uint8_t enable64QAM; + uint8_t groupHoppingEnabled; + uint8_t groupAssignmentPUSCH; + uint8_t sequenceHoppingEnabled; + uint8_t cyclicShift; +}UE_PHY_pusch_config_t; + + +typedef struct{ + uint8_t enabled_flag; + uint8_t srs_BandwidthConfig; + uint8_t srs_SubframeConfig; + uint8_t ackNackSRS_SimultaneousTransmission; + uint8_t srs_MaxUpPts; +}UE_PHY_SRS_config_t; + +typedef struct{ + int8_t p0_NominalPUSCH; + PUSCH_alpha_t alpha; + int8_t p0_NominalPUCCH; + int8_t deltaPreambleMsg3; + long deltaF_PUCCH_Format1; + long deltaF_PUCCH_Format1b; + long deltaF_PUCCH_Format2; + long deltaF_PUCCH_Format2a; + long deltaF_PUCCH_Format2b; +}UE_PHY_UL_power_control_config_t; + + +typedef struct{ + uint8_t maxHARQ_Msg3Tx; +}UE_PHY_HARQ_Msg3_config_t; + +typedef struct{ + uint8_t nb_antennas_tx; +}UE_PHY_antenna_config_t; + +typedef struct{ + PHICH_RESOURCE_t phich_resource; + PHICH_DURATION_t phich_duration; +}UE_PHY_phich_config_t; + + +typedef struct { + UE_PHY_tdd_frame_structure_t ue_tdd_frame_structure_config; + UE_PHY_prach_config_t ue_prach_config; + UE_PHY_pucch_config_t ue_pucch_config; + UE_PHY_pdsch_config_t ue_pdsch_config; + UE_PHY_pusch_config_t ue_pusch_config; + UE_PHY_SRS_config_t ue_srs_config; + UE_PHY_UL_power_control_config_t ue_ul_pow_cntl_config; + UE_PHY_HARQ_Msg3_config_t ue_harq_msg3_config; + /* Where can we find the types and values of the configuration for the PCH? + UE_MAC_pusch_config_t ue_pch_config + radioResourceConfigCommon->pcch_Config.defaultPagingCycle, radioResourceConfigCommon->pcch_Config.nB*/ + UE_PHY_antenna_config_t ue_ant_config; + UE_PHY_phich_config_t ue_phich_config; + /* MBSFN?*/ +}UE_PHY_config_common_request_t; + + + + + + + +// *** UE_Config_dedicated. request related structures + +typedef struct{ + PA_t p_a; +}UE_PHY_pdsch_config_dedicated_t; + + +typedef struct{ + uint8_t ackNackRepetition; + ANFBmode_t tdd_AckNackFeedbackMode; + //ACKNAKREP_t repetitionFactor; + //uint16_t n1PUCCH_AN_Rep; +}UE_PHY_pucch_config_dedicated_t; + + +typedef struct{ + uint16_t betaOffset_ACK_Index; + uint16_t betaOffset_RI_Index; + uint16_t betaOffset_CQI_Index; +}UE_PHY_pusch_config_dedicated_t; + + +typedef struct{ + int8_t p0_UE_PUSCH; + uint8_t deltaMCS_Enabled; + uint8_t accumulationEnabled; + int8_t p0_UE_PUCCH; + int8_t pSRS_Offset; + uint8_t filterCoefficient; +}UE_PHY_ul_power_control_config_dedicated_t; + + +typedef struct{ + uint16_t sr_PUCCH_ResourceIndex; + uint8_t sr_ConfigIndex; + DSR_TRANSMAX_t dsr_TransMax; +}UE_PHY_SR_config_dedicated_t; + + +typedef struct{ + uint8_t srsConfigDedicatedSetup; + uint8_t duration; + uint8_t cyclicShift; + uint8_t freqDomainPosition; + uint8_t srs_Bandwidth; + uint16_t srs_ConfigIndex; + uint8_t srs_HoppingBandwidth; + uint8_t transmissionComb; + //uint8_t srsCellSubframe; + //uint8_t srsUeSubframe; +}UE_PHY_srs_ul_config_dedicated_t; + + +typedef struct{ + CQI_REPORTMODEAPERIODIC cqi_ReportModeAperiodic; + CQI_REPORTPERIODIC CQI_ReportPeriodic; + //int8_t nomPDSCH_RS_EPRE_Offset; +}UE_PHY_cqi_report_config_dedicated_t; + + + +typedef struct{ + uint8_t transmission_mode [NUMBER_OF_CONNECTED_eNB_MAX]; + UE_PHY_pdsch_config_dedicated_t ue_pdsch_config; + UE_PHY_pucch_config_dedicated_t ue_pucch_config; + UE_PHY_pusch_config_dedicated_t ue_pusch_config; + UE_PHY_ul_power_control_config_dedicated_t ue_ul_pow_cntrl_config; + UE_PHY_SR_config_dedicated_t ue_SR_config; + UE_PHY_srs_ul_config_dedicated_t ue_srs_ul_config; + UE_PHY_cqi_report_config_dedicated_t ue_cqi_report_config; +}UE_PHY_config_dedicated_request_t; + +#endif + + + + + + + + + + + + + + + + + + + +/* +typedef struct { + nfapi_p4_p5_message_header_t header; + uint8_t num_tlv; + nfapi_subframe_config_t subframe_config; + nfapi_rf_config_t rf_config; + nfapi_phich_config_t phich_config; + nfapi_sch_config_t sch_config; + nfapi_prach_config_t prach_config; + nfapi_pusch_config_t pusch_config; + nfapi_pucch_config_t pucch_config; + nfapi_srs_config_t srs_config; + nfapi_uplink_reference_signal_config_t uplink_reference_signal_config; + nfapi_laa_config_t laa_config; + nfapi_emtc_config_t emtc_config; + nfapi_tdd_frame_structure_t tdd_frame_structure_config; + nfapi_l23_config_t l23_config; + nfapi_nb_iot_config_t nb_iot_config; + + // addition nfapi tlvs as per table 2-16 in idle or configure + nfapi_nfapi_t nfapi_config; + + nfapi_vendor_extension_tlv_t vendor_extension; +} nfapi_config_request_t; + + + + + +typedef struct { + nfapi_tl_t tl; + uint8_t dci_format; + uint8_t cce_index; + uint8_t aggregation_level; + uint16_t rnti; + uint8_t resource_block_start; + uint8_t number_of_resource_block; + uint8_t mcs_1; + uint8_t cyclic_shift_2_for_drms; + uint8_t frequency_hopping_enabled_flag; + uint8_t frequency_hopping_bits; + uint8_t new_data_indication_1; + uint8_t ue_tx_antenna_seleciton; + uint8_t tpc; + uint8_t cqi_csi_request; + uint8_t ul_index; + uint8_t dl_assignment_index; + uint32_t tpc_bitmap; + uint16_t transmission_power; +} nfapi_hi_dci0_dci_pdu_rel8_t; + +*/ diff --git a/openair2/PHY_INTERFACE/phy_stub_UE.c b/openair2/PHY_INTERFACE/phy_stub_UE.c new file mode 100644 index 0000000000..166616c368 --- /dev/null +++ b/openair2/PHY_INTERFACE/phy_stub_UE.c @@ -0,0 +1,1006 @@ + +//#include "openair1/PHY/defs.h" +//#include "openair2/PHY_INTERFACE/IF_Module.h" +//#include "openair1/PHY/extern.h" +#include "openair2/LAYER2/MAC/mac_extern.h" +#include "openair2/LAYER2/MAC/mac.h" +#include "openair2/LAYER2/MAC/mac_proto.h" +//#include "openair2/LAYER2/MAC/vars.h" +#include "openair1/SCHED_UE/sched_UE.h" +#include "nfapi/open-nFAPI/nfapi/public_inc/nfapi_interface.h" +//#include "common/ran_context.h" +#include "openair2/PHY_INTERFACE/phy_stub_UE.h" +#include "openair2/ENB_APP/L1_paramdef.h" +#include "openair2/ENB_APP/enb_paramdef.h" +#include "targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h" +#include "common/config/config_load_configmodule.h" +#include "common/config/config_userapi.h" + +//#define DEADLINE_SCHEDULER 1 + + +extern int oai_nfapi_crc_indication(nfapi_crc_indication_t *crc_ind); +extern int oai_nfapi_rx_ind(nfapi_rx_indication_t *ind); +extern int oai_nfapi_rach_ind(nfapi_rach_indication_t *rach_ind); +void configure_nfapi_pnf(char *vnf_ip_addr, int vnf_p5_port, char *pnf_ip_addr, int pnf_p7_port, int vnf_p7_port); + + + + +//extern uint8_t nfapi_pnf; +//UL_IND_t *UL_INFO; +extern nfapi_tx_request_pdu_t* tx_request_pdu[1023][10][10]; +//extern int timer_subframe; +//extern int timer_frame; + +extern uint16_t sf_ahead; + +void Msg1_transmitted(module_id_t module_idP,uint8_t CC_id,frame_t frameP, uint8_t eNB_id); +void Msg3_transmitted(module_id_t module_idP,uint8_t CC_id,frame_t frameP, uint8_t eNB_id); + + + +void fill_rx_indication_UE_MAC(module_id_t Mod_id,int frame,int subframe, UL_IND_t* UL_INFO, uint8_t *ulsch_buffer, uint16_t buflen, uint16_t rnti, int index) +{ + nfapi_rx_indication_pdu_t *pdu; + + int timing_advance_update; + + + pthread_mutex_lock(&UE_mac_inst[Mod_id].UL_INFO_mutex); + + + UL_INFO->rx_ind.sfn_sf = frame<<4| subframe; + UL_INFO->rx_ind.rx_indication_body.tl.tag = NFAPI_RX_INDICATION_BODY_TAG; + UL_INFO->rx_ind.vendor_extension = ul_config_req->vendor_extension; + + + pdu = &UL_INFO->rx_ind.rx_indication_body.rx_pdu_list[UL_INFO->rx_ind.rx_indication_body.number_of_pdus]; + //pdu = &UL_INFO->rx_ind.rx_indication_body.rx_pdu_list[index]; + + // pdu->rx_ue_information.handle = eNB->ulsch[UE_id]->handle; + pdu->rx_ue_information.tl.tag = NFAPI_RX_UE_INFORMATION_TAG; + pdu->rx_ue_information.rnti = rnti; + pdu->rx_indication_rel8.tl.tag = NFAPI_RX_INDICATION_REL8_TAG; + //pdu->rx_indication_rel8.length = eNB->ulsch[UE_id]->harq_processes[harq_pid]->TBS>>3; + pdu->rx_indication_rel8.length = buflen; + pdu->rx_indication_rel8.offset = 1; // DJP - I dont understand - but broken unless 1 ???? 0; // filled in at the end of the UL_INFO formation + pdu->data = ulsch_buffer; + // estimate timing advance for MAC + //sync_pos = lte_est_timing_advance_pusch(eNB,UE_id); + timing_advance_update = 0; // Don't know what to put here + pdu->rx_indication_rel8.timing_advance = timing_advance_update; + + int SNRtimes10 = 640; + + if (SNRtimes10 < -640) pdu->rx_indication_rel8.ul_cqi=0; + else if (SNRtimes10 > 635) pdu->rx_indication_rel8.ul_cqi=255; + else pdu->rx_indication_rel8.ul_cqi=(640+SNRtimes10)/5; + + + UL_INFO->rx_ind.rx_indication_body.number_of_pdus++; + UL_INFO->rx_ind.sfn_sf = frame<<4 | subframe; + pthread_mutex_unlock(&UE_mac_inst[Mod_id].UL_INFO_mutex); + + +} + +void fill_sr_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL_INFO, uint16_t rnti) { + + + pthread_mutex_lock(&UE_mac_inst[Mod_id].UL_INFO_mutex); + + nfapi_sr_indication_t *sr_ind = &UL_INFO->sr_ind; + nfapi_sr_indication_body_t *sr_ind_body = &sr_ind->sr_indication_body; + nfapi_sr_indication_pdu_t *pdu = &sr_ind_body->sr_pdu_list[sr_ind_body->number_of_srs]; + UL_INFO->sr_ind.vendor_extension = ul_config_req->vendor_extension; + + //nfapi_sr_indication_pdu_t *pdu = &UL_INFO->sr_ind.sr_indication_body.sr_pdu_list[UL_INFO->rx_ind.rx_indication_body.number_of_pdus]; + + sr_ind->sfn_sf = frame<<4|subframe; + sr_ind->header.message_id = NFAPI_RX_SR_INDICATION; + + sr_ind_body->tl.tag = NFAPI_SR_INDICATION_BODY_TAG; + + 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 + + + // 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; + + pdu->ul_cqi_information.tl.tag = NFAPI_UL_CQI_INFORMATION_TAG; + + + if (SNRtimes10 < -640) pdu->ul_cqi_information.ul_cqi=0; + else if (SNRtimes10 > 635) pdu->ul_cqi_information.ul_cqi=255; + else pdu->ul_cqi_information.ul_cqi=(640+SNRtimes10)/5; + pdu->ul_cqi_information.channel = 0; + + //UL_INFO->rx_ind.rx_indication_body.number_of_pdus++; + sr_ind_body->number_of_srs++; + pthread_mutex_unlock(&UE_mac_inst[Mod_id].UL_INFO_mutex); +} + + +void fill_crc_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL_INFO, uint8_t crc_flag, int index, uint16_t rnti) { + + pthread_mutex_lock(&UE_mac_inst[Mod_id].UL_INFO_mutex); + + // 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; + UL_INFO->crc_ind.vendor_extension = ul_config_req->vendor_extension; + UL_INFO->crc_ind.header.message_id = NFAPI_CRC_INDICATION; + UL_INFO->crc_ind.crc_indication_body.tl.tag = NFAPI_CRC_INDICATION_BODY_TAG; + + 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 = UE_mac_inst[Mod_id].crnti; + pdu->rx_ue_information.rnti = rnti; + pdu->crc_indication_rel8.tl.tag = NFAPI_CRC_INDICATION_REL8_TAG; + pdu->crc_indication_rel8.crc_flag = crc_flag; + + UL_INFO->crc_ind.crc_indication_body.number_of_crcs++; + + LOG_D(PHY, "%s() rnti:%04x pdus:%d\n", __FUNCTION__, pdu->rx_ue_information.rnti, UL_INFO->crc_ind.crc_indication_body.number_of_crcs); + + pthread_mutex_unlock(&UE_mac_inst[Mod_id].UL_INFO_mutex); +} + +void fill_rach_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL_INFO, uint8_t ra_PreambleIndex, uint16_t ra_RNTI) { + + LOG_D(MAC, "fill_rach_indication_UE_MAC 1 \n"); + pthread_mutex_lock(&UE_mac_inst[Mod_id].UL_INFO_mutex); + UL_INFO = (UL_IND_t*)malloc(sizeof(UL_IND_t)); + + UL_INFO->rach_ind.rach_indication_body.number_of_preambles = 1; + + //eNB->UL_INFO.rach_ind.preamble_list = &eNB->preamble_list[0]; + UL_INFO->rach_ind.header.message_id = NFAPI_RACH_INDICATION; + UL_INFO->rach_ind.sfn_sf = frame<<4 | subframe; + UL_INFO->rach_ind.vendor_extension = NULL; + + UL_INFO->rach_ind.rach_indication_body.tl.tag = NFAPI_RACH_INDICATION_BODY_TAG; + + + 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; // Not sure about that + + //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++; + + + UL_INFO->rach_ind.rach_indication_body.preamble_list[0].preamble_rel13.rach_resource_type = 0; + UL_INFO->rach_ind.rach_indication_body.preamble_list[0].instance_length = 0; + + + LOG_E(PHY,"\n\n\n\nDJP - this needs to be sent to VNF **********************************************\n\n\n\n"); + LOG_E(PHY,"UE Filling NFAPI indication for RACH : TA %d, Preamble %d, rnti %x, rach_resource_type %d\n", + UL_INFO->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.timing_advance, + UL_INFO->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.preamble, + 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); + + // 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); + free(UL_INFO); + + //} + pthread_mutex_unlock(&UE_mac_inst[Mod_id].UL_INFO_mutex); + +} + +void fill_ulsch_cqi_indication_UE_MAC(int Mod_id, uint16_t frame,uint8_t subframe, UL_IND_t *UL_INFO, uint16_t rnti) { + + pthread_mutex_lock(&UE_mac_inst[Mod_id].UL_INFO_mutex); + nfapi_cqi_indication_pdu_t *pdu = &UL_INFO->cqi_ind.cqi_pdu_list[UL_INFO->cqi_ind.number_of_cqis]; + nfapi_cqi_indication_raw_pdu_t *raw_pdu = &UL_INFO->cqi_ind.cqi_raw_pdu_list[UL_INFO->cqi_ind.number_of_cqis]; + + pdu->rx_ue_information.tl.tag = NFAPI_RX_UE_INFORMATION_TAG; + pdu->rx_ue_information.rnti = rnti; + // 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); + // 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; + + + pdu->cqi_indication_rel9.timing_advance = 0; + pdu->cqi_indication_rel9.number_of_cc_reported = 1; + pdu->ul_cqi_information.channel = 1; // PUSCH + + // 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; + + + + UL_INFO->cqi_ind.number_of_cqis++; + pthread_mutex_unlock(&UE_mac_inst[Mod_id].UL_INFO_mutex); + +} + +void fill_ulsch_harq_indication_UE_MAC(int Mod_id, int frame,int subframe, UL_IND_t *UL_INFO, nfapi_ul_config_ulsch_harq_information *harq_information, uint16_t rnti) +{ + + pthread_mutex_lock(&UE_mac_inst[Mod_id].UL_INFO_mutex); + nfapi_harq_indication_pdu_t *pdu = &UL_INFO->harq_ind.harq_indication_body.harq_pdu_list[UL_INFO->harq_ind.harq_indication_body.number_of_harqs]; + int i; + + UL_INFO->harq_ind.header.message_id = NFAPI_HARQ_INDICATION; + UL_INFO->harq_ind.sfn_sf = frame<<4|subframe; + UL_INFO->harq_ind.vendor_extension = ul_config_req->vendor_extension; + + UL_INFO->harq_ind.harq_indication_body.tl.tag = NFAPI_HARQ_INDICATION_BODY_TAG; + + 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; + + // 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; + + // 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; // Assuming always an ACK (No NACK or DTX) + + } + + UL_INFO->harq_ind.harq_indication_body.number_of_harqs++; + pthread_mutex_unlock(&UE_mac_inst[Mod_id].UL_INFO_mutex); +} + + +void fill_uci_harq_indication_UE_MAC(int Mod_id, + int frame, + int subframe, + UL_IND_t *UL_INFO, + nfapi_ul_config_harq_information *harq_information, + uint16_t rnti + /*uint8_t tdd_mapping_mode, + uint16_t tdd_multiplexing_mask*/) { + + + pthread_mutex_lock(&UE_mac_inst[Mod_id].UL_INFO_mutex); + nfapi_harq_indication_t *ind = &UL_INFO->harq_ind; + nfapi_harq_indication_body_t *body = &ind->harq_indication_body; + nfapi_harq_indication_pdu_t *pdu = &body->harq_pdu_list[UL_INFO->harq_ind.harq_indication_body.number_of_harqs]; + + UL_INFO->harq_ind.vendor_extension = ul_config_req->vendor_extension; + + ind->sfn_sf = frame<<4|subframe; + ind->header.message_id = NFAPI_HARQ_INDICATION; + + body->tl.tag = NFAPI_HARQ_INDICATION_BODY_TAG; + pdu->rx_ue_information.tl.tag = NFAPI_RX_UE_INFORMATION_TAG; + + pdu->instance_length = 0; // don't know what to do with this + // pdu->rx_ue_information.handle = handle; + pdu->rx_ue_information.rnti = rnti; + + pdu->ul_cqi_information.tl.tag = NFAPI_UL_CQI_INFORMATION_TAG; + + int SNRtimes10 = 640; + + + if (SNRtimes10 < -640) pdu->ul_cqi_information.ul_cqi=0; + else if (SNRtimes10 > 635) pdu->ul_cqi_information.ul_cqi=255; + else pdu->ul_cqi_information.ul_cqi=(640+SNRtimes10)/5; + pdu->ul_cqi_information.channel = 0; + if ((harq_information->harq_information_rel9_fdd.ack_nack_mode == 0) && + (harq_information->harq_information_rel9_fdd.harq_size == 1)) { + + 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 = 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; // Assuming always an ACK (No NACK or DTX) + + + } + else if ((harq_information->harq_information_rel9_fdd.ack_nack_mode == 0) && + (harq_information->harq_information_rel9_fdd.harq_size == 2)) { + 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; // 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"); + + + UL_INFO->harq_ind.harq_indication_body.number_of_harqs++; + LOG_D(PHY,"Incremented eNB->UL_INFO.harq_ind.number_of_harqs:%d\n", UL_INFO->harq_ind.harq_indication_body.number_of_harqs); + pthread_mutex_unlock(&UE_mac_inst[Mod_id].UL_INFO_mutex); + +} + + +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) +{ + + 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", + (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; + + uint16_t rnti = ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.rnti; + uint8_t access_mode=SCHEDULED_ACCESS; + if(buflen>0){ + if(UE_mac_inst[Mod_id].first_ULSCH_Tx == 1){ // Msg3 case + LOG_D(MAC, "handle_nfapi_ul_pdu_UE_MAC 2.2, Mod_id:%d, SFN/SF: %d/%d \n", Mod_id, frame, subframe); + 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); + // Modification + UE_mac_inst[Mod_id].UE_mode[0] = PUSCH; + UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; + + // This should be done after the reception of the respective hi_dci0 + //UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; + } + else { + 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); + } + } + } + + 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); + uint8_t ulsch_buffer[5477] __attribute__ ((aligned(32))); + uint16_t buflen = ul_config_pdu->ulsch_harq_pdu.ulsch_pdu.ulsch_pdu_rel8.size; + nfapi_ul_config_ulsch_harq_information *ulsch_harq_information = &ul_config_pdu->ulsch_harq_pdu.harq_information; + uint16_t rnti = ul_config_pdu->ulsch_harq_pdu.ulsch_pdu.ulsch_pdu_rel8.rnti; + uint8_t access_mode=SCHEDULED_ACCESS; + if(buflen>0){ + if(UE_mac_inst[Mod_id].first_ULSCH_Tx == 1){ // Msg3 case + 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); + //UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; + // Modification + UE_mac_inst[Mod_id].UE_mode[0] = PUSCH; + UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; + } + else { + 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); + } + + } + if(ulsch_harq_information!=NULL) + fill_ulsch_harq_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, ulsch_harq_information, rnti); + + } + else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_CQI_RI_PDU_TYPE) { + uint8_t ulsch_buffer[5477] __attribute__ ((aligned(32))); + uint16_t buflen = ul_config_pdu->ulsch_cqi_ri_pdu.ulsch_pdu.ulsch_pdu_rel8.size; + + uint16_t rnti = ul_config_pdu->ulsch_cqi_ri_pdu.ulsch_pdu.ulsch_pdu_rel8.rnti; + uint8_t access_mode=SCHEDULED_ACCESS; + if(buflen>0){ + if(UE_mac_inst[Mod_id].first_ULSCH_Tx == 1){ // Msg3 case + 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); + //UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; + // Modification + UE_mac_inst[Mod_id].UE_mode[0] = PUSCH; + UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; + } + else { + 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); + } + } + fill_ulsch_cqi_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, rnti); + + } + else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_CQI_HARQ_RI_PDU_TYPE) { + + uint8_t ulsch_buffer[5477] __attribute__ ((aligned(32))); + uint16_t buflen = ul_config_pdu->ulsch_cqi_harq_ri_pdu.ulsch_pdu.ulsch_pdu_rel8.size; + nfapi_ul_config_ulsch_harq_information *ulsch_harq_information = &ul_config_pdu->ulsch_cqi_harq_ri_pdu.harq_information; + + uint16_t rnti = ul_config_pdu->ulsch_cqi_harq_ri_pdu.ulsch_pdu.ulsch_pdu_rel8.rnti; + uint8_t access_mode=SCHEDULED_ACCESS; + if(buflen>0){ + if(UE_mac_inst[Mod_id].first_ULSCH_Tx == 1){ // Msg3 case + 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); + //UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; + // Modification + UE_mac_inst[Mod_id].UE_mode[0] = PUSCH; + UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; + } + else { + 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); + } + } + + if(ulsch_harq_information!=NULL) + fill_ulsch_harq_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, ulsch_harq_information, rnti); + fill_ulsch_cqi_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, rnti); + + } + else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE) { + + uint16_t rnti = ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.rnti; + + nfapi_ul_config_harq_information *ulsch_harq_information = &ul_config_pdu->uci_harq_pdu.harq_information; + if(ulsch_harq_information != NULL) + fill_uci_harq_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO,ulsch_harq_information, rnti); + } + else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_UCI_CQI_PDU_TYPE) { + AssertFatal(1==0,"NFAPI_UL_CONFIG_UCI_CQI_PDU_TYPE not handled yet\n"); + } + else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_UCI_CQI_HARQ_PDU_TYPE) { + AssertFatal(1==0,"NFAPI_UL_CONFIG_UCI_CQI_HARQ_PDU_TYPE not handled yet\n"); + } + else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_UCI_CQI_SR_PDU_TYPE) { + AssertFatal(1==0,"NFAPI_UL_CONFIG_UCI_CQI_SR_PDU_TYPE not handled yet\n"); + } + else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_UCI_SR_PDU_TYPE) { + + uint16_t rnti = ul_config_pdu->uci_sr_pdu.ue_information.ue_information_rel8.rnti; + + if (ue_get_SR(Mod_id ,0,frame, 0, rnti, subframe)) + fill_sr_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, rnti); + + } + else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_UCI_SR_HARQ_PDU_TYPE) { + //AssertFatal((UE_id = find_uci(rel8->rnti,proc->frame_tx,proc->subframe_tx,eNB,SEARCH_EXIST_OR_FREE))>=0, + // "No available UE UCI for rnti %x\n",ul_config_pdu->uci_sr_harq_pdu.ue_information.ue_information_rel8.rnti); + + uint16_t rnti = ul_config_pdu->uci_sr_harq_pdu.ue_information.ue_information_rel8.rnti; + + // We fill the sr_indication only if ue_get_sr() would normally instruct PHY to send a SR. + if (ue_get_SR(Mod_id ,0,frame, 0, rnti, subframe)) + fill_sr_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO,rnti); + + nfapi_ul_config_harq_information *ulsch_harq_information = &ul_config_pdu->uci_sr_harq_pdu.harq_information; + if (ulsch_harq_information != NULL) + fill_uci_harq_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO,ulsch_harq_information, rnti); + + } + +} + + + + + + +int ul_config_req_UE_MAC(nfapi_ul_config_request_t* req, int timer_frame, int timer_subframe, module_id_t Mod_id) +{ + //if (req!=NULL){ // && req->ul_config_request_body.ul_config_pdu_list !=NULL){ + LOG_D(PHY,"[PNF] UL_CONFIG_REQ %s() sfn_sf:%d pdu:%d rach_prach_frequency_resources:%d srs_present:%u\n", + __FUNCTION__, + NFAPI_SFNSF2DEC(req->sfn_sf), + req->ul_config_request_body.number_of_pdus, + req->ul_config_request_body.rach_prach_frequency_resources, + req->ul_config_request_body.srs_present + ); + + int sfn = NFAPI_SFNSF2SFN(req->sfn_sf); + int sf = NFAPI_SFNSF2SF(req->sfn_sf); + + + LOG_D(MAC, "ul_config_req_UE_MAC() TOTAL NUMBER OF UL_CONFIG PDUs: %d, SFN/SF: %d/%d \n", req->ul_config_request_body.number_of_pdus, timer_frame, timer_subframe); + + + + for (int i=0;iul_config_request_body.number_of_pdus;i++) + { + + if ( + (req->ul_config_request_body.ul_config_pdu_list[i].pdu_type == NFAPI_UL_CONFIG_ULSCH_PDU_TYPE && req->ul_config_request_body.ul_config_pdu_list[i].ulsch_pdu.ulsch_pdu_rel8.rnti == UE_mac_inst[Mod_id].crnti) || + (req->ul_config_request_body.ul_config_pdu_list[i].pdu_type == NFAPI_UL_CONFIG_ULSCH_HARQ_PDU_TYPE && req->ul_config_request_body.ul_config_pdu_list[i].ulsch_harq_pdu.ulsch_pdu.ulsch_pdu_rel8.rnti == UE_mac_inst[Mod_id].crnti) || + (req->ul_config_request_body.ul_config_pdu_list[i].pdu_type == NFAPI_UL_CONFIG_ULSCH_CQI_RI_PDU_TYPE && req->ul_config_request_body.ul_config_pdu_list[i].ulsch_cqi_ri_pdu.ulsch_pdu.ulsch_pdu_rel8.rnti == UE_mac_inst[Mod_id].crnti) || + (req->ul_config_request_body.ul_config_pdu_list[i].pdu_type == NFAPI_UL_CONFIG_ULSCH_CQI_HARQ_RI_PDU_TYPE && req->ul_config_request_body.ul_config_pdu_list[i].ulsch_cqi_harq_ri_pdu.ulsch_pdu.ulsch_pdu_rel8.rnti == UE_mac_inst[Mod_id].crnti) || + (req->ul_config_request_body.ul_config_pdu_list[i].pdu_type == NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE && req->ul_config_request_body.ul_config_pdu_list[i].uci_cqi_harq_pdu.ue_information.ue_information_rel8.rnti == UE_mac_inst[Mod_id].crnti) || + (req->ul_config_request_body.ul_config_pdu_list[i].pdu_type == NFAPI_UL_CONFIG_UCI_SR_PDU_TYPE && req->ul_config_request_body.ul_config_pdu_list[i].uci_sr_pdu.ue_information.ue_information_rel8.rnti == UE_mac_inst[Mod_id].crnti) || + (req->ul_config_request_body.ul_config_pdu_list[i].pdu_type == NFAPI_UL_CONFIG_UCI_SR_HARQ_PDU_TYPE && req->ul_config_request_body.ul_config_pdu_list[i].uci_cqi_sr_harq_pdu.ue_information.ue_information_rel8.rnti == UE_mac_inst[Mod_id].crnti) + ) + { + + handle_nfapi_ul_pdu_UE_MAC(Mod_id,&req->ul_config_request_body.ul_config_pdu_list[i],sfn,sf,req->ul_config_request_body.srs_present, i); + + } + else + { + //NFAPI_TRACE(NFAPI_TRACE_ERROR, "%s() PDU:%i UNKNOWN type :%d\n", __FUNCTION__, i, ul_config_pdu_list[i].pdu_type); + } + } + +// } + + return 0; +} + + + +int tx_req_UE_MAC(nfapi_tx_request_t* req) +{ + + 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__, + 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, + req->tx_request_body.tx_pdu_list[i].pdu_index, + req->tx_request_body.tx_pdu_list[i].num_segments + ); + + } + + return 0; +} + + +int dl_config_req_UE_MAC(nfapi_dl_config_request_t* req, module_id_t Mod_id) //, nfapi_tx_request_pdu_t* tx_request_pdu_list) +{ + //if (req!=NULL && tx_request_pdu_list!=NULL){ + int sfn = NFAPI_SFNSF2SFN(req->sfn_sf); + int sf = NFAPI_SFNSF2SF(req->sfn_sf); + //Mod_id = 0; // Currently static (only for one UE) but this should change. + + /*struct PHY_VARS_eNB_s *eNB = RC.eNB[0][0]; + eNB_rxtx_proc_t *proc = &eNB->proc.proc_rxtx[0];*/ + nfapi_dl_config_request_pdu_t* dl_config_pdu_list = req->dl_config_request_body.dl_config_pdu_list; + nfapi_dl_config_request_pdu_t *dl_config_pdu_tmp; + + //NFAPI_TRACE(NFAPI_TRACE_INFO, "%s() TX:%d/%d RX:%d/%d sfn_sf:%d DCI:%d PDU:%d\n", __FUNCTION__, proc->frame_tx, proc->subframe_tx, proc->frame_rx, proc->subframe_rx, NFAPI_SFNSF2DEC(req->sfn_sf), req->dl_config_request_body.number_dci, req->dl_config_request_body.number_pdu); + + + + //LOG_D(PHY,"NFAPI: Sched_INFO:SFN/SF:%d%d dl_pdu:%d tx_req:%d hi_dci0:%d ul_cfg:%d num_pdcch_symbols:%d\n", + // frame,subframe,number_dl_pdu,TX_req->tx_request_body.number_of_pdus,number_hi_dci0_pdu,number_ul_pdu, eNB->pdcch_vars[subframe&1].num_pdcch_symbols); + + for (int i=0;idl_config_request_body.number_pdu;i++) + { + //NFAPI_TRACE(NFAPI_TRACE_INFO, "%s() sfn/sf:%d PDU[%d] size:%d\n", __FUNCTION__, NFAPI_SFNSF2DEC(req->sfn_sf), i, dl_config_pdu_list[i].pdu_size); + //LOG_E(MAC, "dl_config_req_UE_MAC 2 Received real ones: sfn/sf:%d.%d PDU[%d] size:%d\n", sfn, sf, i, dl_config_pdu_list[i].pdu_size); + + if (dl_config_pdu_list[i].pdu_type == NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE) + { + if (dl_config_pdu_list[i].dci_dl_pdu.dci_dl_pdu_rel8.rnti_type == 1) { + // C-RNTI (Normal DLSCH case) + dl_config_pdu_tmp = &dl_config_pdu_list[i+1]; + if (dl_config_pdu_tmp->pdu_type == NFAPI_DL_CONFIG_DLSCH_PDU_TYPE && UE_mac_inst[Mod_id].crnti == dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.rnti){ + + /*nfapi_tx_request_pdu_t *ptr = tx_request_pdu_list; + ptr += dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index*(sizeof(nfapi_tx_request_pdu_t)); + nfapi_tx_request_pdu_t temp; + memset(&temp, 0, sizeof(nfapi_tx_request_pdu_t)); + //if (!memcmp(&temp, ptr, sizeof(temp)) ... + if( *(char*)ptr != 0){ + //if(tx_request_pdu_list[dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index].segments[0].segment_data!= NULL && tx_request_pdu_list[dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index].segments[0].segment_length >0){ + */ + + if(dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index <= tx_req_num_elems -1){ + //if(tx_request_pdu_list + dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index!= NULL){ + + LOG_E(MAC, "dl_config_req_UE_MAC 2 Received data: sfn/sf:%d PDU[%d] size:%d, TX_PDU index: %d, tx_req_num_elems: %d \n", NFAPI_SFNSF2DEC(req->sfn_sf), i, dl_config_pdu_list[i].pdu_size, dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index, tx_req_num_elems); + + ue_send_sdu(Mod_id, 0, sfn, sf, + tx_request_pdu_list[dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index].segments[0].segment_data, + tx_request_pdu_list[dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index].segments[0].segment_length, + 0); + i++; + } + else{ + LOG_E(MAC,"dl_config_req_UE_MAC 2: Problem with receiving data: sfn/sf:%d PDU[%d] size:%d, TX_PDU index: %d\n", NFAPI_SFNSF2DEC(req->sfn_sf), i, dl_config_pdu_list[i].pdu_size, dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index); + i++; + } + } + else { + LOG_E(MAC,"[UE %d] Frame %d, subframe %d : DLSCH PDU from NFAPI not for this UE \n",Mod_id, sfn,sf); + i++; + } + } + else if (dl_config_pdu_list[i].dci_dl_pdu.dci_dl_pdu_rel8.rnti_type == 2) { + dl_config_pdu_tmp = &dl_config_pdu_list[i+1]; + if(dl_config_pdu_tmp->pdu_type == NFAPI_DL_CONFIG_DLSCH_PDU_TYPE && dl_config_pdu_list[i].dci_dl_pdu.dci_dl_pdu_rel8.rnti == 0xFFFF && UE_mac_inst[Mod_id].UE_mode[0] != NOT_SYNCHED){ //&& UE_mac_inst[Mod_id].UE_mode[0] != NOT_SYNCHED + + if(dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index <= tx_req_num_elems -1){ + //if(tx_request_pdu_list + dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index!= NULL){ + ue_decode_si(Mod_id, 0, sfn, 0, + tx_request_pdu_list[dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index].segments[0].segment_data, + tx_request_pdu_list[dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index].segments[0].segment_length); + i++; + } + else{ + LOG_E(MAC,"dl_config_req_UE_MAC 3: Problem with receiving SI: sfn/sf:%d PDU[%d] size:%d, TX_PDU index: %d\n", NFAPI_SFNSF2DEC(req->sfn_sf), i, dl_config_pdu_list[i].pdu_size, dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index); + i++; + } + } + else if(dl_config_pdu_tmp->pdu_type == NFAPI_DL_CONFIG_DLSCH_PDU_TYPE && dl_config_pdu_list[i].dci_dl_pdu.dci_dl_pdu_rel8.rnti == 0xFFFE){ + // P_RNTI case + //pdu = Tx_req->tx_request_body.tx_pdu_list[dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index].segments[0].segment_data; + + if (dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index <= tx_req_num_elems -1){ + //if(tx_request_pdu_list + dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index!= NULL){ + ue_decode_p(Mod_id, 0, sfn, 0, + tx_request_pdu_list[dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index].segments[0].segment_data, + tx_request_pdu_list[dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index].segments[0].segment_length); + i++; + } + else{ + LOG_E(MAC,"dl_config_req_UE_MAC: Problem with receiving Paging: sfn/sf:%d PDU[%d] size:%d, TX_PDU index: %d\n", NFAPI_SFNSF2DEC(req->sfn_sf), i, dl_config_pdu_list[i].pdu_size, dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index); + i++; + } + } + else if(dl_config_pdu_tmp->pdu_type == NFAPI_DL_CONFIG_DLSCH_PDU_TYPE) { + // RA-RNTI case + LOG_E(MAC,"dl_config_req_UE_MAC 4 Received RAR? \n"); + // RNTI parameter not actually used. Provided only to comply with existing function definition. + // Not sure about parameters to fill the preamble index. + //rnti_t c_rnti = UE_mac_inst[Mod_id].crnti; + rnti_t ra_rnti = UE_mac_inst[Mod_id].RA_prach_resources.ra_RNTI; + if ((UE_mac_inst[Mod_id].UE_mode[0] != PUSCH) && + (UE_mac_inst[Mod_id].RA_prach_resources.Msg3!=NULL) && (ra_rnti== dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.rnti) && + //(tx_request_pdu_list + dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index!= NULL)) { + (dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index <= tx_req_num_elems -1)) { + LOG_E(MAC,"dl_config_req_UE_MAC 5 Received RAR, PreambleIndex: %d \n", UE_mac_inst[Mod_id].RA_prach_resources.ra_PreambleIndex); + ue_process_rar(Mod_id, 0, sfn, + ra_rnti, //RA-RNTI + tx_request_pdu_list[dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index].segments[0].segment_data, + &dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.rnti, //t-crnti + UE_mac_inst[Mod_id].RA_prach_resources.ra_PreambleIndex, + tx_request_pdu_list[dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index].segments[0].segment_data); + UE_mac_inst[Mod_id].UE_mode[0] = RA_RESPONSE; + UE_mac_inst[Mod_id].first_ULSCH_Tx = 1; //Expecting an UL_CONFIG_ULSCH_PDU to enable Msg3 Txon (first ULSCH Txon for the UE) + } + i++; + } + else { + LOG_E(MAC,"[UE %d] Frame %d, subframe %d : Cannot extract DLSCH PDU from NFAPI 2\n",Mod_id, sfn, sf); + i++; + } + + } + } + else if (dl_config_pdu_list[i].pdu_type == NFAPI_DL_CONFIG_BCH_PDU_TYPE) + { + // BCH case + // Last parameter is 1 if first time synchronization and zero otherwise. Not sure which value to put + // for our case. + //LOG_E(MAC,"dl_config_req_UE_MAC 4 Received MIB: sfn/sf: %d.%d \n", sfn, sf); + if(UE_mac_inst[Mod_id].UE_mode[0] == NOT_SYNCHED){ + dl_phy_sync_success(Mod_id,sfn,0, 1); + LOG_E(MAC,"dl_config_req_UE_MAC 5 Received MIB: UE_mode: %d, sfn/sf: %d.%d\n", UE_mac_inst[Mod_id].UE_mode[0], sfn, sf); + UE_mac_inst[Mod_id].UE_mode[0]=PRACH; + } + else + dl_phy_sync_success(Mod_id,sfn,0, 0); + + } + + else + { + //NFAPI_TRACE(NFAPI_TRACE_ERROR, "%s() UNKNOWN:%d\n", __FUNCTION__, dl_config_pdu_list[i].pdu_type); + } + } + + return 0; + +} + + +int hi_dci0_req_UE_MAC(nfapi_hi_dci0_request_t* req, module_id_t Mod_id) +{ + if (req!=NULL && req->hi_dci0_request_body.hi_dci0_pdu_list!=NULL){ + LOG_D(PHY,"[UE-PHY_STUB] hi dci0 request sfn_sf:%d number_of_dci:%d number_of_hi:%d\n", NFAPI_SFNSF2DEC(req->sfn_sf), req->hi_dci0_request_body.number_of_dci, req->hi_dci0_request_body.number_of_hi); + + + + for (int i=0; ihi_dci0_request_body.number_of_dci + req->hi_dci0_request_body.number_of_hi; i++) + { + LOG_D(PHY,"[UE-PHY_STUB] HI_DCI0_REQ sfn_sf:%d PDU[%d]\n", NFAPI_SFNSF2DEC(req->sfn_sf), i); + + if (req->hi_dci0_request_body.hi_dci0_pdu_list[i].pdu_type == NFAPI_HI_DCI0_DCI_PDU_TYPE) + { + LOG_D(PHY,"[UE-PHY_STUB] HI_DCI0_REQ sfn_sf:%d PDU[%d] - NFAPI_HI_DCI0_DCI_PDU_TYPE not used \n", NFAPI_SFNSF2DEC(req->sfn_sf), i); + + } + else if (req->hi_dci0_request_body.hi_dci0_pdu_list[i].pdu_type == NFAPI_HI_DCI0_HI_PDU_TYPE) + { + //LOG_I(MAC,"[UE-PHY_STUB] HI_DCI0_REQ sfn_sf:%d PDU[%d] - NFAPI_HI_DCI0_HI_PDU_TYPE\n", NFAPI_SFNSF2DEC(req->sfn_sf), i); + + nfapi_hi_dci0_request_pdu_t *hi_dci0_req_pdu = &req->hi_dci0_request_body.hi_dci0_pdu_list[i]; + + // This is meaningful only after ACKnowledging the first ULSCH Txon (i.e. Msg3) + if(hi_dci0_req_pdu->hi_pdu.hi_pdu_rel8.hi_value == 1 && UE_mac_inst[Mod_id].first_ULSCH_Tx == 1){ + //LOG_I(MAC,"[UE-PHY_STUB] HI_DCI0_REQ 2 sfn_sf:%d PDU[%d] - NFAPI_HI_DCI0_HI_PDU_TYPE\n", NFAPI_SFNSF2DEC(req->sfn_sf), i); + //UE_mac_inst[Mod_id].UE_mode[0] = PUSCH; + //UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; + } + + } + else + { + LOG_E(PHY,"[UE-PHY_STUB] HI_DCI0_REQ sfn_sf:%d PDU[%d] - unknown pdu type:%d\n", NFAPI_SFNSF2DEC(req->sfn_sf), i, req->hi_dci0_request_body.hi_dci0_pdu_list[i].pdu_type); + } + } + + } + + + return 0; +} + + + + + +// The following set of memcpy functions should be getting called as callback functions from +// pnf_p7_subframe_ind. +int memcpy_dl_config_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_dl_config_request_t* req) +{ + + //for (Mod_id=0; Mod_idheader = req->header; + dl_config_req->sfn_sf = req->sfn_sf; + + dl_config_req->vendor_extension = req->vendor_extension; + + dl_config_req->dl_config_request_body.number_dci = req->dl_config_request_body.number_dci; + dl_config_req->dl_config_request_body.number_pdcch_ofdm_symbols = req->dl_config_request_body.number_pdcch_ofdm_symbols; + dl_config_req->dl_config_request_body.number_pdsch_rnti = req->dl_config_request_body.number_pdsch_rnti; + dl_config_req->dl_config_request_body.number_pdu = req->dl_config_request_body.number_pdu; + + dl_config_req->dl_config_request_body.tl.tag = req->dl_config_request_body.tl.tag; + dl_config_req->dl_config_request_body.tl.length = req->dl_config_request_body.tl.length; + + dl_config_req->dl_config_request_body.dl_config_pdu_list = (nfapi_dl_config_request_pdu_t*) calloc(req->dl_config_request_body.number_pdu, sizeof(nfapi_dl_config_request_pdu_t)); + for(int i=0; idl_config_request_body.number_pdu; i++) { + dl_config_req->dl_config_request_body.dl_config_pdu_list[i] = req->dl_config_request_body.dl_config_pdu_list[i]; + } + + //} + + return 0; + +} + +int memcpy_ul_config_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_ul_config_request_t* req) +{ + + //for (Mod_id=0; Mod_idsfn_sf = req->sfn_sf; + ul_config_req->vendor_extension = req->vendor_extension; + + + ul_config_req->ul_config_request_body.number_of_pdus = req->ul_config_request_body.number_of_pdus; + ul_config_req->ul_config_request_body.rach_prach_frequency_resources = req->ul_config_request_body.rach_prach_frequency_resources; + ul_config_req->ul_config_request_body.srs_present = req->ul_config_request_body.srs_present; + + ul_config_req->ul_config_request_body.tl.tag = req->ul_config_request_body.tl.tag; + ul_config_req->ul_config_request_body.tl.length = req->ul_config_request_body.tl.length; + + //LOG_D(MAC, "memcpy_ul_config_req 1 #ofULPDUs: %d \n", UE_mac_inst[Mod_id].ul_config_req->ul_config_request_body.number_of_pdus); //req->ul_config_request_body.number_of_pdus); + ul_config_req->ul_config_request_body.ul_config_pdu_list = (nfapi_ul_config_request_pdu_t*) malloc(req->ul_config_request_body.number_of_pdus*sizeof(nfapi_ul_config_request_pdu_t)); + for(int i=0; iul_config_request_body.number_of_pdus; i++) { + ul_config_req->ul_config_request_body.ul_config_pdu_list[i] = req->ul_config_request_body.ul_config_pdu_list[i]; + } + //} + + return 0; +} + + + + +int memcpy_tx_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_tx_request_t* req) +{ + + tx_req_num_elems = req->tx_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)); + for (int i=0; itx_request_body.tx_pdu_list[i].num_segments; + tx_request_pdu_list[i].pdu_index = req->tx_request_body.tx_pdu_list[i].pdu_index; + tx_request_pdu_list[i].pdu_length = req->tx_request_body.tx_pdu_list[i].pdu_length; + for (int j=0; jtx_request_body.tx_pdu_list[i].num_segments; j++){ + //*tx_request_pdu_list[i].segments[j].segment_data = *req->tx_request_body.tx_pdu_list[i].segments[j].segment_data; + tx_request_pdu_list[i].segments[j].segment_length = req->tx_request_body.tx_pdu_list[i].segments[j].segment_length; + if(tx_request_pdu_list[i].segments[j].segment_length > 0){ + tx_request_pdu_list[i].segments[j].segment_data = (uint8_t*)malloc(tx_request_pdu_list[i].segments[j].segment_length*sizeof (uint8_t)); + memcpy(tx_request_pdu_list[i].segments[j].segment_data, req->tx_request_body.tx_pdu_list[i].segments[j].segment_data, tx_request_pdu_list[i].segments[j].segment_length); + } + } + + } + + return 0; +} + +int memcpy_hi_dci0_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_hi_dci0_request_t* req) +{ + + //if(req!=0){ + + //for (Mod_id=0; Mod_idsfn_sf = req->sfn_sf; + hi_dci0_req->vendor_extension = req->vendor_extension; + + hi_dci0_req->hi_dci0_request_body.number_of_dci = req->hi_dci0_request_body.number_of_dci; + hi_dci0_req->hi_dci0_request_body.number_of_hi = req->hi_dci0_request_body.number_of_hi; + hi_dci0_req->hi_dci0_request_body.sfnsf = req->hi_dci0_request_body.sfnsf; + + //UE_mac_inst[Mod_id].hi_dci0_req->hi_dci0_request_body.tl = req->hi_dci0_request_body.tl; + hi_dci0_req->hi_dci0_request_body.tl.tag = req->hi_dci0_request_body.tl.tag; + hi_dci0_req->hi_dci0_request_body.tl.length = req->hi_dci0_request_body.tl.length; + + int total_pdus = hi_dci0_req->hi_dci0_request_body.number_of_dci + hi_dci0_req->hi_dci0_request_body.number_of_hi; + + hi_dci0_req->hi_dci0_request_body.hi_dci0_pdu_list = (nfapi_hi_dci0_request_pdu_t*) malloc(total_pdus*sizeof(nfapi_hi_dci0_request_pdu_t)); + + for(int i=0; ihi_dci0_request_body.hi_dci0_pdu_list[i] = req->hi_dci0_request_body.hi_dci0_pdu_list[i]; + //LOG_I(MAC, "Original hi_dci0 req. type:%d, Copy type: %d \n",req->hi_dci0_request_body.hi_dci0_pdu_list[i].pdu_type, UE_mac_inst[Mod_id].hi_dci0_req->hi_dci0_request_body.hi_dci0_pdu_list[i].pdu_type); + } + + //} + return 0; +} + + + +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; j +#include "openair2/PHY_INTERFACE/IF_Module.h" +#include "nfapi_interface.h" +#include "nfapi_pnf_interface.h" +//#include "openair1/PHY/LTE_TRANSPORT/defs.h" +//#include "openair1/PHY/defs.h" +//#include "openair1/PHY/LTE_TRANSPORT/defs.h" + +UL_IND_t *UL_INFO; + +nfapi_tx_request_pdu_t* tx_request_pdu_list; +// New +/// Pointers to config_request types. Used from nfapi callback functions. +nfapi_dl_config_request_t* dl_config_req; +nfapi_ul_config_request_t* ul_config_req; +nfapi_hi_dci0_request_t* hi_dci0_req; + +int tx_req_num_elems; + +int next_ra_frame; +module_id_t next_Mod_id; +eth_params_t stub_eth_params; + + + + +// This function should return all the sched_response config messages which concern a specific UE. Inside this +// function we should somehow make the translation of config message's rnti to Mod_ID. +Sched_Rsp_t get_nfapi_sched_response(uint8_t Mod_id); + +// This function will be processing DL_config and Tx.requests and trigger all the MAC Rx related calls at the UE side, +// namely:ue_send_sdu(), or ue_decode_si(), or ue_decode_p(), or ue_process_rar() based on the rnti type. +//void handle_nfapi_UE_Rx(uint8_t Mod_id, Sched_Rsp_t *Sched_INFO, int eNB_id); + +int pnf_ul_config_req_UE_MAC(nfapi_pnf_p7_config_t* pnf_p7, nfapi_ul_config_request_t* req); + +// This function will be processing UL and HI_DCI0 config requests to trigger all the MAC Tx related calls +// at the UE side, namely: ue_get_SR(), ue_get_rach(), ue_get_sdu() based on the pdu configuration type. +// The output of these calls will be put to an UL_IND_t structure which will then be the input to +// send_nfapi_UL_indications(). +UL_IND_t generate_nfapi_UL_indications(Sched_Rsp_t sched_response); + +// This function should pass the UL indication messages to the eNB side through the socket interface. +void send_nfapi_UL_indications(UL_IND_t UL_INFO); + +// This function should be filling the nfapi ULSCH indications at the MAC level of the UE in a similar manner +// as fill_rx_indication() does. It should get called from ue_get_SDU() + +//void fill_rx_indication_UE_MAC(module_id_t Mod_id,int frame,int subframe); + +void fill_rx_indication_UE_MAC(module_id_t Mod_id,int frame,int subframe, UL_IND_t *UL_INFO, uint8_t *ulsch_buffer, uint16_t buflen, uint16_t rnti, int index); + + +// This function should be indicating directly to the eNB when there is a planned scheduling request at the MAC layer +// of the UE. It should get called from ue_get_SR() +void fill_sr_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL_INFO, uint16_t rnti); + +// In our case the this function will be always indicating ACK to the MAC of the eNB (i.e. always assuming) +// successful decoding. +void fill_crc_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL_INFO, uint8_t crc_flag, int index, uint16_t rnti); + + +void fill_rach_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL_INFO, uint8_t ra_PreambleIndex, uint16_t ra_RNTI); + + +void fill_ulsch_cqi_indication_UE_MAC(int Mod_id, uint16_t frame,uint8_t subframe, UL_IND_t *UL_INFO, uint16_t rnti); + + +void fill_ulsch_harq_indication_UE_MAC(int Mod_id, int frame,int subframe, UL_IND_t *UL_INFO, nfapi_ul_config_ulsch_harq_information *harq_information, uint16_t rnti); + +void fill_uci_harq_indication_UE_MAC(int Mod_id, int frame, int subframe, UL_IND_t *UL_INFO,nfapi_ul_config_harq_information *harq_information, uint16_t rnti + /*uint8_t tdd_mapping_mode, + uint16_t tdd_multiplexing_mask*/); + +int ul_config_req_UE_MAC(nfapi_ul_config_request_t* req, int frame, int subframe, module_id_t Mod_id); + +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); + +//int dl_config_req_UE_MAC(nfapi_dl_config_request_t* req, nfapi_tx_request_pdu_t* tx_request_pdu_list); +int dl_config_req_UE_MAC(nfapi_dl_config_request_t* req, module_id_t Mod_id); + +int tx_req_UE_MAC(nfapi_tx_request_t* req); + + +int hi_dci0_req_UE_MAC(nfapi_hi_dci0_request_t* req, module_id_t Mod_id); + +// The following set of memcpy functions should be getting called as callback functions from +// pnf_p7_subframe_ind. + +int memcpy_dl_config_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_dl_config_request_t* req); + + +int memcpy_ul_config_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_ul_config_request_t* req); + + +int memcpy_tx_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_tx_request_t* req); + + +int memcpy_hi_dci0_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_hi_dci0_request_t* req); + +void UE_config_stub_pnf(void); + + + +#endif /* PHY_STUB_UE_H_ */ diff --git a/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c b/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c index 0844593d93..2815ee3688 100644 --- a/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c +++ b/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c @@ -38,7 +38,7 @@ #ifdef CELLULAR #include "rrc_L2_proto.h" #else -#include "RRC/LITE/defs.h" +#include "RRC/LTE/defs.h" #endif //CELLULAR #include "COMMON/mac_rrc_primitives.h" #include "openair_rrc_L2_interface.h" diff --git a/openair2/RRC/LTE/L2_interface.c b/openair2/RRC/LTE/L2_interface.c index 59de459f67..321c5d743d 100644 --- a/openair2/RRC/LTE/L2_interface.c +++ b/openair2/RRC/LTE/L2_interface.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" @@ -86,15 +86,8 @@ mac_rrc_data_req( AssertFatal(RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB1 != 255, "[eNB %d] MAC Request for SIB1 and SIB1 not initialized\n",Mod_idP); - if ((frameP%2) == 0) { - memcpy(&buffer_pP[0], - RC.rrc[Mod_idP]->carrier[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); +#ifdef DEBUG_RRC + LOG_T(RRC,"[eNB %d] Frame %d : BCCH request => SIB 1\n",Mod_idP,frameP); if (sib1_size > sdu_size) { LOG_E(RRC, "SIB1 SDU larger than BCCH SDU buffer size (%d, %d)", sib1_size, sdu_size); @@ -119,23 +112,11 @@ mac_rrc_data_req( LOG_T(RRC,"%x.",buffer_pP[i]); } - LOG_T(RRC,"\n"); -#endif - return (RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB1); - } // All RFN mod 8 transmit SIB2-3 in SF 5 - else if ((frameP%8) == 1) { - memcpy(&buffer_pP[0], - 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); +#ifdef DEBUG_RRC + LOG_T(RRC,"[eNB %d] Frame %d BCCH request => SIB 2-3\n",Mod_idP,frameP); - 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; + for (i=0; icarrier[CC_id].sizeof_SIB23; i++) { + LOG_T(RRC,"%x.",buffer_pP[i]); } message_p = itti_alloc_new_message (TASK_RRC_ENB, RRC_MAC_BCCH_DATA_REQ); @@ -148,40 +129,41 @@ mac_rrc_data_req( 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); + } + if( (Srb_id & RAB_OFFSET ) == MIBCH) { + + mib->message.systemFrameNumber.buf = &sfn; + enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_BCH_Message, + NULL, + (void*)mib, + carrier->MIB, + 24); + LOG_D(RRC,"Encoded MIB for frame %d (%p), bits %lu\n",sfn,carrier->MIB,enc_rval.encoded); + buffer_pP[0]=carrier->MIB[0]; + buffer_pP[1]=carrier->MIB[1]; + buffer_pP[2]=carrier->MIB[2]; + AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", + enc_rval.failed_type->name, enc_rval.encoded); + return(3); + } + + if( (Srb_id & RAB_OFFSET ) == CCCH) { + LOG_T(RRC,"[eNB %d] Frame %d CCCH request (Srb_id %d)\n",Mod_idP,frameP, Srb_id); for (i=0; icarrier[CC_id].sizeof_SIB23; i++) { LOG_T(RRC,"%x.",buffer_pP[i]); } - LOG_T(RRC,"\n"); -#endif - return(RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB23); - } else { - return(0); - } - } + Srb_info=&RC.rrc[Mod_idP]->carrier[CC_id].Srb0; - if( (Srb_id & RAB_OFFSET ) == MIBCH) { - mib->message.systemFrameNumber.buf = &sfn; - enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_BCH_Message, - NULL, - (void *)mib, - carrier->MIB, - 24); - LOG_D(RRC,"Encoded MIB for frame %d (%p), bits %lu\n",sfn,carrier->MIB,enc_rval.encoded); - buffer_pP[0]=carrier->MIB[0]; - buffer_pP[1]=carrier->MIB[1]; - buffer_pP[2]=carrier->MIB[2]; - AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); - return(3); - } + // check if data is there for MAC + 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( (Srb_id & RAB_OFFSET ) == CCCH) { - LOG_T(RRC,"[eNB %d] Frame %d CCCH request (Srb_id %d)\n",Mod_idP,frameP, Srb_id); + 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; + } if(RC.rrc[Mod_idP]->carrier[CC_id].Srb0.Active==0) { LOG_E(RRC,"[eNB %d] CCCH Not active\n",Mod_idP); @@ -199,18 +181,9 @@ mac_rrc_data_req( 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); + 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; } #endif memcpy(buffer_pP,Srb_info->Tx_buffer.Payload,Srb_info->Tx_buffer.payload_size); @@ -218,43 +191,17 @@ mac_rrc_data_req( Srb_info->Tx_buffer.payload_size=0; } - return (Sdu_size); - } +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - if( (Srb_id & RAB_OFFSET ) == PCCH) { - LOG_T(RRC,"[eNB %d] Frame %d PCCH request (Srb_id %d)\n",Mod_idP,frameP, Srb_id); - - // check if data is there for MAC - if(RC.rrc[Mod_idP]->carrier[CC_id].sizeof_paging[mbsfn_sync_area] > 0) { //Fill buffer - 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); + if((Srb_id & RAB_OFFSET) == MCCH) { + if(RC.rrc[Mod_idP]->carrier[CC_id].MCCH_MESS[mbsfn_sync_area].Active==0) { + return 0; // this parameter is set in function init_mcch in rrc_eNB.c } -#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; - } - return (Sdu_size); - } + 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]); + #if defined(Rel10) || defined(Rel14) @@ -296,16 +243,22 @@ mac_rrc_data_req( LOG_T(RRC,"%x.",buffer_pP[i]); } - LOG_T(RRC,"\n"); -#endif - return (RC.rrc[Mod_idP]->carrier[CC_id].sizeof_MCCH_MESSAGE[mbsfn_sync_area]); - // } - //else - //return(0); - } +#endif // #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) -#endif //Rel10 || Rel14 -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + if ((Srb_id & RAB_OFFSET) == BCCH_SIB1_BR){ + memcpy(&buffer_pP[0], + RC.rrc[Mod_idP]->carrier[CC_id].SIB1_BR, + RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB1_BR); + return (RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB1_BR); + } + + if ((Srb_id & RAB_OFFSET) == BCCH_SI_BR){ // First SI message with SIB2/3 + memcpy(&buffer_pP[0], + RC.rrc[Mod_idP]->carrier[CC_id].SIB23_BR, + RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB23_BR); + return (RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB23_BR); + } if ((Srb_id & RAB_OFFSET) == BCCH_SIB1_BR) { memcpy(&buffer_pP[0], @@ -349,41 +302,29 @@ mac_rrc_data_ind( int si_window; */ PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, module_idP, ENB_FLAG_YES, rntiP, frameP, sub_frameP,0); - 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; + 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); + + // 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); + } + } + 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; + } } - 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 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 856ba96174..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" @@ -66,6 +66,21 @@ mac_rrc_data_req_ue( LOG_I(RRC,"[eNB %d] mac_rrc_data_req to SRB ID=%d\n",Mod_idP,Srb_id); #endif + +#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); + + //TTN (for D2D) + if (Srb_id == SL_DISCOVERY && UE_rrc_inst[Mod_idP].SL_Discovery[eNB_index].Tx_buffer.payload_size > 0){ + memcpy(&buffer_pP[0],&UE_rrc_inst[Mod_idP].SL_Discovery[eNB_index].Tx_buffer.Payload[0],UE_rrc_inst[Mod_idP].SL_Discovery[eNB_index].Tx_buffer.payload_size); + uint8_t Ret_size=UE_rrc_inst[Mod_idP].SL_Discovery[eNB_index].Tx_buffer.payload_size; + LOG_I(RRC,"[UE %d] Sending SL_Discovery, size %d bytes\n",Mod_idP,Ret_size); + UE_rrc_inst[Mod_idP].SL_Discovery[eNB_index].Tx_buffer.payload_size = 0; + return(Ret_size); + } +#endif + LOG_D(RRC,"[UE %d] Frame %d Filling CCCH 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].Srb0[eNB_index].Tx_buffer.payload_size); @@ -206,7 +221,7 @@ mac_rrc_data_ind_ue( } } -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) if ((srb_idP & RAB_OFFSET) == MCCH) { LOG_T(RRC,"[UE %d] Frame %d: Received SDU on MBSFN sync area %d for MCCH on SRB %d from eNB %d\n", @@ -236,8 +251,13 @@ mac_rrc_data_ind_ue( decode_MCCH_Message(&ctxt, eNB_indexP, sduP, sdu_lenP, mbsfn_sync_areaP); #endif } + //TTN (for D2D) + if(srb_idP == SL_DISCOVERY) { + LOG_I(RRC,"[UE %d] Received SDU (%d bytes) for SL_DISCOVERY on SRB %d from eNB %d\n",module_idP, sdu_lenP, srb_idP,eNB_indexP); + decode_SL_Discovery_Message(&ctxt, eNB_indexP, sduP, sdu_lenP); + } -#endif // Rel10 || Rel14 +#endif // #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) return(0); @@ -310,7 +330,11 @@ rrc_data_req_ue( confirmP, sdu_sizeP, buffer_pP, - modeP); + modeP +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,NULL, NULL +#endif + ); #endif } @@ -326,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) diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg.c b/openair2/RRC/LTE/MESSAGES/asn1_msg.c index 4aefb12b83..5a5b2bc2ad 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 @@ -52,7 +52,7 @@ #include "RRCConnectionSetup.h" #include "SRB-ToAddModList.h" #include "DRB-ToAddModList.h" -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) #include "MCCH-Message.h" //#define MRB1 1 #endif @@ -70,6 +70,8 @@ #include "SIB-Type.h" #include "BCCH-DL-SCH-Message.h" +#include "SBCCH-SL-BCH-MessageType.h" +#include "SBCCH-SL-BCH-Message.h" //#include "PHY/defs.h" @@ -226,7 +228,7 @@ uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich mib->message.systemFrameNumber.size = 1; mib->message.systemFrameNumber.bits_unused=0; mib->message.spare.buf = (uint8_t *)spare; -#ifndef Rel14 +#if (RRC_VERSION < MAKE_VERSION(14, 0, 0)) mib->message.spare.size = 2; mib->message.spare.bits_unused = 6; // This makes a spare of 10 bits #else @@ -236,7 +238,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, + (void*)mib, carrier->MIB, 24); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", @@ -269,6 +271,68 @@ uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich return((enc_rval.encoded+7)/8); } +//TTN for D2D +// 3GPP 36.331 (Section 5.10.7.4) +uint8_t do_MIB_SL(const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, uint32_t frame, uint8_t subframe, uint8_t in_coverage, uint8_t mode) +{ + + asn_enc_rval_t enc_rval; + SBCCH_SL_BCH_MessageType_t *mib_sl = &UE_rrc_inst[ctxt_pP->module_id].mib_sl[eNB_index]; + uint8_t sfn = (uint8_t)((frame>>2)&0xff); + UE_rrc_inst[ctxt_pP->module_id].MIB = (uint8_t*) malloc16(4); + + if (in_coverage > 0 ){ + //in coverage + mib_sl->inCoverage_r12 = TRUE; + mib_sl->sl_Bandwidth_r12 = *UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->freqInfo.ul_Bandwidth; + if (UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]->tdd_Config) { + mib_sl->tdd_ConfigSL_r12.subframeAssignmentSL_r12 = UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]->tdd_Config->subframeAssignment; + } else { + mib_sl->tdd_ConfigSL_r12.subframeAssignmentSL_r12 = TDD_ConfigSL_r12__subframeAssignmentSL_r12_none; + } + //if triggered by sl communication + if (UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index]->commConfig_r12->commSyncConfig_r12->list.array[0]->txParameters_r12->syncInfoReserved_r12){ + mib_sl->reserved_r12 = *UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index]->commConfig_r12->commSyncConfig_r12->list.array[0]->txParameters_r12->syncInfoReserved_r12; + } + //if triggered by sl discovery + if (UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index]->discConfig_r12->discSyncConfig_r12->list.array[0]->txParameters_r12->syncInfoReserved_r12){ + mib_sl->reserved_r12 = *UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index]->discConfig_r12->discSyncConfig_r12->list.array[0]->txParameters_r12->syncInfoReserved_r12; + } + //Todo - if triggered by v2x + } else { + //Todo - out of coverage for V2X + // Todo - UE has a selected SyncRef UE + mib_sl->inCoverage_r12 = FALSE; + //set sl-Bandwidth, subframeAssignmentSL and reserved from the pre-configured parameters + } + + //set FrameNumber, subFrameNumber + mib_sl->directFrameNumber_r12.buf = &sfn; + mib_sl->directFrameNumber_r12.size = 1; + mib_sl->directFrameNumber_r12.bits_unused=0; + mib_sl->directSubframeNumber_r12 = subframe; + + + LOG_I(RRC,"[MIB-SL] sfn %x, subframe %x\n", (uint32_t)sfn, (uint8_t)subframe); + + + 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); + 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) { + return(-1); + } + + return((enc_rval.encoded+7)/8); +} + + uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, int Mod_id,int CC_id #if defined(ENABLE_ITTI) @@ -418,7 +482,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, #endif enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_DL_SCH_Message, NULL, - (void *)bcch_message, + (void*)bcch_message, buffer, 100); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", @@ -456,8 +520,22 @@ uint8_t do_SIB23(uint8_t Mod_id, #endif ) { + struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *sib2_part,*sib3_part; -#if defined(Rel10) || defined(Rel14) + +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + //TTN - for D2D + struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *sib18_part, *sib19_part, *sib21_part; + SL_CommRxPoolList_r12_t *SL_CommRxPoolList; //for SIB18 + struct SL_CommResourcePool_r12 *SL_CommResourcePool; //for SIB18 + SL_DiscRxPoolList_r12_t *SL_DiscRxPoolList; //for SIB19 (discRxPool) + struct SL_DiscResourcePool_r12 *SL_DiscResourcePool; //for SIB19 (discRxPool) + //SL_DiscRxPoolList_r12_t *SL_DiscRxPoolPSList; //for SIB19 (discRxPoolPS) + //struct SL_DiscResourcePool_r12 *SL_DiscResourcePoolPS; //for SIB19 (discRxPoolPS) + //struct SL_V2X_ConfigCommon_r14 *SL_V2X_ConfigCommon; +#endif + +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *sib13_part; MBSFN_SubframeConfigList_t *MBSFNSubframeConfigList; MBSFN_AreaInfoList_r9_t *MBSFNArea_list; @@ -468,11 +546,18 @@ uint8_t do_SIB23(uint8_t Mod_id, BCCH_DL_SCH_Message_t *bcch_message = &RC.rrc[Mod_id]->carrier[CC_id].systemInformation; SystemInformationBlockType2_t **sib2 = &RC.rrc[Mod_id]->carrier[CC_id].sib2; SystemInformationBlockType3_t **sib3 = &RC.rrc[Mod_id]->carrier[CC_id].sib3; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) SystemInformationBlockType13_r9_t **sib13 = &RC.rrc[Mod_id]->carrier[CC_id].sib13; uint8_t MBMS_flag = RC.rrc[Mod_id]->carrier[CC_id].MBMS_flag; #endif +#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; + SystemInformationBlockType21_r14_t **sib21 = &RC.rrc[Mod_id]->carrier[CC_id].sib21; +#endif + if (bcch_message) { memset(bcch_message,0,sizeof(BCCH_DL_SCH_Message_t)); } else { @@ -490,7 +575,7 @@ uint8_t do_SIB23(uint8_t Mod_id, exit(-1); } -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) LOG_I(RRC,"[eNB %d] Configuration SIB2/3, MBMS = %d\n", Mod_id, MBMS_flag); #else LOG_I(RRC,"[eNB %d] Configuration SIB2/3\n", Mod_id); @@ -503,7 +588,7 @@ uint8_t do_SIB23(uint8_t Mod_id, sib3_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib3; *sib2 = &sib2_part->choice.sib2; *sib3 = &sib3_part->choice.sib3; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) if (MBMS_flag > 0) { sib13_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); @@ -513,14 +598,30 @@ uint8_t do_SIB23(uint8_t Mod_id, } #endif + +#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)); + sib21_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); + memset(sib18_part,0,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); + memset(sib19_part,0,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); + memset(sib21_part,0,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); + + sib18_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib18_v1250; + sib19_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib19_v1250; + sib21_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib21_v1430; + + *sib18 = &sib18_part->choice.sib18_v1250; + *sib19 = &sib19_part->choice.sib19_v1250; + *sib21 = &sib21_part->choice.sib21_v1430; + +#endif + + // sib2 (*sib2)->ac_BarringInfo = NULL; -#if defined(Rel10) || defined(Rel14) -#if 0 - (*sib2)->ssac_BarringForMMTEL_Voice_r9 = NULL; - (*sib2)->ssac_BarringForMMTEL_Video_r9 = NULL; - (*sib2)->ac_BarringForCSFB_r10 = NULL; -#endif +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) (*sib2)->ext1 = NULL; (*sib2)->ext2 = NULL; #endif @@ -595,10 +696,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 !defined(Rel10) && !defined(Rel14) +//#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) { @@ -723,7 +824,7 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->freqInfo.ul_CarrierFreq = NULL; (*sib2)->freqInfo.ul_Bandwidth = NULL; // (*sib2)->mbsfn_SubframeConfigList = NULL; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) if (MBMS_flag > 0) { LOG_I(RRC,"Adding MBSFN subframe Configuration 1 to SIB2\n"); @@ -762,14 +863,8 @@ uint8_t do_SIB23(uint8_t Mod_id, #endif (*sib2)->timeAlignmentTimerCommon=TimeAlignmentTimer_infinity;//TimeAlignmentTimer_sf5120; /// (*SIB3) -#if defined(Rel10) || defined(Rel14) +#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; (*sib3)->cellReselectionInfoCommon.speedStateReselectionPars=NULL; @@ -791,7 +886,7 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib3)->intraFreqCellReselectionInfo.t_ReselectionEUTRA_SF = (struct SpeedStateScaleFactors *)NULL; // SIB13 // fill in all elements of SIB13 if present -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) if (MBMS_flag > 0 ) { // Notification for mcch change @@ -839,6 +934,297 @@ uint8_t do_SIB23(uint8_t Mod_id, } #endif + +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + //TTN - for D2D + // SIB18 + //commRxPool_r12 + (*sib18)->commConfig_r12 = CALLOC (1, sizeof(*(*sib18)->commConfig_r12)); + SL_CommRxPoolList= &(*sib18)->commConfig_r12->commRxPool_r12; + memset(SL_CommRxPoolList,0,sizeof(*SL_CommRxPoolList)); + + SL_CommResourcePool = CALLOC(1, sizeof(*SL_CommResourcePool)); + memset(SL_CommResourcePool,0,sizeof(*SL_CommResourcePool)); + + SL_CommResourcePool->sc_CP_Len_r12 = configuration->rxPool_sc_CP_Len[CC_id]; + SL_CommResourcePool->sc_Period_r12 = configuration->rxPool_sc_Period[CC_id]; + SL_CommResourcePool->data_CP_Len_r12 = configuration->rxPool_data_CP_Len[CC_id]; + //sc_TF_ResourceConfig_r12 + SL_CommResourcePool->sc_TF_ResourceConfig_r12.prb_Num_r12 = configuration->rxPool_ResourceConfig_prb_Num[CC_id]; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.prb_Start_r12 = configuration->rxPool_ResourceConfig_prb_Start[CC_id]; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.prb_End_r12 = configuration->rxPool_ResourceConfig_prb_End[CC_id]; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.present = configuration->rxPool_ResourceConfig_offsetIndicator_present[CC_id]; + + if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_small_r12 ) { + SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = configuration->rxPool_ResourceConfig_offsetIndicator_choice[CC_id] ; + } else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_large_r12 ){ + SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.choice.large_r12 = configuration->rxPool_ResourceConfig_offsetIndicator_choice[CC_id] ; + } + + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present = configuration->rxPool_ResourceConfig_subframeBitmap_present[CC_id]; + if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs4_r12){ + //for BS4 + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + } else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs8_r12){ + //for BS8 + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + } else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs12_r12){ + //for BS12 + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs16_r12){ + //for BS16 + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs30_r12){ + //for BS30 + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs40_r12){ + //for BS40 + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs42_r12){ + //for BS42 + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + } + + //dataHoppingConfig_r12 + SL_CommResourcePool->dataHoppingConfig_r12.hoppingParameter_r12 = 0; + SL_CommResourcePool->dataHoppingConfig_r12.numSubbands_r12 = SL_HoppingConfigComm_r12__numSubbands_r12_ns1; + SL_CommResourcePool->dataHoppingConfig_r12.rb_Offset_r12 = 0; + + //ue_SelectedResourceConfig_r12 + SL_CommResourcePool->ue_SelectedResourceConfig_r12 = CALLOC (1, sizeof (*SL_CommResourcePool->ue_SelectedResourceConfig_r12)); + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.prb_Num_r12 = 20; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.prb_Start_r12 = 5; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.prb_End_r12 = 44; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.offsetIndicator_r12.present = SL_OffsetIndicator_r12_PR_small_r12; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = 0 ; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.present = SubframeBitmapSL_r12_PR_bs40_r12; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.size = 5; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf = CALLOC(1,5); + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.bits_unused = 0; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[0] = 0xF0; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[1] = 0xFF; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[2] = 0xFF; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[3] = 0xFF; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[4] = 0xFF; + //SL_CommResourcePool->ue_SelectedResourceConfig_r12->trpt_Subset_r12 = CALLOC (1, sizeof(*SL_CommResourcePool->ue_SelectedResourceConfig_r12->trpt_Subset_r12)); + //rxParametersNCell_r12 + SL_CommResourcePool->rxParametersNCell_r12 = CALLOC (1, sizeof (*SL_CommResourcePool->rxParametersNCell_r12)); + SL_CommResourcePool->rxParametersNCell_r12->tdd_Config_r12 = CALLOC (1, sizeof (*SL_CommResourcePool->rxParametersNCell_r12->tdd_Config_r12)); + SL_CommResourcePool->rxParametersNCell_r12->tdd_Config_r12->subframeAssignment = 0 ; + SL_CommResourcePool->rxParametersNCell_r12->tdd_Config_r12->specialSubframePatterns = 0; + SL_CommResourcePool->rxParametersNCell_r12->syncConfigIndex_r12 = 0; + //txParameters_r12 + SL_CommResourcePool->txParameters_r12 = CALLOC (1, sizeof (*SL_CommResourcePool->txParameters_r12)); + SL_CommResourcePool->txParameters_r12->sc_TxParameters_r12.alpha_r12 = Alpha_r12_al0; + SL_CommResourcePool->txParameters_r12->sc_TxParameters_r12.p0_r12 = 0; + + SL_CommResourcePool->ext1 = NULL ; + //end SL_CommResourcePool + //add SL_CommResourcePool to SL_CommRxPoolList + ASN_SEQUENCE_ADD(&SL_CommRxPoolList->list,SL_CommResourcePool); + //end commRxPool_r12 + + //TODO: commTxPoolNormalCommon_r12, similar to commRxPool_r12 + //TODO: commTxPoolExceptional_r12 + //TODO: commSyncConfig_r12 + // may add commTxResourceUC-ReqAllowed with Ext1 + (*sib18)->ext1 = NULL; + (*sib18)->lateNonCriticalExtension = NULL; + // end SIB18 + + // SIB19 + // fill in all elements of SIB19 if present + + //discConfig_r12 + (*sib19)->discConfig_r12 = CALLOC (1, sizeof(*(*sib19)->discConfig_r12)); + SL_DiscRxPoolList = &(*sib19)->discConfig_r12->discRxPool_r12; + memset(SL_DiscRxPoolList,0,sizeof(*SL_DiscRxPoolList)); + //fill SL_DiscResourcePool + SL_DiscResourcePool = CALLOC(1, sizeof(*SL_DiscResourcePool)); + + SL_DiscResourcePool->cp_Len_r12 = configuration->discRxPool_cp_Len[CC_id]; + SL_DiscResourcePool->discPeriod_r12 = configuration->discRxPool_discPeriod[CC_id]; + //sc_TF_ResourceConfig_r12 + SL_DiscResourcePool->numRetx_r12 = configuration->discRxPool_numRetx[CC_id]; + SL_DiscResourcePool->numRepetition_r12 = configuration->discRxPool_numRepetition[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.prb_Num_r12 = configuration->discRxPool_ResourceConfig_prb_Num[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.prb_Start_r12 = configuration->discRxPool_ResourceConfig_prb_Start[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.prb_End_r12 = configuration->discRxPool_ResourceConfig_prb_End[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.present = configuration->discRxPool_ResourceConfig_offsetIndicator_present[CC_id]; + if (SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_small_r12 ) { + SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = configuration->discRxPool_ResourceConfig_offsetIndicator_choice[CC_id] ; + } else if (SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_large_r12 ){ + SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.choice.large_r12 = configuration->discRxPool_ResourceConfig_offsetIndicator_choice[CC_id] ; + } + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present = configuration->discRxPool_ResourceConfig_subframeBitmap_present[CC_id]; + if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs4_r12){ + //for BS4 + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + } else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs8_r12){ + //for BS8 + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + } else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs12_r12){ + //for BS12 + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs16_r12){ + //for BS16 + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs30_r12){ + //for BS30 + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs40_r12){ + //for BS40 + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs42_r12){ + //for BS42 + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + } + + //add SL_DiscResourcePool to SL_DiscRxPoolList + ASN_SEQUENCE_ADD(&SL_DiscRxPoolList->list,SL_DiscResourcePool); + +/* + //for DiscRxPoolPS + (*sib19)->ext1 = CALLOC (1, sizeof(*(*sib19)->ext1)); + (*sib19)->ext1->discConfigPS_13 = CALLOC (1, sizeof(*((*sib19)->ext1->discConfigPS_13))); + + SL_DiscRxPoolPSList = &(*sib19)->ext1->discConfigPS_13->discRxPoolPS_r13; + memset(SL_DiscRxPoolPSList,0,sizeof(*SL_DiscRxPoolPSList)); + //fill SL_DiscResourcePool + SL_DiscResourcePoolPS = CALLOC(1, sizeof(*SL_DiscResourcePoolPS)); + + SL_DiscResourcePoolPS->cp_Len_r12 = configuration->discRxPoolPS_cp_Len[CC_id]; + SL_DiscResourcePoolPS->discPeriod_r12 = configuration->discRxPoolPS_discPeriod[CC_id]; + //sc_TF_ResourceConfig_r12 + SL_DiscResourcePoolPS->numRetx_r12 = configuration->discRxPoolPS_numRetx[CC_id]; + SL_DiscResourcePoolPS->numRepetition_r12 = configuration->discRxPoolPS_numRepetition[CC_id]; + + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.prb_Num_r12 = configuration->discRxPoolPS_ResourceConfig_prb_Num[CC_id]; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.prb_Start_r12 = configuration->discRxPoolPS_ResourceConfig_prb_Start[CC_id]; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.prb_End_r12 = configuration->discRxPoolPS_ResourceConfig_prb_End[CC_id]; + + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.offsetIndicator_r12.present = configuration->discRxPoolPS_ResourceConfig_offsetIndicator_present[CC_id]; + if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_small_r12 ) { + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = configuration->discRxPoolPS_ResourceConfig_offsetIndicator_choice[CC_id] ; + } else if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_large_r12 ){ + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.offsetIndicator_r12.choice.large_r12 = configuration->discRxPoolPS_ResourceConfig_offsetIndicator_choice[CC_id] ; + } + + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_present[CC_id]; + if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs4_r12){ + //for BS4 + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.size = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.bits_unused = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + } else if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs8_r12){ + //for BS8 + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.size = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.buf = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.bits_unused = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + } else if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs12_r12){ + //for BS12 + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.size = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.buf = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.bits_unused = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs16_r12){ + //for BS16 + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.size = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.buf = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.bits_unused = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs30_r12){ + //for BS30 + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.size = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.buf = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.bits_unused = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs40_r12){ + //for BS40 + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.size = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.bits_unused = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs42_r12){ + //for BS42 + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.size = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.buf = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.bits_unused = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + } + + //add SL_DiscResourcePool to SL_DiscRxPoolList + ASN_SEQUENCE_ADD(&SL_DiscRxPoolPSList->list,SL_DiscResourcePoolPS); +*/ + + (*sib19)->lateNonCriticalExtension = NULL; + //end SIB19 + + //SIB21 + (*sib21)->sl_V2X_ConfigCommon_r14 = CALLOC (1, sizeof(*(*sib21)->sl_V2X_ConfigCommon_r14)); + //SL_V2X_ConfigCommon= (*sib21)->sl_V2X_ConfigCommon_r14; + memset((*sib21)->sl_V2X_ConfigCommon_r14,0,sizeof(*(*sib21)->sl_V2X_ConfigCommon_r14)); + + struct SL_CommRxPoolListV2X_r14 *SL_CommRxPoolListV2X; + struct SL_CommResourcePoolV2X_r14 *SL_CommResourcePoolV2X; + (*sib21)->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14 = CALLOC(1, sizeof(*(*sib21)->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14)); + SL_CommRxPoolListV2X = (*sib21)->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14; + + SL_CommResourcePoolV2X = CALLOC(1, sizeof(*SL_CommResourcePoolV2X)); + memset(SL_CommResourcePoolV2X,0,sizeof(*SL_CommResourcePoolV2X)); + + SL_CommResourcePoolV2X->sl_OffsetIndicator_r14 = CALLOC(1, sizeof(*SL_CommResourcePoolV2X->sl_OffsetIndicator_r14)); + SL_CommResourcePoolV2X->sl_OffsetIndicator_r14->present = SL_OffsetIndicator_r12_PR_small_r12; + SL_CommResourcePoolV2X->sl_OffsetIndicator_r14->choice.small_r12 = 0; + SL_CommResourcePoolV2X->sl_Subframe_r14.present = SubframeBitmapSL_r14_PR_bs40_r14; + SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.size = 5; + SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.buf = CALLOC(1,5); + SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.bits_unused = 0; + SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.buf[0] = 0xF0; + SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.buf[1] = 0xFF; + SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.buf[2] = 0xFF; + SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.buf[3] = 0xFF; + SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.buf[4] = 0xFF; + + SL_CommResourcePoolV2X->adjacencyPSCCH_PSSCH_r14 = 1; + SL_CommResourcePoolV2X->sizeSubchannel_r14 = 10; + SL_CommResourcePoolV2X->numSubchannel_r14 = 5; + SL_CommResourcePoolV2X->startRB_Subchannel_r14 = 10; + + //rxParametersNCell_r12 + SL_CommResourcePoolV2X->rxParametersNCell_r14 = CALLOC (1, sizeof (*SL_CommResourcePoolV2X->rxParametersNCell_r14)); + SL_CommResourcePoolV2X->rxParametersNCell_r14->tdd_Config_r14 = CALLOC (1, sizeof (*SL_CommResourcePoolV2X->rxParametersNCell_r14->tdd_Config_r14)); + SL_CommResourcePoolV2X->rxParametersNCell_r14->tdd_Config_r14->subframeAssignment = 0 ; + SL_CommResourcePoolV2X->rxParametersNCell_r14->tdd_Config_r14->specialSubframePatterns = 0; + SL_CommResourcePoolV2X->rxParametersNCell_r14->syncConfigIndex_r14 = 0; + + ASN_SEQUENCE_ADD(&SL_CommRxPoolListV2X->list,SL_CommResourcePoolV2X); + //end SIB21 +#endif + bcch_message->message.present = BCCH_DL_SCH_MessageType_PR_c1; bcch_message->message.choice.c1.present = BCCH_DL_SCH_MessageType__c1_PR_systemInformation; /* memcpy((void*)&bcch_message.message.choice.c1.choice.systemInformation, @@ -852,19 +1238,19 @@ uint8_t do_SIB23(uint8_t Mod_id, sib2_part); ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list, sib3_part); -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) if (MBMS_flag > 0) { ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list,sib13_part); } - #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, + (void*)bcch_message, buffer, 900); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", @@ -899,7 +1285,7 @@ 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; RRCConnectionRequest_t *rrcConnectionRequest; memset((void *)&ul_ccch_msg,0,sizeof(UL_CCCH_Message_t)); @@ -939,7 +1325,7 @@ uint8_t do_RRCConnectionRequest(uint8_t Mod_id, uint8_t *buffer,uint8_t *rv) rrcConnectionRequest->criticalExtensions.choice.rrcConnectionRequest_r8.spare.bits_unused = 7; enc_rval = uper_encode_to_buffer(&asn_DEF_UL_CCCH_Message, NULL, - (void *)&ul_ccch_msg, + (void*)&ul_ccch_msg, buffer, 100); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", @@ -960,10 +1346,183 @@ 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); } + +//TTN for D2D - 3GPP TS 36.331 (Section 5.10.2.3) +uint8_t do_SidelinkUEInformation(uint8_t Mod_id, uint8_t *buffer, SL_DestinationInfoList_r12_t *destinationInfoList, long *discTxResourceReq, SL_TRIGGER_t mode) +{ + + asn_enc_rval_t enc_rval; + UL_DCCH_Message_t ul_dcch_msg; + SidelinkUEInformation_r12_t *sidelinkUEInformation; + ARFCN_ValueEUTRA_r9_t carrierFreq = 25655;//sidelink communication frequency (hardcoded - should come from SIB2) + + memset((void *)&ul_dcch_msg,0,sizeof(UL_DCCH_Message_t)); + ul_dcch_msg.message.present = UL_DCCH_MessageType_PR_messageClassExtension; + ul_dcch_msg.message.choice.messageClassExtension.present = UL_DCCH_MessageType__messageClassExtension_PR_c2; + ul_dcch_msg.message.choice.messageClassExtension.choice.c2.present = UL_DCCH_MessageType__messageClassExtension__c2_PR_sidelinkUEInformation_r12; + sidelinkUEInformation = &ul_dcch_msg.message.choice.messageClassExtension.choice.c2.choice.sidelinkUEInformation_r12; + + //3GPP TS 36.331 (Section 5.10.2.3) + sidelinkUEInformation->criticalExtensions.present = SidelinkUEInformation_r12__criticalExtensions_PR_c1; + sidelinkUEInformation->criticalExtensions.choice.c1.present = SidelinkUEInformation_r12__criticalExtensions__c1_PR_sidelinkUEInformation_r12; + switch(mode) { + //if SIB18 is available + case SL_RECEIVE_COMMUNICATION: // to receive sidelink communication + sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commRxInterestedFreq_r12 = CALLOC(1, + sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commRxInterestedFreq_r12)); + memcpy((void*)sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commRxInterestedFreq_r12, (void*)&carrierFreq, + sizeof(ARFCN_ValueEUTRA_r9_t)); + break; + + case SL_TRANSMIT_NON_RELAY_ONE_TO_MANY: //to transmit non-relay related one-to-many sidelink communication + //commTxResourceReq + sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commTxResourceReq_r12 = CALLOC(1, + sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commTxResourceReq_r12)); + sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commTxResourceReq_r12->carrierFreq_r12 = CALLOC(1, + sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commTxResourceReq_r12->carrierFreq_r12)); + memcpy((void*)sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commTxResourceReq_r12->carrierFreq_r12, (void*)&carrierFreq, + sizeof(ARFCN_ValueEUTRA_r9_t)); + memcpy(&sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commTxResourceReq_r12->destinationInfoList_r12, + destinationInfoList, + sizeof(SL_DestinationInfoList_r12_t)); + break; + + case SL_TRANSMIT_NON_RELAY_ONE_TO_ONE://transmit non-relay related one-to-one sidelink communication + //if commTxResourceUC-ReqAllowed is included in SIB18 + sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension = CALLOC(1, + sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension)); + + sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceReqUC_r13 = CALLOC(1, + sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceReqUC_r13)); + sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceReqUC_r13->carrierFreq_r12 = CALLOC(1, + sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceReqUC_r13->carrierFreq_r12)); + memcpy((void*)sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceReqUC_r13->carrierFreq_r12, (void*)&carrierFreq, + sizeof (ARFCN_ValueEUTRA_r9_t)); + memcpy(&sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceReqUC_r13->destinationInfoList_r12, + destinationInfoList, + sizeof(SL_DestinationInfoList_r12_t)); + break; + + case SL_TRANSMIT_RELAY_ONE_TO_ONE: //transmit relay related one-to-one sidelink communication + //if SIB19 includes discConfigRelay and UE acts a relay or UE has a selected relay + sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension = CALLOC(1, + sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension)); + sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13= CALLOC(1, + sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13)); + sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelayUC_r13 = CALLOC(1, + sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelayUC_r13)); + memcpy(&sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelayUC_r13->destinationInfoList_r12, + destinationInfoList, + sizeof(*destinationInfoList)); + //set ue-type to relayUE or remoteUE + sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->ue_Type_r13 =SidelinkUEInformation_v1310_IEs__commTxResourceInfoReqRelay_r13__ue_Type_r13_relayUE; + //sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12->nonCriticalExtension->commTxResourceInfoReqRelay_r13->ue_Type_r13 =SidelinkUEInformation_v1310_IEs__commTxResourceInfoReqRelay_r13__ue_Type_r13_remoteUE; + break; + + case SL_TRANSMIT_RELAY_ONE_TO_MANY: //transmit relay related one-to-many sidelink communication + //if SIB19 includes discConfigRelay and UE acts a relay + //set ue-type to relayUE + sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension = CALLOC(1, + sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension)); + sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13= CALLOC(1, + sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13)); + sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelay_r13 = CALLOC(1, + sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelay_r13)); + sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->ue_Type_r13 =SidelinkUEInformation_v1310_IEs__commTxResourceInfoReqRelay_r13__ue_Type_r13_relayUE; + memcpy(&sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelay_r13->destinationInfoList_r12, + destinationInfoList, + sizeof(*destinationInfoList)); + break; + + //if SIB19 is available + //we consider only one frequency - a serving frequency + case SL_RECEIVE_DISCOVERY: //receive sidelink discovery announcements + + sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.discRxInterest_r12 = CALLOC(1, + sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.discRxInterest_r12)); + *sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.discRxInterest_r12 = SidelinkUEInformation_r12_IEs__discRxInterest_r12_true; + break; + case SL_TRANSMIT_NON_PS_DISCOVERY://to transmit non-PS related sidelink discovery announcements + //for the first frequency + sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.discTxResourceReq_r12 = CALLOC(1, + sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.discTxResourceReq_r12)); + + memcpy((void*)sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.discTxResourceReq_r12, + (void*)discTxResourceReq, + sizeof(long)); + //for additional frequency + break; + + case SL_TRANSMIT_PS_DISCOVERY://to transmit PS related sidelink discovery announcements + //if to transmit non-relay PS related discovery announcements and SIB19 includes discConfigPS + //if UE is acting as relay UE and SIB includes discConfigRelay (relay threshold condition) + //if relay UE/has a selected relay UE and if SIB19 includes discConfigRelay + sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension = CALLOC(1, + sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension)); + sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->discTxResourceReqPS_r13 = CALLOC(1, + sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->discTxResourceReqPS_r13)); + sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->discTxResourceReqPS_r13->discTxResourceReq_r13 = *discTxResourceReq; + break; + //SIB21 + case SL_RECEIVE_V2X: + //TODO + break; + case SL_TRANSMIT_V2X: + //TODO + break; + //TODO: request sidelink discovery transmission/reception gaps + //TODO: report the system information parameters related to sidelink discovery of carriers other than the primary + default: + break; + } + +#ifdef XER_PRINT + xer_fprint(stdout, &asn_DEF_UL_DCCH_Message, (void*)&ul_dcch_msg); +#endif + + + 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 defined(ENABLE_ITTI) +# if !defined(DISABLE_XER_SPRINT) + { + char message_string[20000]; + size_t message_string_size; + + if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_UL_DCCH_Message, (void *) &ul_dcch_msg)) > 0) { + MessageDef *msg_p; + + msg_p = itti_alloc_new_message_sized (TASK_RRC_UE, RRC_UL_DCCH, message_string_size + sizeof (IttiMsgText)); + msg_p->ittiMsg.rrc_ul_dcch.size = message_string_size; + memcpy(&msg_p->ittiMsg.rrc_ul_dcch.text, message_string, message_string_size); + + itti_send_msg_to_task(TASK_UNKNOWN, NB_eNB_INST + Mod_id, msg_p); + } + } +# endif +#endif + +#ifdef USER_MODE + LOG_D(RRC,"SidelinkUEInformation Encoded %d bits (%d bytes)\n",enc_rval.encoded,(enc_rval.encoded+7)/8); +#endif + + return((enc_rval.encoded+7)/8); + +} + + uint8_t do_RRCConnectionSetupComplete(uint8_t Mod_id, uint8_t *buffer, const uint8_t Transaction_id, const int dedicatedInfoNASLength, const char *dedicatedInfoNAS) { asn_enc_rval_t enc_rval; @@ -1005,7 +1564,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, + (void*)&ul_dcch_msg, buffer, 100); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", @@ -1052,7 +1611,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, + (void*)&ul_dcch_msg, buffer, 100); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", @@ -1091,7 +1650,6 @@ do_RRCConnectionSetup( struct PhysicalConfigDedicated **physicalConfigDedicated) { 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]; long *logicalchannelgroup = NULL; @@ -1106,7 +1664,11 @@ do_RRCConnectionSetup( #endif PhysicalConfigDedicated_t *physicalConfigDedicated2 = NULL; DL_CCCH_Message_t dl_ccch_msg; - RRCConnectionSetup_t *rrcConnectionSetup = NULL; + + 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; @@ -1231,7 +1793,7 @@ do_RRCConnectionSetup( physicalConfigDedicated2->tpc_PDCCH_ConfigPUSCH->choice.setup.tpc_RNTI.bits_unused=0; // CQI ReportConfig physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic=CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic)); -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) *physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic= CQI_ReportModeAperiodic_rm30; #else *physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic=CQI_ReportConfig__cqi_ReportModeAperiodic_rm30; // HLC CQI, no PMI @@ -1353,7 +1915,28 @@ do_RRCConnectionSetup( physicalConfigDedicated2->antennaInfo->choice.explicitValue.ue_TransmitAntennaSelection.choice.release = 0; // 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) @@ -1407,11 +1990,15 @@ do_RRCConnectionSetup( #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message, NULL, - (void *)&dl_ccch_msg, + (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) { @@ -1428,8 +2015,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); // free(SRB1_rlc_config); @@ -1468,11 +2055,15 @@ do_SecurityModeCommand( #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message, NULL, - (void *)&dl_dcch_msg, + (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) { @@ -1534,11 +2125,15 @@ do_UECapabilityEnquiry( #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message, NULL, - (void *)&dl_dcch_msg, + (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) { @@ -1593,11 +2188,13 @@ do_RRCConnectionReconfiguration( RSRP_Range_t *rsrp, C_RNTI_t *cba_rnti, struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList - *dedicatedInfoNASList - -#if defined(Rel10) || defined(Rel14) + *dedicatedInfoNASList, + SL_CommConfig_r12_t *sl_CommConfig, + SL_DiscConfig_r12_t *sl_DiscConfig +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) , SCellToAddMod_r10_t *SCell_config #endif + ) //------------------------------------------------------------------------------ { @@ -1679,13 +2276,56 @@ do_RRCConnectionReconfiguration( rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.dedicatedInfoNASList = dedicatedInfoNASList; rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.securityConfigHO = NULL; + //TTN for D2D + //allocate dedicated resource pools for SL communication (sl_CommConfig_r12) + if (sl_CommConfig != NULL) { + LOG_I(RRC,"[RRCConnectionReconfiguration] allocating a dedicated resource pool for SL communication \n"); + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension)); + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension)); + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension)); + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension)); + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension)); + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12 = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12)); + memcpy((void*)rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12, (void*)sl_CommConfig, + sizeof(SL_CommConfig_r12_t)); + } + + //allocate dedicated resource pools for SL discovery (sl_DiscConfig) + if (sl_DiscConfig != NULL){ + LOG_I(RRC,"[RRCConnectionReconfiguration] allocating a dedicated resource pool for SL discovery \n"); + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension)); + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension)); + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension)); + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension)); + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension)); + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_DiscConfig_r12 = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_DiscConfig_r12)); + memcpy((void*)rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_DiscConfig_r12, (void*)sl_DiscConfig, + sizeof(SL_DiscConfig_r12_t)); + } + enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message, NULL, - (void *)&dl_dcch_msg, + (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 @@ -1872,11 +2512,15 @@ do_RRCConnectionReestablishment( #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message, NULL, - (void *)&dl_ccch_msg, + (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) { @@ -1921,11 +2565,15 @@ do_RRCConnectionReestablishmentReject( #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message, NULL, - (void *)&dl_ccch_msg, + (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) { @@ -1971,11 +2619,15 @@ do_RRCConnectionReject( #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message, NULL, - (void *)&dl_ccch_msg, + (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) { @@ -2020,7 +2672,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, + (void*)&dl_dcch_msg, buffer, RRC_BUF_SIZE); return((enc_rval.encoded+7)/8); @@ -2029,7 +2681,7 @@ uint8_t do_RRCConnectionRelease( uint8_t TMGI[5] = {4,3,2,1,0};//TMGI is a string of octet, ref. TS 24.008 fig. 10.5.4a -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) uint8_t do_MBSFNAreaConfig(uint8_t Mod_id, uint8_t sync_area, uint8_t *buffer, @@ -2136,11 +2788,15 @@ uint8_t do_MBSFNAreaConfig(uint8_t Mod_id, #endif enc_rval = uper_encode_to_buffer(&asn_DEF_MCCH_Message, NULL, - (void *)mcch_message, + (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) { @@ -2181,7 +2837,7 @@ uint8_t do_MeasurementReport(uint8_t Mod_id, uint8_t *buffer,int measid,int phy_ measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.nonCriticalExtension=CALLOC(1, sizeof(*measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.nonCriticalExtension)); measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.measResults.measId=measid; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.measResults.measResultPCell.rsrpResult=rsrp_s; measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.measResults.measResultPCell.rsrqResult=rsrq_s; #else @@ -2238,11 +2894,15 @@ 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, + (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) { @@ -2352,10 +3012,15 @@ uint8_t do_Paging(uint8_t Mod_id, uint8_t *buffer, ue_paging_identity_t ue_pagin /* add to list */ ASN_SEQUENCE_ADD(&pcch_msg.message.choice.c1.choice.paging.pagingRecordList->list, paging_record_p); 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, NULL, (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); + 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, 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 @@ -2502,7 +3167,7 @@ OAI_UECapability_t *fill_ue_capability(char *UE_EUTRA_Capability_xer_fname) #endif enc_rval = uper_encode_to_buffer(&asn_DEF_UE_EUTRA_Capability, NULL, - (void *)UE_EUTRA_Capability, + (void*)UE_EUTRA_Capability, &UECapability.sdu[0], MAX_UE_CAPABILITY_SIZE); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg.h b/openair2/RRC/LTE/MESSAGES/asn1_msg.h index 0dad83f1a6..a4da38c019 100644 --- a/openair2/RRC/LTE/MESSAGES/asn1_msg.h +++ b/openair2/RRC/LTE/MESSAGES/asn1_msg.h @@ -40,6 +40,7 @@ #include /* for _ASN_DEFAULT_STACK_MAX */ #include "RRC/LTE/rrc_defs.h" +#include "SL-DestinationInfoList-r12.h" /* * The variant of the above function which dumps the BASIC-XER (XER_F_BASIC) @@ -103,6 +104,14 @@ routine only generates an mo-data establishment cause. uint8_t do_RRCConnectionRequest(uint8_t Mod_id, uint8_t *buffer,uint8_t *rv); +/** +\brief Generate an SidelinkUEInformation UL-DCCH-Message (UE). +@param destinationInfoList Pointer to a list of destination for which UE requests E-UTRAN to assign dedicated resources +@param discTxResourceReq Pointer to number of discovery messages for discovery announcements for which UE requests E-UTRAN to assign dedicated resources +@param mode Indicates different requests from upper layers +@returns Size of encoded bit stream in bytes*/ +uint8_t do_SidelinkUEInformation(uint8_t Mod_id, uint8_t *buffer, SL_DestinationInfoList_r12_t *destinationInfoList, long *discTxResourceReq, SL_TRIGGER_t mode); + /** \brief Generate an RRCConnectionSetupComplete UL-DCCH-Message (UE) @param buffer Pointer to PER-encoded ASN.1 description of UL-DCCH-Message PDU @returns Size of encoded bit stream in bytes*/ @@ -186,8 +195,10 @@ do_RRCConnectionReconfiguration( struct MeasConfig__speedStatePars *speedStatePars, RSRP_Range_t *rsrp, C_RNTI_t *cba_rnti, - struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList* dedicatedInfoNASList -#if defined(Rel10) || defined(Rel14) + struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList* dedicatedInfoNASList, + SL_CommConfig_r12_t *sl_CommConfig, + SL_DiscConfig_r12_t *sl_DiscConfig +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) , SCellToAddMod_r10_t *SCell_config #endif ); @@ -250,7 +261,7 @@ uint8_t do_RRCConnectionRelease(uint8_t Mod_id, uint8_t *buffer,int Transaction_ * @returns Size of encoded bit stream in bytes */ uint8_t do_MCCHMessage(uint8_t *buffer); -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) /*** * \brief Generate an MCCH-Message (eNB). This routine configures MBSFNAreaConfiguration (PMCH-InfoList and Subframe Allocation for MBMS data) * @param buffer Pointer to PER-encoded ASN.1 description of MCCH-Message PDU diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c b/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c index 303b9172c1..51361be030 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 @@ -123,7 +123,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, + (void*)mib_NB_IoT, carrier->MIB_NB_IoT, 100); @@ -332,7 +332,7 @@ uint8_t do_SIB1_NB_IoT(uint8_t Mod_id, int CC_id, #endif enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_DL_SCH_Message_NB, NULL, - (void *)bcch_message, + (void*)bcch_message, carrier->SIB1_NB_IoT, 100); @@ -556,7 +556,7 @@ uint8_t do_SIB23_NB_IoT(uint8_t Mod_id, #endif enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_DL_SCH_Message_NB, NULL, - (void *)bcch_message, + (void*)bcch_message, carrier->SIB23_NB_IoT, 900); // AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", @@ -732,11 +732,11 @@ uint8_t do_RRCConnectionSetup_NB_IoT( #ifdef XER_PRINT 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); + enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message_NB, + NULL, + (void*)&dl_ccch_msg_NB_IoT, + buffer, + 100); if (enc_rval.encoded <= 0) { LOG_F(RRC, "ASN1 message encoding failed (%s, %lu)!\n", @@ -778,7 +778,7 @@ uint8_t do_SecurityModeCommand_NB_IoT( #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message_NB, NULL, - (void *)&dl_dcch_msg_NB_IoT, + (void*)&dl_dcch_msg_NB_IoT, buffer, 100); @@ -832,7 +832,7 @@ uint8_t do_UECapabilityEnquiry_NB_IoT( #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message_NB, NULL, - (void *)&dl_dcch_msg_NB_IoT, + (void*)&dl_dcch_msg_NB_IoT, buffer, 100); @@ -917,7 +917,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, + (void*)&dl_dcch_msg_NB_IoT, buffer, RRC_BUF_SIZE); @@ -956,7 +956,7 @@ uint8_t do_RRCConnectionReestablishmentReject_NB_IoT( #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message_NB, NULL, - (void *)&dl_ccch_msg_NB_IoT, + (void*)&dl_ccch_msg_NB_IoT, buffer, 100); @@ -1019,7 +1019,7 @@ uint8_t do_RRCConnectionReject_NB_IoT( #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message_NB, NULL, - (void *)&dl_ccch_msg_NB_IoT, + (void*)&dl_ccch_msg_NB_IoT, buffer, 100); @@ -1132,10 +1132,40 @@ uint8_t do_RRCConnectionReestablishment_NB_IoT( buffer, RRC_BUF_SIZE); - if (enc_rval.encoded <= 0) { - LOG_F(RRC, "ASN1 message encoding failed (%s, %li)!\n", - enc_rval.failed_type->name, enc_rval.encoded); - } + asn_enc_rval_t enc_rval; + DL_CCCH_Message_NB_t dl_ccch_msg_NB_IoT; + RRCConnectionReestablishment_NB_t* rrcConnectionReestablishment_NB_IoT; + + memset(&dl_ccch_msg_NB_IoT, 0, sizeof(DL_CCCH_Message_NB_t)); + + dl_ccch_msg_NB_IoT.message.present = DL_CCCH_MessageType_NB_PR_c1; + dl_ccch_msg_NB_IoT.message.choice.c1.present = DL_CCCH_MessageType_NB__c1_PR_rrcConnectionReestablishment_r13; + rrcConnectionReestablishment_NB_IoT = &dl_ccch_msg_NB_IoT.message.choice.c1.choice.rrcConnectionReestablishment_r13; + + //rrcConnectionReestablishment_NB + rrcConnectionReestablishment_NB_IoT->rrc_TransactionIdentifier = Transaction_id; + rrcConnectionReestablishment_NB_IoT->criticalExtensions.present = RRCConnectionReestablishment_NB__criticalExtensions_PR_c1; + rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.present = RRCConnectionReestablishment_NB__criticalExtensions__c1_PR_rrcConnectionReestablishment_r13; + + rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.radioResourceConfigDedicated_r13.srb_ToAddModList_r13 = SRB_list_NB_IoT; + rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.radioResourceConfigDedicated_r13.drb_ToAddModList_r13 = NULL; + rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.radioResourceConfigDedicated_r13.drb_ToReleaseList_r13 = NULL; + rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.radioResourceConfigDedicated_r13.rlf_TimersAndConstants_r13= NULL; + rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.radioResourceConfigDedicated_r13.mac_MainConfig_r13= NULL; + rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.radioResourceConfigDedicated_r13.physicalConfigDedicated_r13 = NULL; + + 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); + + if (enc_rval.encoded <= 0) { + LOG_F(RRC, "ASN1 message encoding failed (%s, %li)!\n", + enc_rval.failed_type->name, enc_rval.encoded); + } #ifdef XER_PRINT xer_fprint(stdout,&asn_DEF_DL_CCCH_Message_NB,(void *)&dl_ccch_msg_NB_IoT); @@ -1185,7 +1215,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, + (void*)&dl_dcch_msg_NB_IoT, buffer, RRC_BUF_SIZE);//check return((enc_rval.encoded+7)/8); 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 a4e4938814..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 @@ -122,7 +122,7 @@ typedef struct UE_RRC_INFO_NB_IoT_s { uint8_t SIB1systemInfoValueTag; uint32_t SIStatus; uint32_t SIcnt; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) uint8_t MCCHStatus[8]; // MAX_MBSFN_AREA #endif uint8_t SIwindowsize; //!< Corresponds to the SIB1 si-WindowLength parameter. The unit is ms. Possible values are (final): 1,2,5,10,15,20,40 @@ -513,7 +513,7 @@ typedef struct UE_RRC_INST_NB_IoT_s { SystemInformationBlockType10_t *sib10[NB_CNX_UE]; SystemInformationBlockType11_t *sib11[NB_CNX_UE]; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) uint8_t MBMS_flag; uint8_t *MCCH_MESSAGE[NB_CNX_UE]; uint8_t sizeof_MCCH_MESSAGE[NB_CNX_UE]; diff --git a/openair2/RRC/LTE/rrc_UE.c b/openair2/RRC/LTE/rrc_UE.c index f14819778c..498a004bd6 100644 --- a/openair2/RRC/LTE/rrc_UE.c +++ b/openair2/RRC/LTE/rrc_UE.c @@ -30,6 +30,7 @@ #define RRC_UE #define RRC_UE_C +#define _GNU_SOURCE #include "assertions.h" #include "hashtable.h" @@ -40,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 @@ -53,7 +54,7 @@ #include "DL-DCCH-Message.h" #include "BCCH-DL-SCH-Message.h" #include "PCCH-Message.h" -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) #include "MCCH-Message.h" #endif #include "MeasConfig.h" @@ -82,6 +83,19 @@ #include "SIMULATION/TOOLS/sim.h" // for taus +#include "openair2/LAYER2/MAC/mac_extern.h" + +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) +#include "SL-Preconfiguration-r12.h" + +//for D2D +int ctrl_sock_fd; +#define BUFSIZE 1024 +struct sockaddr_in prose_app_addr; +int slrb_id; +int send_ue_information = 0; +#endif + // for malloc_clear #include "PHY/defs_UE.h" @@ -124,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, @@ -132,8 +146,9 @@ static uint8_t check_trigger_meas_event( Q_OffsetRange_t ofn, Q_OffsetRange_t ocn, Hysteresis_t hys, Q_OffsetRange_t ofs, Q_OffsetRange_t ocs, long a3_offset, TimeToTrigger_t ttt); -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) static void decode_MBSFNAreaConfiguration(module_id_t module_idP, uint8_t eNB_index, frame_t frameP,uint8_t mbsfn_sync_area); +uint8_t rrc_ue_generate_SidelinkUEInformation( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,SL_DestinationInfoList_r12_t *destinationInfoList, long *discTxResourceReq, SL_TRIGGER_t mode); #endif @@ -259,9 +274,13 @@ static void init_SI_UE( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_ UE_rrc_inst[ctxt_pP->module_id].sib9[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType9_t) ); UE_rrc_inst[ctxt_pP->module_id].sib10[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType10_t) ); UE_rrc_inst[ctxt_pP->module_id].sib11[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType11_t) ); -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) UE_rrc_inst[ctxt_pP->module_id].sib12[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType12_r9_t) ); UE_rrc_inst[ctxt_pP->module_id].sib13[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType13_r9_t) ); + UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType18_r12_t) ); + UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType19_r12_t) ); + UE_rrc_inst[ctxt_pP->module_id].sib21[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType21_r14_t) ); + #endif UE_rrc_inst[ctxt_pP->module_id].SI[eNB_index] = (uint8_t *)malloc16_clear( 64 ); UE_rrc_inst[ctxt_pP->module_id].si[eNB_index] = (SystemInformation_t *)malloc16_clear( sizeof(SystemInformation_t) ); @@ -269,25 +288,182 @@ static void init_SI_UE( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_ UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIcnt = 0; } -#if defined(Rel10) || defined(Rel14) -//----------------------------------------------------------------------------- -#if 0 -static void init_MCCH_UE(module_id_t ue_mod_idP, uint8_t eNB_index) +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) +void init_SL_preconfig(UE_RRC_INST *UE, const 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)); + LOG_I(RRC,"Initializing Sidelink Pre-configuration for UE\n"); - for (i=0; i<8; i++) { // MAX MBSFN Area - UE_rrc_inst[ue_mod_idP].Info[eNB_index].MCCHStatus[i] = 0; - } -} + UE->SL_Preconfiguration[eNB_index] = malloc16_clear( sizeof(struct SL_Preconfiguration_r12) ); + UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.rohc_Profiles_r12.profile0x0001_r12 = true; + UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.carrierFreq_r12 = 3350; + UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.maxTxPower_r12 = 0; + UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.additionalSpectrumEmission_r12 = 0; + UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.sl_bandwidth_r12 = SL_PreconfigGeneral_r12__sl_bandwidth_r12_n50; + UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.tdd_ConfigSL_r12.subframeAssignmentSL_r12 = TDD_ConfigSL_r12__subframeAssignmentSL_r12_none; + + UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncCP_Len_r12 = SL_CP_Len_r12_normal; + UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncOffsetIndicator1_r12 = 0; + UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncOffsetIndicator2_r12 = 0; + UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncTxParameters_r12 = 0; + UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncTxThreshOoC_r12 = 0; + UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.filterCoefficient_r12 = FilterCoefficient_fc0; + UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncRefMinHyst_r12 = SL_PreconfigSync_r12__syncRefMinHyst_r12_dB0; + UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncRefDiffHyst_r12 = SL_PreconfigSync_r12__syncRefDiffHyst_r12_dB0; + UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.ext1 = malloc16_clear(sizeof(struct SL_PreconfigSync_r12__ext1)); + UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.ext1->syncTxPeriodic_r13 = NULL; + + struct SL_PreconfigCommPool_r12 *preconfigpool = malloc16_clear(sizeof(struct SL_PreconfigCommPool_r12)); + preconfigpool->sc_CP_Len_r12 = SL_CP_Len_r12_normal; + preconfigpool->sc_Period_r12 = SL_PeriodComm_r12_sf40; + // 20 PRBs for SL communications + preconfigpool->sc_TF_ResourceConfig_r12.prb_Num_r12 = 20; + preconfigpool->sc_TF_ResourceConfig_r12.prb_Start_r12 = 5; + preconfigpool->sc_TF_ResourceConfig_r12.prb_End_r12 = 44; + // Offset set to 0 subframes + preconfigpool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.present = SL_OffsetIndicator_r12_PR_small_r12; + preconfigpool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = 0; + // 40 ms SL Period + preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present = SubframeBitmapSL_r12_PR_bs40_r12; + preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf = CALLOC(1,5); + preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.size = 5; + preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.bits_unused = 0; + // 1st 4 subframes for PSCCH + preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[0] = 0xF; + preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[1] = 0; + preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[2] = 0; + preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[3] = 0; + preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[4] = 0; + preconfigpool->sc_TxParameters_r12 = 0; + + preconfigpool->data_CP_Len_r12 = SL_CP_Len_r12_normal; + // 20 PRBs for SL communications + preconfigpool->data_TF_ResourceConfig_r12.prb_Num_r12 = 20; + preconfigpool->data_TF_ResourceConfig_r12.prb_Start_r12 = 5; + preconfigpool->data_TF_ResourceConfig_r12.prb_End_r12 = 44; + // Offset set to 0 subframes + preconfigpool->data_TF_ResourceConfig_r12.offsetIndicator_r12.present = SL_OffsetIndicator_r12_PR_small_r12; + preconfigpool->data_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = 0; + // 40 ms SL Period + preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.present = SubframeBitmapSL_r12_PR_bs40_r12; + preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf = CALLOC(1,5); + preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.size = 5; + preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.bits_unused = 0; + // last 36 subframes for PSCCH + preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[0] = 0xF0; + preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[1] = 0xFF; + preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[2] = 0xFF; + preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[3] = 0xFF; + preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[5] = 0xFF; + + preconfigpool->dataHoppingConfig_r12.hoppingParameter_r12 = 0; + preconfigpool->dataHoppingConfig_r12.numSubbands_r12 = SL_HoppingConfigComm_r12__numSubbands_r12_ns1; + preconfigpool->dataHoppingConfig_r12.rb_Offset_r12 = 0; + + preconfigpool->dataTxParameters_r12 = 0; + + ASN_SEQUENCE_ADD(&UE->SL_Preconfiguration[eNB_index]->preconfigComm_r12.list,preconfigpool); + + // Rel13 extensions + UE->SL_Preconfiguration[eNB_index]->ext1 = NULL; +/* + // Establish a SLRB (using DRB 3 for now) + protocol_ctxt_t ctxt; + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, 0, ENB_FLAG_NO, 0x1234, 0, 0,0); + + UE->DRB_config[0][0] = CALLOC(1,sizeof(struct DRB_ToAddMod)); + UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); + UE->DRB_config[0][0]->drb_Identity = 3; + UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); + // allowed value 5..15, value : x+4 + *(UE->DRB_config[0][0]->eps_BearerIdentity) = 3; + UE->DRB_config[0][0]->logicalChannelIdentity = CALLOC(1, sizeof(long)); + *(UE->DRB_config[0][0]->logicalChannelIdentity) = UE->DRB_config[0][0]->drb_Identity; //(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2 + + // TTN - Establish a new SLRB for PC5-S (using DRB 10 for now) + UE->DRB_config[0][1] = CALLOC(1,sizeof(struct DRB_ToAddMod)); + UE->DRB_config[0][1]->eps_BearerIdentity = CALLOC(1, sizeof(long)); + UE->DRB_config[0][1]->drb_Identity = 10; + UE->DRB_config[0][1]->eps_BearerIdentity = CALLOC(1, sizeof(long)); + // allowed value 5..15, value : x+4 + *(UE->DRB_config[0][1]->eps_BearerIdentity) = 10; + UE->DRB_config[0][1]->logicalChannelIdentity = CALLOC(1, sizeof(long)); + *(UE->DRB_config[0][1]->logicalChannelIdentity) = UE->DRB_config[0][1]->drb_Identity; //(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2 + + struct RLC_Config *DRB_rlc_config = CALLOC(1,sizeof(struct RLC_Config)); + struct PDCP_Config *DRB_pdcp_config = CALLOC(1,sizeof(struct PDCP_Config)); + struct PDCP_Config__rlc_UM *PDCP_rlc_UM = CALLOC(1,sizeof(struct PDCP_Config__rlc_UM)); + struct LogicalChannelConfig *DRB_lchan_config = CALLOC(1,sizeof(struct LogicalChannelConfig)); + struct LogicalChannelConfig__ul_SpecificParameters + *DRB_ul_SpecificParameters = CALLOC(1, sizeof(struct LogicalChannelConfig__ul_SpecificParameters)); + long *logicalchannelgroup_drb = CALLOC(1, sizeof(long)); + + DRB_rlc_config->present = RLC_Config_PR_um_Bi_Directional; + DRB_rlc_config->choice.um_Bi_Directional.ul_UM_RLC.sn_FieldLength = SN_FieldLength_size10; + DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.sn_FieldLength = SN_FieldLength_size10; + DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = T_Reordering_ms35; + UE->DRB_config[0][0]->rlc_Config = DRB_rlc_config; + UE->DRB_config[0][1]->rlc_Config = DRB_rlc_config; + + DRB_pdcp_config = CALLOC(1, sizeof(*DRB_pdcp_config)); + UE->DRB_config[0][0]->pdcp_Config = DRB_pdcp_config; + UE->DRB_config[0][1]->pdcp_Config = DRB_pdcp_config; + DRB_pdcp_config->discardTimer = CALLOC(1, sizeof(long)); + *DRB_pdcp_config->discardTimer = PDCP_Config__discardTimer_infinity; + DRB_pdcp_config->rlc_AM = NULL; + DRB_pdcp_config->rlc_UM = NULL; + + // avoid gcc warnings + (void)PDCP_rlc_UM; + + DRB_pdcp_config->rlc_UM = PDCP_rlc_UM; + PDCP_rlc_UM->pdcp_SN_Size = PDCP_Config__rlc_UM__pdcp_SN_Size_len12bits; + DRB_pdcp_config->headerCompression.present = PDCP_Config__headerCompression_PR_notUsed; + + UE->DRB_config[0][0]->logicalChannelConfig = DRB_lchan_config; + UE->DRB_config[0][1]->logicalChannelConfig = DRB_lchan_config; + DRB_ul_SpecificParameters = CALLOC(1, sizeof(*DRB_ul_SpecificParameters)); + DRB_lchan_config->ul_SpecificParameters = DRB_ul_SpecificParameters; + + DRB_ul_SpecificParameters->priority = 12; // lower priority than srb1, srb2 and other dedicated bearer + DRB_ul_SpecificParameters->prioritisedBitRate =LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8 ; + //LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity; + DRB_ul_SpecificParameters->bucketSizeDuration = + LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms50; + + // LCG for DTCH can take the value from 1 to 3 as defined in 36331: normally controlled by upper layers (like RRM) + + *logicalchannelgroup_drb = 1; + DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb; + + UE->DRB_configList = CALLOC(1,sizeof(DRB_ToAddModList_t)); + ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][0]); + ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][1]); + + rrc_pdcp_config_asn1_req(&ctxt, + (SRB_ToAddModList_t *) NULL, + UE->DRB_configList, + (DRB_ToReleaseList_t*) NULL, + 0xff, NULL, NULL, NULL +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + , (PMCH_InfoList_r9_t *) NULL #endif + ,NULL); + + rrc_rlc_config_asn1_req(&ctxt, + (SRB_ToAddModList_t*)NULL, + UE->DRB_configList, + (DRB_ToReleaseList_t*)NULL +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + ,(PMCH_InfoList_r9_t *)NULL +#endif + ); +*/ +} + #endif //----------------------------------------------------------------------------- -static void openair_rrc_ue_init_security( const protocol_ctxt_t *const ctxt_pP ) +void openair_rrc_ue_init_security( const protocol_ctxt_t* const ctxt_pP ) { #if defined(ENABLE_SECURITY) // uint8_t *kRRCenc; @@ -316,7 +492,7 @@ char openair_rrc_ue_init( const module_id_t ue_mod_idP, const unsigned char eNB_ PROTOCOL_RRC_CTXT_ARGS(&ctxt)); rrc_set_state (ue_mod_idP, RRC_STATE_INACTIVE); rrc_set_sub_state (ue_mod_idP, RRC_SUB_STATE_INACTIVE); - LOG_D(RRC,"[UE %d] INIT State = RRC_IDLE (eNB %d)\n",ctxt.module_id,eNB_index); + LOG_I(RRC,"[UE %d] INIT State = RRC_IDLE (eNB %d)\n",ctxt.module_id,eNB_index); UE_rrc_inst[ctxt.module_id].Info[eNB_index].State=RRC_IDLE; UE_rrc_inst[ctxt.module_id].Info[eNB_index].T300_active = 0; UE_rrc_inst[ctxt.module_id].Info[eNB_index].T304_active = 0; @@ -327,7 +503,7 @@ char openair_rrc_ue_init( const module_id_t ue_mod_idP, const unsigned char eNB_ UE_rrc_inst[ctxt.module_id].Srb2[eNB_index].Active=0; UE_rrc_inst[ctxt.module_id].HandoverInfoUe.measFlag=1; UE_rrc_inst[ctxt.module_id].ciphering_algorithm = CipheringAlgorithm_r12_eea0; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 2, 0)) UE_rrc_inst[ctxt.module_id].integrity_algorithm = SecurityAlgorithmConfig__integrityProtAlgorithm_eia0_v920; #else UE_rrc_inst[ctxt.module_id].integrity_algorithm = SecurityAlgorithmConfig__integrityProtAlgorithm_reserved; @@ -336,6 +512,13 @@ char openair_rrc_ue_init( const module_id_t ue_mod_idP, const unsigned char eNB_ init_SI_UE(&ctxt,eNB_index); LOG_D(RRC,PROTOCOL_RRC_CTXT_FMT" INIT: phy_sync_2_ch_ind\n", PROTOCOL_RRC_CTXT_ARGS(&ctxt)); + + + +#ifndef NO_RRM + send_msg(&S_rrc,msg_rrc_phy_synch_to_CH_ind(ctxt.module_id,eNB_index,UE_rrc_inst[ctxt.module_id].Mac_id)); +#endif + #ifndef NO_RRM send_msg(&S_rrc,msg_rrc_phy_synch_to_CH_ind(ctxt.module_id,eNB_index,UE_rrc_inst[ctxt.module_id].Mac_id)); #endif @@ -410,22 +593,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( @@ -497,7 +664,7 @@ static void rrc_ue_generate_RRCConnectionSetupComplete( const protocol_ctxt_t *c } //----------------------------------------------------------------------------- -static void rrc_ue_generate_RRCConnectionReconfigurationComplete( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index, const uint8_t Transaction_id ) +void rrc_ue_generate_RRCConnectionReconfigurationComplete( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, const uint8_t Transaction_id ) { uint8_t buffer[32], size; size = do_RRCConnectionReconfigurationComplete(ctxt_pP, buffer, Transaction_id); @@ -653,14 +820,15 @@ 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 UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Srb_info.Srb_id = 1; // copy default configuration for now // memcpy(&UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Srb_info.Lchan_desc[0],&DCCH_LCHAN_DESC,LCHAN_DESC_SIZE); // 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); // UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Srb_info.Tx_buffer.payload_size=DEFAULT_MEAS_IND_SIZE+1; @@ -678,14 +846,17 @@ 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 UE_rrc_inst[ue_mod_idP].Srb2[eNB_index].Srb_info.Srb_id = 2; // copy default configuration for now // memcpy(&UE_rrc_inst[ue_mod_idP].Srb2[eNB_index].Srb_info.Lchan_desc[0],&DCCH_LCHAN_DESC,LCHAN_DESC_SIZE); // 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); // UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Srb_info.Tx_buffer.payload_size=DEFAULT_MEAS_IND_SIZE+1; @@ -800,36 +971,43 @@ rrc_ue_process_measConfig( LOG_I(RRC,"call rrc_mac_config_req \n"); rrc_mac_config_req_ue(ctxt_pP->module_id,0,eNB_index, - (RadioResourceConfigCommonSIB_t *)NULL, - (struct PhysicalConfigDedicated *)NULL, -#if defined(Rel10) || defined(Rel14) - (SCellToAddMod_r10_t *)NULL, - //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, + (RadioResourceConfigCommonSIB_t *)NULL, + (struct PhysicalConfigDedicated *)NULL, +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (SCellToAddMod_r10_t *)NULL, + //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif - UE_rrc_inst[ctxt_pP->module_id].MeasObj[eNB_index], - (MAC_MainConfig_t *)NULL, - 0, - (struct LogicalChannelConfig *)NULL, - (MeasGapConfig_t *)NULL, - (TDD_Config_t *)NULL, - (MobilityControlInfo_t *)NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -#if defined(Rel10) || defined(Rel14) - ,0, - (MBSFN_AreaInfoList_r9_t *)NULL, - (PMCH_InfoList_r9_t *)NULL + UE_rrc_inst[ctxt_pP->module_id].MeasObj[eNB_index], + (MAC_MainConfig_t *)NULL, + 0, + (struct LogicalChannelConfig *)NULL, + (MeasGapConfig_t *)NULL, + (TDD_Config_t *)NULL, + (MobilityControlInfo_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + ,0, + (MBSFN_AreaInfoList_r9_t *)NULL, + (PMCH_InfoList_r9_t *)NULL + #endif #ifdef CBA , 0, 0 #endif - ); +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + , + 0, + NULL, + NULL +#endif + ); } if (measConfig->reportConfigToRemoveList != NULL) { @@ -1253,17 +1431,18 @@ rrc_ue_process_radioResourceConfigDedicated( kRRCenc, kRRCint, NULL -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) ,(PMCH_InfoList_r9_t *)NULL #endif ,NULL); // Refresh SRBs rrc_rlc_config_asn1_req(ctxt_pP, radioResourceConfigDedicated->srb_ToAddModList, - (DRB_ToAddModList_t *)NULL, - (DRB_ToReleaseList_t *)NULL -#if defined(Rel10) || defined(Rel14) + (DRB_ToAddModList_t*)NULL, + (DRB_ToReleaseList_t*)NULL +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) ,(PMCH_InfoList_r9_t *)NULL + , 0, 0 #endif ); #if ENABLE_RAL @@ -1297,37 +1476,43 @@ rrc_ue_process_radioResourceConfigDedicated( LOG_I(RRC, "[FRAME %05d][RRC_UE][MOD %02d][][--- MAC_CONFIG_REQ (SRB1 eNB %d) --->][MAC_UE][MOD %02d][]\n", ctxt_pP->frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id); rrc_mac_config_req_ue(ctxt_pP->module_id,0,eNB_index, - (RadioResourceConfigCommonSIB_t *)NULL, - UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index], -#if defined(Rel10) || defined(Rel14) - (SCellToAddMod_r10_t *)NULL, - //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, + (RadioResourceConfigCommonSIB_t *)NULL, + UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index], +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (SCellToAddMod_r10_t *)NULL, + //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif - (MeasObjectToAddMod_t **)NULL, - UE_rrc_inst[ctxt_pP->module_id].mac_MainConfig[eNB_index], - 1, - SRB1_logicalChannelConfig, - (MeasGapConfig_t *)NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -#if defined(Rel10) || defined(Rel14) - , - 0, - (MBSFN_AreaInfoList_r9_t *)NULL, - (PMCH_InfoList_r9_t *)NULL + (MeasObjectToAddMod_t **)NULL, + UE_rrc_inst[ctxt_pP->module_id].mac_MainConfig[eNB_index], + 1, + SRB1_logicalChannelConfig, + (MeasGapConfig_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + , + 0, + (MBSFN_AreaInfoList_r9_t *)NULL, + (PMCH_InfoList_r9_t *)NULL #endif #ifdef CBA , 0, 0 #endif - ); +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + , + 0, + NULL, + NULL +#endif + ); } } else { if (UE_rrc_inst[ctxt_pP->module_id].SRB2_config[eNB_index]) { @@ -1355,37 +1540,44 @@ rrc_ue_process_radioResourceConfigDedicated( eNB_index, ctxt_pP->module_id); rrc_mac_config_req_ue(ctxt_pP->module_id,0,eNB_index, - (RadioResourceConfigCommonSIB_t *)NULL, - UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index], -#if defined(Rel10) || defined(Rel14) - (SCellToAddMod_r10_t *)NULL, - //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, + (RadioResourceConfigCommonSIB_t *)NULL, + UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index], +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (SCellToAddMod_r10_t *)NULL, + //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif - (MeasObjectToAddMod_t **)NULL, - UE_rrc_inst[ctxt_pP->module_id].mac_MainConfig[eNB_index], - 2, - SRB2_logicalChannelConfig, - UE_rrc_inst[ctxt_pP->module_id].measGapConfig[eNB_index], - (TDD_Config_t *)NULL, - (MobilityControlInfo_t *)NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -#if defined(Rel10) || defined(Rel14) - , - 0, - (MBSFN_AreaInfoList_r9_t *)NULL, - (PMCH_InfoList_r9_t *)NULL + (MeasObjectToAddMod_t **)NULL, + UE_rrc_inst[ctxt_pP->module_id].mac_MainConfig[eNB_index], + 2, + SRB2_logicalChannelConfig, + UE_rrc_inst[ctxt_pP->module_id].measGapConfig[eNB_index], + (TDD_Config_t *)NULL, + (MobilityControlInfo_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + , + 0, + (MBSFN_AreaInfoList_r9_t *)NULL, + (PMCH_InfoList_r9_t *)NULL + #endif #ifdef CBA , 0, 0 #endif - ); +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + , + 0, + NULL, + NULL +#endif + } } } @@ -1426,7 +1618,7 @@ rrc_ue_process_radioResourceConfigDedicated( NULL, NULL, kUPenc -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) ,(PMCH_InfoList_r9_t *)NULL #endif , UE_rrc_inst[ctxt_pP->module_id].defaultDRB); @@ -1434,9 +1626,10 @@ rrc_ue_process_radioResourceConfigDedicated( rrc_rlc_config_asn1_req(ctxt_pP, (SRB_ToAddModList_t *)NULL, radioResourceConfigDedicated->drb_ToAddModList, - (DRB_ToReleaseList_t *)NULL -#if defined(Rel10) || defined(Rel14) + (DRB_ToReleaseList_t*)NULL +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) ,(PMCH_InfoList_r9_t *)NULL + , 0, 0 #endif ); @@ -1457,37 +1650,44 @@ rrc_ue_process_radioResourceConfigDedicated( eNB_index, ctxt_pP->module_id); rrc_mac_config_req_ue(ctxt_pP->module_id,0,eNB_index, - (RadioResourceConfigCommonSIB_t *)NULL, - UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index], -#if defined(Rel10) || defined(Rel14) - (SCellToAddMod_r10_t *)NULL, - //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, + (RadioResourceConfigCommonSIB_t *)NULL, + UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index], +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (SCellToAddMod_r10_t *)NULL, + //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif - (MeasObjectToAddMod_t **)NULL, - UE_rrc_inst[ctxt_pP->module_id].mac_MainConfig[eNB_index], - *UE_rrc_inst[ctxt_pP->module_id].DRB_config[eNB_index][DRB_id]->logicalChannelIdentity, - UE_rrc_inst[ctxt_pP->module_id].DRB_config[eNB_index][DRB_id]->logicalChannelConfig, - UE_rrc_inst[ctxt_pP->module_id].measGapConfig[eNB_index], - (TDD_Config_t *)NULL, - (MobilityControlInfo_t *)NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -#if defined(Rel10) || defined(Rel14) - , - 0, - (MBSFN_AreaInfoList_r9_t *)NULL, - (PMCH_InfoList_r9_t *)NULL + (MeasObjectToAddMod_t **)NULL, + UE_rrc_inst[ctxt_pP->module_id].mac_MainConfig[eNB_index], + *UE_rrc_inst[ctxt_pP->module_id].DRB_config[eNB_index][DRB_id]->logicalChannelIdentity, + UE_rrc_inst[ctxt_pP->module_id].DRB_config[eNB_index][DRB_id]->logicalChannelConfig, + UE_rrc_inst[ctxt_pP->module_id].measGapConfig[eNB_index], + (TDD_Config_t*)NULL, + (MobilityControlInfo_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + , + 0, + (MBSFN_AreaInfoList_r9_t *)NULL, + (PMCH_InfoList_r9_t *)NULL #endif #ifdef CBA , UE_rrc_inst[ue_mod_idP].num_active_cba_groups, // UE_rrc_inst[ue_mod_idP].cba_rnti[0] #endif - ); +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + , + 0, + NULL, + NULL +#endif + ); + } } } @@ -1511,8 +1711,8 @@ rrc_ue_process_securityModeCommand( // SecurityModeCommand_t SecurityModeCommand; uint8_t buffer[200]; int i, securityMode; - LOG_I(RRC,"[UE %d] Frame %d: Receiving from SRB1 (DL-DCCH), Processing securityModeCommand (eNB %d)\n", - ctxt_pP->module_id,ctxt_pP->frame,eNB_index); + LOG_I(RRC,"[UE %d] SFN/SF %d/%d: Receiving from SRB1 (DL-DCCH), Processing securityModeCommand (eNB %d)\n", + ctxt_pP->module_id,ctxt_pP->frame, ctxt_pP->subframe, eNB_index); switch (securityModeCommand->criticalExtensions.choice.c1.choice.securityModeCommand_r8.securityConfigSMC.securityAlgorithmConfig.cipheringAlgorithm) { case CipheringAlgorithm_r12_eea0: @@ -1566,8 +1766,10 @@ rrc_ue_process_securityModeCommand( ul_dcch_msg.message.present = UL_DCCH_MessageType_PR_c1; if (securityMode >= NO_SECURITY_MODE) { + LOG_I(RRC, "rrc_ue_process_securityModeCommand, security mode complete case \n"); ul_dcch_msg.message.choice.c1.present = UL_DCCH_MessageType__c1_PR_securityModeComplete; } else { + LOG_I(RRC, "rrc_ue_process_securityModeCommand, security mode failure case \n"); ul_dcch_msg.message.choice.c1.present = UL_DCCH_MessageType__c1_PR_securityModeFailure; } @@ -1614,11 +1816,11 @@ rrc_ue_process_securityModeCommand( | (UE_rrc_inst[ctxt_pP->module_id].integrity_algorithm << 4), kRRCenc, kRRCint, kUPenc); } else { - LOG_W(RRC, "skipped pdcp_config_set_security() as securityMode == 0x%02x", - securityMode); + LOG_I(RRC, "skipped pdcp_config_set_security() as securityMode == 0x%02x", + securityMode); } } else { - LOG_W(RRC, "Could not get PDCP instance where key=0x%ld\n", key); + LOG_I(RRC, "Could not get PDCP instance where key=0x%ld\n", key); } #endif //#if defined(ENABLE_SECURITY) @@ -1631,13 +1833,16 @@ rrc_ue_process_securityModeCommand( ul_dcch_msg.message.choice.c1.choice.securityModeComplete.rrc_TransactionIdentifier = securityModeCommand->rrc_TransactionIdentifier; ul_dcch_msg.message.choice.c1.choice.securityModeComplete.criticalExtensions.present = SecurityModeCommand__criticalExtensions_PR_c1; ul_dcch_msg.message.choice.c1.choice.securityModeComplete.criticalExtensions.choice.securityModeComplete_r8.nonCriticalExtension =NULL; - LOG_I(RRC,"[UE %d] Frame %d: Receiving from SRB1 (DL-DCCH), encoding securityModeComplete (eNB %d)\n", - ctxt_pP->module_id,ctxt_pP->frame,eNB_index); + + LOG_I(RRC,"[UE %d] SFN/SF %d/%d: Receiving from SRB1 (DL-DCCH), encoding securityModeComplete (eNB %d), rrc_TransactionIdentifier: %ld\n", + 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); + (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); #ifdef XER_PRINT @@ -1713,9 +1918,9 @@ rrc_ue_process_ueCapabilityEnquiry( UECapabilityEnquiry->criticalExtensions.present,UECapabilityEnquiry__criticalExtensions_PR_c1); if (UECapabilityEnquiry->criticalExtensions.choice.c1.present != UECapabilityEnquiry__criticalExtensions__c1_PR_ueCapabilityEnquiry_r8) - LOG_W(RRC,"UECapabilityEnquiry->criticalExtensions.choice.c1.present (%d) != UECapabilityEnquiry__criticalExtensions__c1_PR_ueCapabilityEnquiry_r8)\n", - UECapabilityEnquiry->criticalExtensions.choice.c1.present); - + LOG_I(RRC,"UECapabilityEnquiry->criticalExtensions.choice.c1.present (%d) != UECapabilityEnquiry__criticalExtensions__c1_PR_ueCapabilityEnquiry_r8)\n", + UECapabilityEnquiry->criticalExtensions.choice.c1.present); + ul_dcch_msg.message.choice.c1.choice.ueCapabilityInformation.criticalExtensions.present = UECapabilityInformation__criticalExtensions_PR_c1; ul_dcch_msg.message.choice.c1.choice.ueCapabilityInformation.criticalExtensions.choice.c1.present = UECapabilityInformation__criticalExtensions__c1_PR_ueCapabilityInformation_r8; @@ -1726,9 +1931,10 @@ rrc_ue_process_ueCapabilityEnquiry( if (*UECapabilityEnquiry->criticalExtensions.choice.c1.choice.ueCapabilityEnquiry_r8.ue_CapabilityRequest.list.array[i] == RAT_Type_eutra) { ASN_SEQUENCE_ADD( - &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, NULL, (void *) &ul_dcch_msg, buffer, 100); + &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, 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); #ifdef XER_PRINT @@ -1752,9 +1958,7 @@ rrc_ue_process_ueCapabilityEnquiry( #endif LOG_D(RRC,"UECapabilityInformation Encoded %zd bits (%zd bytes)\n",enc_rval.encoded,(enc_rval.encoded+7)/8); - for (i = 0; i < (enc_rval.encoded + 7) / 8; i++) { - LOG_T(RRC, "%02x.", buffer[i]); - } + LOG_I(RRC,"UECapabilityInformation Encoded %zd bits (%zd bytes)\n",enc_rval.encoded,(enc_rval.encoded+7)/8); LOG_T(RRC, "\n"); rrc_data_req_ue ( @@ -1866,6 +2070,45 @@ rrc_ue_process_rrcConnectionReconfiguration( } #endif + //TTN for D2D + //if RRCConnectionReconfiguration message includes the sl-CommConfig + if ((rrcConnectionReconfiguration_r8->nonCriticalExtension != NULL) + && (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension + != NULL) + && (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension + != NULL) + && (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension + != NULL) + && (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension + != NULL) + && (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12 + != NULL)) { + if (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12->commTxResources_r12->present != SL_CommConfig_r12__commTxResources_r12_PR_NOTHING){ + LOG_I(RRC,"sl-CommConfig is present\n"); + //process sl-CommConfig + rrc_ue_process_sidelink_radioResourceConfig(ctxt_pP->module_id,eNB_index, + (SystemInformationBlockType18_r12_t *)NULL, + (SystemInformationBlockType19_r12_t *)NULL, + rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12, + (SL_DiscConfig_r12_t *)NULL + ); + } + } + +/* + //if RRCConnectionReconfiguration message includes the sl-DiscConfig + if (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_DiscConfig_r12->discTxResources_r12->present != SL_DiscConfig_r12__discTxResources_r12_PR_NOTHING ){ + LOG_I(RRC,"sl-DiscConfig is present\n"); + //process sl-DiscConfig + rrc_ue_process_sidelink_radioResourceConfig(ctxt_pP->module_id,eNB_index, + (SystemInformationBlockType18_r12_t *)NULL, + (SystemInformationBlockType19_r12_t *)NULL, + (SL_CommConfig_r12_t* )NULL, + rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_DiscConfig_r12 + ); + } +*/ + #if defined(ENABLE_ITTI) /* Check if there is dedicated NAS information to forward to NAS */ @@ -1950,7 +2193,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; @@ -1967,7 +2210,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); @@ -1983,7 +2226,7 @@ rrc_ue_process_mobilityControlInfo( NULL, // key rrc encryption NULL, // key rrc integrity NULL // key encryption - #if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) ,NULL #endif ,NULL); @@ -1992,7 +2235,7 @@ rrc_ue_process_mobilityControlInfo( NULL,// SRB_ToAddModList NULL,// DRB_ToAddModList drb2release_list // DRB_ToReleaseList - #if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) ,NULL #endif ,NULL); @@ -2005,7 +2248,7 @@ rrc_ue_process_mobilityControlInfo( memcpy((void *)UE_rrc_inst[ue_mod_idP].DRB_config[~(7<frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id); // Reset MAC and configure PHY rrc_mac_config_req_ue(ctxt_pP->module_id, - 0, - eNB_index, - (RadioResourceConfigCommonSIB_t *)NULL, - (struct PhysicalConfigDedicated *)NULL, -#if defined(Rel10) || defined(Rel14) - (SCellToAddMod_r10_t *)NULL, - //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, + 0, + eNB_index, + (RadioResourceConfigCommonSIB_t *)NULL, + (struct PhysicalConfigDedicated *)NULL, +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (SCellToAddMod_r10_t *)NULL, + //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, #endif - (MeasObjectToAddMod_t **)NULL, - (MAC_MainConfig_t *)NULL, - 0, - (struct LogicalChannelConfig *)NULL, - (MeasGapConfig_t *)NULL, - (TDD_Config_t *)NULL, - mobilityControlInfo, - (uint8_t *)NULL, - (uint16_t *)NULL, - NULL, - NULL, - NULL, - NULL -#if defined(Rel10) || defined(Rel14) - ,0, - (MBSFN_AreaInfoList_r9_t *)NULL, - (PMCH_InfoList_r9_t *)NULL + (MeasObjectToAddMod_t **)NULL, + (MAC_MainConfig_t *)NULL, + 0, + (struct LogicalChannelConfig *)NULL, + (MeasGapConfig_t *)NULL, + (TDD_Config_t *)NULL, + mobilityControlInfo, + (uint8_t *)NULL, + (uint16_t *)NULL, + NULL, + NULL, + NULL, + NULL +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + ,0, + (MBSFN_AreaInfoList_r9_t *)NULL, + (PMCH_InfoList_r9_t *)NULL #endif #ifdef CBA ,0, 0 #endif - ); +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + , + 0, + NULL, + NULL +#endif + ); + // Re-establish PDCP for all RBs that are established // rrc_pdcp_config_req (ue_mod_idP+NB_eNB_INST, frameP, 0, CONFIG_ACTION_ADD, ue_mod_idP+DCCH); // rrc_pdcp_config_req (ue_mod_idP+NB_eNB_INST, frameP, 0, CONFIG_ACTION_ADD, ue_mod_idP+DCCH1); @@ -2330,8 +2580,25 @@ rrc_ue_decode_dcch( #endif #endif } + } - break; + //TTN test D2D (should not be here - in reality, this message will be triggered from ProSeApp) + if (send_ue_information == 0) { + LOG_I(RRC, "TEST SidelinkUEInformation [UE %d] Received (eNB %d)\n", + ctxt_pP->module_id, eNB_indexP); + SL_DestinationInfoList_r12_t *destinationInfoList = CALLOC(1, sizeof(SL_DestinationInfoList_r12_t)); + SL_DestinationIdentity_r12_t *sl_destination_identity = CALLOC(1, sizeof(SL_DestinationIdentity_r12_t)); + sl_destination_identity->size = 3; + sl_destination_identity->buf = CALLOC(1,3); + sl_destination_identity->buf[0] = 0x00; + sl_destination_identity->buf[1] = 0x00; + sl_destination_identity->buf[2] = 0x01; + sl_destination_identity->bits_unused = 0; + ASN_SEQUENCE_ADD(&destinationInfoList->list,sl_destination_identity); + rrc_ue_generate_SidelinkUEInformation(ctxt_pP, eNB_indexP, destinationInfoList, NULL, SL_TRANSMIT_NON_RELAY_ONE_TO_ONE); + send_ue_information ++; + } + break; case DL_DCCH_MessageType__c1_PR_rrcConnectionRelease: #if defined(ENABLE_ITTI) @@ -2373,25 +2640,23 @@ rrc_ue_decode_dcch( eNB_indexP); break; - case DL_DCCH_MessageType__c1_PR_counterCheck: - break; -#if defined(Rel10) || defined(Rel14) - - case DL_DCCH_MessageType__c1_PR_ueInformationRequest_r9: - break; - - case DL_DCCH_MessageType__c1_PR_loggedMeasurementConfiguration_r10: - break; +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + case DL_DCCH_MessageType__c1_PR_ueInformationRequest_r9: + break; +#endif +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + case DL_DCCH_MessageType__c1_PR_loggedMeasurementConfiguration_r10: + break; case DL_DCCH_MessageType__c1_PR_rnReconfiguration_r10: break; #endif - case DL_DCCH_MessageType__c1_PR_spare1: - case DL_DCCH_MessageType__c1_PR_spare2: - case DL_DCCH_MessageType__c1_PR_spare3: -#if !defined(Rel14) - case DL_DCCH_MessageType__c1_PR_spare4: + case DL_DCCH_MessageType__c1_PR_spare1: + case DL_DCCH_MessageType__c1_PR_spare2: + case DL_DCCH_MessageType__c1_PR_spare3: +#if (RRC_VERSION < MAKE_VERSION(14, 0, 0)) + case DL_DCCH_MessageType__c1_PR_spare4: #endif break; @@ -2413,7 +2678,7 @@ const char SIBType[12][6] = {"SIB3","SIB4","SIB5","SIB6","SIB7","SIB8","SIB9","S const char SIBPeriod[8][6]= {"rf8","rf16","rf32","rf64","rf128","rf256","rf512","ERR"}; int siPeriod_int[7] = {80,160,320,640,1280,2560,5120}; -static const char *SIBreserved( long value ) +const char* SIBreserved( long value ) { if (value < 0 || value > 1) return "ERR"; @@ -2423,7 +2688,7 @@ static const char *SIBreserved( long value ) return "reserved"; } -static const char *SIBbarred( long value ) +const char* SIBbarred( long value ) { if (value < 0 || value > 1) return "ERR"; @@ -2433,7 +2698,7 @@ static const char *SIBbarred( long value ) return "barred"; } -static const char *SIBallowed( long value ) +const char* SIBallowed( long value ) { if (value < 0 || value > 1) return "ERR"; @@ -2443,7 +2708,7 @@ static const char *SIBallowed( long value ) return "allowed"; } -static const char *SIB2SoundingPresent( int value ) +const char* SIB2SoundingPresent( int value ) { switch (value) { case SoundingRS_UL_ConfigCommon_PR_NOTHING: @@ -2458,7 +2723,7 @@ static const char *SIB2SoundingPresent( int value ) return "ERR"; } -static const char *SIB2numberOfRA_Preambles( long value ) +const char* SIB2numberOfRA_Preambles( long value ) { static char temp[4] = {0}; @@ -2469,7 +2734,7 @@ static const char *SIB2numberOfRA_Preambles( long value ) temp[3] = 0; // terminate string return temp; } -static const char *SIB2powerRampingStep( long value ) +const char* SIB2powerRampingStep( long value ) { if (value < 0 || value > 3) return "ERR"; @@ -2477,7 +2742,7 @@ static const char *SIB2powerRampingStep( long value ) static const char str[4][4] = {"dB0","dB2","dB4","dB6"}; return str[value]; } -static const char *SIB2preambleInitialReceivedTargetPower( long value ) +const char* SIB2preambleInitialReceivedTargetPower( long value ) { static char temp[8] = {0}; @@ -2488,7 +2753,7 @@ static const char *SIB2preambleInitialReceivedTargetPower( long value ) temp[7] = 0; // terminate string return temp; } -static const char *SIB2preambleTransMax( long value ) +const char* SIB2preambleTransMax( long value ) { static char temp[5] = {0}; @@ -2520,7 +2785,7 @@ static const char *SIB2preambleTransMax( long value ) /* unreachable but gcc warns... */ return "ERR"; } -static const char *SIB2ra_ResponseWindowSize( long value ) +const char* SIB2ra_ResponseWindowSize( long value ) { static char temp[4] = {0}; @@ -2533,7 +2798,7 @@ static const char *SIB2ra_ResponseWindowSize( long value ) snprintf( temp, sizeof(temp), "sf%ld", value+2 ); return temp; } -static const char *SIB2mac_ContentionResolutionTimer( long value ) +const char* SIB2mac_ContentionResolutionTimer( long value ) { static char temp[5] = {0}; @@ -2543,7 +2808,7 @@ static const char *SIB2mac_ContentionResolutionTimer( long value ) snprintf( temp, sizeof(temp), "sf%ld", 8 + value*8 ); return temp; } -static const char *SIB2modificationPeriodCoeff( long value ) +const char* SIB2modificationPeriodCoeff( long value ) { static char temp[32] = {0}; @@ -2553,7 +2818,7 @@ static const char *SIB2modificationPeriodCoeff( long value ) snprintf( temp, sizeof(temp), "n%d", (int)pow(2,value+1) ); return temp; } -static const char *SIB2defaultPagingCycle( long value ) +const char* SIB2defaultPagingCycle( long value ) { static char temp[32] = {0}; @@ -2563,7 +2828,7 @@ static const char *SIB2defaultPagingCycle( long value ) snprintf( temp, sizeof(temp), "rf%d", (int)pow(2,value+4) ); return temp; } -static const char *SIB2nB( long value ) +const char* SIB2nB( long value ) { if (value < 0 || value > 7) return "ERR"; @@ -2645,33 +2910,37 @@ int decode_BCCH_DLSCH_Message( if (bcch_message->message.present == BCCH_DL_SCH_MessageType_PR_c1) { switch (bcch_message->message.choice.c1.present) { - case BCCH_DL_SCH_MessageType__c1_PR_systemInformationBlockType1: - if ((ctxt_pP->frame % 2) == 0) { - // even frame - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&1) == 0) { - SystemInformationBlockType1_t *sib1 = UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]; - memcpy( (void *)sib1, - (void *)&bcch_message->message.choice.c1.choice.systemInformationBlockType1, - sizeof(SystemInformationBlockType1_t) ); - LOG_D( RRC, "[UE %"PRIu8"] Decoding First SIB1\n", ctxt_pP->module_id ); - decode_SIB1( ctxt_pP, eNB_index, rsrq, rsrp ); - } + case BCCH_DL_SCH_MessageType__c1_PR_systemInformationBlockType1: + if ((ctxt_pP->frame % 2) == 0) { + // even frame + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&1) == 0) { + SystemInformationBlockType1_t* sib1 = UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]; + memcpy( (void*)sib1, + (void*)&bcch_message->message.choice.c1.choice.systemInformationBlockType1, + sizeof(SystemInformationBlockType1_t) ); + LOG_D( RRC, "[UE %"PRIu8"] Decoding First SIB1\n", ctxt_pP->module_id ); + + decode_SIB1( ctxt_pP, eNB_index, rsrq, rsrp ); } - break; + break; - case BCCH_DL_SCH_MessageType__c1_PR_systemInformation: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&1) == 1) { - // SIB1 with schedulingInfoList is available - SystemInformation_t *si = UE_rrc_inst[ctxt_pP->module_id].si[eNB_index]; - memcpy( si, - &bcch_message->message.choice.c1.choice.systemInformation, - sizeof(SystemInformation_t) ); - LOG_D( RRC, "[UE %"PRIu8"] Decoding SI for frameP %"PRIu32"\n", - ctxt_pP->module_id, - ctxt_pP->frame ); - decode_SI( ctxt_pP, eNB_index ); - } + case BCCH_DL_SCH_MessageType__c1_PR_systemInformation: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&1) == 1) { + // SIB1 with schedulingInfoList is available + + SystemInformation_t* si = UE_rrc_inst[ctxt_pP->module_id].si[eNB_index]; + memcpy( si, + &bcch_message->message.choice.c1.choice.systemInformation, + sizeof(SystemInformation_t) ); + + LOG_I( RRC, "[UE %"PRIu8"] Decoding SI for frameP %"PRIu32"\n", + ctxt_pP->module_id, + ctxt_pP->frame ); + decode_SI( ctxt_pP, eNB_index ); + //if (nfapi_mode == 3) + UE_mac_inst[ctxt_pP->module_id].SI_Decoded = 1; + } break; @@ -2729,7 +2998,7 @@ int decode_PCCH_DLSCH_Message( } //----------------------------------------------------------------------------- -static int decode_SIB1( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index, const uint8_t rsrq, const uint8_t rsrp ) +int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, const uint8_t rsrq, const uint8_t rsrp ) { SystemInformationBlockType1_t *sib1 = UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]; VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_UE_DECODE_SIB1, VCD_FUNCTION_IN ); @@ -2753,15 +3022,10 @@ static int decode_SIB1( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_ mnc = *PLMN_identity->mnc.list.array[0]*100 + *PLMN_identity->mnc.list.array[1]*10 + *PLMN_identity->mnc.list.array[2]; } - int tac = 0; + 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) ); - 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) ); // search internal table for provider name int plmn_ind = 0; @@ -2784,10 +3048,8 @@ static int decode_SIB1( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_ sib1->cellAccessRelatedInfo.cellIdentity.buf[1], 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) @@ -2842,36 +3104,45 @@ static int decode_SIB1( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_ LOG_I( RRC, "[FRAME unknown][RRC_UE][MOD %02"PRIu8"][][--- MAC_CONFIG_REQ (SIB1 params eNB %"PRIu8") --->][MAC_UE][MOD %02"PRIu8"][]\n", ctxt_pP->module_id, eNB_index, ctxt_pP->module_id ); rrc_mac_config_req_ue(ctxt_pP->module_id, 0, eNB_index, - (RadioResourceConfigCommonSIB_t *)NULL, - (struct PhysicalConfigDedicated *)NULL, -#if defined(Rel10) || defined(Rel14) - (SCellToAddMod_r10_t *)NULL, - //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, + (RadioResourceConfigCommonSIB_t *)NULL, + (struct PhysicalConfigDedicated *)NULL, +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (SCellToAddMod_r10_t *)NULL, + //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, #endif - (MeasObjectToAddMod_t **)NULL, - (MAC_MainConfig_t *)NULL, - 0, - (struct LogicalChannelConfig *)NULL, - (MeasGapConfig_t *)NULL, - UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]->tdd_Config, - (MobilityControlInfo_t *) NULL, - &UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIwindowsize, - &UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIperiod, - NULL, - NULL, - NULL, - (MBSFN_SubframeConfigList_t *)NULL -#if defined(Rel10) || defined(Rel14) - ,0, - (MBSFN_AreaInfoList_r9_t *)NULL, - (PMCH_InfoList_r9_t *)NULL + (MeasObjectToAddMod_t **)NULL, + (MAC_MainConfig_t *)NULL, + 0, + (struct LogicalChannelConfig *)NULL, + (MeasGapConfig_t *)NULL, + UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]->tdd_Config, + (MobilityControlInfo_t *) NULL, + &UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIwindowsize, + &UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIperiod, + NULL, + NULL, + NULL, + (MBSFN_SubframeConfigList_t *)NULL +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + ,0, + (MBSFN_AreaInfoList_r9_t *)NULL, + (PMCH_InfoList_r9_t *)NULL + #endif #ifdef CBA , 0, 0 #endif - ); +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + , + 0, + NULL, + NULL +#endif + ); + + LOG_I(RRC,"Setting SIStatus bit 0 to 1\n"); UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus = 1; UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIB1systemInfoValueTag = sib1->systemInfoValueTag; #if defined(ENABLE_ITTI) && defined(ENABLE_USE_MME) @@ -2940,7 +3211,7 @@ static int decode_SIB1( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_ //----------------------------------------------------------------------------- -static void dump_sib2( SystemInformationBlockType2_t *sib2 ) + void dump_sib2( SystemInformationBlockType2_t *sib2 ) { // ac_BarringInfo if (sib2->ac_BarringInfo) { @@ -3097,7 +3368,7 @@ static void dump_sib2( SystemInformationBlockType2_t *sib2 ) sib2->radioResourceConfigCommon.uplinkPowerControlCommon.deltaPreambleMsg3 ); LOG_I( RRC, "radioResourceConfigCommon.ul_CyclicPrefixLength : %ld\n", sib2->radioResourceConfigCommon.ul_CyclicPrefixLength ); -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 2, 0)) // UplinkPowerControlCommon_v1020 // ... #endif @@ -3127,13 +3398,14 @@ static void dump_sib2( SystemInformationBlockType2_t *sib2 ) LOG_I( RRC, "mbsfn_SubframeConfigList : not defined\n" ); LOG_I( RRC, "timeAlignmentTimerCommon : %ld\n", sib2->timeAlignmentTimerCommon ); -#if defined(Rel10) || defined(Rel14) - +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) if (sib2->lateNonCriticalExtension) { LOG_I( RRC, "lateNonCriticalExtension : %p\n", sib2->lateNonCriticalExtension ); } else LOG_I( RRC, "lateNonCriticalExtension : not defined\n" ); +#endif +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) if (sib2->ext1 && sib2->ext1->ssac_BarringForMMTEL_Voice_r9) { LOG_I( RRC, "ssac_BarringForMMTEL_Voice_r9->ac_BarringFactor : %ld\n", sib2->ext1->ssac_BarringForMMTEL_Voice_r9->ac_BarringFactor ); @@ -3153,7 +3425,9 @@ static void dump_sib2( SystemInformationBlockType2_t *sib2 ) BIT_STRING_to_uint32(&sib2->ext1->ssac_BarringForMMTEL_Video_r9->ac_BarringForSpecialAC) ); } else LOG_I( RRC, "ssac_BarringForMMTEL_Video_r9 : not defined\n" ); +#endif +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) if (sib2->ext2 && sib2->ext2->ac_BarringForCSFB_r10) { LOG_I( RRC, "ac_BarringForCSFB_r10->ac_BarringFactor : %ld\n", sib2->ext2->ac_BarringForCSFB_r10->ac_BarringFactor ); @@ -3168,7 +3442,7 @@ static void dump_sib2( SystemInformationBlockType2_t *sib2 ) } //----------------------------------------------------------------------------- -static void dump_sib3( SystemInformationBlockType3_t *sib3 ) + void dump_sib3( SystemInformationBlockType3_t *sib3 ) { LOG_I( RRC, "Dumping SIB3 (see TS36.331 V8.21.0)\n" ); int q_Hyst_dB = sib3->cellReselectionInfoCommon.q_Hyst; // sib3->cellReselectionInfoCommon.q_Hyst is a enumerated value @@ -3187,12 +3461,10 @@ static void dump_sib3( SystemInformationBlockType3_t *sib3 ) 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" ); } @@ -3241,6 +3513,7 @@ int Qoffsettab[31] = {-24,-22,-20,-18,-16,-14,-12,-10,-8,-6,-5,-4,-3,-2,-1,0,1,2 int PhysCellIdRange[16] = {4,8,12,16,24,32,48,64,84,96,128,168,252,504,0,0}; uint64_t arfcn_to_freq(long arfcn) { + if (arfcn < 600) // Band 1 return((uint64_t)2110000000 + (arfcn*100000)); else if (arfcn <1200) // Band 2 @@ -3314,14 +3587,14 @@ uint64_t arfcn_to_freq(long arfcn) { exit(1); } } -static void dump_sib5( SystemInformationBlockType5_t *sib5 ) + void dump_sib5( SystemInformationBlockType5_t *sib5 ) { InterFreqCarrierFreqList_t interFreqCarrierFreqList = sib5->interFreqCarrierFreqList; int i,j; InterFreqCarrierFreqInfo_t *ifcfInfo; LOG_I( RRC, "Dumping SIB5 (see TS36.331 V8.21.0)\n" ); - for (i=0; iq_OffsetFreq]); if (ifcfInfo->interFreqNeighCellList) { - for (j=0; jinterFreqNeighCellList->list.count; j++) { - LOG_I(RRC," Cell %d\n", j); - LOG_I(RRC," PhysCellId : %ld\n",ifcfInfo->interFreqNeighCellList->list.array[j]->physCellId); - LOG_I(RRC," Q_OffsetRange : %ld\n",ifcfInfo->interFreqNeighCellList->list.array[j]->q_OffsetCell); + for (j=0;jinterFreqNeighCellList->list.count;j++) { + LOG_I(RRC," Cell %d\n", j); + LOG_I(RRC," PhysCellId : %ld\n",ifcfInfo->interFreqNeighCellList->list.array[j]->physCellId); + LOG_I(RRC," Q_OffsetRange : %ld\n",ifcfInfo->interFreqNeighCellList->list.array[j]->q_OffsetCell); } } if (ifcfInfo->interFreqBlackCellList) { - for (j=0; jinterFreqBlackCellList->list.count; j++) { - LOG_I(RRC," Cell %d\n", j); - LOG_I(RRC," PhysCellId start: %ld\n",ifcfInfo->interFreqBlackCellList->list.array[j]->start); - - if (ifcfInfo->interFreqBlackCellList->list.array[i]->range) { - LOG_I(RRC," PhysCellId Range : %ld\n",*ifcfInfo->interFreqBlackCellList->list.array[j]->range); - } + for (j=0;jinterFreqBlackCellList->list.count;j++) { + LOG_I(RRC," Cell %d\n", j); + LOG_I(RRC," PhysCellId start: %ld\n",ifcfInfo->interFreqBlackCellList->list.array[j]->start); + if (ifcfInfo->interFreqBlackCellList->list.array[i]->range) { + LOG_I(RRC," PhysCellId Range : %ld\n",*ifcfInfo->interFreqBlackCellList->list.array[j]->range); + } } } - -#if defined(Rel10) || defined(Rel14) - +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) if (ifcfInfo->ext1 && ifcfInfo->ext1->q_QualMin_r9) LOG_I(RRC," Q_QualMin_r9 : %ld\n",*ifcfInfo->ext1->q_QualMin_r9); @@ -3423,8 +3693,8 @@ static void dump_sib5( SystemInformationBlockType5_t *sib5 ) } } -#if defined(Rel10) || defined(Rel14) -static void dump_sib13( SystemInformationBlockType13_r9_t *sib13 ) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + void dump_sib13( SystemInformationBlockType13_r9_t *sib13 ) { LOG_I( RRC, "[UE] Dumping SIB13\n" ); LOG_I( RRC, "[UE] dumping sib13 second time\n" ); @@ -3432,18 +3702,68 @@ static void dump_sib13( SystemInformationBlockType13_r9_t *sib13 ) LOG_I( RRC, "[UE] NotificationOffset-r9 : %d\n", (int)sib13->notificationConfig_r9.notificationOffset_r9 ); LOG_I( RRC, "[UE] NotificationSF-Index-r9 : %d\n", (int)sib13->notificationConfig_r9.notificationSF_Index_r9 ); } -#endif + +//TTN - SIB18 //----------------------------------------------------------------------------- -static int decode_SI( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index ) + void dump_sib18(SystemInformationBlockType18_r12_t *sib18){ + LOG_I( RRC, "[UE] Dumping SIB18\n" ); + for (int i = 0; i < sib18->commConfig_r12->commRxPool_r12.list.count; i++) { + LOG_I(RRC, " Contents of SIB18 %d/%d \n", i+1, sib18->commConfig_r12->commRxPool_r12.list.count); + LOG_I(RRC, " SIB18 rxPool_sc_CP_Len: %ld \n", sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_CP_Len_r12); + LOG_I(RRC, " SIB18 sc_Period_r12: %ld \n", sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_Period_r12); + LOG_I(RRC, " SIB18 data_CP_Len_r12: %ld \n", sib18->commConfig_r12->commRxPool_r12.list.array[i]->data_CP_Len_r12); + LOG_I(RRC, " SIB18 prb_Num_r12: %ld \n", sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_TF_ResourceConfig_r12.prb_Num_r12); + LOG_I(RRC, " SIB18 prb_Start_r12: %ld \n", sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_TF_ResourceConfig_r12.prb_Start_r12); + LOG_I(RRC, " SIB18 prb_End_r12: %ld \n", sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_TF_ResourceConfig_r12.prb_End_r12); + //to add more log + } +} + +//TTN - SIB19 +//----------------------------------------------------------------------------- + void dump_sib19(SystemInformationBlockType19_r12_t *sib19){ + LOG_I( RRC, "[UE] Dumping SIB19\n" ); + for (int i = 0; i < sib19->discConfig_r12->discRxPool_r12.list.count; i++) { + LOG_I(RRC, " Contents of SIB19 %d/%d \n", i+1, sib19->discConfig_r12->discRxPool_r12.list.count); + LOG_I(RRC, " SIB19 cp_Len_r12: %ld \n", sib19->discConfig_r12->discRxPool_r12.list.array[i]->cp_Len_r12); + LOG_I(RRC, " SIB19 discPeriod_r12: %ld \n", sib19->discConfig_r12->discRxPool_r12.list.array[i]->discPeriod_r12); + LOG_I(RRC, " SIB19 numRetx_r12: %ld \n", sib19->discConfig_r12->discRxPool_r12.list.array[i]->numRetx_r12); + LOG_I(RRC, " SIB19 numRepetition_r12: %ld \n", sib19->discConfig_r12->discRxPool_r12.list.array[i]->numRepetition_r12); + LOG_I(RRC, " SIB19 prb_Num_r12: %ld \n", sib19->discConfig_r12->discRxPool_r12.list.array[i]->tf_ResourceConfig_r12.prb_Num_r12); + LOG_I(RRC, " SIB19 prb_Start_r12: %ld \n", sib19->discConfig_r12->discRxPool_r12.list.array[i]->tf_ResourceConfig_r12.prb_Start_r12); + LOG_I(RRC, " SIB19 prb_End_r12: %ld \n", sib19->discConfig_r12->discRxPool_r12.list.array[i]->tf_ResourceConfig_r12.prb_End_r12); + //to add more log + } +} + + void dump_sib21(SystemInformationBlockType21_r14_t *sib21){ + if ((sib21->sl_V2X_ConfigCommon_r14 != NULL) && (sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14 !=NULL) ){ + for (int i = 0; i < sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.count; i++) { + LOG_I(RRC, " Contents of SIB21 %d/%d \n", i+1, sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.count); + LOG_I(RRC, " SIB21 sl_Subframe_r14: %d \n", sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.array[i]->sl_Subframe_r14.present); + LOG_I(RRC, " SIB21 adjacencyPSCCH_PSSCH_r14: %d \n", sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.array[i]->adjacencyPSCCH_PSSCH_r14); + LOG_I(RRC, " SIB21 sizeSubchannel_r14: %ld \n", sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.array[i]->sizeSubchannel_r14); + LOG_I(RRC, " SIB21 numSubchannel_r14: %ld \n", sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.array[i]->numSubchannel_r14); + LOG_I(RRC, " SIB21 startRB_Subchannel_r14: %ld \n", sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.array[i]->startRB_Subchannel_r14); + //to add more log + } + } + } + + +#endif +//----------------------------------------------------------------------------- + int decode_SI( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index ) { - SystemInformation_t **si = &UE_rrc_inst[ctxt_pP->module_id].si[eNB_index]; + 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]; VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_UE_DECODE_SI, VCD_FUNCTION_IN ); // Dump contents - if ((*si)->criticalExtensions.present == SystemInformation__criticalExtensions_PR_systemInformation_r8) { + if ((*si)->criticalExtensions.present == SystemInformation__criticalExtensions_PR_systemInformation_r8 || + (*si)->criticalExtensions.present == SystemInformation__criticalExtensions_PR_criticalExtensionsFuture) { 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 { @@ -3452,83 +3772,91 @@ static int decode_SI( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_in } for (int i=0; i<(*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count; i++) { - LOG_D( RRC, "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: - 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; - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index], &typeandinfo->choice.sib2, sizeof(SystemInformationBlockType2_t) ); - LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB2 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); - dump_sib2( UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index] ); - LOG_I( RRC, "[FRAME %05"PRIu32"][RRC_UE][MOD %02"PRIu8"][][--- MAC_CONFIG_REQ (SIB2 params eNB %"PRIu8") --->][MAC_UE][MOD %02"PRIu8"][]\n", - ctxt_pP->frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id ); - rrc_mac_config_req_ue(ctxt_pP->module_id, 0, eNB_index, - &UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->radioResourceConfigCommon, - (struct PhysicalConfigDedicated *)NULL, -#if defined(Rel10) || defined(Rel14) - (SCellToAddMod_r10_t *)NULL, + case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2: + 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; + memcpy( UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index], &typeandinfo->choice.sib2, sizeof(SystemInformationBlockType2_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB2 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); + dump_sib2( UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index] ); + LOG_I( RRC, "[FRAME %05"PRIu32"][RRC_UE][MOD %02"PRIu8"][][--- MAC_CONFIG_REQ (SIB2 params eNB %"PRIu8") --->][MAC_UE][MOD %02"PRIu8"][]\n", + ctxt_pP->frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id ); + + rrc_mac_config_req_ue(ctxt_pP->module_id, 0, eNB_index, + &UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->radioResourceConfigCommon, + (struct PhysicalConfigDedicated *)NULL, +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (SCellToAddMod_r10_t *)NULL, #endif - (MeasObjectToAddMod_t **)NULL, - (MAC_MainConfig_t *)NULL, - 0, - (struct LogicalChannelConfig *)NULL, - (MeasGapConfig_t *)NULL, - (TDD_Config_t *)NULL, - (MobilityControlInfo_t *)NULL, - NULL, - NULL, - UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->freqInfo.ul_CarrierFreq, - UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->freqInfo.ul_Bandwidth, - &UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->freqInfo.additionalSpectrumEmission, - UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->mbsfn_SubframeConfigList -#if defined(Rel10) || defined(Rel14) - ,0, - (MBSFN_AreaInfoList_r9_t *)NULL, - (PMCH_InfoList_r9_t *)NULL + (MeasObjectToAddMod_t **)NULL, + (MAC_MainConfig_t *)NULL, + 0, + (struct LogicalChannelConfig *)NULL, + (MeasGapConfig_t *)NULL, + (TDD_Config_t *)NULL, + (MobilityControlInfo_t *)NULL, + NULL, + NULL, + UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->freqInfo.ul_CarrierFreq, + UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->freqInfo.ul_Bandwidth, + &UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->freqInfo.additionalSpectrumEmission, + UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->mbsfn_SubframeConfigList +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + ,0, + (MBSFN_AreaInfoList_r9_t *)NULL, + (PMCH_InfoList_r9_t *)NULL + #endif #ifdef CBA ,0, 0 #endif - ); - // After SI is received, prepare RRCConnectionRequest -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + , + 0, + NULL, + NULL +#endif + ); + // After SI is received, prepare RRCConnectionRequest +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) if (UE_rrc_inst[ctxt_pP->module_id].MBMS_flag < 3) // see -Q option #endif #if !(defined(ENABLE_ITTI) && defined(ENABLE_USE_MME)) - rrc_ue_generate_RRCConnectionRequest( ctxt_pP, eNB_index ); + rrc_ue_generate_RRCConnectionRequest( ctxt_pP, eNB_index ); #endif - if (UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].State == RRC_IDLE) { - LOG_I( RRC, "[UE %d] Received SIB1/SIB2/SIB3 Switching to RRC_SI_RECEIVED\n", ctxt_pP->module_id ); - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].State = RRC_SI_RECEIVED; + if (UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].State == RRC_IDLE) { + LOG_I( RRC, "[UE %d] Received SIB1/SIB2/SIB3 Switching to RRC_SI_RECEIVED\n", ctxt_pP->module_id ); + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].State = RRC_SI_RECEIVED; #if ENABLE_RAL - { - MessageDef *message_ral_p = NULL; - rrc_ral_system_information_ind_t ral_si_ind; - message_ral_p = itti_alloc_new_message (TASK_RRC_UE, RRC_RAL_SYSTEM_INFORMATION_IND); - memset(&ral_si_ind, 0, sizeof(rrc_ral_system_information_ind_t)); - ral_si_ind.plmn_id.MCCdigit2 = '0'; - ral_si_ind.plmn_id.MCCdigit1 = '2'; - ral_si_ind.plmn_id.MNCdigit3 = '0'; - ral_si_ind.plmn_id.MCCdigit3 = '8'; - ral_si_ind.plmn_id.MNCdigit2 = '9'; - ral_si_ind.plmn_id.MNCdigit1 = '9'; - ral_si_ind.cell_id = 1; - ral_si_ind.dbm = 0; - //ral_si_ind.dbm = fifo_dump_emos_UE.PHY_measurements->rx_rssi_dBm[eNB_index]; - // TO DO - ral_si_ind.sinr = 0; - //ral_si_ind.sinr = fifo_dump_emos_UE.PHY_measurements->subband_cqi_dB[eNB_index][phy_vars_ue->lte_frame_parms.nb_antennas_rx][0]; - // TO DO - ral_si_ind.link_data_rate = 0; - memcpy (&message_ral_p->ittiMsg, (void *) &ral_si_ind, sizeof(rrc_ral_system_information_ind_t)); + { + MessageDef *message_ral_p = NULL; + rrc_ral_system_information_ind_t ral_si_ind; + + message_ral_p = itti_alloc_new_message (TASK_RRC_UE, RRC_RAL_SYSTEM_INFORMATION_IND); + memset(&ral_si_ind, 0, sizeof(rrc_ral_system_information_ind_t)); + ral_si_ind.plmn_id.MCCdigit2 = '0'; + ral_si_ind.plmn_id.MCCdigit1 = '2'; + ral_si_ind.plmn_id.MNCdigit3 = '0'; + ral_si_ind.plmn_id.MCCdigit3 = '8'; + ral_si_ind.plmn_id.MNCdigit2 = '9'; + ral_si_ind.plmn_id.MNCdigit1 = '9'; + ral_si_ind.cell_id = 1; + ral_si_ind.dbm = 0; + //ral_si_ind.dbm = fifo_dump_emos_UE.PHY_measurements->rx_rssi_dBm[eNB_index]; + // TO DO + ral_si_ind.sinr = 0; + //ral_si_ind.sinr = fifo_dump_emos_UE.PHY_measurements->subband_cqi_dB[eNB_index][phy_vars_ue->lte_frame_parms.nb_antennas_rx][0]; + // TO DO + ral_si_ind.link_data_rate = 0; + memcpy (&message_ral_p->ittiMsg, (void *) &ral_si_ind, sizeof(rrc_ral_system_information_ind_t)); #warning "ue_mod_idP ? for instance ?" itti_send_msg_to_task (TASK_RAL_UE, UE_MODULE_ID_TO_INSTANCE(ctxt_pP->module_id), message_ral_p); } @@ -3557,16 +3885,26 @@ static int decode_SI( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_in LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB4 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); } - break; + case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib5: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&16) == 0) { + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=16; + new_sib=1; - case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib5: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&16) == 0) { - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=16; - new_sib=1; - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib5[eNB_index], &typeandinfo->choice.sib5, sizeof(SystemInformationBlockType5_t) ); - LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB5 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); - dump_sib5(UE_rrc_inst[ctxt_pP->module_id].sib5[eNB_index]); - } + memcpy( UE_rrc_inst[ctxt_pP->module_id].sib5[eNB_index], &typeandinfo->choice.sib5, sizeof(SystemInformationBlockType5_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB5 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); + dump_sib5(UE_rrc_inst[ctxt_pP->module_id].sib5[eNB_index]); + } + break; + + case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib6: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&32) == 0) { + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=32; + new_sib=1; + + memcpy( UE_rrc_inst[ctxt_pP->module_id].sib6[eNB_index], &typeandinfo->choice.sib6, sizeof(SystemInformationBlockType6_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB6 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); + } + break; break; @@ -3578,7 +3916,15 @@ static int decode_SI( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_in LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB6 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); } - break; + case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib9: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&256) == 0) { + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=256; + new_sib=1; + + memcpy( UE_rrc_inst[ctxt_pP->module_id].sib9[eNB_index], &typeandinfo->choice.sib9, sizeof(SystemInformationBlockType9_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB9 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); + } + break; case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib7: if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&64) == 0) { @@ -3598,88 +3944,133 @@ static int decode_SI( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_in LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB8 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); } - break; +#if (RRC_VERSION >= MAKE_VERSION(9, 2, 0)) - case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib9: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&256) == 0) { - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=256; - new_sib=1; - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib9[eNB_index], &typeandinfo->choice.sib9, sizeof(SystemInformationBlockType9_t) ); - LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB9 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); - } + case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib12_v920: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&2048) == 0) { + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=2048; + new_sib=1; + memcpy( UE_rrc_inst[ctxt_pP->module_id].sib12[eNB_index], &typeandinfo->choice.sib12_v920, sizeof(SystemInformationBlockType12_r9_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB12 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); + } + break; - break; + case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&4096) == 0) { + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=4096; + new_sib=1; - case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib10: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&512) == 0) { - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=512; - new_sib=1; - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib10[eNB_index], &typeandinfo->choice.sib10, sizeof(SystemInformationBlockType10_t) ); - LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB10 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); - } - - break; - - case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib11: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&1024) == 0) { - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=1024; - new_sib=1; - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib11[eNB_index], &typeandinfo->choice.sib11, sizeof(SystemInformationBlockType11_t) ); - LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB11 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); - } - - break; -#if defined(Rel10) || defined(Rel14) - - case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib12_v920: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&2048) == 0) { - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=2048; - new_sib=1; - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib12[eNB_index], &typeandinfo->choice.sib12_v920, sizeof(SystemInformationBlockType12_r9_t) ); - LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB12 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); - } - - break; - - case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&4096) == 0) { - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=4096; - new_sib=1; - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib13[eNB_index], &typeandinfo->choice.sib13_v920, sizeof(SystemInformationBlockType13_r9_t) ); - LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB13 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); - dump_sib13( UE_rrc_inst[ctxt_pP->module_id].sib13[eNB_index] ); - // adding here function to store necessary parameters for using in decode_MCCH_Message + maybe transfer to PHY layer - LOG_I( RRC, "[FRAME %05"PRIu32"][RRC_UE][MOD %02"PRIu8"][][--- MAC_CONFIG_REQ (SIB13 params eNB %"PRIu8") --->][MAC_UE][MOD %02"PRIu8"][]\n", - ctxt_pP->frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id); - rrc_mac_config_req_ue(ctxt_pP->module_id,0,eNB_index, - (RadioResourceConfigCommonSIB_t *)NULL, - (struct PhysicalConfigDedicated *)NULL, - (SCellToAddMod_r10_t *)NULL, - (MeasObjectToAddMod_t **)NULL, - (MAC_MainConfig_t *)NULL, - 0, - (struct LogicalChannelConfig *)NULL, - (MeasGapConfig_t *)NULL, - (TDD_Config_t *)NULL, - (MobilityControlInfo_t *)NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - (MBSFN_SubframeConfigList_t *)NULL, - 0, - &UE_rrc_inst[ctxt_pP->module_id].sib13[eNB_index]->mbsfn_AreaInfoList_r9, - (PMCH_InfoList_r9_t *)NULL + memcpy( UE_rrc_inst[ctxt_pP->module_id].sib13[eNB_index], &typeandinfo->choice.sib13_v920, sizeof(SystemInformationBlockType13_r9_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB13 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); + dump_sib13( UE_rrc_inst[ctxt_pP->module_id].sib13[eNB_index] ); + // adding here function to store necessary parameters for using in decode_MCCH_Message + maybe transfer to PHY layer + LOG_I( RRC, "[FRAME %05"PRIu32"][RRC_UE][MOD %02"PRIu8"][][--- MAC_CONFIG_REQ (SIB13 params eNB %"PRIu8") --->][MAC_UE][MOD %02"PRIu8"][]\n", + ctxt_pP->frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id); + rrc_mac_config_req_ue(ctxt_pP->module_id,0,eNB_index, + (RadioResourceConfigCommonSIB_t *)NULL, + (struct PhysicalConfigDedicated *)NULL, + (SCellToAddMod_r10_t *)NULL, + (MeasObjectToAddMod_t **)NULL, + (MAC_MainConfig_t *)NULL, + 0, + (struct LogicalChannelConfig *)NULL, + (MeasGapConfig_t *)NULL, + (TDD_Config_t *)NULL, + (MobilityControlInfo_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + (MBSFN_SubframeConfigList_t *)NULL, + 0, + &UE_rrc_inst[ctxt_pP->module_id].sib13[eNB_index]->mbsfn_AreaInfoList_r9, + (PMCH_InfoList_r9_t *)NULL #ifdef CBA ,0, 0 #endif - ); - break; - } +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + , + 0, + NULL, + NULL +#endif + ); + break; + } +#endif + +#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) { + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=8192; + new_sib=1; + + memcpy( UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index], &typeandinfo->choice.sib18_v1250, sizeof(SystemInformationBlockType18_r12_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB18 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); + dump_sib18( UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index] ); + // adding here function to store necessary parameters to transfer to PHY layer + LOG_I( RRC, "[FRAME %05"PRIu32"][RRC_UE][MOD %02"PRIu8"][][--- MAC_CONFIG_REQ (SIB18 params eNB %"PRIu8") --->][MAC_UE][MOD %02"PRIu8"][]\n", + ctxt_pP->frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id); + + //process SIB18 to transfer SL-related parameters to PHY + rrc_ue_process_sidelink_radioResourceConfig(ctxt_pP->module_id,eNB_index, + UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index], + (SystemInformationBlockType19_r12_t *)NULL, + (SL_CommConfig_r12_t *)NULL, + (SL_DiscConfig_r12_t *)NULL + ); + + } + break; + + //SIB19 + case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib19_v1250: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&16384) == 0) { + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=16384; + new_sib=1; + + memcpy( UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index], &typeandinfo->choice.sib19_v1250, sizeof(SystemInformationBlockType19_r12_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB19 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); + dump_sib19( UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index] ); + // adding here function to store necessary parameters to transfer to PHY layer + LOG_I( RRC, "[FRAME %05"PRIu32"][RRC_UE][MOD %02"PRIu8"][][--- MAC_CONFIG_REQ (SIB19 params eNB %"PRIu8") --->][MAC_UE][MOD %02"PRIu8"][]\n", + ctxt_pP->frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id); + //process SIB19 to transfer SL-related parameters to PHY + rrc_ue_process_sidelink_radioResourceConfig(ctxt_pP->module_id,eNB_index, + (SystemInformationBlockType18_r12_t *)NULL, + UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index], + (SL_CommConfig_r12_t *)NULL, + (SL_DiscConfig_r12_t *)NULL + ); + + } + break; + + //SIB21 + case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib21_v1430: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&32768) == 0) { + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=32768; + new_sib=1; + + memcpy( UE_rrc_inst[ctxt_pP->module_id].sib21[eNB_index], &typeandinfo->choice.sib21_v1430, sizeof(SystemInformationBlockType21_r14_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB21 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); + dump_sib21( UE_rrc_inst[ctxt_pP->module_id].sib21[eNB_index] ); + // adding here function to store necessary parameters to transfer to PHY layer + LOG_I( RRC, "[FRAME %05"PRIu32"][RRC_UE][MOD %02"PRIu8"][][--- MAC_CONFIG_REQ (SIB21 params eNB %"PRIu8") --->][MAC_UE][MOD %02"PRIu8"][]\n", + ctxt_pP->frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id); + //process SIB21 + //TODO + } + break; + #endif + default: + break; + } default: break; @@ -3693,9 +4084,9 @@ static int decode_SI( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_in rrc_set_sub_state( ctxt_pP->module_id, RRC_SUB_STATE_IDLE_SIB_COMPLETE ); LOG_I(RRC,"SIStatus %x, SIcnt %d/%d\n", - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus, - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIcnt, - sib1->schedulingInfoList.list.count); + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus, + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIcnt, + sib1->schedulingInfoList.list.count); } VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_UE_DECODE_SI, VCD_FUNCTION_OUT); @@ -3764,13 +4155,13 @@ void ue_meas_filtering( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_ //Below routine implements Measurement Reporting procedure from 36.331 Section 5.5.5 //----------------------------------------------------------------------------- -static void rrc_ue_generate_MeasurementReport(protocol_ctxt_t *const ctxt_pP, uint8_t eNB_index ) + void rrc_ue_generate_MeasurementReport(protocol_ctxt_t* const ctxt_pP, uint8_t eNB_index ) { uint8_t buffer[32], size; 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; @@ -3808,24 +4199,27 @@ static void rrc_ue_generate_MeasurementReport(protocol_ctxt_t *const ctxt_pP, ui UE_rrc_inst[ctxt_pP->module_id].rsrp_db_filtered[target_eNB_offset], 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); + result = pdcp_data_req(ctxt_pP, SRB_FLAG_YES, DCCH, rrc_mui++, 0, size, buffer, PDCP_TRANSMISSION_MODE_DATA +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,NULL, NULL +#endif + ); AssertFatal (result == TRUE, "PDCP data request failed!\n"); //LOG_D(RRC, "[UE %d] Frame %d Sending MeasReport (%d bytes) through DCCH%d to PDCP \n",ue_mod_idP,frameP, size, DCCH); } @@ -3868,7 +4262,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 @@ -3951,7 +4344,7 @@ void ue_measurement_report_triggering(protocol_ctxt_t *const ctxt_pP, const uint //check_trigger_meas_event(ue_mod_idP, frameP, eNB_index, i,j,ofn,ocn,hys,ofs,ocs,a3_offset,ttt_ms) //----------------------------------------------------------------------------- -static uint8_t check_trigger_meas_event( + uint8_t check_trigger_meas_event( module_id_t ue_mod_idP, frame_t frameP, uint8_t eNB_index, @@ -4013,7 +4406,7 @@ static uint8_t check_trigger_meas_event( return 0; } -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) //----------------------------------------------------------------------------- int decode_MCCH_Message( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index, const uint8_t *const Sdu, const uint8_t Sdu_len, const uint8_t mbsfn_sync_area ) { @@ -4074,44 +4467,52 @@ int decode_MCCH_Message( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB } //----------------------------------------------------------------------------- -static void decode_MBSFNAreaConfiguration( module_id_t ue_mod_idP, uint8_t eNB_index, frame_t frameP, uint8_t mbsfn_sync_area ) + void decode_MBSFNAreaConfiguration( module_id_t ue_mod_idP, uint8_t eNB_index, frame_t frameP, uint8_t mbsfn_sync_area ) { protocol_ctxt_t ctxt; LOG_I(RRC,"[UE %d] Frame %d : Number of MCH(s) in the MBSFN Sync Area %d is %d\n", ue_mod_idP, frameP, mbsfn_sync_area, UE_rrc_inst[ue_mod_idP].mcch_message[eNB_index]->pmch_InfoList_r9.list.count); // store to MAC/PHY necessary parameters for receiving MTCHs rrc_mac_config_req_ue(ue_mod_idP,0,eNB_index, - (RadioResourceConfigCommonSIB_t *)NULL, - (struct PhysicalConfigDedicated *)NULL, -#if defined(Rel10) || defined(Rel14) - (SCellToAddMod_r10_t *)NULL, - //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, + (RadioResourceConfigCommonSIB_t *)NULL, + (struct PhysicalConfigDedicated *)NULL, +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (SCellToAddMod_r10_t *)NULL, + //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, #endif - (MeasObjectToAddMod_t **)NULL, - (MAC_MainConfig_t *)NULL, - 0, - (struct LogicalChannelConfig *)NULL, - (MeasGapConfig_t *)NULL, - (TDD_Config_t *)NULL, - (MobilityControlInfo_t *)NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - (MBSFN_SubframeConfigList_t *)NULL -#if defined(Rel10) || defined(Rel14) - , - 0, - (MBSFN_AreaInfoList_r9_t *)NULL, - &UE_rrc_inst[ue_mod_idP].mcch_message[eNB_index]->pmch_InfoList_r9 + (MeasObjectToAddMod_t **)NULL, + (MAC_MainConfig_t *)NULL, + 0, + (struct LogicalChannelConfig *)NULL, + (MeasGapConfig_t *)NULL, + (TDD_Config_t *)NULL, + (MobilityControlInfo_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + (MBSFN_SubframeConfigList_t *)NULL +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + , + 0, + (MBSFN_AreaInfoList_r9_t *)NULL, + &UE_rrc_inst[ue_mod_idP].mcch_message[eNB_index]->pmch_InfoList_r9 + #endif #ifdef CBA , 0, 0 #endif - ); +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + , + 0, + NULL, + NULL +#endif + ); + UE_rrc_inst[ue_mod_idP].Info[eNB_index].MCCHStatus[mbsfn_sync_area] = 1; PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_idP, ENB_FLAG_NO, UE_rrc_inst[ue_mod_idP].Info[eNB_index].rnti, frameP, 0,eNB_index); // Config Radio Bearer for MBMS user data (similar way to configure for eNB side in init_MBMS function) @@ -4123,7 +4524,7 @@ static void decode_MBSFNAreaConfiguration( module_id_t ue_mod_idP, uint8_t eNB_i NULL, // key rrc encryption NULL, // key rrc integrity NULL // key encryption -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) ,&(UE_rrc_inst[ue_mod_idP].mcch_message[eNB_index]->pmch_InfoList_r9) #endif ,NULL); @@ -4131,8 +4532,9 @@ static void decode_MBSFNAreaConfiguration( module_id_t ue_mod_idP, uint8_t eNB_i NULL,// SRB_ToAddModList NULL,// DRB_ToAddModList NULL,// DRB_ToReleaseList -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) &(UE_rrc_inst[ue_mod_idP].mcch_message[eNB_index]->pmch_InfoList_r9) + , 0, 0 #endif ); // */ @@ -4145,7 +4547,6 @@ static void decode_MBSFNAreaConfiguration( module_id_t ue_mod_idP, uint8_t eNB_i void *rrc_ue_task( void *args_p ) { MessageDef *msg_p; - const char *msg_name; instance_t instance; unsigned int ue_mod_id; int result; @@ -4156,7 +4557,6 @@ void *rrc_ue_task( void *args_p ) while(1) { // 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); @@ -4166,27 +4566,47 @@ void *rrc_ue_task( void *args_p ) itti_exit_task (); break; - case MESSAGE_TEST: - LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, msg_name); - break; + case MESSAGE_TEST: + 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, - 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; + case RRC_MAC_IN_SYNC_IND: + 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); - if (UE_rrc_inst[ue_mod_id].Info[RRC_MAC_IN_SYNC_IND (msg_p).enb_index].T310_active == 1) { - UE_rrc_inst[ue_mod_id].Info[RRC_MAC_IN_SYNC_IND (msg_p).enb_index].N311_cnt++; - } + UE_rrc_inst[ue_mod_id].Info[RRC_MAC_IN_SYNC_IND (msg_p).enb_index].N310_cnt = 0; - break; + if (UE_rrc_inst[ue_mod_id].Info[RRC_MAC_IN_SYNC_IND (msg_p).enb_index].T310_active == 1) { + UE_rrc_inst[ue_mod_id].Info[RRC_MAC_IN_SYNC_IND (msg_p).enb_index].N311_cnt++; + } - case RRC_MAC_OUT_OF_SYNC_IND: - LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, msg_name, - 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; + break; + + case RRC_MAC_OUT_OF_SYNC_IND: + 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, 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); + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, NOT_A_RNTI, RRC_MAC_BCCH_DATA_IND (msg_p).frame, 0,RRC_MAC_BCCH_DATA_IND (msg_p).enb_index); + decode_BCCH_DLSCH_Message (&ctxt, + RRC_MAC_BCCH_DATA_IND (msg_p).enb_index, + RRC_MAC_BCCH_DATA_IND (msg_p).sdu, + RRC_MAC_BCCH_DATA_IND (msg_p).sdu_size, + RRC_MAC_BCCH_DATA_IND (msg_p).rsrq, + RRC_MAC_BCCH_DATA_IND (msg_p).rsrp); + break; + + case RRC_MAC_CCCH_DATA_CNF: + 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); case RRC_MAC_BCCH_DATA_IND: LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, msg_name, @@ -4201,108 +4621,142 @@ void *rrc_ue_task( void *args_p ) RRC_MAC_BCCH_DATA_IND (msg_p).rsrp); break; - case RRC_MAC_CCCH_DATA_CNF: - LOG_D(RRC, "[UE %d] Received %s: eNB %d\n", ue_mod_id, msg_name, - 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) - UE_rrc_inst[ue_mod_id].Srb0[RRC_MAC_CCCH_DATA_CNF (msg_p).enb_index].Tx_buffer.payload_size = 0; - break; + case RRC_MAC_CCCH_DATA_IND: + 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, + ITTI_MSG_NAME (msg_p), + RRC_MAC_CCCH_DATA_IND (msg_p).frame, + RRC_MAC_CCCH_DATA_IND (msg_p).enb_index); - case RRC_MAC_CCCH_DATA_IND: - 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, - RRC_MAC_CCCH_DATA_IND (msg_p).frame, - RRC_MAC_CCCH_DATA_IND (msg_p).enb_index); - srb_info_p = &UE_rrc_inst[ue_mod_id].Srb0[RRC_MAC_CCCH_DATA_IND (msg_p).enb_index]; - memcpy (srb_info_p->Rx_buffer.Payload, RRC_MAC_CCCH_DATA_IND (msg_p).sdu, - RRC_MAC_CCCH_DATA_IND (msg_p).sdu_size); - srb_info_p->Rx_buffer.payload_size = RRC_MAC_CCCH_DATA_IND (msg_p).sdu_size; - // PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, RRC_MAC_CCCH_DATA_IND (msg_p).rnti, RRC_MAC_CCCH_DATA_IND (msg_p).frame, 0); - PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, RRC_MAC_CCCH_DATA_IND (msg_p).rnti, RRC_MAC_CCCH_DATA_IND (msg_p).frame, 0, RRC_MAC_CCCH_DATA_IND (msg_p).enb_index); - rrc_ue_decode_ccch (&ctxt, - srb_info_p, - RRC_MAC_CCCH_DATA_IND (msg_p).enb_index); - break; -# if defined(Rel10) || defined(Rel14) + srb_info_p = &UE_rrc_inst[ue_mod_id].Srb0[RRC_MAC_CCCH_DATA_IND (msg_p).enb_index]; - 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, - 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); - PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, M_RNTI, RRC_MAC_MCCH_DATA_IND (msg_p).frame, 0,RRC_MAC_MCCH_DATA_IND (msg_p).enb_index); - decode_MCCH_Message ( - &ctxt, - RRC_MAC_MCCH_DATA_IND (msg_p).enb_index, - RRC_MAC_MCCH_DATA_IND (msg_p).sdu, - RRC_MAC_MCCH_DATA_IND (msg_p).sdu_size, - RRC_MAC_MCCH_DATA_IND (msg_p).mbsfn_sync_area); - 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); + srb_info_p->Rx_buffer.payload_size = RRC_MAC_CCCH_DATA_IND (msg_p).sdu_size; + // PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, RRC_MAC_CCCH_DATA_IND (msg_p).rnti, RRC_MAC_CCCH_DATA_IND (msg_p).frame, 0); + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, RRC_MAC_CCCH_DATA_IND (msg_p).rnti, RRC_MAC_CCCH_DATA_IND (msg_p).frame, 0, RRC_MAC_CCCH_DATA_IND (msg_p).enb_index); + rrc_ue_decode_ccch (&ctxt, + srb_info_p, + RRC_MAC_CCCH_DATA_IND (msg_p).enb_index); + break; + +#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, 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); + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, M_RNTI, RRC_MAC_MCCH_DATA_IND (msg_p).frame, 0,RRC_MAC_MCCH_DATA_IND (msg_p).enb_index); + decode_MCCH_Message ( + &ctxt, + RRC_MAC_MCCH_DATA_IND (msg_p).enb_index, + RRC_MAC_MCCH_DATA_IND (msg_p).sdu, + RRC_MAC_MCCH_DATA_IND (msg_p).sdu_size, + RRC_MAC_MCCH_DATA_IND (msg_p).mbsfn_sync_area); + break; + + /* //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, 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 + break; +*/ # endif /* PDCP messages */ - case RRC_DCCH_DATA_IND: - 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, - 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, - RRC_DCCH_DATA_IND (msg_p).dcch_index, - RRC_DCCH_DATA_IND (msg_p).eNB_index); - rrc_ue_decode_dcch ( - &ctxt, - RRC_DCCH_DATA_IND (msg_p).dcch_index, - RRC_DCCH_DATA_IND (msg_p).sdu_p, - RRC_DCCH_DATA_IND (msg_p).eNB_index); - // 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); - break; + case RRC_DCCH_DATA_IND: + 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, + 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), + 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 ( + &ctxt, + RRC_DCCH_DATA_IND (msg_p).dcch_index, + RRC_DCCH_DATA_IND (msg_p).sdu_p, + RRC_DCCH_DATA_IND (msg_p).eNB_index); + // 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); + break; + # if defined(ENABLE_USE_MME) case NAS_KENB_REFRESH_REQ: memcpy((void *)UE_rrc_inst[ue_mod_id].kenb, (void *)NAS_KENB_REFRESH_REQ(msg_p).kenb, sizeof(UE_rrc_inst[ue_mod_id].kenb)); LOG_D(RRC, "[UE %d] Received %s: refreshed RRC::KeNB = " - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x\n", - ue_mod_id, msg_name, - 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], - UE_rrc_inst[ue_mod_id].kenb[12], UE_rrc_inst[ue_mod_id].kenb[13], UE_rrc_inst[ue_mod_id].kenb[14], UE_rrc_inst[ue_mod_id].kenb[15], - UE_rrc_inst[ue_mod_id].kenb[16], UE_rrc_inst[ue_mod_id].kenb[17], UE_rrc_inst[ue_mod_id].kenb[18], UE_rrc_inst[ue_mod_id].kenb[19], - UE_rrc_inst[ue_mod_id].kenb[20], UE_rrc_inst[ue_mod_id].kenb[21], UE_rrc_inst[ue_mod_id].kenb[22], UE_rrc_inst[ue_mod_id].kenb[23], - UE_rrc_inst[ue_mod_id].kenb[24], UE_rrc_inst[ue_mod_id].kenb[25], UE_rrc_inst[ue_mod_id].kenb[26], UE_rrc_inst[ue_mod_id].kenb[27], - UE_rrc_inst[ue_mod_id].kenb[28], UE_rrc_inst[ue_mod_id].kenb[29], UE_rrc_inst[ue_mod_id].kenb[30], UE_rrc_inst[ue_mod_id].kenb[31]); - break; + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x\n", + 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], + UE_rrc_inst[ue_mod_id].kenb[12], UE_rrc_inst[ue_mod_id].kenb[13], UE_rrc_inst[ue_mod_id].kenb[14], UE_rrc_inst[ue_mod_id].kenb[15], + UE_rrc_inst[ue_mod_id].kenb[16], UE_rrc_inst[ue_mod_id].kenb[17], UE_rrc_inst[ue_mod_id].kenb[18], UE_rrc_inst[ue_mod_id].kenb[19], + UE_rrc_inst[ue_mod_id].kenb[20], UE_rrc_inst[ue_mod_id].kenb[21], UE_rrc_inst[ue_mod_id].kenb[22], UE_rrc_inst[ue_mod_id].kenb[23], + UE_rrc_inst[ue_mod_id].kenb[24], UE_rrc_inst[ue_mod_id].kenb[25], UE_rrc_inst[ue_mod_id].kenb[26], UE_rrc_inst[ue_mod_id].kenb[27], + UE_rrc_inst[ue_mod_id].kenb[28], UE_rrc_inst[ue_mod_id].kenb[29], UE_rrc_inst[ue_mod_id].kenb[30], UE_rrc_inst[ue_mod_id].kenb[31]); + + break; /* 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), - NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit1, - NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit2, - NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit3, - NAS_CELL_SELECTION_REQ (msg_p).plmnID.MNCdigit1, - NAS_CELL_SELECTION_REQ (msg_p).plmnID.MNCdigit2, - NAS_CELL_SELECTION_REQ (msg_p).plmnID.MNCdigit3, - NAS_CELL_SELECTION_REQ (msg_p).rat); + case NAS_CELL_SELECTION_REQ: - if (rrc_get_state(ue_mod_id) == RRC_STATE_INACTIVE) { - // have a look at MAC/main.c void dl_phy_sync_success(...) - openair_rrc_ue_init(ue_mod_id,0); - } + 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, + NAS_CELL_SELECTION_REQ (msg_p).plmnID.MNCdigit1, + NAS_CELL_SELECTION_REQ (msg_p).plmnID.MNCdigit2, + NAS_CELL_SELECTION_REQ (msg_p).plmnID.MNCdigit3, + NAS_CELL_SELECTION_REQ (msg_p).rat); + + if (rrc_get_state(ue_mod_id) == RRC_STATE_INACTIVE) { + // have a look at MAC/main.c void dl_phy_sync_success(...) + openair_rrc_ue_init(ue_mod_id,0); + } + + /* Save cell selection criterion */ + { + UE_rrc_inst[ue_mod_id].plmnID = NAS_CELL_SELECTION_REQ (msg_p).plmnID; + UE_rrc_inst[ue_mod_id].rat = NAS_CELL_SELECTION_REQ (msg_p).rat; + LOG_D(RRC, "[UE %d] Save cell selection criterion MCC %X%X%X MNC %X%X%X\n", + ue_mod_id, + UE_rrc_inst[ue_mod_id].plmnID.MCCdigit1, + UE_rrc_inst[ue_mod_id].plmnID.MCCdigit2, + UE_rrc_inst[ue_mod_id].plmnID.MCCdigit3, + UE_rrc_inst[ue_mod_id].plmnID.MNCdigit1, + UE_rrc_inst[ue_mod_id].plmnID.MNCdigit2, + UE_rrc_inst[ue_mod_id].plmnID.MNCdigit3); + + } + + switch (rrc_get_state(ue_mod_id)) { + case RRC_STATE_INACTIVE: { + /* Need to first activate lower layers */ + MessageDef *message_p; + + message_p = itti_alloc_new_message(TASK_RRC_UE, ACTIVATE_MESSAGE); + + itti_send_msg_to_task(TASK_L2L1, UE_MODULE_ID_TO_INSTANCE(ue_mod_id), message_p); /* Save cell selection criterion */ { @@ -4351,31 +4805,15 @@ void *rrc_ue_task( void *args_p ) 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, - 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, - NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MCCdigit1, - NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MCCdigit2, - NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MCCdigit3, - NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MNCdigit1, - NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MNCdigit2, - NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MNCdigit3); - //PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, NOT_A_RNTI, 0, 0); - PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, NOT_A_RNTI, 0, 0, 0); - UE_rrc_inst[ue_mod_id].initialNasMsg = NAS_CONN_ESTABLI_REQ (msg_p).initialNasMsg; + case RRC_STATE_CONNECTED: + /* should not happen */ + 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; - switch (rrc_get_state(ue_mod_id)) { - case RRC_STATE_IDLE: { - if (rrc_get_sub_state(ue_mod_id) == RRC_SUB_STATE_IDLE_SIB_COMPLETE) { - rrc_ue_generate_RRCConnectionRequest(&ctxt, 0); - LOG_D(RRC, "not sending connection request\n"); - rrc_set_sub_state (ue_mod_id, RRC_SUB_STATE_IDLE_CONNECTING); - } - - break; - } + default: + LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); + break; + } case RRC_STATE_INACTIVE: case RRC_STATE_CONNECTED: @@ -4383,60 +4821,104 @@ void *rrc_ue_task( void *args_p ) LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, msg_name, 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)); - 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, 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, + NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MCCdigit1, + NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MCCdigit2, + NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MCCdigit3, + NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MNCdigit1, + NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MNCdigit2, + NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MNCdigit3); + + //PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, NOT_A_RNTI, 0, 0); + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, NOT_A_RNTI, 0, 0, 0); + + UE_rrc_inst[ue_mod_id].initialNasMsg = NAS_CONN_ESTABLI_REQ (msg_p).initialNasMsg; + + switch (rrc_get_state(ue_mod_id)) { + case RRC_STATE_IDLE: { + if (rrc_get_sub_state(ue_mod_id) == RRC_SUB_STATE_IDLE_SIB_COMPLETE) { + rrc_ue_generate_RRCConnectionRequest(&ctxt, 0); + LOG_D(RRC, "not sending connection request\n"); + + rrc_set_sub_state (ue_mod_id, RRC_SUB_STATE_IDLE_CONNECTING); } break; - case NAS_UPLINK_DATA_REQ: { - 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); - /* 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); - /* Transfer data to PDCP */ - PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, UE_rrc_inst[ue_mod_id].Info[0].rnti, 0, 0,0); - - // check if SRB2 is created, if yes request data_req on DCCH1 (SRB2) - if(UE_rrc_inst[ue_mod_id].SRB2_config[0] == NULL) - { - rrc_data_req_ue (&ctxt, - DCCH, - rrc_mui++, - SDU_CONFIRM_NO, - length, buffer, - PDCP_TRANSMISSION_MODE_CONTROL); - } - else - { - rrc_data_req_ue (&ctxt, - DCCH1, - rrc_mui++, - SDU_CONFIRM_NO, - length, buffer, - PDCP_TRANSMISSION_MODE_CONTROL); - } + 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, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id)); + break; + default: + LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); break; } + break; + + case NAS_UPLINK_DATA_REQ: { + uint32_t length; + uint8_t *buffer; + + 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); + + /* Transfer data to PDCP */ + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, UE_rrc_inst[ue_mod_id].Info[0].rnti, 0, 0,0); + + // check if SRB2 is created, if yes request data_req on DCCH1 (SRB2) + if(UE_rrc_inst[ue_mod_id].SRB2_config[0] == NULL) + { + rrc_data_req_ue (&ctxt, + DCCH, + rrc_mui++, + SDU_CONFIRM_NO, + length, buffer, + PDCP_TRANSMISSION_MODE_CONTROL); + } + else + { + rrc_data_req_ue (&ctxt, + DCCH1, + rrc_mui++, + SDU_CONFIRM_NO, + length, buffer, + PDCP_TRANSMISSION_MODE_CONTROL); + } + break; + } + # endif # if ENABLE_RAL - case RRC_RAL_SCAN_REQ: - LOG_D(RRC, "[UE %d] Received %s: state %d\n", ue_mod_id, msg_name); + case RRC_RAL_SCAN_REQ: + 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: { - /* Need to first activate lower layers */ - MessageDef *message_p; - message_p = itti_alloc_new_message(TASK_RRC_UE, ACTIVATE_MESSAGE); - itti_send_msg_to_task(TASK_L2L1, instance, message_p); - rrc_set_state (ue_mod_id, RRC_STATE_IDLE); - /* Fall through to next case */ - } + switch (rrc_get_state(ue_mod_id)) { + case RRC_STATE_INACTIVE: { + /* Need to first activate lower layers */ + MessageDef *message_p; + + message_p = itti_alloc_new_message(TASK_RRC_UE, ACTIVATE_MESSAGE); + + itti_send_msg_to_task(TASK_L2L1, instance, message_p); + + rrc_set_state (ue_mod_id, RRC_STATE_IDLE); + /* Fall through to next case */ + } + + case RRC_STATE_IDLE: { + if (rrc_get_sub_state(ue_mod_id) != RRC_SUB_STATE_IDLE_SEARCHING) { + /* Ask to layer 1 to find a cell matching the criterion */ + MessageDef *message_p; case RRC_STATE_IDLE: { if (rrc_get_sub_state(ue_mod_id) != RRC_SUB_STATE_IDLE_SEARCHING) { @@ -4465,27 +4947,32 @@ void *rrc_ue_task( void *args_p ) 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)); + case RRC_STATE_CONNECTED: + /* should not happen */ + 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; - switch (rrc_get_state(ue_mod_id)) { - case RRC_STATE_IDLE: - switch (rrc_get_sub_state(ue_mod_id)) { - case RRC_SUB_STATE_IDLE_SEARCHING: { - MessageDef *message_p; - int i; - message_p = itti_alloc_new_message(TASK_RRC_UE, RRC_RAL_SCAN_CONF); - RRC_RAL_SCAN_CONF (message_p).transaction_id = PHY_FIND_CELL_IND(msg_p).transaction_id; - RRC_RAL_SCAN_CONF (message_p).num_scan_resp = PHY_FIND_CELL_IND(msg_p).cell_nb; + default: + LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); + break; + } - for (i = 0 ; i < PHY_FIND_CELL_IND(msg_p).cell_nb; i++) { - // TO DO - memset(&RRC_RAL_SCAN_CONF (message_p).link_scan_resp[i].link_addr, 0, sizeof(ral_link_addr_t)); - // TO DO - memset(&RRC_RAL_SCAN_CONF (message_p).link_scan_resp[i].network_id, 0, sizeof(ral_network_id_t)); - RRC_RAL_SCAN_CONF (message_p).link_scan_resp[i].sig_strength.choice = RAL_SIG_STRENGTH_CHOICE_DBM; - RRC_RAL_SCAN_CONF (message_p).link_scan_resp[i].sig_strength._union.dbm = PHY_FIND_CELL_IND(msg_p).cells[i].rsrp; - } + break; + + case PHY_FIND_CELL_IND: + 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: + switch (rrc_get_sub_state(ue_mod_id)) { + case RRC_SUB_STATE_IDLE_SEARCHING: { + MessageDef *message_p; + int i; + + message_p = itti_alloc_new_message(TASK_RRC_UE, RRC_RAL_SCAN_CONF); + + RRC_RAL_SCAN_CONF (message_p).transaction_id = PHY_FIND_CELL_IND(msg_p).transaction_id; + RRC_RAL_SCAN_CONF (message_p).num_scan_resp = PHY_FIND_CELL_IND(msg_p).cell_nb; rrc_set_sub_state (ue_mod_id, RRC_SUB_STATE_IDLE); itti_send_msg_to_task(TASK_RAL_UE, instance, message_p); @@ -4507,24 +4994,23 @@ void *rrc_ue_task( void *args_p ) LOG_E(RRC, "[UE %d] indication %s in RRC state %d\n", ue_mod_id, msg_name, 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)); - break; + default: + 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)); } - break; // PHY_FIND_CELL_IND + break; - case PHY_MEAS_REPORT_IND: { - MessageDef *message_p; - message_p = itti_alloc_new_message(TASK_RRC_UE, RRC_RAL_MEASUREMENT_REPORT_IND); - memcpy(&RRC_RAL_MEASUREMENT_REPORT_IND (message_p).threshold, - &PHY_MEAS_REPORT_IND(msg_p).threshold, - sizeof(RRC_RAL_MEASUREMENT_REPORT_IND (message_p).threshold)); - memcpy(&RRC_RAL_MEASUREMENT_REPORT_IND (message_p).link_param, - &PHY_MEAS_REPORT_IND(msg_p).link_param, - sizeof(RRC_RAL_MEASUREMENT_REPORT_IND (message_p).link_param)); - LOG_D(RRC, "[UE %d] PHY_MEAS_REPORT_IN: sending msg %s to %s \n", ue_mod_id, "RRC_RAL_MEASUREMENT_REPORT_IND", "TASK_RAL_UE"); - itti_send_msg_to_task(TASK_RAL_UE, instance, message_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, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id)); + break; + + default: + LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); break; } @@ -4547,11 +5033,8 @@ void *rrc_ue_task( void *args_p ) break; } - 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)); - break; + case RRC_RAL_CONNECTION_ESTABLISHMENT_REQ: + LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p)); default: LOG_C(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); @@ -4560,14 +5043,28 @@ void *rrc_ue_task( void *args_p ) break; - case RRC_RAL_CONNECTION_RELEASE_REQ: - LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, msg_name); + 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, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id)); break; #endif default: - LOG_E(RRC, "[UE %d] Received unexpected message %s\n", ue_mod_id, msg_name); + 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, ITTI_MSG_NAME (msg_p)); + break; +#endif + + default: + LOG_E(RRC, "[UE %d] Received unexpected message %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p)); + break; } result = itti_free (ITTI_MSG_ORIGIN_ID(msg_p), msg_p); @@ -4610,7 +5107,7 @@ openair_rrc_top_init_ue( UE_rrc_inst[module_id].UECapability_size = UECap->sdu_size; } -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) LOG_I(RRC,"[UE] eMBMS active state is %d \n", eMBMS_active); for (module_id=0; module_id= MAKE_VERSION(14, 0, 0)) + /* TODO: this is disabled for the moment because the standard UE + * crashes when calling this function. + */ + //init_SL_preconfig(&UE_rrc_inst[module_id],0); +#endif + } else { UE_rrc_inst = NULL; } @@ -4634,6 +5139,1085 @@ rrc_top_cleanup_ue( } +//----------------------------------------------------------------------------- +uint8_t rrc_ue_generate_SidelinkUEInformation( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,SL_DestinationInfoList_r12_t *destinationInfoList, long *discTxResourceReq, SL_TRIGGER_t mode) +{ + uint8_t size=0; + uint8_t buffer[100]; + + //Generate SidelinkUEInformation + if (((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&8192) > 0) && (destinationInfoList != NULL)) {//if SIB18 is available + size = do_SidelinkUEInformation(ctxt_pP->module_id, buffer, destinationInfoList, NULL, mode); + LOG_I(RRC,"[UE %d][RRC_UE] Frame %d : Logical Channel UL-DCCH, Generating SidelinkUEInformation (bytes%d, eNB %d)\n", + ctxt_pP->module_id,ctxt_pP->frame, size, eNB_index); + //return size; + } + if (((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&16384) > 0) && (discTxResourceReq != NULL)) {//if SIB19 is available + size = do_SidelinkUEInformation(ctxt_pP->module_id, buffer, NULL, discTxResourceReq, mode); + LOG_I(RRC,"[UE %d][RRC_UE] Frame %d : Logical Channel UL-DCCH, Generating SidelinkUEInformation (bytes%d, eNB %d)\n", + ctxt_pP->module_id,ctxt_pP->frame, size, eNB_index); + //return size; + } + + rrc_data_req_ue ( + ctxt_pP, + DCCH, + rrc_mui++, + SDU_CONFIRM_NO, + size, + buffer, + PDCP_TRANSMISSION_MODE_CONTROL); + return size; +} + + +// 3GPP 36.331 (Section 5.10.7.3) +uint8_t fill_SLSS(const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, SLSSID_r12_t *slss_id, uint8_t *subframe, uint8_t mode) +{ + long syncOffsetIndicator = 0; + switch(mode) { + case 1: //if triggered by SL discovery announcement and in-coverage + //discSyncConfig_r12 contains only one element + *slss_id = UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index]->discConfig_r12->discSyncConfig_r12->list.array[0]->slssid_r12; + syncOffsetIndicator = UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index]->discConfig_r12->discSyncConfig_r12->list.array[0]->syncOffsetIndicator_r12; + //select subframe for SLSS + break; + case 2: //if triggered by SL communication and in-coverage + + if (UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index]->commConfig_r12->commSyncConfig_r12->list.array[0]->txParameters_r12) { + *slss_id = UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index]->commConfig_r12->commSyncConfig_r12->list.array[0]->slssid_r12; + syncOffsetIndicator = UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index]->commConfig_r12->commSyncConfig_r12->list.array[0]->syncOffsetIndicator_r12; + + //if RRC_CONNECTED (Todo: and if networkControlledSyncTx (RRCConnectionReconfiguration) is configured and set to On) + if (UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].State == RRC_CONNECTED){ + //select subframe(s) indicated by syncOffsetIndicator + *subframe = syncOffsetIndicator; + } else { + //select subframe(s) indicated by syncOffsetIndicator within SC period + } + break; + case 3: //if triggered by V2X communication and in coverage + + break; + case 4: //if triggered by V2X communication and out-of-coverage + + break; + case 5: //if triggered by V2X communication and UE has GNSS as the synchronization reference + + default: + //if UE has a selected SyncRefUE + //TODO + //else (no SyncRefUE Selected) + //Todo if trigger by V2X + //else randomly select an SLSSID from the set defined for out-of-coverage + *slss_id = 170;//hardcoded + //select the subframe according to syncOffsetIndicator1/2 from the preconfigured parameters + break; + } + } + return 0; +} + + +//----------------------------------------------------------------------------- +void +rrc_ue_process_sidelink_radioResourceConfig( + module_id_t Mod_idP, + uint8_t eNB_index, + SystemInformationBlockType18_r12_t *sib18, + SystemInformationBlockType19_r12_t *sib19, + SL_CommConfig_r12_t* sl_CommConfig, + SL_DiscConfig_r12_t* sl_DiscConfig +) +//----------------------------------------------------------------------------- +{ + //process SIB18, configure MAC/PHY for receiving SL communication (RRC_IDLE and RRC_CONNECTED), for transmitting SL communication (RRC_IDLE) + if (sib18 != NULL) { + if (sib18->commConfig_r12 != NULL) { + //do not consider commTXPoolExceptional for the moment + //configure PHY/MAC to receive SL communication by using the RPs indicated by commRxPool + //sib18->commConfig_r12->commRxPool_r12 + //TODO + + if (sib18->commConfig_r12->commTxPoolNormalCommon_r12 !=NULL) { //commTxPoolNormalCommon - to transmit SL communication in RRC_IDLE + //maybe we don't consider this case for the moment since UE will immediately establish a RRC connection after receiving SIB messages + //configure PHY/MAC to transmit SL communication using the RPs indicated by the first entry in commTxPoolNormalCommon + //SL_CommResourcePool_r12_t sl_CommResourcePool = sib18->commConfig_r12->commTxPoolNormalCommon_r12->list.array[0]; + } + } + } + + //process SIB19, configure MAC/PHY for receiving SL discovery (RRC_IDLE and RRC_CONNECTED), for transmitting SL discovery (RRC_IDLE) + if (sib19 != NULL) { + //to receive non-PS related discovery announcements (discRxPool) + //sib19->discConfig_r12->discRxPool_r12; + + //to receive PS related discovery announcements (discRxPoolPS) + //sib19->ext1->discConfigPS_13->discRxPoolPS_r13; + + //to transmit non-PS related discovery in RRC_IDLE + //sib19->discConfig_r12->discTxPoolCommon_r12; + + //to transmit PS related discovery in RRC_IDLE + //sib19->ext1->discConfigPS_13->discTxPoolPS_Common_r13; + } + + //process sl_CommConfig, configure MAC/PHY for transmitting SL communication (RRC_CONNECTED) + if (sl_CommConfig != NULL) { + + if (sl_CommConfig->commTxResources_r12 != NULL) { + switch (sl_CommConfig->commTxResources_r12->present){ + 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 %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 ); + LOG_I(RRC,"[UE %d][RRC_UE] scheduled resource for SL, Mac_MainConfig_r12.retx_BSR_TimerSL %ld \n", + Mod_idP, sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.mac_MainConfig_r12.retx_BSR_TimerSL ); + LOG_I(RRC,"[UE %d][RRC_UE] scheduled resource for SL, sc_CommTxConfig %ld \n", + Mod_idP, sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.mac_MainConfig_r12.retx_BSR_TimerSL ); + //configure scheduled resource for SL + //TODO + } else if (sl_CommConfig->commTxResources_r12->choice.setup.present == SL_CommConfig_r12__commTxResources_r12__setup_PR_ue_Selected_r12){ + //configure dedicated resources (commTxPoolNormalDedicated) for SL from which UE can autonomously select + //sl_CommConfig->commTxResources_r12->choice.setup.choice.ue_Selected_r12.commTxPoolNormalDedicated_r12; + + //for the moment, only pass the first entry (e.g., do not consider priorityList in commTxPoolNormalDedicated (3GPP 36.331 Section 5.10.4 1>2>3>4)) + //sl_CommConfig->commTxResources_r12->choice.setup.choice.ue_Selected_r12.commTxPoolNormalDedicated_r12.poolToAddModList_r12->list.array[0]; + } else { + //SL_CommConfig_r12__commTxResources_r12__setup_PR_NOTHING /* No components present */ + } + break; + + case SL_CommConfig_r12__commTxResources_r12_PR_release: + //release dedicated resources for SL communication + break; + + case SL_CommConfig_r12__commTxResources_r12_PR_NOTHING: /* No components present */ + break; + + default: + break; + } + } + + } + + //process sl_DiscConfig, configure MAC/PHY for transmitting SL discovery announcements (RRC_CONNECTED) + if (sl_DiscConfig != NULL) { + //dedicated resources for transmitting non-PS related discovery + if (sl_DiscConfig->discTxResources_r12 != NULL) { + + switch (sl_DiscConfig->discTxResources_r12->present) { + case SL_DiscConfig_r12__discTxResources_r12_PR_setup: + if (sl_DiscConfig->discTxResources_r12->choice.setup.present == SL_DiscConfig_r12__discTxResources_r12__setup_PR_scheduled_r12) { + //sl_DiscConfig->discTxResources_r12->choice.setup.choice.scheduled_r12.discHoppingConfig_r12; + //sl_DiscConfig->discTxResources_r12->choice.setup.choice.scheduled_r12.discTF_IndexList_r12; + //sl_DiscConfig->discTxResources_r12->choice.setup.choice.scheduled_r12.discTxConfig_r12; + } else if (sl_DiscConfig->discTxResources_r12->choice.setup.present == SL_DiscConfig_r12__discTxResources_r12__setup_PR_ue_Selected_r12) { + //sl_DiscConfig->discTxResources_r12->choice.setup.choice.ue_Selected_r12.discTxPoolDedicated_r12; + } else { + //SL_DiscConfig_r12__discTxResources_r12__setup_PR_NOTHING, /* No components present */ + } + break; + case SL_DiscConfig_r12__discTxResources_r12_PR_release: + //release dedicated resources for SL discovery + break; + case SL_DiscConfig_r12__discTxResources_r12_PR_NOTHING: /* No components present */ + break; + default: + break; + } + + } + //dedicated resources for transmitting PS related discovery + if (sl_DiscConfig->ext2->discTxResourcesPS_r13 != NULL){ + switch (sl_DiscConfig->ext2->discTxResourcesPS_r13->present) { + case SL_DiscConfig_r12__ext2__discTxResourcesPS_r13_PR_setup: + if (sl_DiscConfig->ext2->discTxResourcesPS_r13->choice.setup.present == SL_DiscConfig_r12__ext2__discTxResourcesPS_r13__setup_PR_scheduled_r13) { + //sl_DiscConfig->ext2->discTxResourcesPS_r13->choice.setup.choice.scheduled_r13.discHoppingConfig_r13; + //sl_DiscConfig->ext2->discTxResourcesPS_r13->choice.setup.choice.scheduled_r13.discTxConfig_r13 + } else if (sl_DiscConfig->ext2->discTxResourcesPS_r13->choice.setup.present == SL_DiscConfig_r12__ext2__discTxResourcesPS_r13__setup_PR_ue_Selected_r13) { + //sl_DiscConfig->ext2->discTxResourcesPS_r13->choice.setup.choice.ue_Selected_r13.discTxPoolPS_Dedicated_r13; + } else { + //SL_DiscConfig_r12__ext2__discTxResourcesPS_r13__setup_PR_NOTHING, /* No components present */ + } + + break; + case SL_DiscConfig_r12__ext2__discTxResourcesPS_r13_PR_release: + break; + case SL_DiscConfig_r12__ext2__discTxResourcesPS_r13_PR_NOTHING: + /* No components present */ + break; + default: + break; + } + } + } +} + +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) +//----------------------------------------------------------- +void +rrc_control_socket_init(){ + + struct sockaddr_in rrc_ctrl_socket_addr; + pthread_attr_t attr; + struct sched_param sched_param; + int optval; // flag value for setsockopt + //int n; // message byte size + + + // create the control socket + ctrl_sock_fd = socket(AF_INET, SOCK_DGRAM, 0); + if (ctrl_sock_fd == -1) { + LOG_E(RRC,"[rrc_control_socket_init] :Error opening socket %d (%d:%s)\n",ctrl_sock_fd,errno, strerror(errno)); + exit(EXIT_FAILURE); + } + // if (ctrl_sock_fd < 0) + // error("ERROR: Failed on opening socket"); + optval = 1; + setsockopt(ctrl_sock_fd, SOL_SOCKET, SO_REUSEADDR, + (const void *)&optval , sizeof(int)); + + //build the server's address + bzero((char *) &rrc_ctrl_socket_addr, sizeof(rrc_ctrl_socket_addr)); + rrc_ctrl_socket_addr.sin_family = AF_INET; + rrc_ctrl_socket_addr.sin_addr.s_addr = htonl(INADDR_ANY); + rrc_ctrl_socket_addr.sin_port = htons(CONTROL_SOCKET_PORT_NO); + // associate the parent socket with a port + if (bind(ctrl_sock_fd, (struct sockaddr *) &rrc_ctrl_socket_addr, + sizeof(rrc_ctrl_socket_addr)) < 0) { + LOG_E(RRC,"[rrc_control_socket_init] ERROR: Failed on binding the socket\n"); + exit(1); + } + //create thread to listen to incoming packets + if (pthread_attr_init(&attr) != 0) { + LOG_E(RRC, "[rrc_control_socket_init]Failed to initialize pthread attribute for ProSe -> RRC communication (%d:%s)\n", + errno, strerror(errno)); + exit(EXIT_FAILURE); + } + + sched_param.sched_priority = 10; + + pthread_attr_setschedpolicy(&attr, SCHED_RR); + pthread_attr_setschedparam(&attr, &sched_param); + + pthread_t rrc_control_socket_thread; + + if (pthread_create(&rrc_control_socket_thread, &attr, rrc_control_socket_thread_fct, NULL) != 0) { + LOG_E(RRC, "[rrc_control_socket_init]Failed to create new thread for RRC/ProSeApp communication (%d:%s)\n", + errno, strerror(errno)); + exit(EXIT_FAILURE); + } + + pthread_setname_np( rrc_control_socket_thread, "RRC Control Socket" ); + +} + +//-------------------------------------------------------- +void *rrc_control_socket_thread_fct(void *arg) +{ + + int prose_addr_len; + char send_buf[BUFSIZE]; + char receive_buf[BUFSIZE]; + //int optval; + int n; + struct sidelink_ctrl_element *sl_ctrl_msg_recv = NULL; + struct sidelink_ctrl_element *sl_ctrl_msg_send = NULL; + uint32_t sourceL2Id, groupL2Id, destinationL2Id; + module_id_t module_id = 0; //hardcoded for testing only + uint8_t type; + UE_RRC_INST *UE = NULL; + protocol_ctxt_t ctxt; + struct RLC_Config *DRB_rlc_config = NULL; + struct PDCP_Config *DRB_pdcp_config = NULL; + struct PDCP_Config__rlc_UM *PDCP_rlc_UM = NULL; + struct LogicalChannelConfig *DRB_lchan_config = NULL; + struct LogicalChannelConfig__ul_SpecificParameters *DRB_ul_SpecificParameters = NULL; + long *logicalchannelgroup_drb = NULL; + int j = 0; + int i = 0; + + //from the main program, listen for the incoming messages from control socket (ProSe App) + prose_addr_len = sizeof(prose_app_addr); + //int enable_notification = 1; + while (1) { + LOG_I(RRC,"Listening to incoming connection from ProSe App \n"); + // receive a message from ProSe App + memset(receive_buf, 0, BUFSIZE); + n = recvfrom(ctrl_sock_fd, receive_buf, BUFSIZE, 0, + (struct sockaddr *) &prose_app_addr, (socklen_t *)&prose_addr_len); + if (n < 0){ + LOG_E(RRC, "ERROR: Failed to receive from ProSe App\n"); + exit(EXIT_FAILURE); + } + //TODO: should store the address of ProSeApp [UE_rrc_inst] to be able to send UE state notification to the App + + //sl_ctrl_msg_recv = (struct sidelink_ctrl_element *) receive_buf; + sl_ctrl_msg_recv = calloc(1, sizeof(struct sidelink_ctrl_element)); + memcpy((void *)sl_ctrl_msg_recv, (void *)receive_buf, sizeof(struct sidelink_ctrl_element)); + + //process the message + switch (sl_ctrl_msg_recv->type) { + case SESSION_INIT_REQ: +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"); + memset(send_buf, 0, BUFSIZE); + + sl_ctrl_msg_send = calloc(1, sizeof(struct sidelink_ctrl_element)); + sl_ctrl_msg_send->type = UE_STATUS_INFO; + sl_ctrl_msg_send->sidelinkPrimitive.ue_state = UE_STATE_OFF_NETWORK; //off-network + memcpy((void *)send_buf, (void *)sl_ctrl_msg_send, sizeof(struct sidelink_ctrl_element)); + free(sl_ctrl_msg_send); + + prose_addr_len = sizeof(prose_app_addr); + n = sendto(ctrl_sock_fd, (char *)send_buf, sizeof(struct sidelink_ctrl_element), 0, (struct sockaddr *)&prose_app_addr, prose_addr_len); + if (n < 0) { + LOG_E(RRC, "ERROR: Failed to send to ProSe App\n"); + exit(EXIT_FAILURE); + } + +LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET) + struct sidelink_ctrl_element *ptr_ctrl_msg = NULL; + ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf; + 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; + if( pthread_create( ¬ification_thread , NULL , send_UE_status_notification , (void*) &sockfd) < 0) + error("ERROR: could not create thread"); + } + enable_notification = 0; + */ + break; + + case GROUP_COMMUNICATION_ESTABLISH_REQ: + sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id; + groupL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id; + +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; + UE_rrc_inst[module_id].groupL2Id = groupL2Id; + j = 0; + i = 0; + for (i=0; i< MAX_NUM_DEST; i++) { + if ((UE_rrc_inst[module_id].destinationList[i] == 0) && (j == 0)) j = i+1; + if (UE_rrc_inst[module_id].destinationList[i] == groupL2Id) break; //group already exists! + } + if ((i == MAX_NUM_DEST) && (j > 0)) UE_mac_inst[module_id].destinationList[j-1] = groupL2Id; + + // configure lower layers PDCP/MAC/PHY for this communication + //Establish a new RBID/LCID for this communication + // Establish a SLRB (using DRB 3 for now) + UE = &UE_rrc_inst[module_id]; + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, 0, ENB_FLAG_NO, 0x1234, 0, 0,0); + + UE->DRB_config[0][0] = CALLOC(1,sizeof(struct DRB_ToAddMod)); + UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); + UE->DRB_config[0][0]->drb_Identity = 3; + UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); + // allowed value 5..15, value : x+4 + *(UE->DRB_config[0][0]->eps_BearerIdentity) = 3; + UE->DRB_config[0][0]->logicalChannelIdentity = CALLOC(1, sizeof(long)); + *(UE->DRB_config[0][0]->logicalChannelIdentity) = UE->DRB_config[0][0]->drb_Identity; //(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2 + + DRB_rlc_config = CALLOC(1,sizeof(struct RLC_Config)); + DRB_pdcp_config = CALLOC(1,sizeof(struct PDCP_Config)); + PDCP_rlc_UM = CALLOC(1,sizeof(struct PDCP_Config__rlc_UM)); + DRB_lchan_config = CALLOC(1,sizeof(struct LogicalChannelConfig)); + DRB_ul_SpecificParameters = CALLOC(1, sizeof(struct LogicalChannelConfig__ul_SpecificParameters)); + logicalchannelgroup_drb = CALLOC(1, sizeof(long)); + + DRB_rlc_config->present = RLC_Config_PR_um_Bi_Directional; + DRB_rlc_config->choice.um_Bi_Directional.ul_UM_RLC.sn_FieldLength = SN_FieldLength_size10; + DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.sn_FieldLength = SN_FieldLength_size10; + DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = T_Reordering_ms35; + UE->DRB_config[0][0]->rlc_Config = DRB_rlc_config; + + DRB_pdcp_config = CALLOC(1, sizeof(*DRB_pdcp_config)); + UE->DRB_config[0][0]->pdcp_Config = DRB_pdcp_config; + DRB_pdcp_config->discardTimer = CALLOC(1, sizeof(long)); + *DRB_pdcp_config->discardTimer = PDCP_Config__discardTimer_infinity; + DRB_pdcp_config->rlc_AM = NULL; + DRB_pdcp_config->rlc_UM = NULL; + + /* avoid gcc warnings */ + (void)PDCP_rlc_UM; + + DRB_pdcp_config->rlc_UM = PDCP_rlc_UM; + PDCP_rlc_UM->pdcp_SN_Size = PDCP_Config__rlc_UM__pdcp_SN_Size_len12bits; + DRB_pdcp_config->headerCompression.present = PDCP_Config__headerCompression_PR_notUsed; + + UE->DRB_config[0][0]->logicalChannelConfig = DRB_lchan_config; + DRB_ul_SpecificParameters = CALLOC(1, sizeof(*DRB_ul_SpecificParameters)); + DRB_lchan_config->ul_SpecificParameters = DRB_ul_SpecificParameters; + + DRB_ul_SpecificParameters->priority = 12; // lower priority than srb1, srb2 and other dedicated bearer + DRB_ul_SpecificParameters->prioritisedBitRate =LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8 ; + //LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity; + DRB_ul_SpecificParameters->bucketSizeDuration = + LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms50; + + // LCG for DTCH can take the value from 1 to 3 as defined in 36331: normally controlled by upper layers (like RRM) + + *logicalchannelgroup_drb = 1; + DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb; + + UE->DRB_configList = CALLOC(1,sizeof(DRB_ToAddModList_t)); + ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][0]); + + rrc_pdcp_config_asn1_req(&ctxt, + (SRB_ToAddModList_t *) NULL, + UE->DRB_configList, + (DRB_ToReleaseList_t*) NULL, + 0xff, NULL, NULL, NULL +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + , (PMCH_InfoList_r9_t *) NULL +#endif + ,NULL); + + + rrc_rlc_config_asn1_req(&ctxt, + (SRB_ToAddModList_t*)NULL, + UE->DRB_configList, + (DRB_ToReleaseList_t*)NULL +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + ,(PMCH_InfoList_r9_t *)NULL + , 0, 0 +#endif + ); + + rrc_rlc_config_asn1_req(&ctxt, + (SRB_ToAddModList_t*)NULL, + UE->DRB_configList, + (DRB_ToReleaseList_t*)NULL +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,(PMCH_InfoList_r9_t *)NULL + , sourceL2Id, groupL2Id +#endif + ); + + + //configure MAC with sourceL2Id/groupL2ID + rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0 + (RadioResourceConfigCommonSIB_t *)NULL, + (struct PhysicalConfigDedicated *)NULL, +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (SCellToAddMod_r10_t *)NULL, + //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, +#endif + (MeasObjectToAddMod_t **)NULL, + (MAC_MainConfig_t *)NULL, + 3, //LCID + (struct LogicalChannelConfig *)NULL, + (MeasGapConfig_t *)NULL, + (TDD_Config_t *)NULL, + (MobilityControlInfo_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + ,0, + (MBSFN_AreaInfoList_r9_t *)NULL, + (PMCH_InfoList_r9_t *)NULL + +#endif +#ifdef CBA + , + 0, + 0 +#endif +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + ,CONFIG_ACTION_ADD, + &sourceL2Id, + &groupL2Id +#endif + ); + + LOG_I(RRC,"Send GroupCommunicationEstablishResp to ProSe App\n"); + memset(send_buf, 0, BUFSIZE); + sl_ctrl_msg_send = calloc(1, sizeof(struct sidelink_ctrl_element)); + sl_ctrl_msg_send->type = GROUP_COMMUNICATION_ESTABLISH_RSP; + sl_ctrl_msg_send->sidelinkPrimitive.slrb_id = 3; //slrb_id + + memcpy((void *)send_buf, (void *)sl_ctrl_msg_send, sizeof(struct sidelink_ctrl_element)); + free(sl_ctrl_msg_send); + + prose_addr_len = sizeof(prose_app_addr); + n = sendto(ctrl_sock_fd, (char *)send_buf, sizeof(struct sidelink_ctrl_element), 0, (struct sockaddr *)&prose_app_addr, prose_addr_len); + if (n < 0){ + LOG_E(RRC, "ERROR: Failed to send to ProSe App\n"); + exit(EXIT_FAILURE); + } + +LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET) + struct sidelink_ctrl_element *ptr_ctrl_msg = NULL; + ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf; + 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"); +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; + + rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0 + (RadioResourceConfigCommonSIB_t *)NULL, + (struct PhysicalConfigDedicated *)NULL, + #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (SCellToAddMod_r10_t *)NULL, + //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, + #endif + (MeasObjectToAddMod_t **)NULL, + (MAC_MainConfig_t *)NULL, + 0, + (struct LogicalChannelConfig *)NULL, + (MeasGapConfig_t *)NULL, + (TDD_Config_t *)NULL, + (MobilityControlInfo_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + ,0, + (MBSFN_AreaInfoList_r9_t *)NULL, + (PMCH_InfoList_r9_t *)NULL + + #endif + #ifdef CBA + , + 0, + 0 + #endif + #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + ,CONFIG_ACTION_REMOVE, + &sourceL2Id, + &destinationL2Id + #endif + ); + + + LOG_I(RRC,"Send GroupCommunicationReleaseResponse to ProSe App \n"); + memset(send_buf, 0, BUFSIZE); + + sl_ctrl_msg_send = calloc(1, sizeof(struct sidelink_ctrl_element)); + sl_ctrl_msg_send->type = GROUP_COMMUNICATION_RELEASE_RSP; + //if the requested id exists -> release this ID + if (sl_ctrl_msg_recv->sidelinkPrimitive.slrb_id == slrb_id) { + sl_ctrl_msg_send->sidelinkPrimitive.group_comm_release_rsp = GROUP_COMMUNICATION_RELEASE_OK; + slrb_id = 0; //Reset slrb_id + } else { + sl_ctrl_msg_send->sidelinkPrimitive.group_comm_release_rsp = GROUP_COMMUNICATION_RELEASE_FAILURE; + } + memcpy((void *)send_buf, (void *)sl_ctrl_msg_send, sizeof(struct sidelink_ctrl_element)); + free(sl_ctrl_msg_send); + + prose_addr_len = sizeof(prose_app_addr); + n = sendto(ctrl_sock_fd, (char *)send_buf, sizeof(struct sidelink_ctrl_element), 0, (struct sockaddr *)&prose_app_addr, prose_addr_len); + if (n < 0){ + LOG_E(RRC, "ERROR: Failed to send to ProSe App\n"); + exit(EXIT_FAILURE); + } + break; + + + case DIRECT_COMMUNICATION_ESTABLISH_REQ: + sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.direct_comm_establish_req.sourceL2Id; + destinationL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.direct_comm_establish_req.destinationL2Id; + +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; + i = 0; + j = 0; + for (i=0; i< MAX_NUM_DEST; i++) { + if ((UE_rrc_inst[module_id].destinationList[i] == 0) && (j == 0)) j = i+1; + if (UE_rrc_inst[module_id].destinationList[i] == destinationL2Id) break; //destination already exists! + } + if ((i == MAX_NUM_DEST) && (j > 0)) UE_mac_inst[module_id].destinationList[j-1] = destinationL2Id; + + // configure lower layers PDCP/MAC/PHY for this communication + //Establish a new RBID/LCID for this communication + // Establish a SLRB (using DRB 3 for now) + UE = &UE_rrc_inst[module_id]; + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, 0, ENB_FLAG_NO, 0x1234, 0, 0,0); + + UE->DRB_config[0][0] = CALLOC(1,sizeof(struct DRB_ToAddMod)); + UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); + UE->DRB_config[0][0]->drb_Identity = 3; + UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); + // allowed value 5..15, value : x+4 + *(UE->DRB_config[0][0]->eps_BearerIdentity) = 3; + UE->DRB_config[0][0]->logicalChannelIdentity = CALLOC(1, sizeof(long)); + *(UE->DRB_config[0][0]->logicalChannelIdentity) = UE->DRB_config[0][0]->drb_Identity; //(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2 + + DRB_rlc_config = CALLOC(1,sizeof(struct RLC_Config)); + DRB_pdcp_config = CALLOC(1,sizeof(struct PDCP_Config)); + PDCP_rlc_UM = CALLOC(1,sizeof(struct PDCP_Config__rlc_UM)); + DRB_lchan_config = CALLOC(1,sizeof(struct LogicalChannelConfig)); + DRB_ul_SpecificParameters = CALLOC(1, sizeof(struct LogicalChannelConfig__ul_SpecificParameters)); + logicalchannelgroup_drb = CALLOC(1, sizeof(long)); + + DRB_rlc_config->present = RLC_Config_PR_um_Bi_Directional; + DRB_rlc_config->choice.um_Bi_Directional.ul_UM_RLC.sn_FieldLength = SN_FieldLength_size10; + DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.sn_FieldLength = SN_FieldLength_size10; + DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = T_Reordering_ms35; + UE->DRB_config[0][0]->rlc_Config = DRB_rlc_config; + + DRB_pdcp_config = CALLOC(1, sizeof(*DRB_pdcp_config)); + UE->DRB_config[0][0]->pdcp_Config = DRB_pdcp_config; + DRB_pdcp_config->discardTimer = CALLOC(1, sizeof(long)); + *DRB_pdcp_config->discardTimer = PDCP_Config__discardTimer_infinity; + DRB_pdcp_config->rlc_AM = NULL; + DRB_pdcp_config->rlc_UM = NULL; + + /* avoid gcc warnings */ + (void)PDCP_rlc_UM; + + DRB_pdcp_config->rlc_UM = PDCP_rlc_UM; + PDCP_rlc_UM->pdcp_SN_Size = PDCP_Config__rlc_UM__pdcp_SN_Size_len12bits; + DRB_pdcp_config->headerCompression.present = PDCP_Config__headerCompression_PR_notUsed; + + UE->DRB_config[0][0]->logicalChannelConfig = DRB_lchan_config; + DRB_ul_SpecificParameters = CALLOC(1, sizeof(*DRB_ul_SpecificParameters)); + DRB_lchan_config->ul_SpecificParameters = DRB_ul_SpecificParameters; + + DRB_ul_SpecificParameters->priority = 12; // lower priority than srb1, srb2 and other dedicated bearer + DRB_ul_SpecificParameters->prioritisedBitRate =LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8 ; + //LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity; + DRB_ul_SpecificParameters->bucketSizeDuration = + LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms50; + + // LCG for DTCH can take the value from 1 to 3 as defined in 36331: normally controlled by upper layers (like RRM) + + *logicalchannelgroup_drb = 1; + DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb; + + UE->DRB_configList = CALLOC(1,sizeof(DRB_ToAddModList_t)); + ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][0]); + + rrc_pdcp_config_asn1_req(&ctxt, + (SRB_ToAddModList_t *) NULL, + UE->DRB_configList, + (DRB_ToReleaseList_t*) NULL, + 0xff, NULL, NULL, NULL +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + , (PMCH_InfoList_r9_t *) NULL +#endif + ,NULL); + + + rrc_rlc_config_asn1_req(&ctxt, + (SRB_ToAddModList_t*)NULL, + UE->DRB_configList, + (DRB_ToReleaseList_t*)NULL +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + ,(PMCH_InfoList_r9_t *)NULL + , 0, 0 +#endif + ); + + rrc_rlc_config_asn1_req(&ctxt, + (SRB_ToAddModList_t*)NULL, + UE->DRB_configList, + (DRB_ToReleaseList_t*)NULL +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,(PMCH_InfoList_r9_t *)NULL + , sourceL2Id, destinationL2Id +#endif + ); + + + //configure MAC with sourceL2Id/destinationL2Id + rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0 + (RadioResourceConfigCommonSIB_t *)NULL, + (struct PhysicalConfigDedicated *)NULL, +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (SCellToAddMod_r10_t *)NULL, + //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, +#endif + (MeasObjectToAddMod_t **)NULL, + (MAC_MainConfig_t *)NULL, + 3, //LCID + (struct LogicalChannelConfig *)NULL, + (MeasGapConfig_t *)NULL, + (TDD_Config_t *)NULL, + (MobilityControlInfo_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + ,0, + (MBSFN_AreaInfoList_r9_t *)NULL, + (PMCH_InfoList_r9_t *)NULL + +#endif +#ifdef CBA + , + 0, + 0 +#endif +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + ,CONFIG_ACTION_ADD, + &sourceL2Id, + &destinationL2Id +#endif + ); + + LOG_I(RRC,"Send DirectCommunicationEstablishResp to ProSe App\n"); + memset(send_buf, 0, BUFSIZE); + sl_ctrl_msg_send = calloc(1, sizeof(struct sidelink_ctrl_element)); + sl_ctrl_msg_send->type = DIRECT_COMMUNICATION_ESTABLISH_RSP; + sl_ctrl_msg_send->sidelinkPrimitive.slrb_id = 3; //slrb_id + + memcpy((void *)send_buf, (void *)sl_ctrl_msg_send, sizeof(struct sidelink_ctrl_element)); + free(sl_ctrl_msg_send); + + prose_addr_len = sizeof(prose_app_addr); + n = sendto(ctrl_sock_fd, (char *)send_buf, sizeof(struct sidelink_ctrl_element), 0, (struct sockaddr *)&prose_app_addr, prose_addr_len); + if (n < 0){ + LOG_E(RRC, "ERROR: Failed to send to ProSe App\n"); + exit(EXIT_FAILURE); + } + + +LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET) + struct sidelink_ctrl_element *ptr_ctrl_msg = NULL; + ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf; + 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; +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; +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 + if (type > 0) { //TX + UE_rrc_inst[module_id].sourceL2Id = sourceL2Id; + j = 0; + i = 0; + for (i=0; i< MAX_NUM_DEST; i++) { + if ((UE_rrc_inst[module_id].destinationList[i] == 0) && (j == 0)) j = i+1; + if (UE_rrc_inst[module_id].destinationList[i] == destinationL2Id) break; //group already exists! + } + if ((i == MAX_NUM_DEST) && (j > 0)) UE_mac_inst[module_id].destinationList[j-1] = destinationL2Id; + } else {//RX + UE_rrc_inst[module_id].sourceL2Id = sourceL2Id; + } + + // configure lower layers PDCP/MAC/PHY for this communication + //Establish a new RBID/LCID for this communication + // Establish a SLRB (using DRB 10 for now) + UE = &UE_rrc_inst[module_id]; + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, 0, ENB_FLAG_NO, 0x1234, 0, 0,0); + + UE->DRB_config[0][0] = CALLOC(1,sizeof(struct DRB_ToAddMod)); + UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); + UE->DRB_config[0][0]->drb_Identity = 10; + UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); + // allowed value 5..15, value : x+4 + *(UE->DRB_config[0][0]->eps_BearerIdentity) = 10; + UE->DRB_config[0][0]->logicalChannelIdentity = CALLOC(1, sizeof(long)); + *(UE->DRB_config[0][0]->logicalChannelIdentity) = UE->DRB_config[0][0]->drb_Identity; //(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2 + + DRB_rlc_config = CALLOC(1,sizeof(struct RLC_Config)); + DRB_pdcp_config = CALLOC(1,sizeof(struct PDCP_Config)); + PDCP_rlc_UM = CALLOC(1,sizeof(struct PDCP_Config__rlc_UM)); + DRB_lchan_config = CALLOC(1,sizeof(struct LogicalChannelConfig)); + DRB_ul_SpecificParameters = CALLOC(1, sizeof(struct LogicalChannelConfig__ul_SpecificParameters)); + logicalchannelgroup_drb = CALLOC(1, sizeof(long)); + + DRB_rlc_config->present = RLC_Config_PR_um_Bi_Directional; + DRB_rlc_config->choice.um_Bi_Directional.ul_UM_RLC.sn_FieldLength = SN_FieldLength_size10; + DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.sn_FieldLength = SN_FieldLength_size10; + DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = T_Reordering_ms35; + UE->DRB_config[0][0]->rlc_Config = DRB_rlc_config; + + DRB_pdcp_config = CALLOC(1, sizeof(*DRB_pdcp_config)); + UE->DRB_config[0][0]->pdcp_Config = DRB_pdcp_config; + DRB_pdcp_config->discardTimer = CALLOC(1, sizeof(long)); + *DRB_pdcp_config->discardTimer = PDCP_Config__discardTimer_infinity; + DRB_pdcp_config->rlc_AM = NULL; + DRB_pdcp_config->rlc_UM = NULL; + + /* avoid gcc warnings */ + (void)PDCP_rlc_UM; + + DRB_pdcp_config->rlc_UM = PDCP_rlc_UM; + PDCP_rlc_UM->pdcp_SN_Size = PDCP_Config__rlc_UM__pdcp_SN_Size_len12bits; + DRB_pdcp_config->headerCompression.present = PDCP_Config__headerCompression_PR_notUsed; + + UE->DRB_config[0][0]->logicalChannelConfig = DRB_lchan_config; + DRB_ul_SpecificParameters = CALLOC(1, sizeof(*DRB_ul_SpecificParameters)); + DRB_lchan_config->ul_SpecificParameters = DRB_ul_SpecificParameters; + + DRB_ul_SpecificParameters->priority = 12; // lower priority than srb1, srb2 and other dedicated bearer + DRB_ul_SpecificParameters->prioritisedBitRate =LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8 ; + //LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity; + DRB_ul_SpecificParameters->bucketSizeDuration = + LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms50; + + // LCG for DTCH can take the value from 1 to 3 as defined in 36331: normally controlled by upper layers (like RRM) + + *logicalchannelgroup_drb = 1; + DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb; + + UE->DRB_configList = CALLOC(1,sizeof(DRB_ToAddModList_t)); + ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][0]); + + rrc_pdcp_config_asn1_req(&ctxt, + (SRB_ToAddModList_t *) NULL, + UE->DRB_configList, + (DRB_ToReleaseList_t*) NULL, + 0xff, NULL, NULL, NULL +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + , (PMCH_InfoList_r9_t *) NULL +#endif + ,NULL); + + + rrc_rlc_config_asn1_req(&ctxt, + (SRB_ToAddModList_t*)NULL, + UE->DRB_configList, + (DRB_ToReleaseList_t*)NULL +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + ,(PMCH_InfoList_r9_t *)NULL + , 0, 0 +#endif + ); + + //TX + if (type > 0) { + rrc_rlc_config_asn1_req(&ctxt, + (SRB_ToAddModList_t*)NULL, + UE->DRB_configList, + (DRB_ToReleaseList_t*)NULL +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,(PMCH_InfoList_r9_t *)NULL + , sourceL2Id, destinationL2Id +#endif + ); + + //configure MAC with sourceL2Id/groupL2ID + rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0 + (RadioResourceConfigCommonSIB_t *)NULL, + (struct PhysicalConfigDedicated *)NULL, +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (SCellToAddMod_r10_t *)NULL, + //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, +#endif + (MeasObjectToAddMod_t **)NULL, + (MAC_MainConfig_t *)NULL, + 10, //LCID + (struct LogicalChannelConfig *)NULL, + (MeasGapConfig_t *)NULL, + (TDD_Config_t *)NULL, + (MobilityControlInfo_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + ,0, + (MBSFN_AreaInfoList_r9_t *)NULL, + (PMCH_InfoList_r9_t *)NULL + +#endif +#ifdef CBA + , + 0, + 0 +#endif +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + ,CONFIG_ACTION_ADD, + &sourceL2Id, + &destinationL2Id +#endif + ); + } else {//RX + //configure MAC with sourceL2Id/groupL2ID + rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0 + (RadioResourceConfigCommonSIB_t *)NULL, + (struct PhysicalConfigDedicated *)NULL, +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (SCellToAddMod_r10_t *)NULL, + //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, +#endif + (MeasObjectToAddMod_t **)NULL, + (MAC_MainConfig_t *)NULL, + 10, //LCID + (struct LogicalChannelConfig *)NULL, + (MeasGapConfig_t *)NULL, + (TDD_Config_t *)NULL, + (MobilityControlInfo_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + ,0, + (MBSFN_AreaInfoList_r9_t *)NULL, + (PMCH_InfoList_r9_t *)NULL + +#endif +#ifdef CBA + , + 0, + 0 +#endif +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + ,CONFIG_ACTION_ADD, + &sourceL2Id, + NULL +#endif + ); + + } + + LOG_I(RRC,"Send PC5EstablishRsp to ProSe App\n"); + memset(send_buf, 0, BUFSIZE); + sl_ctrl_msg_send = calloc(1, sizeof(struct sidelink_ctrl_element)); + sl_ctrl_msg_send->type = PC5S_ESTABLISH_RSP; + sl_ctrl_msg_send->sidelinkPrimitive.pc5s_establish_rsp.slrbid_lcid28 = 10; + sl_ctrl_msg_send->sidelinkPrimitive.pc5s_establish_rsp.slrbid_lcid29 = 10; + sl_ctrl_msg_send->sidelinkPrimitive.pc5s_establish_rsp.slrbid_lcid30 = 10; + memcpy((void *)send_buf, (void *)sl_ctrl_msg_send, sizeof(struct sidelink_ctrl_element)); + + prose_addr_len = sizeof(prose_app_addr); + n = sendto(ctrl_sock_fd, (char *)send_buf, sizeof(struct sidelink_ctrl_element), 0, (struct sockaddr *)&prose_app_addr, prose_addr_len); +// free(sl_ctrl_msg_send); + if (n < 0){ + LOG_E(RRC, "ERROR: Failed to send to ProSe App\n"); + exit(EXIT_FAILURE); + } + break; + + + case PC5_DISCOVERY_MESSAGE: + +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); + UE_rrc_inst[module_id].SL_Discovery[0].Tx_buffer.payload_size = PC5_DISCOVERY_PAYLOAD_SIZE; + LOG_I(RRC,"[PC5DiscoveryMessage] Copied %d bytes\n",PC5_DISCOVERY_PAYLOAD_SIZE); + } + break; + default: + break; + } + } + free (sl_ctrl_msg_recv); + return 0; +} + + +//----------------------------------------------------------------------------- +int decode_SL_Discovery_Message( + const protocol_ctxt_t* const ctxt_pP, + const uint8_t eNB_index, + const uint8_t* Sdu, + const uint8_t Sdu_len) +{ + + int prose_addr_len; + char send_buf[BUFSIZE]; + int n; + struct sidelink_ctrl_element *sl_ctrl_msg_send = NULL; + + //from the main program, listen for the incoming messages from control socket (ProSe App) + prose_addr_len = sizeof(prose_app_addr); + + //Store in Rx_buffer + memcpy((void*)&UE_rrc_inst[ctxt_pP->module_id].SL_Discovery[0].Rx_buffer.Payload[0], (void*)Sdu, Sdu_len); + UE_rrc_inst[ctxt_pP->module_id].SL_Discovery[0].Rx_buffer.payload_size = Sdu_len; + + memset(send_buf, 0, BUFSIZE); + //send to ProSeApp + memcpy((void *)send_buf, (void*)Sdu, Sdu_len); + prose_addr_len = sizeof(prose_app_addr); + + sl_ctrl_msg_send = calloc(1, sizeof(struct sidelink_ctrl_element)); + sl_ctrl_msg_send->type = PC5_DISCOVERY_MESSAGE; + // TODO: Add a check for the SDU size. + memcpy((void*)&sl_ctrl_msg_send->sidelinkPrimitive.pc5_discovery_message.payload[0], (void*) Sdu, PC5_DISCOVERY_PAYLOAD_SIZE); + + memcpy((void *)send_buf, (void *)sl_ctrl_msg_send, sizeof(struct sidelink_ctrl_element)); + free(sl_ctrl_msg_send); + + prose_addr_len = sizeof(prose_app_addr); + + n = sendto(ctrl_sock_fd, (char *)send_buf, sizeof(struct sidelink_ctrl_element), 0, (struct sockaddr *)&prose_app_addr, prose_addr_len); + if (n < 0){ + // TODO: We should not just exit if the Prose App has not yet attached. It creates a race condition. + LOG_I(RRC, "ERROR: Failed to send to ProSe App\n"); + //exit(EXIT_FAILURE); + } + + + + return(0); +} + +#endif + //----------------------------------------------------------------------------- RRC_status_t rrc_rx_tx_ue( @@ -4745,3 +6329,4 @@ rrc_rx_tx_ue( VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_RX_TX,VCD_FUNCTION_OUT); return (RRC_OK); } + 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 616fc8a014..e21cb9255a 100644 --- a/openair2/RRC/LTE/rrc_defs.h +++ b/openair2/RRC/LTE/rrc_defs.h @@ -45,6 +45,131 @@ #include "LAYER2/MAC/mac.h" +//for D2D +#define DEBUG_CTRL_SOCKET +#define BUFSIZE 1024 +#define CONTROL_SOCKET_PORT_NO 8888 +#define MAX_NUM_DEST 10 +//netlink +//#define DEBUG_PDCP +#define UE_IP_PDCP_NETLINK_ID 31 +#define PDCP_PID 1 +#define NETLINK_HEADER_SIZE 16 +#define SL_DEFAULT_RAB_ID 3 +#define SLRB_ID 3 + +#define MAX_PAYLOAD 1024 /* maximum payload size*/ + +#define UE_STATE_NOTIFICATION_INTERVAL 50 + +#define IPV4_ADDR "%u.%u.%u.%u" +#define IPV4_ADDR_FORMAT(aDDRESS) \ + (uint8_t)((aDDRESS) & 0x000000ff), \ + (uint8_t)(((aDDRESS) & 0x0000ff00) >> 8 ), \ + (uint8_t)(((aDDRESS) & 0x00ff0000) >> 16), \ + (uint8_t)(((aDDRESS) & 0xff000000) >> 24) + + +//----------------------------------------------------- +// header for Control socket + +//Primitives +#define SESSION_INIT_REQ 1 +#define UE_STATUS_INFO 2 +#define GROUP_COMMUNICATION_ESTABLISH_REQ 3 +#define GROUP_COMMUNICATION_ESTABLISH_RSP 4 +#define DIRECT_COMMUNICATION_ESTABLISH_REQ 5 +#define DIRECT_COMMUNICATION_ESTABLISH_RSP 6 +#define GROUP_COMMUNICATION_RELEASE_REQ 7 +#define GROUP_COMMUNICATION_RELEASE_RSP 8 +#define PC5S_ESTABLISH_REQ 9 +#define PC5S_ESTABLISH_RSP 10 +#define PC5_DISCOVERY_MESSAGE 11 + + +#define PC5_DISCOVERY_PAYLOAD_SIZE 29 + + +typedef enum { + UE_STATE_OFF_NETWORK, + UE_STATE_ON_NETWORK +} SL_UE_STATE_t; + +typedef enum { + GROUP_COMMUNICATION_RELEASE_OK = 0, + GROUP_COMMUNICATION_RELEASE_FAILURE +} Group_Communication_Status_t; + +struct GroupCommunicationEstablishReq { + uint32_t sourceL2Id; + uint32_t groupL2Id; + uint32_t groupIpAddress; + uint8_t pppp; +}; + +struct GroupCommunicationReleaseReq { + uint32_t sourceL2Id; + uint32_t groupL2Id; + int slrb_id; +}; + +struct DirectCommunicationEstablishReq { + uint32_t sourceL2Id; + uint32_t destinationL2Id; + uint32_t pppp; +}; + +struct PC5SEstablishReq{ + uint8_t type; + uint32_t sourceL2Id; + uint32_t destinationL2Id; +}; + +struct PC5SEstablishRsp{ + uint32_t slrbid_lcid28; + uint32_t slrbid_lcid29; + uint32_t slrbid_lcid30; +}; + + +//PC5_DISCOVERY MESSAGE +typedef struct { + unsigned char payload[PC5_DISCOVERY_PAYLOAD_SIZE]; + uint32_t measuredPower; +} __attribute__((__packed__)) PC5DiscoveryMessage ; + + +struct sidelink_ctrl_element { + unsigned short type; + union { + struct GroupCommunicationEstablishReq group_comm_establish_req; + struct DirectCommunicationEstablishReq direct_comm_establish_req; + Group_Communication_Status_t group_comm_release_rsp; + //struct DirectCommunicationReleaseReq direct_comm_release_req; + SL_UE_STATE_t ue_state; + int slrb_id; + struct PC5SEstablishReq pc5s_establish_req; + struct PC5SEstablishRsp pc5s_establish_rsp; + PC5DiscoveryMessage pc5_discovery_message; + } sidelinkPrimitive; +}; + + +//global variables +extern struct sockaddr_in clientaddr; +extern int slrb_id; +extern pthread_mutex_t slrb_mutex; + +//the thread function +void *send_UE_status_notification(void *); + + + +//#include "COMMON/openair_defs.h" +#ifndef USER_MODE +//#include +#endif + #include "SystemInformationBlockType1.h" #include "SystemInformation.h" #include "RRCConnectionReconfiguration.h" @@ -54,16 +179,22 @@ #include "RRCConnectionRequest.h" #include "RRCConnectionReestablishmentRequest.h" #include "BCCH-DL-SCH-Message.h" +#include "SBCCH-SL-BCH-MessageType.h" #include "BCCH-BCH-Message.h" -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) #include "MCCH-Message.h" #include "MBSFNAreaConfiguration-r9.h" +#endif +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) #include "SCellToAddMod-r10.h" #endif #include "AS-Config.h" #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" @@ -71,7 +202,7 @@ /* correct Rel(8|10)/Rel14 differences * the code is in favor of Rel14, those defines do the translation */ -#if !defined(Rel14) +#if (RRC_VERSION < MAKE_VERSION(14, 0, 0)) # define CipheringAlgorithm_r12_t e_SecurityAlgorithmConfig__cipheringAlgorithm # define CipheringAlgorithm_r12_eea0 SecurityAlgorithmConfig__cipheringAlgorithm_eea0 # define CipheringAlgorithm_r12_eea1 SecurityAlgorithmConfig__cipheringAlgorithm_eea1 @@ -120,7 +251,7 @@ #endif // This corrects something generated by asn1c which is different between Rel8 and Rel10 -#if !defined(Rel10) && !defined(Rel14) +#if (RRC_VERSION <= MAKE_VERSION(10, 0, 0)) #define SystemInformation_r8_IEs__sib_TypeAndInfo__Member SystemInformation_r8_IEs_sib_TypeAndInfo_Member #define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib2 #define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib3 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib3 @@ -141,7 +272,7 @@ #define NB_CNX_UE 2//MAX_MANAGED_RG_PER_MOBILE /* -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) #define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib12_v920 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib12_v920 #define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib13_v920 #endif @@ -185,7 +316,7 @@ typedef struct uid_linear_allocator_s { #define PROTOCOL_RRC_CTXT_FMT PROTOCOL_CTXT_FMT #define PROTOCOL_RRC_CTXT_ARGS(CTXT_Pp) PROTOCOL_CTXT_ARGS(CTXT_Pp) -/** @defgroup _rrc RRC +/** @defgroup _rrc RRC * @ingroup _oai2 * @{ */ @@ -219,6 +350,21 @@ typedef enum HO_STATE_e { HO_COMPLETE // initiated by the target eNB } HO_STATE_t; +typedef enum SL_TRIGGER_e { + SL_RECEIVE_COMMUNICATION=0, + SL_TRANSMIT_RELAY_ONE_TO_ONE, + SL_TRANSMIT_RELAY_ONE_TO_MANY, + SL_TRANSMIT_NON_RELAY_ONE_TO_ONE, + SL_TRANSMIT_NON_RELAY_ONE_TO_MANY, + SL_RECEIVE_DISCOVERY, + SL_TRANSMIT_NON_PS_DISCOVERY, + SL_TRANSMIT_PS_DISCOVERY, + SL_RECEIVE_V2X, + SL_TRANSMIT_V2X, + SL_REQUEST_DISCOVERY_TRANSMISSION_GAPS, + SL_REQUEST_DISCOVERY_RECEPTION_GAPS +} SL_TRIGGER_t; + //#define MAX_MOBILES_PER_ENB MAX_MOBILES_PER_RG #define RRM_FREE(p) if ( (p) != NULL) { free(p) ; p=NULL ; } #define RRM_MALLOC(t,n) (t *) malloc16( sizeof(t) * n ) @@ -238,11 +384,7 @@ typedef enum HO_STATE_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 */ @@ -261,7 +403,7 @@ typedef struct UE_RRC_INFO_s { uint8_t SIB1systemInfoValueTag; uint32_t SIStatus; uint32_t SIcnt; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) uint8_t MCCHStatus[8]; // MAX_MBSFN_AREA #endif uint8_t SIwindowsize; //!< Corresponds to the SIB1 si-WindowLength parameter. The unit is ms. Possible values are (final): 1,2,5,10,15,20,40 @@ -355,7 +497,7 @@ typedef struct SRB_INFO_TABLE_ENTRY_s { SRB_INFO Srb_info; uint8_t Active; uint8_t Status; - uint32_t Next_check_frame; + uint32_t Next_check_frame; } SRB_INFO_TABLE_ENTRY; typedef struct MEAS_REPORT_LIST_s { @@ -371,7 +513,7 @@ typedef struct HANDOVER_INFO_UE_s { typedef struct eNB_RRC_UE_s { uint8_t primaryCC_id; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) SCellToAddMod_r10_t sCell_config[2]; #endif SRB_ToAddModList_t* SRB_configList; @@ -458,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; @@ -485,7 +628,7 @@ typedef struct { uint8_t sizeof_SIB1; uint8_t *SIB23; uint8_t sizeof_SIB23; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) uint8_t *SIB1_BR; uint8_t sizeof_SIB1_BR; uint8_t *SIB23_BR; @@ -504,12 +647,12 @@ typedef struct { SystemInformationBlockType1_t *sib1; SystemInformationBlockType2_t *sib2; SystemInformationBlockType3_t *sib3; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) SystemInformationBlockType1_t *sib1_BR; SystemInformationBlockType2_t *sib2_BR; SystemInformationBlockType2_t *sib3_BR; #endif -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) SystemInformationBlockType13_r9_t *sib13; uint8_t MBMS_flag; uint8_t num_mbsfn_sync_area; @@ -519,6 +662,11 @@ typedef struct { MBSFNAreaConfiguration_r9_t *mcch_message; SRB_INFO MCCH_MESS[8];// MAX_MBSFN_AREA #endif + //TTN - SIB 18,19,21 for D2D + SystemInformationBlockType18_r12_t *sib18; + SystemInformationBlockType19_r12_t *sib19; + SystemInformationBlockType21_r14_t *sib21; + // End - TTN SRB_INFO SI; SRB_INFO Srb0; uint8_t *paging[MAX_MOBILES_PER_ENB]; @@ -610,8 +758,29 @@ typedef struct UE_RRC_INST_s { SystemInformationBlockType9_t *sib9[NB_CNX_UE]; SystemInformationBlockType10_t *sib10[NB_CNX_UE]; SystemInformationBlockType11_t *sib11[NB_CNX_UE]; + uint8_t *MIB; +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + //SIB18 + SystemInformationBlockType18_r12_t *sib18[NB_CNX_UE]; + SystemInformationBlockType19_r12_t *sib19[NB_CNX_UE]; + SystemInformationBlockType21_r14_t *sib21[NB_CNX_UE]; -#if defined(Rel10) || defined(Rel14) + SBCCH_SL_BCH_MessageType_t mib_sl[NB_CNX_UE]; + /// Preconfiguration for Sidelink + struct SL_Preconfiguration_r12 *SL_Preconfiguration[NB_CNX_UE]; + //source L2 Id + uint32_t sourceL2Id; + //group L2 Id + uint32_t groupL2Id; + //current destination + uint32_t destinationL2Id; + //List of destinations + uint32_t destinationList[MAX_NUM_DEST]; + //sl_discovery.. + SRB_INFO SL_Discovery[NB_CNX_UE]; +#endif + +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) uint8_t MBMS_flag; uint8_t *MCCH_MESSAGE[NB_CNX_UE]; uint8_t sizeof_MCCH_MESSAGE[NB_CNX_UE]; @@ -657,6 +826,11 @@ typedef struct UE_RRC_INST_s { /* Used integrity/ciphering algorithms */ CipheringAlgorithm_r12_t ciphering_algorithm; e_SecurityAlgorithmConfig__integrityProtAlgorithm integrity_algorithm; + +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + /// Used for Sidelink Preconfiguration + DRB_ToAddModList_t *DRB_configList; +#endif } UE_RRC_INST; typedef struct UE_PF_PO_s { diff --git a/openair2/RRC/LTE/rrc_eNB.c b/openair2/RRC/LTE/rrc_eNB.c index 0cdbe96e86..9e5030441e 100644 --- a/openair2/RRC/LTE/rrc_eNB.c +++ b/openair2/RRC/LTE/rrc_eNB.c @@ -29,16 +29,19 @@ */ #define RRC_ENB #define RRC_ENB_C - +#include +#include /* for _ASN_DEFAULT_STACK_MAX */ +#include #include "rrc_defs.h" #include "rrc_extern.h" #include "assertions.h" #include "common/ran_context.h" #include "asn1_conversions.h" +#include "asn_internal.h" #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" @@ -55,11 +58,14 @@ #include "rrc_eNB_UE_context.h" #include "platform_types.h" #include "msc.h" -#include "UTIL/LOG/vcd_signal_dumper.h" +#include "SL-CommConfig-r12.h" +#include "PeriodicBSR-Timer-r12.h" +#include "RetxBSR-Timer-r12.h" +#include "common/utils/LOG/vcd_signal_dumper.h" #include "T.h" -//#if defined(Rel10) || defined(Rel14) +//#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) #include "MeasResults.h" //#endif @@ -143,10 +149,10 @@ init_SI( ) //----------------------------------------------------------------------------- { -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) int i; #endif -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(13, 1, 0)) SystemInformationBlockType1_v1310_IEs_t *sib1_v13ext=(SystemInformationBlockType1_v1310_IEs_t *)NULL; #endif LOG_D(RRC,"%s()\n\n\n\n",__FUNCTION__); @@ -157,7 +163,7 @@ init_SI( RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Ncp = configuration->prefix_type[CC_id]; RC.rrc[ctxt_pP->module_id]->carrier[CC_id].dl_CarrierFreq = configuration->downlink_frequency[CC_id]; RC.rrc[ctxt_pP->module_id]->carrier[CC_id].ul_CarrierFreq = configuration->downlink_frequency[CC_id]+ configuration->uplink_frequency_offset[CC_id]; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].pbch_repetition = configuration->pbch_repetition[CC_id]; #endif LOG_I(RRC, "Configuring MIB (N_RB_DL %d,phich_Resource %d,phich_Duration %d)\n", @@ -225,10 +231,11 @@ init_SI( (int)RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib2->radioResourceConfigCommon.pusch_ConfigCommon. ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled); LOG_T(RRC, PROTOCOL_RRC_CTXT_FMT" pusch_config_common.cyclicShift = %ld\n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib2->radioResourceConfigCommon.pusch_ConfigCommon. - ul_ReferenceSignalsPUSCH.cyclicShift); -#if defined(Rel10) || defined(Rel14) + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib2->radioResourceConfigCommon.pusch_ConfigCommon. + ul_ReferenceSignalsPUSCH.cyclicShift); + +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) if (RC.rrc[ctxt_pP->module_id]->carrier[CC_id].MBMS_flag > 0) { for (i = 0; i < RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib2->mbsfn_SubframeConfigList->list.count; i++) { @@ -249,6 +256,7 @@ init_SI( RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib2->mbsfn_SubframeConfigList->list.array[i]->radioframeAllocationOffset); } +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) // SIB13 for (i = 0; i < RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib13->mbsfn_AreaInfoList_r9.list.count; i++) { LOG_D(RRC, PROTOCOL_RRC_CTXT_FMT" SIB13 contents for MBSFN sync area %d/%d (partial)\n", @@ -262,16 +270,88 @@ init_SI( PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib13->mbsfn_AreaInfoList_r9.list.array[i]->mcch_Config_r9.mcch_Offset_r9); } +#endif } - else memset((void *)&RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib13,0,sizeof(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib13)); + else memset((void*)&RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib13,0,sizeof(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib13)); + + //TTN - SIB 18 + for (int j = 0; j < RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.count; j++) { + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" Contents of SIB18 %d/%d \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + j+1, + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.count); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 rxPool_sc_CP_Len: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->sc_CP_Len_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 sc_Period_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->sc_Period_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 data_CP_Len_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->data_CP_Len_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 prb_Num_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->sc_TF_ResourceConfig_r12.prb_Num_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 prb_Start_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->sc_TF_ResourceConfig_r12.prb_Start_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 prb_End_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->sc_TF_ResourceConfig_r12.prb_End_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 offsetIndicator: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->sc_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 subframeBitmap_choice_bs_buf: %s \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.buf); + + } + + //TTN - SIB 19 + for (int j = 0; j < RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.count; j++) { + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" Contents of SIB19 %d/%d \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + j+1, + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.count); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 cp_Len_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->cp_Len_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 discPeriod_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->discPeriod_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 numRetx_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->numRetx_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 numRepetition_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->numRepetition_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 tf_ResourceConfig_r12 prb_Num_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->tf_ResourceConfig_r12.prb_Num_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 tf_ResourceConfig_r12 prb_Start_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->tf_ResourceConfig_r12.prb_Start_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 tf_ResourceConfig_r12 prb_End_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->tf_ResourceConfig_r12.prb_End_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 tf_ResourceConfig_r12 offsetIndicator: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->tf_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 tf_ResourceConfig_r12 subframeBitmap_choice_bs_buf: %s \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.buf); + + } + +#endif #endif LOG_D(RRC, - PROTOCOL_RRC_CTXT_FMT" RRC_UE --- MAC_CONFIG_REQ (SIB1.tdd & SIB2 params) ---> MAC_UE\n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP)); -#ifdef Rel14 + PROTOCOL_RRC_CTXT_FMT" RRC_UE --- MAC_CONFIG_REQ (SIB1.tdd & SIB2 params) ---> MAC_UE\n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP)); - if ((RC.rrc[ctxt_pP->module_id]->carrier[CC_id].mib.message.schedulingInfoSIB1_BR_r13>0) && +#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) + if ((RC.rrc[ctxt_pP->module_id]->carrier[CC_id].mib.message.schedulingInfoSIB1_BR_r13>0) && (RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib1_BR!=NULL)) { AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib1_BR->nonCriticalExtension!=NULL, "sib2_br->nonCriticalExtension is null (v8.9)\n"); @@ -289,53 +369,53 @@ init_SI( #endif LOG_D(RRC, "About to call rrc_mac_config_req_eNB\n"); rrc_mac_config_req_eNB(ctxt_pP->module_id, CC_id, - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].physCellId, - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].p_eNB, - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Ncp, - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib1->freqBandIndicator, - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].dl_CarrierFreq, -#ifdef Rel14 - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].pbch_repetition, + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].physCellId, + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].p_eNB, + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Ncp, + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib1->freqBandIndicator, + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].dl_CarrierFreq, +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].pbch_repetition, #endif - 0, // rnti - (BCCH_BCH_Message_t *) - &RC.rrc[ctxt_pP->module_id]->carrier[CC_id].mib, - (RadioResourceConfigCommonSIB_t *) & - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib2->radioResourceConfigCommon, -#if defined(Rel14) - (RadioResourceConfigCommonSIB_t *) & - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib2_BR->radioResourceConfigCommon, + 0, // rnti + (BCCH_BCH_Message_t *) + &RC.rrc[ctxt_pP->module_id]->carrier[CC_id].mib, + (RadioResourceConfigCommonSIB_t *) & + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib2->radioResourceConfigCommon, +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + (RadioResourceConfigCommonSIB_t *) & + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib2_BR->radioResourceConfigCommon, #endif - (struct PhysicalConfigDedicated *)NULL, -#if defined(Rel10) || defined(Rel14) - (SCellToAddMod_r10_t *)NULL, - //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, + (struct PhysicalConfigDedicated *)NULL, +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (SCellToAddMod_r10_t *)NULL, + //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, #endif - (MeasObjectToAddMod_t **) NULL, - (MAC_MainConfig_t *) NULL, 0, - (struct LogicalChannelConfig *)NULL, - (MeasGapConfig_t *) NULL, - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib1->tdd_Config, - NULL, - &RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib1->schedulingInfoList, - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].ul_CarrierFreq, - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib2->freqInfo.ul_Bandwidth, - &RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib2->freqInfo.additionalSpectrumEmission, - (MBSFN_SubframeConfigList_t *) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib2->mbsfn_SubframeConfigList -#if defined(Rel10) || defined(Rel14) - , - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].MBMS_flag, - (MBSFN_AreaInfoList_r9_t *) & RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib13->mbsfn_AreaInfoList_r9, - (PMCH_InfoList_r9_t *) NULL + (MeasObjectToAddMod_t **) NULL, + (MAC_MainConfig_t *) NULL, 0, + (struct LogicalChannelConfig *)NULL, + (MeasGapConfig_t *) NULL, + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib1->tdd_Config, + NULL, + &RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib1->schedulingInfoList, + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].ul_CarrierFreq, + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib2->freqInfo.ul_Bandwidth, + &RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib2->freqInfo.additionalSpectrumEmission, + (MBSFN_SubframeConfigList_t*) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib2->mbsfn_SubframeConfigList +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + , + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].MBMS_flag, + (MBSFN_AreaInfoList_r9_t*) & RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib13->mbsfn_AreaInfoList_r9, + (PMCH_InfoList_r9_t *) NULL #endif -#ifdef Rel14 - , - sib1_v13ext +#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) + , + sib1_v13ext #endif ); } -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) /*------------------------------------------------------------------------------*/ static void init_MCCH( @@ -383,41 +463,42 @@ init_MCCH( // LOG_I(RRC, "DUY: serviceID is %d\n",RC.rrc[enb_mod_idP]->mcch_message->pmch_InfoList_r9.list.array[0]->mbms_SessionInfoList_r9.list.array[0]->tmgi_r9.serviceId_r9.buf[2]); // LOG_I(RRC, "DUY: session ID is %d\n",RC.rrc[enb_mod_idP]->mcch_message->pmch_InfoList_r9.list.array[0]->mbms_SessionInfoList_r9.list.array[0]->sessionId_r9->buf[0]); rrc_mac_config_req_eNB(enb_mod_idP, CC_id, - 0,0,0,0,0, -#ifdef Rel14 - 0, + 0,0,0,0,0, +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + 0, #endif - 0,//rnti - (BCCH_BCH_Message_t *)NULL, - (RadioResourceConfigCommonSIB_t *) NULL, -#ifdef Rel14 - (RadioResourceConfigCommonSIB_t *) NULL, + 0,//rnti + (BCCH_BCH_Message_t *)NULL, + (RadioResourceConfigCommonSIB_t *) NULL, +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + (RadioResourceConfigCommonSIB_t *) NULL, #endif - (struct PhysicalConfigDedicated *)NULL, -#if defined(Rel10) || defined(Rel14) - (SCellToAddMod_r10_t *)NULL, - //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, + (struct PhysicalConfigDedicated *)NULL, +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (SCellToAddMod_r10_t *)NULL, + //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, #endif - (MeasObjectToAddMod_t **) NULL, - (MAC_MainConfig_t *) NULL, - 0, - (struct LogicalChannelConfig *)NULL, - (MeasGapConfig_t *) NULL, - (TDD_Config_t *) NULL, - (MobilityControlInfo_t *)NULL, - (SchedulingInfoList_t *) NULL, - 0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL -#if defined(Rel10) || defined(Rel14) - , - 0, - (MBSFN_AreaInfoList_r9_t *) NULL, - (PMCH_InfoList_r9_t *) & (RC.rrc[enb_mod_idP]->carrier[CC_id].mcch_message->pmch_InfoList_r9) -# endif -# ifdef Rel14 - , - (SystemInformationBlockType1_v1310_IEs_t *)NULL -# endif - ); + (MeasObjectToAddMod_t **) NULL, + (MAC_MainConfig_t *) NULL, + 0, + (struct LogicalChannelConfig *)NULL, + (MeasGapConfig_t *) NULL, + (TDD_Config_t *) NULL, + (MobilityControlInfo_t *)NULL, + (SchedulingInfoList_t *) NULL, + 0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + , + 0, + (MBSFN_AreaInfoList_r9_t *) NULL, + (PMCH_InfoList_r9_t *) & (RC.rrc[enb_mod_idP]->carrier[CC_id].mcch_message->pmch_InfoList_r9) +#endif +#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) + , + (SystemInformationBlockType1_v1310_IEs_t *)NULL +#endif + ); + //LOG_I(RRC,"DUY: lcid after rrc_mac_config_req is %02d\n",RC.rrc[enb_mod_idP]->mcch_message->pmch_InfoList_r9.list.array[0]->mbms_SessionInfoList_r9.list.array[0]->logicalChannelIdentity_r9); } @@ -444,15 +525,21 @@ static void init_MBMS( NULL, // key rrc encryption NULL, // key rrc integrity NULL // key encryption -# if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) , &(RC.rrc[enb_mod_idP]->carrier[CC_id].mcch_message->pmch_InfoList_r9) -# endif +#endif ,NULL); rrc_rlc_config_asn1_req(&ctxt, NULL, // SRB_ToAddModList NULL, // DRB_ToAddModList NULL, // DRB_ToReleaseList - &(RC.rrc[enb_mod_idP]->carrier[CC_id].mcch_message->pmch_InfoList_r9)); + &(RC.rrc[enb_mod_idP]->carrier[CC_id].mcch_message->pmch_InfoList_r9) + +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); + //rrc_mac_config_req(); } } @@ -565,18 +652,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) { @@ -603,56 +678,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) -{ - 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( @@ -666,7 +691,7 @@ rrc_eNB_free_mem_UE_context( PROTOCOL_RRC_CTXT_UE_FMT" Clearing UE context 0x%p (free internal structs)\n", PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), ue_context_pP); -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_SCellToAddMod_r10, &ue_context_pP->ue_context.sCell_config[0]); ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_SCellToAddMod_r10, &ue_context_pP->ue_context.sCell_config[1]); #endif @@ -796,14 +821,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 @@ -813,76 +834,147 @@ rrc_eNB_free_UE(const module_id_t enb_mod_idP,const struct rrc_eNB_ue_context_s PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, enb_mod_idP, ENB_FLAG_YES, rnti, 0, 0,enb_mod_idP); 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); - 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 - * triggering the S1 UE Context Release Request procedure - * in order to allow the UE to perform the NAS recovery - * procedure, see TS 23.401 [17]. - */ - return; + 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 + * triggering the S1 UE Context Release Request procedure + * in order to allow the UE to perform the NAS recovery + * procedure, see TS 23.401 [17]. + */ + return; } #endif + // add UE info to freeList + LOG_I(RRC, "put UE %x into freeList\n", rnti); + put_UE_in_freelist(enb_mod_idP, rnti, 1); + } +} - for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { - eNB_PHY = RC.eNB[enb_mod_idP][CC_id]; +void remove_UE_from_freelist(module_id_t mod_id, rnti_t rnti) +{ - for (i=0; iulsch[i]; + 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); +} - if((ulsch != NULL) && (ulsch->rnti == rnti)) { - LOG_I(RRC, "clean_eNb_ulsch UE %x \n", rnti); - clean_eNb_ulsch(ulsch); - } - } +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); +} - for (i=0; idlsch[i][0]; +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; - if((dlsch != NULL) && (dlsch->rnti == rnti)) { - LOG_I(RRC, "clean_eNb_dlsch UE %x \n", rnti); - clean_eNb_dlsch(dlsch); - } - } + 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); - 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)); + 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); + } } - ul_req_tmp->number_of_pdus--; - } - } - } - } - } + 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); + } - 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); - } + 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); + } + } } //----------------------------------------------------------------------------- @@ -1121,36 +1213,36 @@ rrc_eNB_generate_RRCConnectionReestablishment( PROTOCOL_RRC_CTXT_UE_FMT" RRC_eNB --- MAC_CONFIG_REQ (SRB1) ---> MAC_eNB\n", PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP)); rrc_mac_config_req_eNB(ctxt_pP->module_id, - ue_context_pP->ue_context.primaryCC_id, - 0,0,0,0,0, -#ifdef Rel14 - 0, + ue_context_pP->ue_context.primaryCC_id, + 0,0,0,0,0, +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + 0, #endif - ctxt_pP->rnti, - (BCCH_BCH_Message_t *) NULL, - (RadioResourceConfigCommonSIB_t *) NULL, -#ifdef Rel14 - (RadioResourceConfigCommonSIB_t *) NULL, + ctxt_pP->rnti, + (BCCH_BCH_Message_t *) NULL, + (RadioResourceConfigCommonSIB_t *) NULL, +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + (RadioResourceConfigCommonSIB_t *) NULL, #endif - (struct PhysicalConfigDedicated * ) ue_context_pP->ue_context.physicalConfigDedicated, -#if defined(Rel10) || defined(Rel14) - (SCellToAddMod_r10_t *)NULL, - //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, + (struct PhysicalConfigDedicated* ) ue_context_pP->ue_context.physicalConfigDedicated, +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (SCellToAddMod_r10_t *)NULL, + //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, #endif - (MeasObjectToAddMod_t **) NULL, - ue_context_pP->ue_context.mac_MainConfig, - 1, - SRB1_logicalChannelConfig, - ue_context_pP->ue_context.measGapConfig, - (TDD_Config_t *) NULL, - NULL, - (SchedulingInfoList_t *) NULL, - 0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL -#if defined(Rel10) || defined(Rel14) - , 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL + (MeasObjectToAddMod_t **) NULL, + ue_context_pP->ue_context.mac_MainConfig, + 1, + SRB1_logicalChannelConfig, + ue_context_pP->ue_context.measGapConfig, + (TDD_Config_t *) NULL, + NULL, + (SchedulingInfoList_t *) NULL, + 0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + , 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL #endif -#ifdef Rel14 - ,(SystemInformationBlockType1_v1310_IEs_t *)NULL +#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) + ,(SystemInformationBlockType1_v1310_IEs_t *)NULL #endif ); break; @@ -1170,15 +1262,21 @@ rrc_eNB_generate_RRCConnectionReestablishment( 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; } //----------------------------------------------------------------------------- @@ -1229,13 +1327,16 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete( C_RNTI_t *cba_RNTI = NULL; 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); @@ -1248,9 +1349,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)); @@ -1268,9 +1373,13 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete( LOG_W(RRC,"SRB2 configuration does not exist in SRB configuration list\n"); } - 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)); @@ -1314,7 +1423,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; memcpy(&create_tunnel_req.sgw_addr[j], @@ -1642,20 +1751,22 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete( #ifdef EXMIMO_IOT NULL, NULL, NULL,NULL, #else - (MeasObjectToAddModList_t *)MeasObj_list, // MeasObj_list, - (ReportConfigToAddModList_t *)ReportConfig_list, // ReportConfig_list, - (QuantityConfig_t *)quantityConfig, //quantityConfig, - (MeasIdToAddModList_t *)NULL, + (MeasObjectToAddModList_t*)MeasObj_list, // MeasObj_list, + (ReportConfigToAddModList_t*)ReportConfig_list, // ReportConfig_list, + (QuantityConfig_t*)quantityConfig, //quantityConfig, + (MeasIdToAddModList_t*)NULL, #endif - (MAC_MainConfig_t *)ue_context_pP->ue_context.mac_MainConfig, - (MeasGapConfig_t *)NULL, - (MobilityControlInfo_t *)NULL, - (struct MeasConfig__speedStatePars *)Sparams, // Sparams, - (RSRP_Range_t *)rsrp, // rsrp, - (C_RNTI_t *)cba_RNTI, // cba_RNTI - (struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList *)dedicatedInfoNASList //dedicatedInfoNASList -#if defined(Rel10) || defined(Rel14) - , (SCellToAddMod_r10_t *)NULL + (MAC_MainConfig_t*)ue_context_pP->ue_context.mac_MainConfig, + (MeasGapConfig_t*)NULL, + (MobilityControlInfo_t*)NULL, + (struct MeasConfig__speedStatePars*)Sparams, // Sparams, + (RSRP_Range_t*)rsrp, // rsrp, + (C_RNTI_t*)cba_RNTI, // cba_RNTI + (struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList*)dedicatedInfoNASList, //dedicatedInfoNASList + (SL_CommConfig_r12_t*)NULL, + (SL_DiscConfig_r12_t*)NULL +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + , (SCellToAddMod_r10_t*)NULL #endif ); #ifdef RRC_MSG_PRINT @@ -1680,75 +1791,81 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete( } #endif - 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); - 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]; + 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); - for (int CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { - eNB_PHY = RC.eNB[ctxt_prior.module_id][CC_id]; + 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); - for (int i=0; iulsch[i]; + 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); - if((ulsch != NULL) && (ulsch->rnti == ctxt_prior.rnti)) { - 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); } //----------------------------------------------------------------------------- @@ -1764,8 +1881,15 @@ 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)); RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size = @@ -1813,13 +1937,13 @@ rrc_eNB_generate_RRCConnectionRelease( //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; + // set release timer +// 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), @@ -1840,6 +1964,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, @@ -2050,18 +2191,20 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t *co } memset(buffer, 0, RRC_BUF_SIZE); - size = do_RRCConnectionReconfiguration(ctxt_pP, - buffer, - xid, - (SRB_ToAddModList_t *)NULL, - (DRB_ToAddModList_t *)*DRB_configList2, - (DRB_ToReleaseList_t *)NULL, // DRB2_list, - (struct SPS_Config *)NULL, // *sps_Config, - NULL, NULL, NULL, NULL,NULL, - NULL, NULL, NULL, NULL, NULL, NULL, - (struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList *)dedicatedInfoNASList -#if defined(Rel10) || defined(Rel14) - , (SCellToAddMod_r10_t *)NULL + size = do_RRCConnectionReconfiguration(ctxt_pP, + buffer, + xid, + (SRB_ToAddModList_t*)NULL, + (DRB_ToAddModList_t*)*DRB_configList2, + (DRB_ToReleaseList_t*)NULL, // DRB2_list, + (struct SPS_Config*)NULL, // *sps_Config, + NULL, NULL, NULL, NULL,NULL, + NULL, NULL, NULL, NULL, NULL, NULL, + (struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList*)dedicatedInfoNASList, + (SL_CommConfig_r12_t*)NULL, + (SL_DiscConfig_r12_t*)NULL +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + , (SCellToAddMod_r10_t*)NULL #endif ); #ifdef RRC_MSG_PRINT @@ -2309,20 +2452,24 @@ rrc_eNB_modify_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t *cons } memset(buffer, 0, RRC_BUF_SIZE); - size = do_RRCConnectionReconfiguration(ctxt_pP, - buffer, - xid, - (SRB_ToAddModList_t *)NULL, - (DRB_ToAddModList_t *)DRB_configList2, - (DRB_ToReleaseList_t *)NULL, // DRB2_list, - (struct SPS_Config *)NULL, // *sps_Config, - NULL, NULL, NULL, NULL,NULL, - NULL, NULL, NULL, NULL, NULL, NULL, - (struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList *)dedicatedInfoNASList -#if defined(Rel10) || defined(Rel14) - , (SCellToAddMod_r10_t *)NULL + size = do_RRCConnectionReconfiguration(ctxt_pP, + buffer, + xid, + (SRB_ToAddModList_t*)NULL, + (DRB_ToAddModList_t*)DRB_configList2, + (DRB_ToReleaseList_t*)NULL, // DRB2_list, + (struct SPS_Config*)NULL, // *sps_Config, + NULL, NULL, NULL, NULL,NULL, + NULL, NULL, NULL, NULL, NULL, NULL, + (struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList*)dedicatedInfoNASList, + (SL_CommConfig_r12_t*)NULL, + (SL_DiscConfig_r12_t*)NULL +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + , (SCellToAddMod_r10_t*)NULL #endif - ); + ); + + #ifdef RRC_MSG_PRINT LOG_F(RRC,"[MSG] RRC Connection Reconfiguration\n"); @@ -2419,28 +2566,30 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration_release( const protocol_ LOG_W(RRC,"dedlicated NAS list is empty\n"); } - memset(buffer, 0, RRC_BUF_SIZE); - size = do_RRCConnectionReconfiguration(ctxt_pP, - buffer, - xid, - NULL, - NULL, - (DRB_ToReleaseList_t *)*DRB_Release_configList2, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - (struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList *)dedicatedInfoNASList -#if defined(Rel10) || defined(Rel14) - , (SCellToAddMod_r10_t *)NULL + memset(buffer, 0, RRC_BUF_SIZE); + size = do_RRCConnectionReconfiguration(ctxt_pP, + buffer, + xid, + NULL, + NULL, + (DRB_ToReleaseList_t*)*DRB_Release_configList2, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + (struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList*)dedicatedInfoNASList, + (SL_CommConfig_r12_t*)NULL, + (SL_DiscConfig_r12_t*)NULL +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + , (SCellToAddMod_r10_t*)NULL #endif ); ue_context_pP->ue_context.e_rab_release_command_flag = 1; @@ -2528,7 +2677,7 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t *cons *ReportConfig_A2, *ReportConfig_A3, *ReportConfig_A4, *ReportConfig_A5; MeasIdToAddModList_t *MeasId_list = NULL; MeasIdToAddMod_t *MeasId0, *MeasId1, *MeasId2, *MeasId3, *MeasId4, *MeasId5; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) long *sr_ProhibitTimer_r9 = NULL; // uint8_t sCellIndexToAdd = rrc_find_free_SCell_index(enb_mod_idP, ue_mod_idP, 1); //uint8_t sCellIndexToAdd = 0; @@ -2714,7 +2863,8 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t *cons mac_MainConfig->phr_Config->choice.setup.periodicPHR_Timer = MAC_MainConfig__phr_Config__setup__periodicPHR_Timer_sf20; // sf20 = 20 subframes mac_MainConfig->phr_Config->choice.setup.prohibitPHR_Timer = MAC_MainConfig__phr_Config__setup__prohibitPHR_Timer_sf20; // sf20 = 20 subframes mac_MainConfig->phr_Config->choice.setup.dl_PathlossChange = MAC_MainConfig__phr_Config__setup__dl_PathlossChange_dB1; // Value dB1 =1 dB, dB3 = 3 dB -#if defined(Rel10) || defined(Rel14) + +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) sr_ProhibitTimer_r9 = CALLOC(1, sizeof(long)); *sr_ProhibitTimer_r9 = 0; // SR tx on PUCCH, Value in number of SR period(s). Value 0 = no timer for SR, Value 2= 2*SR mac_MainConfig->ext1 = CALLOC(1, sizeof(struct MAC_MainConfig__ext1)); @@ -2777,13 +2927,13 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t *cons if ((*physicalConfigDedicated)->cqi_ReportConfig) { if ((rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm4) || - (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm5) || - (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm6)) { - //feedback mode needs to be set as well - //TODO: I think this is taken into account in the PHY automatically based on the transmission mode variable - printf("setting cqi reporting mode to rm31\n"); -#if defined(Rel10) || defined(Rel14) - *((*physicalConfigDedicated)->cqi_ReportConfig->cqi_ReportModeAperiodic)=CQI_ReportModeAperiodic_rm31; + (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm5) || + (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm6)) { + //feedback mode needs to be set as well + //TODO: I think this is taken into account in the PHY automatically based on the transmission mode variable + printf("setting cqi reporting mode to rm31\n"); +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + *((*physicalConfigDedicated)->cqi_ReportConfig->cqi_ReportModeAperiodic)=CQI_ReportModeAperiodic_rm31; #else *((*physicalConfigDedicated)->cqi_ReportConfig->cqi_ReportModeAperiodic)=CQI_ReportConfig__cqi_ReportModeAperiodic_rm31; // HLC CQI, no PMI #endif @@ -3070,20 +3220,22 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t *cons #ifdef EXMIMO_IOT NULL, NULL, NULL,NULL, #else - (MeasObjectToAddModList_t *)MeasObj_list, - (ReportConfigToAddModList_t *)ReportConfig_list, - (QuantityConfig_t *)quantityConfig, - (MeasIdToAddModList_t *)MeasId_list, + (MeasObjectToAddModList_t*)MeasObj_list, + (ReportConfigToAddModList_t*)ReportConfig_list, + (QuantityConfig_t*)quantityConfig, + (MeasIdToAddModList_t*)MeasId_list, #endif - (MAC_MainConfig_t *)mac_MainConfig, - (MeasGapConfig_t *)NULL, - (MobilityControlInfo_t *)NULL, - (struct MeasConfig__speedStatePars *)Sparams, - (RSRP_Range_t *)rsrp, - (C_RNTI_t *)cba_RNTI, - (struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList *)dedicatedInfoNASList -#if defined(Rel10) || defined(Rel14) - , (SCellToAddMod_r10_t *)NULL + (MAC_MainConfig_t*)mac_MainConfig, + (MeasGapConfig_t*)NULL, + (MobilityControlInfo_t*)NULL, + (struct MeasConfig__speedStatePars*)Sparams, + (RSRP_Range_t*)rsrp, + (C_RNTI_t*)cba_RNTI, + (struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList*)dedicatedInfoNASList, + (SL_CommConfig_r12_t*)NULL, + (SL_DiscConfig_r12_t*)NULL +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + , (SCellToAddMod_r10_t*)NULL #endif ); #ifdef RRC_MSG_PRINT @@ -3423,13 +3575,13 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt if ((*physicalConfigDedicated)->cqi_ReportConfig) { if ((rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm4) || - (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm5) || - (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm6)) { - //feedback mode needs to be set as well - //TODO: I think this is taken into account in the PHY automatically based on the transmission mode variable - printf("setting cqi reporting mode to rm31\n"); -#if defined(Rel10) || defined(Rel14) - *((*physicalConfigDedicated)->cqi_ReportConfig->cqi_ReportModeAperiodic)=CQI_ReportModeAperiodic_rm31; + (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm5) || + (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm6)) { + //feedback mode needs to be set as well + //TODO: I think this is taken into account in the PHY automatically based on the transmission mode variable + printf("setting cqi reporting mode to rm31\n"); +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + *((*physicalConfigDedicated)->cqi_ReportConfig->cqi_ReportModeAperiodic)=CQI_ReportModeAperiodic_rm31; #else *((*physicalConfigDedicated)->cqi_ReportConfig->cqi_ReportModeAperiodic)=CQI_ReportConfig__cqi_ReportModeAperiodic_rm31; // HLC CQI, no PMI #endif @@ -3573,28 +3725,30 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt size = do_RRCConnectionReconfiguration(ctxt_pP, buffer, xid, //Transaction_id, - (SRB_ToAddModList_t *)NULL, // SRB_configList - (DRB_ToAddModList_t *)NULL, - (DRB_ToReleaseList_t *)NULL, // DRB2_list, - (struct SPS_Config *)NULL, // *sps_Config, - (struct PhysicalConfigDedicated *)*physicalConfigDedicated, - // #ifdef EXMIMO_IOT - // NULL, NULL, NULL,NULL, - // #else - (MeasObjectToAddModList_t *)MeasObj_list, - (ReportConfigToAddModList_t *)ReportConfig_list, - (QuantityConfig_t *)quantityConfig, - (MeasIdToAddModList_t *)MeasId_list, - // #endif - (MAC_MainConfig_t *)mac_MainConfig, - (MeasGapConfig_t *)NULL, - (MobilityControlInfo_t *)NULL, - (struct MeasConfig__speedStatePars *)Sparams, - (RSRP_Range_t *)rsrp, - (C_RNTI_t *)cba_RNTI, - (struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList *)dedicatedInfoNASList -#if defined(Rel10) || defined(Rel14) - , (SCellToAddMod_r10_t *)NULL + (SRB_ToAddModList_t*)NULL, // SRB_configList + (DRB_ToAddModList_t*)NULL, + (DRB_ToReleaseList_t*)NULL, // DRB2_list, + (struct SPS_Config*)NULL, // *sps_Config, + (struct PhysicalConfigDedicated*)*physicalConfigDedicated, +// #ifdef EXMIMO_IOT +// NULL, NULL, NULL,NULL, +// #else + (MeasObjectToAddModList_t*)MeasObj_list, + (ReportConfigToAddModList_t*)ReportConfig_list, + (QuantityConfig_t*)quantityConfig, + (MeasIdToAddModList_t*)MeasId_list, +// #endif + (MAC_MainConfig_t*)mac_MainConfig, + (MeasGapConfig_t*)NULL, + (MobilityControlInfo_t*)NULL, + (struct MeasConfig__speedStatePars*)Sparams, + (RSRP_Range_t*)rsrp, + (C_RNTI_t*)cba_RNTI, + (struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList*)dedicatedInfoNASList, + (SL_CommConfig_r12_t*)NULL, + (SL_DiscConfig_r12_t*)NULL +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + , (SCellToAddMod_r10_t*)NULL #endif ); #ifdef RRC_MSG_PRINT @@ -3657,7 +3811,7 @@ rrc_eNB_generate_RRCConnectionReconfiguration_SCell( { uint8_t size; uint8_t buffer[100]; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) uint8_t sCellIndexToAdd = 0; //one SCell so far // uint8_t sCellIndexToAdd; @@ -3674,23 +3828,26 @@ rrc_eNB_generate_RRCConnectionReconfiguration_SCell( size = do_RRCConnectionReconfiguration(ctxt_pP, buffer, rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id),//Transaction_id, - (SRB_ToAddModList_t *)NULL, - (DRB_ToAddModList_t *)NULL, - (DRB_ToReleaseList_t *)NULL, - (struct SPS_Config *)NULL, - (struct PhysicalConfigDedicated *)NULL, - (MeasObjectToAddModList_t *)NULL, - (ReportConfigToAddModList_t *)NULL, - (QuantityConfig_t *)NULL, - (MeasIdToAddModList_t *)NULL, - (MAC_MainConfig_t *)NULL, - (MeasGapConfig_t *)NULL, - (MobilityControlInfo_t *)NULL, - (struct MeasConfig__speedStatePars *)NULL, - (RSRP_Range_t *)NULL, - (C_RNTI_t *)NULL, - (struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList *)NULL -#if defined(Rel10) || defined(Rel14) + (SRB_ToAddModList_t*)NULL, + (DRB_ToAddModList_t*)NULL, + (DRB_ToReleaseList_t*)NULL, + (struct SPS_Config*)NULL, + (struct PhysicalConfigDedicated*)NULL, + (MeasObjectToAddModList_t*)NULL, + (ReportConfigToAddModList_t*)NULL, + (QuantityConfig_t*)NULL, + (MeasIdToAddModList_t*)NULL, + (MAC_MainConfig_t*)NULL, + (MeasGapConfig_t*)NULL, + (MobilityControlInfo_t*)NULL, + (struct MeasConfig__speedStatePars*)NULL, + (RSRP_Range_t*)NULL, + (C_RNTI_t*)NULL, + (struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList*)NULL, + (SL_CommConfig_r12_t*)NULL, + (SL_DiscConfig_r12_t*)NULL + +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) , ue_context_pP->ue_context.sCell_config #endif ); @@ -3735,42 +3892,7 @@ rrc_eNB_process_MeasurementReport( if (measResults2 == NULL ) return; - if (measResults2->measId > 0 ) { - if (ue_context_pP->ue_context.measResults == NULL) { - ue_context_pP->ue_context.measResults = CALLOC(1, sizeof(MeasResults_t)); - } - - ue_context_pP->ue_context.measResults->measId=measResults2->measId; - ue_context_pP->ue_context.measResults->measResultPCell.rsrpResult=measResults2->measResultPCell.rsrpResult; - ue_context_pP->ue_context.measResults->measResultPCell.rsrqResult=measResults2->measResultPCell.rsrqResult; - LOG_D(RRC, "[eNB %d]Frame %d: UE %x (Measurement Id %d): RSRP of Source %ld\n", ctxt_pP->module_id, ctxt_pP->frame, ctxt_pP->rnti, (int)measResults2->measId, ue_context_pP->ue_context.measResults->measResultPCell.rsrpResult-140); - LOG_D(RRC, "[eNB %d]Frame %d: UE %x (Measurement Id %d): RSRQ of Source %ld\n", ctxt_pP->module_id, ctxt_pP->frame, ctxt_pP->rnti, (int)measResults2->measId, ue_context_pP->ue_context.measResults->measResultPCell.rsrqResult/2 - 20); - } - - if (measResults2->measResultNeighCells == NULL) - return; - - if (measResults2->measResultNeighCells->choice.measResultListEUTRA.list.count > 0) { - neighboring_cells = measResults2->measResultNeighCells->choice.measResultListEUTRA.list.count; - - if (ue_context_pP->ue_context.measResults->measResultNeighCells == NULL) { - ue_context_pP->ue_context.measResults->measResultNeighCells = CALLOC(1, sizeof(*measResults2->measResultNeighCells)*neighboring_cells); - } - - ue_context_pP->ue_context.measResults->measResultNeighCells->choice.measResultListEUTRA.list.count = neighboring_cells; - - for (i=0; i < neighboring_cells; i++) { - memcpy (ue_context_pP->ue_context.measResults->measResultNeighCells->choice.measResultListEUTRA.list.array[i], - measResults2->measResultNeighCells->choice.measResultListEUTRA.list.array[i], - sizeof(MeasResultListEUTRA_t)); - LOG_D(RRC, "Physical Cell Id %d\n", - (int)ue_context_pP->ue_context.measResults->measResultNeighCells->choice.measResultListEUTRA.list.array[i]->physCellId); - LOG_D(RRC, "RSRP of Target %d\n", - (int)*(ue_context_pP->ue_context.measResults->measResultNeighCells->choice.measResultListEUTRA.list.array[i]->measResult.rsrpResult)); - LOG_D(RRC, "RSRQ of Target %d\n", - (int)*(ue_context_pP->ue_context.measResults->measResultNeighCells->choice.measResultListEUTRA.list.array[i]->measResult.rsrqResult)); - } - } +// #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) // #if defined(Rel10) || defined(Rel14) // #else @@ -3862,7 +3984,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, @@ -3961,8 +4083,17 @@ check_handovers( SDU_CONFIRM_NO, ue_context_p->ue_context.handover_info->size, ue_context_p->ue_context.handover_info->buf, - PDCP_TRANSMISSION_MODE_CONTROL); - AssertFatal(result == TRUE, "PDCP data request failed!\n"); + PDCP_TRANSMISSION_MODE_CONTROL +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,NULL, NULL +#endif + ); + //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; } } @@ -3983,7 +4114,6 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover( T(T_ENB_RRC_CONNECTION_RECONFIGURATION, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame), T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti)); uint8_t buffer[RRC_BUF_SIZE]; - uint16_t size; int i; uint8_t rv[2]; uint16_t Idx; @@ -4017,7 +4147,7 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover( // HandoverCommand_t handoverCommand; //uint8_t sourceModId = // get_adjacent_cell_mod_id(ue_context_pP->ue_context.handover_info->as_context.reestablishmentInfo->sourcePhysCellId); -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) long *sr_ProhibitTimer_r9; #endif long *logicalchannelgroup, *logicalchannelgroup_drb; @@ -4234,43 +4364,44 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover( "handover_config [FRAME %05d][RRC_eNB][MOD %02d][][--- MAC_CONFIG_REQ (SRB1 UE %x) --->][MAC_eNB][MOD %02d][]\n", ctxt_pP->frame, ctxt_pP->module_id, ue_context_pP->ue_context.rnti, ctxt_pP->module_id); rrc_mac_config_req_eNB( - ctxt_pP->module_id, - ue_context_pP->ue_context.primaryCC_id, - 0,0,0,0,0, -#ifdef Rel14 - 0, + ctxt_pP->module_id, + ue_context_pP->ue_context.primaryCC_id, + 0,0,0,0,0, +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) +0, +#endif + ue_context_pP->ue_context.rnti, + (BCCH_BCH_Message_t *) NULL, + (RadioResourceConfigCommonSIB_t*) NULL, +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + (RadioResourceConfigCommonSIB_t*) NULL, #endif - ue_context_pP->ue_context.rnti, - (BCCH_BCH_Message_t *) NULL, - (RadioResourceConfigCommonSIB_t *) NULL, -#ifdef Rel14 - (RadioResourceConfigCommonSIB_t *) NULL, + ue_context_pP->ue_context.physicalConfigDedicated, +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (SCellToAddMod_r10_t *)NULL, + //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, #endif - ue_context_pP->ue_context.physicalConfigDedicated, -#if defined(Rel10) || defined(Rel14) - (SCellToAddMod_r10_t *)NULL, - //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, + (MeasObjectToAddMod_t **) NULL, + ue_context_pP->ue_context.mac_MainConfig, + 1, + SRB1_logicalChannelConfig, + ue_context_pP->ue_context.measGapConfig, + (TDD_Config_t*) NULL, + (MobilityControlInfo_t*) NULL, + (SchedulingInfoList_t*) NULL, + 0, + NULL, + NULL, + (MBSFN_SubframeConfigList_t *) NULL +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + , 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL #endif - (MeasObjectToAddMod_t **) NULL, - ue_context_pP->ue_context.mac_MainConfig, - 1, - SRB1_logicalChannelConfig, - ue_context_pP->ue_context.measGapConfig, - (TDD_Config_t *) NULL, - (MobilityControlInfo_t *) NULL, - (SchedulingInfoList_t *) NULL, - 0, - NULL, - NULL, - (MBSFN_SubframeConfigList_t *) NULL -#if defined(Rel10) || defined(Rel14) - , 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL +#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) + , + (SystemInformationBlockType1_v1310_IEs_t *)NULL #endif -# ifdef Rel14 - , - (SystemInformationBlockType1_v1310_IEs_t *)NULL -# endif - ); + ); + // Configure target eNB SRB2 /// SRB2 SRB2_config = CALLOC(1, sizeof(*SRB2_config)); @@ -4357,7 +4488,7 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover( mac_MainConfig->phr_Config->choice.setup.periodicPHR_Timer = MAC_MainConfig__phr_Config__setup__periodicPHR_Timer_sf20; // sf20 = 20 subframes mac_MainConfig->phr_Config->choice.setup.prohibitPHR_Timer = MAC_MainConfig__phr_Config__setup__prohibitPHR_Timer_sf20; // sf20 = 20 subframes mac_MainConfig->phr_Config->choice.setup.dl_PathlossChange = MAC_MainConfig__phr_Config__setup__dl_PathlossChange_dB1; // Value dB1 =1 dB, dB3 = 3 dB -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) sr_ProhibitTimer_r9 = CALLOC(1, sizeof(long)); *sr_ProhibitTimer_r9 = 0; // SR tx on PUCCH, Value in number of SR period(s). Value 0 = no timer for SR, Value 2= 2*SR mac_MainConfig->ext1 = CALLOC(1, sizeof(struct MAC_MainConfig__ext1)); @@ -4664,22 +4795,23 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover( rrc_pdcp_config_asn1_req(&ctxt, ue_context_pP->ue_context.SRB_configList, (DRB_ToAddModList_t *) NULL, (DRB_ToReleaseList_t *) NULL, 0xff, NULL, NULL, NULL -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) , (PMCH_InfoList_r9_t *) NULL #endif ,NULL); rrc_rlc_config_asn1_req(&ctxt, ue_context_pP->ue_context.SRB_configList, (DRB_ToAddModList_t *) NULL, (DRB_ToReleaseList_t *) NULL -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) , (PMCH_InfoList_r9_t *) NULL + , 0, 0 #endif ); /* Initialize NAS list */ dedicatedInfoNASList = NULL; // 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, @@ -4698,11 +4830,18 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover( Sparams, NULL, NULL, - dedicatedInfoNASList -#if defined(Rel10) || defined(Rel14) + dedicatedInfoNASList, + (SL_CommConfig_r12_t*)NULL, + (SL_DiscConfig_r12_t*)NULL +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) , 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); @@ -4725,39 +4864,40 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover( //rrc_rlc_data_req(ctxt_pP->module_id,frameP, 1,(ue_mod_idP*NB_RB_MAX)+DCCH,rrc_eNB_mui++,0,size,(char*)buffer); //pdcp_data_req (ctxt_pP->module_id, frameP, 1, (ue_mod_idP * NB_RB_MAX) + DCCH,rrc_eNB_mui++, 0, size, (char *) buffer, 1); rrc_mac_config_req_eNB( - ctxt_pP->module_id, - ue_context_pP->ue_context.primaryCC_id, - 0,0,0,0,0, -#ifdef Rel14 - 0, + ctxt_pP->module_id, + ue_context_pP->ue_context.primaryCC_id, + 0,0,0,0,0, +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + 0, #endif - ue_context_pP->ue_context.rnti, - (BCCH_BCH_Message_t *) NULL, - (RadioResourceConfigCommonSIB_t *) NULL, -#ifdef Rel14 - (RadioResourceConfigCommonSIB_t *) NULL, + ue_context_pP->ue_context.rnti, + (BCCH_BCH_Message_t *) NULL, + (RadioResourceConfigCommonSIB_t *) NULL, +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + (RadioResourceConfigCommonSIB_t *) NULL, #endif - ue_context_pP->ue_context.physicalConfigDedicated, -#if defined(Rel10) || defined(Rel14) - (SCellToAddMod_r10_t *)NULL, - //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, + ue_context_pP->ue_context.physicalConfigDedicated, +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (SCellToAddMod_r10_t *)NULL, + //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, #endif - (MeasObjectToAddMod_t **) NULL, - ue_context_pP->ue_context.mac_MainConfig, - 1, - SRB1_logicalChannelConfig, - ue_context_pP->ue_context.measGapConfig, - (TDD_Config_t *) NULL, - (MobilityControlInfo_t *) mobilityInfo, - (SchedulingInfoList_t *) NULL, 0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL -#if defined(Rel10) || defined(Rel14) - , 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL + (MeasObjectToAddMod_t **) NULL, + ue_context_pP->ue_context.mac_MainConfig, + 1, + SRB1_logicalChannelConfig, + ue_context_pP->ue_context.measGapConfig, + (TDD_Config_t *) NULL, + (MobilityControlInfo_t *) mobilityInfo, + (SchedulingInfoList_t *) NULL, 0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + , 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL #endif -# ifdef Rel14 - , - (SystemInformationBlockType1_v1310_IEs_t *)NULL -# endif - ); +#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) + , + (SystemInformationBlockType1_v1310_IEs_t *)NULL +#endif + ); + /* handoverCommand.criticalExtensions.present = HandoverCommand__criticalExtensions_PR_c1; handoverCommand.criticalExtensions.choice.c1.present = HandoverCommand__criticalExtensions__c1_PR_handoverCommand_r8; @@ -4872,7 +5012,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete( kRRCenc, kRRCint, kUPenc -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) , (PMCH_InfoList_r9_t *) NULL #endif ,NULL); @@ -4883,8 +5023,9 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete( DRB_configList, // (DRB_ToReleaseList_t *) NULL DRB_Release_configList2 -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) , (PMCH_InfoList_r9_t *) NULL + , 0, 0 #endif ); @@ -4988,40 +5129,41 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete( } rrc_mac_config_req_eNB( - ctxt_pP->module_id, - ue_context_pP->ue_context.primaryCC_id, - 0,0,0,0,0, -#ifdef Rel14 - 0, + ctxt_pP->module_id, + ue_context_pP->ue_context.primaryCC_id, + 0,0,0,0,0, +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + 0, #endif - ue_context_pP->ue_context.rnti, - (BCCH_BCH_Message_t *) NULL, - (RadioResourceConfigCommonSIB_t *) NULL, -#ifdef Rel14 - (RadioResourceConfigCommonSIB_t *) NULL, + ue_context_pP->ue_context.rnti, + (BCCH_BCH_Message_t *) NULL, + (RadioResourceConfigCommonSIB_t *) NULL, +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + (RadioResourceConfigCommonSIB_t *) NULL, #endif - ue_context_pP->ue_context.physicalConfigDedicated, -#if defined(Rel10) || defined(Rel14) - (SCellToAddMod_r10_t *)NULL, - //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, + ue_context_pP->ue_context.physicalConfigDedicated, +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (SCellToAddMod_r10_t *)NULL, + //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, #endif - (MeasObjectToAddMod_t **) NULL, - ue_context_pP->ue_context.mac_MainConfig, - DRB2LCHAN[i], - DRB_configList->list.array[i]->logicalChannelConfig, - ue_context_pP->ue_context.measGapConfig, - (TDD_Config_t *) NULL, - NULL, - (SchedulingInfoList_t *) NULL, - 0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL -#if defined(Rel10) || defined(Rel14) - , 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL + (MeasObjectToAddMod_t **) NULL, + ue_context_pP->ue_context.mac_MainConfig, + DRB2LCHAN[i], + DRB_configList->list.array[i]->logicalChannelConfig, + ue_context_pP->ue_context.measGapConfig, + (TDD_Config_t *) NULL, + NULL, + (SchedulingInfoList_t *) NULL, + 0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + , 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL #endif -# ifdef Rel14 - , - (SystemInformationBlockType1_v1310_IEs_t *)NULL -# endif - ); +#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) + , + (SystemInformationBlockType1_v1310_IEs_t *)NULL +#endif + ); + } else { // remove LCHAN from MAC/PHY if (ue_context_pP->ue_context.DRB_active[drb_id] == 1) { // DRB has just been removed so remove RLC + PDCP for DRB @@ -5042,39 +5184,39 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete( PROTOCOL_RRC_CTXT_UE_FMT" RRC_eNB --- MAC_CONFIG_REQ (DRB) ---> MAC_eNB\n", PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP)); rrc_mac_config_req_eNB(ctxt_pP->module_id, - ue_context_pP->ue_context.primaryCC_id, - 0,0,0,0,0, -#ifdef Rel14 - 0, + ue_context_pP->ue_context.primaryCC_id, + 0,0,0,0,0, +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + 0, #endif - ue_context_pP->ue_context.rnti, - (BCCH_BCH_Message_t *) NULL, - (RadioResourceConfigCommonSIB_t *) NULL, -#ifdef Rel14 - (RadioResourceConfigCommonSIB_t *) NULL, + ue_context_pP->ue_context.rnti, + (BCCH_BCH_Message_t *) NULL, + (RadioResourceConfigCommonSIB_t *) NULL, +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + (RadioResourceConfigCommonSIB_t *) NULL, #endif - ue_context_pP->ue_context.physicalConfigDedicated, -#if defined(Rel10) || defined(Rel14) - (SCellToAddMod_r10_t *)NULL, - //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, + ue_context_pP->ue_context.physicalConfigDedicated, +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (SCellToAddMod_r10_t *)NULL, + //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, #endif - (MeasObjectToAddMod_t **) NULL, - ue_context_pP->ue_context.mac_MainConfig, - DRB2LCHAN[i], - (LogicalChannelConfig_t *) NULL, - (MeasGapConfig_t *) NULL, - (TDD_Config_t *) NULL, - NULL, - (SchedulingInfoList_t *) NULL, - 0, NULL, NULL, NULL -#if defined(Rel10) || defined(Rel14) - , 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL + (MeasObjectToAddMod_t **) NULL, + ue_context_pP->ue_context.mac_MainConfig, + DRB2LCHAN[i], + (LogicalChannelConfig_t *) NULL, + (MeasGapConfig_t *) NULL, + (TDD_Config_t *) NULL, + NULL, + (SchedulingInfoList_t *) NULL, + 0, NULL, NULL, NULL +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + , 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL #endif -# ifdef Rel14 - , - (SystemInformationBlockType1_v1310_IEs_t *)NULL -# endif - ); +#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) + , + (SystemInformationBlockType1_v1310_IEs_t *)NULL +#endif + ); } } } @@ -5158,40 +5300,40 @@ rrc_eNB_generate_RRCConnectionSetup( PROTOCOL_RRC_CTXT_UE_FMT" RRC_eNB --- MAC_CONFIG_REQ (SRB1) ---> MAC_eNB\n", PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP)); rrc_mac_config_req_eNB( - ctxt_pP->module_id, - ue_context_pP->ue_context.primaryCC_id, - 0,0,0,0,0, -#ifdef Rel14 - 0, + ctxt_pP->module_id, + ue_context_pP->ue_context.primaryCC_id, + 0,0,0,0,0, +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + 0, #endif - ue_context_pP->ue_context.rnti, - (BCCH_BCH_Message_t *) NULL, - (RadioResourceConfigCommonSIB_t *) NULL, -#ifdef Rel14 - (RadioResourceConfigCommonSIB_t *) NULL, + ue_context_pP->ue_context.rnti, + (BCCH_BCH_Message_t *) NULL, + (RadioResourceConfigCommonSIB_t *) NULL, +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + (RadioResourceConfigCommonSIB_t *) NULL, #endif - ue_context_pP->ue_context.physicalConfigDedicated, -#if defined(Rel10) || defined(Rel14) - (SCellToAddMod_r10_t *)NULL, - //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, + ue_context_pP->ue_context.physicalConfigDedicated, +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (SCellToAddMod_r10_t *)NULL, + //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, #endif - (MeasObjectToAddMod_t **) NULL, - ue_context_pP->ue_context.mac_MainConfig, - 1, - SRB1_logicalChannelConfig, - ue_context_pP->ue_context.measGapConfig, - (TDD_Config_t *) NULL, - NULL, - (SchedulingInfoList_t *) NULL, - 0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL -#if defined(Rel10) || defined(Rel14) - , 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL + (MeasObjectToAddMod_t **) NULL, + ue_context_pP->ue_context.mac_MainConfig, + 1, + SRB1_logicalChannelConfig, + ue_context_pP->ue_context.measGapConfig, + (TDD_Config_t *) NULL, + NULL, + (SchedulingInfoList_t *) NULL, + 0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + , 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL #endif -# ifdef Rel14 - , - (SystemInformationBlockType1_v1310_IEs_t *)NULL -# endif - ); +#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) + , + (SystemInformationBlockType1_v1310_IEs_t *)NULL +#endif + ); break; } } @@ -5210,9 +5352,6 @@ rrc_eNB_generate_RRCConnectionSetup( PROTOCOL_RRC_CTXT_UE_FMT" [RAPROC] Logical Channel DL-CCCH, Generating RRCConnectionSetup (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 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; @@ -5289,12 +5428,13 @@ openair_rrc_eNB_init( /// System Information INIT LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" Checking release \n", PROTOCOL_RRC_CTXT_ARGS(&ctxt)); -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + // can clear it at runtime RC.rrc[ctxt.module_id]->carrier[0].MBMS_flag = 0; // This has to come from some top-level configuration // only CC_id 0 is logged -#if defined(Rel10) +#if (RRC_VERSION < MAKE_VERSION(10, 0, 0)) LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" Rel10 RRC detected, MBMS flag %d\n", #else LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" Rel14 RRC detected, MBMS flag %d\n", @@ -5342,9 +5482,7 @@ openair_rrc_eNB_init( } rrc_init_global_param(); - for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { -#if defined(Rel10) || defined(Rel14) - +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) switch (RC.rrc[ctxt.module_id]->carrier[CC_id].MBMS_flag) { case 1: case 2: @@ -5541,45 +5679,77 @@ rrc_eNB_decode_ccch( LOG_D(RRC, "c_rnti is %x\n", c_rnti); ue_context_p = rrc_eNB_get_ue_context(RC.rrc[ctxt_pP->module_id], c_rnti); - if (ue_context_p == NULL) { - LOG_E(RRC, - PROTOCOL_RRC_CTXT_UE_FMT" RRCConnectionReestablishmentRequest without UE context, let's reject the UE\n", - PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP)); - rrc_eNB_generate_RRCConnectionReestablishmentReject(ctxt_pP, ue_context_p, CC_id); - break; - } + ue_context_p = rrc_eNB_get_ue_context(RC.rrc[ctxt_pP->module_id], c_rnti); + if (ue_context_p == NULL) { + LOG_E(RRC, + PROTOCOL_RRC_CTXT_UE_FMT" RRCConnectionReestablishmentRequest without UE context, let's reject the UE\n", + PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP)); + rrc_eNB_generate_RRCConnectionReestablishmentReject(ctxt_pP, ue_context_p, CC_id); + break; + } + int UE_id = find_UE_id(ctxt_pP->module_id, c_rnti); + 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; + } - 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)); - rrc_eNB_generate_RRCConnectionReestablishmentReject(ctxt_pP, ue_context_p, CC_id); - break; - } - - LOG_D(RRC, - PROTOCOL_RRC_CTXT_UE_FMT" UE context: %p\n", - PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), - ue_context_p); - ue_context_p->ue_context.ul_failure_timer = 0; - ue_context_p->ue_context.ue_release_timer = 0; + 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; - 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; + } - // insert C-RNTI to map - for (i = 0; i < NUMBER_OF_UE_MAX; i++) { - if (reestablish_rnti_map[i][0] == 0) { - reestablish_rnti_map[i][0] = ctxt_pP->rnti; - reestablish_rnti_map[i][1] = c_rnti; - break; + 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; + ue_context_p->ue_context.reestablishment_xid = -1; + + // insert C-RNTI to map + for (i = 0; i < MAX_MOBILES_PER_ENB; i++) { + if (reestablish_rnti_map[i][0] == 0) { + reestablish_rnti_map[i][0] = ctxt_pP->rnti; + reestablish_rnti_map[i][1] = c_rnti; + break; + } + } + LOG_D(RRC, "reestablish_rnti_map[%d] [0] %x, [1] %x\n", + i, reestablish_rnti_map[i][0], reestablish_rnti_map[i][1]); LOG_D(RRC, "reestablish_rnti_map[%d] [0] %x, [1] %x\n", i, reestablish_rnti_map[i][0], reestablish_rnti_map[i][1]); @@ -5596,56 +5766,63 @@ rrc_eNB_decode_ccch( #ifndef NO_RRM send_msg(&S_rrc, msg_rrc_MR_attach_ind(ctxt_pP->module_id, Mac_id)); #else - ue_context_p->ue_context.primaryCC_id = CC_id; - //LG COMMENT Idx = (ue_mod_idP * NB_RB_MAX) + DCCH; - Idx = DCCH; - // SRB1 - ue_context_p->ue_context.Srb1.Active = 1; - ue_context_p->ue_context.Srb1.Srb_info.Srb_id = Idx; - memcpy(&ue_context_p->ue_context.Srb1.Srb_info.Lchan_desc[0], - &DCCH_LCHAN_DESC, - LCHAN_DESC_SIZE); - memcpy(&ue_context_p->ue_context.Srb1.Srb_info.Lchan_desc[1], - &DCCH_LCHAN_DESC, - LCHAN_DESC_SIZE); - // SRB2: set it to go through SRB1 with id 1 (DCCH) - ue_context_p->ue_context.Srb2.Active = 1; - ue_context_p->ue_context.Srb2.Srb_info.Srb_id = Idx; - memcpy(&ue_context_p->ue_context.Srb2.Srb_info.Lchan_desc[0], - &DCCH_LCHAN_DESC, - LCHAN_DESC_SIZE); - memcpy(&ue_context_p->ue_context.Srb2.Srb_info.Lchan_desc[1], - &DCCH_LCHAN_DESC, - LCHAN_DESC_SIZE); - rrc_eNB_generate_RRCConnectionReestablishment(ctxt_pP, ue_context_p, CC_id); - LOG_I(RRC, PROTOCOL_RRC_CTXT_UE_FMT"CALLING RLC CONFIG SRB1 (rbid %d)\n", - PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), - Idx); - MSC_LOG_TX_MESSAGE(MSC_RRC_ENB, - MSC_PDCP_ENB, - NULL, - 0, - MSC_AS_TIME_FMT" CONFIG_REQ UE %x SRB", - MSC_AS_TIME_ARGS(ctxt_pP), - ue_context_p->ue_context.rnti); - rrc_pdcp_config_asn1_req(ctxt_pP, - ue_context_p->ue_context.SRB_configList, - (DRB_ToAddModList_t *) NULL, - (DRB_ToReleaseList_t *) NULL, - 0xff, - NULL, - NULL, - NULL -# if defined(Rel10) || defined(Rel14) - , (PMCH_InfoList_r9_t *) NULL -# endif - ,NULL); - rrc_rlc_config_asn1_req(ctxt_pP, - ue_context_p->ue_context.SRB_configList, - (DRB_ToAddModList_t *) NULL, - (DRB_ToReleaseList_t *) NULL -# if defined(Rel10) || defined(Rel14) - , (PMCH_InfoList_r9_t *) NULL + ue_context_p->ue_context.primaryCC_id = CC_id; + + //LG COMMENT Idx = (ue_mod_idP * NB_RB_MAX) + DCCH; + Idx = DCCH; + // SRB1 + ue_context_p->ue_context.Srb1.Active = 1; + ue_context_p->ue_context.Srb1.Srb_info.Srb_id = Idx; + memcpy(&ue_context_p->ue_context.Srb1.Srb_info.Lchan_desc[0], + &DCCH_LCHAN_DESC, + LCHAN_DESC_SIZE); + memcpy(&ue_context_p->ue_context.Srb1.Srb_info.Lchan_desc[1], + &DCCH_LCHAN_DESC, + LCHAN_DESC_SIZE); + + // SRB2: set it to go through SRB1 with id 1 (DCCH) + ue_context_p->ue_context.Srb2.Active = 1; + ue_context_p->ue_context.Srb2.Srb_info.Srb_id = Idx; + memcpy(&ue_context_p->ue_context.Srb2.Srb_info.Lchan_desc[0], + &DCCH_LCHAN_DESC, + LCHAN_DESC_SIZE); + memcpy(&ue_context_p->ue_context.Srb2.Srb_info.Lchan_desc[1], + &DCCH_LCHAN_DESC, + LCHAN_DESC_SIZE); + + rrc_eNB_generate_RRCConnectionReestablishment(ctxt_pP, ue_context_p, CC_id); + LOG_I(RRC, PROTOCOL_RRC_CTXT_UE_FMT"CALLING RLC CONFIG SRB1 (rbid %d)\n", + PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), + Idx); + + MSC_LOG_TX_MESSAGE(MSC_RRC_ENB, + MSC_PDCP_ENB, + NULL, + 0, + MSC_AS_TIME_FMT" CONFIG_REQ UE %x SRB", + MSC_AS_TIME_ARGS(ctxt_pP), + ue_context_p->ue_context.rnti); + + rrc_pdcp_config_asn1_req(ctxt_pP, + ue_context_p->ue_context.SRB_configList, + (DRB_ToAddModList_t *) NULL, + (DRB_ToReleaseList_t*) NULL, + 0xff, + NULL, + NULL, + NULL +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + , (PMCH_InfoList_r9_t *) NULL +#endif + ,NULL); + + rrc_rlc_config_asn1_req(ctxt_pP, + ue_context_p->ue_context.SRB_configList, + (DRB_ToAddModList_t*) NULL, + (DRB_ToReleaseList_t*) NULL +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + , (PMCH_InfoList_r9_t *) NULL, + 0,0 # endif ); #endif //NO_RRM @@ -5671,76 +5848,72 @@ rrc_eNB_decode_ccch( RC.rrc[ctxt_pP->module_id], ctxt_pP->rnti); - if (ue_context_p != NULL) { - // erase content - rrc_eNB_free_mem_UE_context(ctxt_pP, ue_context_p); - MSC_LOG_RX_DISCARDED_MESSAGE( - MSC_RRC_ENB, - MSC_RRC_UE, - Srb_info->Rx_buffer.Payload, - dec_rval.consumed, - MSC_AS_TIME_FMT" RRCConnectionRequest UE %x size %u (UE already in context)", - MSC_AS_TIME_ARGS(ctxt_pP), - ue_context_p->ue_context.rnti, - dec_rval.consumed); - } else { - rrcConnectionRequest = &ul_ccch_msg->message.choice.c1.choice.rrcConnectionRequest.criticalExtensions.choice.rrcConnectionRequest_r8; + + MSC_LOG_RX_DISCARDED_MESSAGE( + MSC_RRC_ENB, + MSC_RRC_UE, + Srb_info->Rx_buffer.Payload, + dec_rval.consumed, + MSC_AS_TIME_FMT" RRCConnectionRequest UE %x size %u (UE already in context)", + MSC_AS_TIME_ARGS(ctxt_pP), + ue_context_p->ue_context.rnti, + dec_rval.consumed); + } else { + rrcConnectionRequest = &ul_ccch_msg->message.choice.c1.choice.rrcConnectionRequest.criticalExtensions.choice.rrcConnectionRequest_r8; + { + if (InitialUE_Identity_PR_randomValue == rrcConnectionRequest->ue_Identity.present) { + if(rrcConnectionRequest->ue_Identity.choice.randomValue.size != 5) { - 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); - 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); - ue_context_p->ue_context.ul_failure_timer = 20000; - } - - ue_context_p = rrc_eNB_get_next_free_ue_context(ctxt_pP, random_value); - } else if (InitialUE_Identity_PR_s_TMSI == rrcConnectionRequest->ue_Identity.present) { - /* Save s-TMSI */ - S_TMSI_t s_TMSI = rrcConnectionRequest->ue_Identity.choice.s_TMSI; - mme_code_t mme_code = BIT_STRING_to_uint8(&s_TMSI.mmec); - m_tmsi_t m_tmsi = BIT_STRING_to_uint32(&s_TMSI.m_TMSI); - random_value = (((uint64_t)mme_code) << 32) | m_tmsi; - - if ((ue_context_p = rrc_eNB_ue_context_stmsi_exist(ctxt_pP, mme_code, m_tmsi))) { - LOG_I(RRC," S-TMSI exists, ue_context_p %p, old rnti %x => %x\n",ue_context_p,ue_context_p->ue_context.rnti,ctxt_pP->rnti); - rrc_mac_remove_ue(ctxt_pP->module_id, ue_context_p->ue_context.rnti); - stmsi_received=1; - /* replace rnti in the context */ - /* for that, remove the context from the RB tree */ - RB_REMOVE(rrc_ue_tree_s, &RC.rrc[ctxt_pP->module_id]->rrc_ue_head, ue_context_p); - /* and insert again, after changing rnti everywhere it has to be changed */ - ue_context_p->ue_id_rnti = ctxt_pP->rnti; - ue_context_p->ue_context.rnti = ctxt_pP->rnti; - RB_INSERT(rrc_ue_tree_s, &RC.rrc[ctxt_pP->module_id]->rrc_ue_head, 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; + 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 ((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); + ue_context_p->ue_context.ul_failure_timer = 20000; + } + ue_context_p = rrc_eNB_get_next_free_ue_context(ctxt_pP, random_value); + } else if (InitialUE_Identity_PR_s_TMSI == rrcConnectionRequest->ue_Identity.present) { + /* Save s-TMSI */ + S_TMSI_t s_TMSI = rrcConnectionRequest->ue_Identity.choice.s_TMSI; + mme_code_t mme_code = BIT_STRING_to_uint8(&s_TMSI.mmec); + m_tmsi_t m_tmsi = BIT_STRING_to_uint32(&s_TMSI.m_TMSI); + random_value = (((uint64_t)mme_code) << 32) | m_tmsi; + if ((ue_context_p = rrc_eNB_ue_context_stmsi_exist(ctxt_pP, mme_code, m_tmsi))) { + LOG_I(RRC," S-TMSI exists, ue_context_p %p, old rnti %x => %x\n",ue_context_p,ue_context_p->ue_context.rnti,ctxt_pP->rnti); + rrc_mac_remove_ue(ctxt_pP->module_id, ue_context_p->ue_context.rnti); + stmsi_received=1; + /* replace rnti in the context */ + /* for that, remove the context from the RB tree */ + RB_REMOVE(rrc_ue_tree_s, &RC.rrc[ctxt_pP->module_id]->rrc_ue_head, ue_context_p); + /* and insert again, after changing rnti everywhere it has to be changed */ + ue_context_p->ue_id_rnti = ctxt_pP->rnti; + ue_context_p->ue_context.rnti = ctxt_pP->rnti; + RB_INSERT(rrc_ue_tree_s, &RC.rrc[ctxt_pP->module_id]->rrc_ue_head, 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; + 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); + ue_context_p = rrc_eNB_get_next_free_ue_context(ctxt_pP,random_value); + if (ue_context_p == NULL) + LOG_E(RRC, "%s:%d:%s: rrc_eNB_get_next_free_ue_context returned NULL\n", __FILE__, __LINE__, __FUNCTION__); + if (ue_context_p != NULL) { + ue_context_p->ue_context.Initialue_identity_s_TMSI.presence = TRUE; + ue_context_p->ue_context.Initialue_identity_s_TMSI.mme_code = mme_code; + ue_context_p->ue_context.Initialue_identity_s_TMSI.m_tmsi = m_tmsi; } 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); @@ -5832,59 +6005,66 @@ rrc_eNB_decode_ccch( #ifndef NO_RRM send_msg(&S_rrc, msg_rrc_MR_attach_ind(ctxt_pP->module_id, Mac_id)); #else - ue_context_p->ue_context.primaryCC_id = CC_id; - //LG COMMENT Idx = (ue_mod_idP * NB_RB_MAX) + DCCH; - Idx = DCCH; - // SRB1 - ue_context_p->ue_context.Srb1.Active = 1; - ue_context_p->ue_context.Srb1.Srb_info.Srb_id = Idx; - memcpy(&ue_context_p->ue_context.Srb1.Srb_info.Lchan_desc[0], - &DCCH_LCHAN_DESC, - LCHAN_DESC_SIZE); - memcpy(&ue_context_p->ue_context.Srb1.Srb_info.Lchan_desc[1], - &DCCH_LCHAN_DESC, - LCHAN_DESC_SIZE); - // SRB2: set it to go through SRB1 with id 1 (DCCH) - ue_context_p->ue_context.Srb2.Active = 1; - ue_context_p->ue_context.Srb2.Srb_info.Srb_id = Idx; - memcpy(&ue_context_p->ue_context.Srb2.Srb_info.Lchan_desc[0], - &DCCH_LCHAN_DESC, - LCHAN_DESC_SIZE); - memcpy(&ue_context_p->ue_context.Srb2.Srb_info.Lchan_desc[1], - &DCCH_LCHAN_DESC, - LCHAN_DESC_SIZE); - rrc_eNB_generate_RRCConnectionSetup(ctxt_pP, ue_context_p, CC_id); - LOG_I(RRC, PROTOCOL_RRC_CTXT_UE_FMT"CALLING RLC CONFIG SRB1 (rbid %d)\n", - PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), - Idx); - MSC_LOG_TX_MESSAGE( - MSC_RRC_ENB, - MSC_PDCP_ENB, - NULL, - 0, - MSC_AS_TIME_FMT" CONFIG_REQ UE %x SRB", - MSC_AS_TIME_ARGS(ctxt_pP), - ue_context_p->ue_context.rnti); - rrc_pdcp_config_asn1_req(ctxt_pP, - ue_context_p->ue_context.SRB_configList, - (DRB_ToAddModList_t *) NULL, - (DRB_ToReleaseList_t *) NULL, - 0xff, - NULL, - NULL, - NULL -# if defined(Rel10) || defined(Rel14) - , (PMCH_InfoList_r9_t *) NULL -# endif - ,NULL); - rrc_rlc_config_asn1_req(ctxt_pP, - ue_context_p->ue_context.SRB_configList, - (DRB_ToAddModList_t *) NULL, - (DRB_ToReleaseList_t *) NULL -# if defined(Rel10) || defined(Rel14) - , (PMCH_InfoList_r9_t *) NULL -# endif - ); + ue_context_p->ue_context.primaryCC_id = CC_id; + + //LG COMMENT Idx = (ue_mod_idP * NB_RB_MAX) + DCCH; + Idx = DCCH; + // SRB1 + ue_context_p->ue_context.Srb1.Active = 1; + ue_context_p->ue_context.Srb1.Srb_info.Srb_id = Idx; + memcpy(&ue_context_p->ue_context.Srb1.Srb_info.Lchan_desc[0], + &DCCH_LCHAN_DESC, + LCHAN_DESC_SIZE); + memcpy(&ue_context_p->ue_context.Srb1.Srb_info.Lchan_desc[1], + &DCCH_LCHAN_DESC, + LCHAN_DESC_SIZE); + + // SRB2: set it to go through SRB1 with id 1 (DCCH) + ue_context_p->ue_context.Srb2.Active = 1; + ue_context_p->ue_context.Srb2.Srb_info.Srb_id = Idx; + memcpy(&ue_context_p->ue_context.Srb2.Srb_info.Lchan_desc[0], + &DCCH_LCHAN_DESC, + LCHAN_DESC_SIZE); + memcpy(&ue_context_p->ue_context.Srb2.Srb_info.Lchan_desc[1], + &DCCH_LCHAN_DESC, + LCHAN_DESC_SIZE); + + rrc_eNB_generate_RRCConnectionSetup(ctxt_pP, ue_context_p, CC_id); + LOG_I(RRC, PROTOCOL_RRC_CTXT_UE_FMT"CALLING RLC CONFIG SRB1 (rbid %d)\n", + PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), + Idx); + + MSC_LOG_TX_MESSAGE( + MSC_RRC_ENB, + MSC_PDCP_ENB, + NULL, + 0, + MSC_AS_TIME_FMT" CONFIG_REQ UE %x SRB", + MSC_AS_TIME_ARGS(ctxt_pP), + ue_context_p->ue_context.rnti); + + rrc_pdcp_config_asn1_req(ctxt_pP, + ue_context_p->ue_context.SRB_configList, + (DRB_ToAddModList_t *) NULL, + (DRB_ToReleaseList_t*) NULL, + 0xff, + NULL, + NULL, + NULL +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + , (PMCH_InfoList_r9_t *) NULL +#endif + ,NULL); + + rrc_rlc_config_asn1_req(ctxt_pP, + ue_context_p->ue_context.SRB_configList, + (DRB_ToAddModList_t*) NULL, + (DRB_ToReleaseList_t*) NULL +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + , (PMCH_InfoList_r9_t *) NULL + , 0, 0 +#endif + ); #endif //NO_RRM break; @@ -6008,21 +6188,31 @@ rrc_eNB_decode_dcch( case UL_DCCH_MessageType__c1_PR_csfbParametersRequestCDMA2000: break; - case UL_DCCH_MessageType__c1_PR_measurementReport: - LOG_D(RRC, - PROTOCOL_RRC_CTXT_UE_FMT" RLC RB %02d --- RLC_DATA_IND " - "%d bytes (measurementReport) ---> RRC_eNB\n", - PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), - DCCH, - sdu_sizeP); - rrc_eNB_process_MeasurementReport( - ctxt_pP, - ue_context_p, - &ul_dcch_msg->message.choice.c1.choice.measurementReport. - criticalExtensions.choice.c1.choice.measurementReport_r8.measResults); + 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", + PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), + DCCH, + sdu_sizeP); + rrc_eNB_process_MeasurementReport( + ctxt_pP, + ue_context_p, + &ul_dcch_msg->message.choice.c1.choice.measurementReport. + criticalExtensions.choice.c1.choice.measurementReport_r8.measResults); + break; - case UL_DCCH_MessageType__c1_PR_rrcConnectionReconfigurationComplete: + 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"); @@ -6078,6 +6268,79 @@ rrc_eNB_decode_dcch( } } + LOG_F(RRC,"\n"); +#endif + MSC_LOG_RX_MESSAGE( + MSC_RRC_ENB, + MSC_RRC_UE, + Rx_sdu, + sdu_sizeP, + MSC_AS_TIME_FMT" RRCConnectionReconfigurationComplete UE %x size %u", + MSC_AS_TIME_ARGS(ctxt_pP), + ue_context_p->ue_context.rnti, + sdu_sizeP); + + LOG_D(RRC, + PROTOCOL_RRC_CTXT_UE_FMT" RLC RB %02d --- RLC_DATA_IND %d bytes " + "(RRCConnectionReconfigurationComplete) ---> RRC_eNB]\n", + PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), + DCCH, + sdu_sizeP); + + if (ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.criticalExtensions. + 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); + //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); + } + 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, + ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier); + + //WARNING:Inform the controller about the UE activation. Should be moved to RRC agent in the future + if (rrc_agent_registered[ctxt_pP->module_id]) { + agent_rrc_xface[ctxt_pP->eNB_index]->flexran_agent_notify_ue_state_change(ctxt_pP->module_id, + ue_context_p->ue_id_rnti, + PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_UPDATED); + } + } #if defined(ENABLE_ITTI) # if defined(ENABLE_USE_MME) @@ -6121,9 +6384,13 @@ rrc_eNB_decode_dcch( xid); } else { rrc_eNB_send_S1AP_E_RAB_SETUP_RESP(ctxt_pP, - ue_context_p, - ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier); - } + ue_context_p, + ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier); + } + }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); } else { if(ue_context_p->ue_context.reestablishment_cause == ReestablishmentCause_spare1) { rrc_eNB_send_S1AP_INITIAL_CONTEXT_SETUP_RESP(ctxt_pP, @@ -6140,8 +6407,16 @@ rrc_eNB_decode_dcch( } } } - } - + }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 ) { @@ -6163,44 +6438,56 @@ rrc_eNB_decode_dcch( LOG_F(RRC,"%02x ", ((uint8_t *)Rx_sdu)[i]); } - LOG_F(RRC,"\n"); + LOG_F(RRC,"\n"); #endif - MSC_LOG_RX_MESSAGE( - MSC_RRC_ENB, - MSC_RRC_UE, - Rx_sdu, - sdu_sizeP, - MSC_AS_TIME_FMT" rrcConnectionReestablishmentComplete UE %x size %u", - MSC_AS_TIME_ARGS(ctxt_pP), - ue_context_p->ue_context.rnti, - sdu_sizeP); - LOG_I(RRC, - PROTOCOL_RRC_CTXT_UE_FMT" RLC RB %02d --- RLC_DATA_IND %d bytes " - "(rrcConnectionReestablishmentComplete) ---> RRC_eNB\n", - PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), - 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 < NUMBER_OF_UE_MAX; i++) { - if (reestablish_rnti_map[i][0] == ctxt_pP->rnti) { - reestablish_rnti = reestablish_rnti_map[i][1]; - ue_context_p = rrc_eNB_get_ue_context( - RC.rrc[ctxt_pP->module_id], - reestablish_rnti); - // clear currentC-RNTI from map - reestablish_rnti_map[i][0] = 0; - reestablish_rnti_map[i][1] = 0; - break; - } + MSC_LOG_RX_MESSAGE( + MSC_RRC_ENB, + MSC_RRC_UE, + Rx_sdu, + sdu_sizeP, + MSC_AS_TIME_FMT" rrcConnectionReestablishmentComplete UE %x size %u", + MSC_AS_TIME_ARGS(ctxt_pP), + ue_context_p->ue_context.rnti, + sdu_sizeP); + + LOG_I(RRC, + PROTOCOL_RRC_CTXT_UE_FMT" RLC RB %02d --- RLC_DATA_IND %d bytes " + "(rrcConnectionReestablishmentComplete) ---> RRC_eNB\n", + PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), + DCCH, + sdu_sizeP); + { + rnti_t reestablish_rnti = 0; + // select C-RNTI from map + for (i = 0; i < MAX_MOBILES_PER_ENB; i++) { + if (reestablish_rnti_map[i][0] == ctxt_pP->rnti) { + reestablish_rnti = reestablish_rnti_map[i][1]; + ue_context_p = rrc_eNB_get_ue_context( + RC.rrc[ctxt_pP->module_id], + reestablish_rnti); + // clear currentC-RNTI from map + reestablish_rnti_map[i][0] = 0; + reestablish_rnti_map[i][1] = 0; + break; } - LOG_D(RRC, "reestablish_rnti_map[%d] [0] %x, [1] %x\n", - i, reestablish_rnti_map[i][0], reestablish_rnti_map[i][1]); + if (!ue_context_p) { + LOG_E(RRC, + PROTOCOL_RRC_CTXT_UE_FMT" RRCConnectionReestablishmentComplete without UE context, falt\n", + 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 (!ue_context_p) { LOG_E(RRC, @@ -6230,7 +6517,12 @@ rrc_eNB_decode_dcch( } break; - case UL_DCCH_MessageType__c1_PR_rrcConnectionSetupComplete: + 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"); @@ -6278,12 +6570,14 @@ rrc_eNB_decode_dcch( } } - ue_context_p->ue_context.ue_release_timer=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; - - 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)); + } #ifdef RRC_MSG_PRINT LOG_F(RRC,"[MSG] RRC Security Mode Complete\n"); @@ -6352,15 +6646,21 @@ rrc_eNB_decode_dcch( #ifdef XER_PRINT xer_fprint(stdout, &asn_DEF_UL_DCCH_Message, (void *)ul_dcch_msg); #endif - // cancel the security mode in PDCP - // followup with the remaining procedure - //#warning "LG Removed rrc_eNB_generate_UECapabilityEnquiry after receiving securityModeFailure" - rrc_eNB_generate_UECapabilityEnquiry(ctxt_pP, ue_context_p); - break; + // cancel the security mode in PDCP - 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)); + // followup with the remaining procedure +//#warning "LG Removed rrc_eNB_generate_UECapabilityEnquiry after receiving securityModeFailure" + rrc_eNB_generate_UECapabilityEnquiry(ctxt_pP, ue_context_p); + break; + + 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"); @@ -6390,38 +6690,36 @@ rrc_eNB_decode_dcch( DCCH, sdu_sizeP); #ifdef XER_PRINT - xer_fprint(stdout, &asn_DEF_UL_DCCH_Message, (void *)ul_dcch_msg); + xer_fprint(stdout, &asn_DEF_UL_DCCH_Message, (void *)ul_dcch_msg); #endif - 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_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, - &asn_DEF_UE_EUTRA_Capability, - (void **)&ue_context_p->ue_context.UE_Capability, - ul_dcch_msg->message.choice.c1.choice.ueCapabilityInformation.criticalExtensions. - choice.c1.choice.ueCapabilityInformation_r8.ue_CapabilityRAT_ContainerList.list. - array[0]->ueCapabilityRAT_Container.buf, - ul_dcch_msg->message.choice.c1.choice.ueCapabilityInformation.criticalExtensions. - choice.c1.choice.ueCapabilityInformation_r8.ue_CapabilityRAT_ContainerList.list. - array[0]->ueCapabilityRAT_Container.size, 0, 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_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, + &asn_DEF_UE_EUTRA_Capability, + (void **)&ue_context_p->ue_context.UE_Capability, + ul_dcch_msg->message.choice.c1.choice.ueCapabilityInformation.criticalExtensions. + choice.c1.choice.ueCapabilityInformation_r8.ue_CapabilityRAT_ContainerList.list. + array[0]->ueCapabilityRAT_Container.buf, + ul_dcch_msg->message.choice.c1.choice.ueCapabilityInformation.criticalExtensions. + choice.c1.choice.ueCapabilityInformation_r8.ue_CapabilityRAT_ContainerList.list. + array[0]->ueCapabilityRAT_Container.size, 0, 0); #ifdef XER_PRINT xer_fprint(stdout, &asn_DEF_UE_EUTRA_Capability, ue_context_p->ue_context.UE_Capability); #endif - if ((dec_rval.code != RC_OK) && (dec_rval.consumed == 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_STRUCT_FREE(asn_DEF_UE_EUTRA_Capability, - ue_context_p->ue_context.UE_Capability); - ue_context_p->ue_context.UE_Capability = 0; - } + if ((dec_rval.code != RC_OK) && (dec_rval.consumed == 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_STRUCT_FREE(asn_DEF_UE_EUTRA_Capability, + ue_context_p->ue_context.UE_Capability); + ue_context_p->ue_context.UE_Capability = 0; + } #if defined(ENABLE_USE_MME) @@ -6447,10 +6745,14 @@ rrc_eNB_decode_dcch( RC.rrc[ctxt_pP->module_id]->HO_flag); break; - case UL_DCCH_MessageType__c1_PR_ulHandoverPreparationTransfer: - T(T_ENB_RRC_UL_HANDOVER_PREPARATION_TRANSFER, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame), - T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti)); - break; + 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; + } 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), @@ -6485,16 +6787,27 @@ rrc_eNB_decode_dcch( #endif break; - case UL_DCCH_MessageType__c1_PR_counterCheckResponse: - T(T_ENB_RRC_COUNTER_CHECK_RESPONSE, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame), - T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti)); - break; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) - case UL_DCCH_MessageType__c1_PR_ueInformationResponse_r9: - T(T_ENB_RRC_UE_INFORMATION_RESPONSE_R9, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame), - T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti)); - break; + case UL_DCCH_MessageType__c1_PR_ueInformationResponse_r9: + T(T_ENB_RRC_UE_INFORMATION_RESPONSE_R9, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame), + T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti)); + + break; + + case UL_DCCH_MessageType__c1_PR_proximityIndication_r9: + T(T_ENB_RRC_PROXIMITY_INDICATION_R9, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame), + T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti)); + + break; +#endif + +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + case UL_DCCH_MessageType__c1_PR_rnReconfigurationComplete_r10: + T(T_ENB_RRC_RECONFIGURATION_COMPLETE_R10, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame), + T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti)); + + break; case UL_DCCH_MessageType__c1_PR_proximityIndication_r9: T(T_ENB_RRC_PROXIMITY_INDICATION_R9, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame), @@ -6527,12 +6840,60 @@ rrc_eNB_decode_dcch( } return 0; + //TTN for D2D + } else if (ul_dcch_msg->message.present == UL_DCCH_MessageType_PR_messageClassExtension){ + LOG_I(RRC, "THINH [UL_DCCH_MessageType_PR_messageClassExtension]\n"); + + switch (ul_dcch_msg->message.choice.messageClassExtension.present) { + case UL_DCCH_MessageType__messageClassExtension_PR_NOTHING: /* No components present */ + break; + case UL_DCCH_MessageType__messageClassExtension_PR_c2: //SidelinkUEInformation + //case UL_DCCH_MessageType__messageClassExtension__c2_PR_sidelinkUEInformation_r12: //SidelinkUEInformation + LOG_I(RRC,"THINH [UL_DCCH_MessageType__messageClassExtension_PR_c2]\n"); + +#ifdef RRC_MSG_PRINT + LOG_F(RRC,"[MSG] SidelinkUEInformation\n"); + + for (i = 0; i < sdu_sizeP; i++) { + LOG_F(RRC,"%02x ", ((uint8_t*)Rx_sdu)[i]); + } + + LOG_F(RRC,"\n"); +#endif + + MSC_LOG_RX_MESSAGE( + MSC_RRC_ENB, + MSC_RRC_UE, + Rx_sdu, + sdu_sizeP, + MSC_AS_TIME_FMT" SidelinkUEInformation UE %x size %u", + MSC_AS_TIME_ARGS(ctxt_pP), + ue_context_p->ue_context.rnti, + sdu_sizeP); + + LOG_I(RRC, + PROTOCOL_RRC_CTXT_UE_FMT" RLC RB %02d --- RLC_DATA_IND %d bytes " + "(SidelinkUEInformation) ---> RRC_eNB\n", + PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), + DCCH, + sdu_sizeP); + + rrc_eNB_process_SidelinkUEInformation( + ctxt_pP, + ue_context_p, + &ul_dcch_msg->message.choice.messageClassExtension.choice.c2.choice.sidelinkUEInformation_r12); + break; + default: + break; + } + //end TTN } else { LOG_E(RRC, PROTOCOL_RRC_CTXT_UE_FMT" Unknown error %s:%u\n", PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), __FILE__, __LINE__); return -1; } + return 0; } #if defined(ENABLE_ITTI) @@ -6582,6 +6943,10 @@ rrc_enb_task( SRB_INFO *srb_info_p; 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"); @@ -6603,29 +6968,59 @@ rrc_enb_task( break; /* Messages from MAC */ - case RRC_MAC_CCCH_DATA_IND: - PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, - instance, - ENB_FLAG_YES, - RRC_MAC_CCCH_DATA_IND(msg_p).rnti, - msg_p->ittiMsgHeader.lte_time.frame, - msg_p->ittiMsgHeader.lte_time.slot); - LOG_I(RRC, PROTOCOL_RRC_CTXT_UE_FMT" Received %s\n", - PROTOCOL_RRC_CTXT_UE_ARGS(&ctxt), - msg_name_p); - CC_id = RRC_MAC_CCCH_DATA_IND(msg_p).CC_id; - srb_info_p = &RC.rrc[instance]->carrier[CC_id].Srb0; - 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); - memcpy(srb_info_p->Rx_buffer.Payload, - RRC_MAC_CCCH_DATA_IND(msg_p).sdu, - RRC_MAC_CCCH_DATA_IND(msg_p).sdu_size); - srb_info_p->Rx_buffer.payload_size = RRC_MAC_CCCH_DATA_IND(msg_p).sdu_size; - rrc_eNB_decode_ccch(&ctxt, srb_info_p, CC_id); - break; + + case RRC_MAC_CCCH_DATA_IND: + PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, + instance, + ENB_FLAG_YES, + RRC_MAC_CCCH_DATA_IND(msg_p).rnti, + msg_p->ittiMsgHeader.lte_time.frame, + msg_p->ittiMsgHeader.lte_time.slot); + LOG_I(RRC, PROTOCOL_RRC_CTXT_UE_FMT" Received %s\n", + PROTOCOL_RRC_CTXT_UE_ARGS(&ctxt), + msg_name_p); + + CC_id = RRC_MAC_CCCH_DATA_IND(msg_p).CC_id; + srb_info_p = &RC.rrc[instance]->carrier[CC_id].Srb0; + + 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); + 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); + srb_info_p->Rx_buffer.payload_size = RRC_MAC_CCCH_DATA_IND(msg_p).sdu_size; + + rrc_eNB_decode_ccch(&ctxt, srb_info_p, CC_id); + break; + + /* Messages from PDCP */ + case RRC_DCCH_DATA_IND: + PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, + instance, + ENB_FLAG_YES, + RRC_DCCH_DATA_IND(msg_p).rnti, + msg_p->ittiMsgHeader.lte_time.frame, + msg_p->ittiMsgHeader.lte_time.slot); + LOG_I(RRC, PROTOCOL_RRC_CTXT_UE_FMT" Received on DCCH %d %s\n", + PROTOCOL_RRC_CTXT_UE_ARGS(&ctxt), + RRC_DCCH_DATA_IND(msg_p).dcch_index, + msg_name_p); + rrc_eNB_decode_dcch(&ctxt, + RRC_DCCH_DATA_IND(msg_p).dcch_index, + RRC_DCCH_DATA_IND(msg_p).sdu_p, + RRC_DCCH_DATA_IND(msg_p).sdu_size); + + // 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); + if (result != EXIT_SUCCESS) { + LOG_I(RRC, "Failed to free memory (%d)!\n",result); + break; + } + break; /* Messages from PDCP */ case RRC_DCCH_DATA_IND: @@ -6680,15 +7075,16 @@ rrc_enb_task( rrc_eNB_process_S1AP_E_RAB_RELEASE_COMMAND(msg_p, msg_name_p, instance); break; - case S1AP_UE_CONTEXT_RELEASE_REQ: - rrc_eNB_process_S1AP_UE_CONTEXT_RELEASE_REQ(msg_p, msg_name_p, instance); - break; - - case S1AP_UE_CONTEXT_RELEASE_COMMAND: - rrc_eNB_process_S1AP_UE_CONTEXT_RELEASE_COMMAND(msg_p, msg_name_p, instance); - break; - - case GTPV1U_ENB_DELETE_TUNNEL_RESP: + case GTPV1U_ENB_DELETE_TUNNEL_RESP: + /* 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) { + 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; + } + break; /* 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", @@ -6714,7 +7110,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; } } @@ -6738,7 +7137,7 @@ openair_rrc_top_init_eNB(int eMBMS_active,uint8_t HO_active) RC.rrc[module_id]->HO_flag = (uint8_t)HO_active; } -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) LOG_I(RRC,"[eNB] eMBMS active state is %d \n", eMBMS_active); for (module_id=0; module_idcriticalExtensions.present == SidelinkUEInformation_r12__criticalExtensions_PR_c1){ + if (sidelinkUEInformation->criticalExtensions.choice.c1.present == SidelinkUEInformation_r12__criticalExtensions__c1_PR_sidelinkUEInformation_r12){ + // express its interest to receive SL communication + if (sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commRxInterestedFreq_r12 != NULL){ + + } + + // express its interest to transmit non-relay one-to-many SL communication + if ((sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commTxResourceReq_r12 != NULL) && (sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commTxResourceReq_r12->carrierFreq_r12 != NULL)){ + n_destinations = sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commTxResourceReq_r12->destinationInfoList_r12.list.count; + 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.commTxResourceReq_r12->destinationInfoList_r12.list.array[i]); + ASN_SEQUENCE_ADD(&destinationInfoList->list, sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commTxResourceReq_r12->destinationInfoList_r12.list.array[i]); + } + //generate RRC Reconfiguration + rrc_eNB_generate_RRCConnectionReconfiguration_Sidelink(ctxt_pP, ue_context_pP, destinationInfoList, 0); + return 0; + + } + + // express its interest to transmit non-relay one-to-one SL communication + if ((sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension != NULL) && (sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceReqUC_r13 != NULL)) { + if (sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceReqUC_r13->carrierFreq_r12 != NULL){ + n_destinations = sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceReqUC_r13->destinationInfoList_r12.list.count; + 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->commTxResourceReqUC_r13->destinationInfoList_r12.list.array[i]); + ASN_SEQUENCE_ADD(&destinationInfoList->list,sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceReqUC_r13->destinationInfoList_r12.list.array[i]); + } + //generate RRC Reconfiguration + rrc_eNB_generate_RRCConnectionReconfiguration_Sidelink(ctxt_pP, ue_context_pP, destinationInfoList, 0); + return 0; + } + } + + // express its interest to transmit relay related one-to-one SL communication + 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; + 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]); + ASN_SEQUENCE_ADD(&destinationInfoList->list, sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelayUC_r13->destinationInfoList_r12.list.array[i]); + } + //generate RRC Reconfiguration + rrc_eNB_generate_RRCConnectionReconfiguration_Sidelink(ctxt_pP, ue_context_pP, destinationInfoList, 0); + return 0; + } + } + + //express its interest to transmit relay related one-to-many SL communication + 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; + 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]); + ASN_SEQUENCE_ADD(&destinationInfoList->list,sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelay_r13->destinationInfoList_r12.list.array[i]); + } + //generate RRC Reconfiguration + rrc_eNB_generate_RRCConnectionReconfiguration_Sidelink(ctxt_pP, ue_context_pP, destinationInfoList, 0); + return 0; + } + } + + //For SL Discovery + //express its interest to receive SL discovery announcements + //express its interest to transmit non-PS related discovery announcements + if (sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.discTxResourceReq_r12 != NULL){ + n_discoveryMessages = *(sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.discTxResourceReq_r12); + //generate RRC Reconfiguration + rrc_eNB_generate_RRCConnectionReconfiguration_Sidelink(ctxt_pP, ue_context_pP, NULL, n_discoveryMessages); + return 0; + } + //express its interest to transmit PS related discovery announcements + if ((sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension != NULL) && (sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->discTxResourceReqPS_r13 !=NULL)) { + if (sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->discTxResourceReqPS_r13->discTxResourceReq_r13 > 0){ + n_discoveryMessages = sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->discTxResourceReqPS_r13->discTxResourceReq_r13; + //generate RRC Reconfiguration + rrc_eNB_generate_RRCConnectionReconfiguration_Sidelink(ctxt_pP, ue_context_pP, NULL, n_discoveryMessages); + return 0; + } + } + } + } + return 0; +} + +//----------------------------------------------------------------------------- +int +rrc_eNB_generate_RRCConnectionReconfiguration_Sidelink( + const protocol_ctxt_t* const ctxt_pP, + rrc_eNB_ue_context_t* const ue_context_pP, + SL_DestinationInfoList_r12_t *destinationInfoList, + int n_discoveryMessages +) +//----------------------------------------------------------------------------- +{ + + uint8_t buffer[RRC_BUF_SIZE]; + uint16_t size = -1; + memset(buffer, 0, RRC_BUF_SIZE); + + // allocate dedicated pools for UE -sl-CommConfig/sl-DiscConfig (sl-V2X-ConfigDedicated) + //populate dedicated resources for SL communication (sl-CommConfig) + if ((destinationInfoList != NULL) && (destinationInfoList->list.count > 0)) { + + LOG_I(RRC,"[eNB %d] Frame %d, Generate RRCConnectionReconfiguration_Sidelink (bytes %d, UE id %x), number of destinations %d\n", + ctxt_pP->module_id,ctxt_pP->frame, size, ue_context_pP->ue_context.rnti,destinationInfoList->list.count ); + //get dedicated resources from available pool and assign to the UE + SL_CommConfig_r12_t sl_CommConfig[destinationInfoList->list.count]; + //get a RP from the available RPs + sl_CommConfig[0] = rrc_eNB_get_sidelink_commTXPool(ctxt_pP, ue_context_pP, destinationInfoList); + + size = do_RRCConnectionReconfiguration(ctxt_pP, + buffer, + rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id), //Transaction_id + (SRB_ToAddModList_t*)NULL, + (DRB_ToAddModList_t*)NULL, + (DRB_ToReleaseList_t*)NULL, // DRB2_list, + (struct SPS_Config*)NULL, // *sps_Config, + NULL, NULL, NULL, NULL,NULL, + NULL, NULL, NULL, NULL, NULL, NULL, + (struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList*)NULL, + (SL_CommConfig_r12_t*)&sl_CommConfig, + (SL_DiscConfig_r12_t*)NULL + #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + , (SCellToAddMod_r10_t*)NULL + #endif + ); + // + } + //populate dedicated resources for SL discovery (sl-DiscConfig) + if (n_discoveryMessages > 0) { + SL_DiscConfig_r12_t sl_DiscConfig[n_discoveryMessages]; + //get a RP from the available RPs + sl_DiscConfig[0] = rrc_eNB_get_sidelink_discTXPool(ctxt_pP, ue_context_pP, n_discoveryMessages ); + size = do_RRCConnectionReconfiguration(ctxt_pP, + buffer, + rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id), //Transaction_id + (SRB_ToAddModList_t*)NULL, + (DRB_ToAddModList_t*)NULL, + (DRB_ToReleaseList_t*)NULL, // DRB2_list, + (struct SPS_Config*)NULL, // *sps_Config, + NULL, NULL, NULL, NULL,NULL, + NULL, NULL, NULL, NULL, NULL, NULL, + (struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList*)NULL, + (SL_CommConfig_r12_t*)NULL, + (SL_DiscConfig_r12_t*)&sl_DiscConfig + #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + , (SCellToAddMod_r10_t*)NULL + #endif + ); + } + + LOG_I(RRC,"[eNB %d] Frame %d, Logical Channel DL-DCCH, Generate RRCConnectionReconfiguration_Sidelink (bytes %d, UE id %x)\n", + ctxt_pP->module_id,ctxt_pP->frame, size, ue_context_pP->ue_context.rnti); + + rrc_data_req( + ctxt_pP, + DCCH, + rrc_eNB_mui++, + SDU_CONFIRM_NO, + size, + buffer, + PDCP_TRANSMISSION_MODE_CONTROL); + + // rrc_data_req(); + + return size; +} + +SL_CommConfig_r12_t rrc_eNB_get_sidelink_commTXPool( const protocol_ctxt_t* const ctxt_pP, rrc_eNB_ue_context_t* const ue_context_pP, SL_DestinationInfoList_r12_t *destinationInfoList ){ + // for the moment, use scheduled resource allocation + SL_CommConfig_r12_t *sl_CommConfig; + SL_CommResourcePool_r12_t *sc_CommTxConfig; + + sl_CommConfig = CALLOC(1, sizeof(struct SL_CommConfig_r12)); + sl_CommConfig->commTxResources_r12 = CALLOC(1, sizeof(*sl_CommConfig->commTxResources_r12)); + sl_CommConfig->commTxResources_r12->present = SL_CommConfig_r12__commTxResources_r12_PR_setup; + + sl_CommConfig->commTxResources_r12->choice.setup.present = SL_CommConfig_r12__commTxResources_r12__setup_PR_scheduled_r12; + sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.sl_RNTI_r12.size = 2; + sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.sl_RNTI_r12.buf = CALLOC(1,2); + sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.sl_RNTI_r12.buf[0] = 0x00; + sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.sl_RNTI_r12.buf[1] = 0x01;//ctxt_pP->rnti;//rnti + sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.sl_RNTI_r12.bits_unused = 0; + sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.mcs_r12 = CALLOC(1,sizeof(*sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.mcs_r12)); + //*sl_CommConfig_test->commTxResources_r12->choice.setup.choice.scheduled_r12.mcs_r12 = 12; //Msc + sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.mac_MainConfig_r12.retx_BSR_TimerSL = RetxBSR_Timer_r12_sf320; //MacConfig, for testing only + //sl_CommConfig_test->commTxResources_r12->choice.setup.choice.scheduled_r12.sc_CommTxConfig_r12; + + sc_CommTxConfig = & sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.sc_CommTxConfig_r12; + + sc_CommTxConfig->sc_CP_Len_r12 = SL_CP_Len_r12_normal; + sc_CommTxConfig->sc_Period_r12 = SL_PeriodComm_r12_sf40; + sc_CommTxConfig->data_CP_Len_r12 = SL_CP_Len_r12_normal; + //sc_TF_ResourceConfig_r12 + sc_CommTxConfig->sc_TF_ResourceConfig_r12.prb_Num_r12 = 20; + sc_CommTxConfig->sc_TF_ResourceConfig_r12.prb_Start_r12 = 5; + sc_CommTxConfig->sc_TF_ResourceConfig_r12.prb_End_r12 = 44; + sc_CommTxConfig->sc_TF_ResourceConfig_r12.offsetIndicator_r12.present = SL_OffsetIndicator_r12_PR_small_r12; + sc_CommTxConfig->sc_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = 0; + + sc_CommTxConfig->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present = SubframeBitmapSL_r12_PR_bs40_r12; + sc_CommTxConfig->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.size = 5; + sc_CommTxConfig->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf = CALLOC(1,5); + sc_CommTxConfig->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.bits_unused = 0; + //dataHoppingConfig_r12 + sc_CommTxConfig->dataHoppingConfig_r12.hoppingParameter_r12 = 0; + sc_CommTxConfig->dataHoppingConfig_r12.numSubbands_r12 = SL_HoppingConfigComm_r12__numSubbands_r12_ns1; + sc_CommTxConfig->dataHoppingConfig_r12.rb_Offset_r12 = 0; + //ue_SelectedResourceConfig_r12 + sc_CommTxConfig->ue_SelectedResourceConfig_r12 = CALLOC (1, sizeof (*sc_CommTxConfig->ue_SelectedResourceConfig_r12)); + sc_CommTxConfig->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.prb_Num_r12 = 20; + sc_CommTxConfig->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.prb_Start_r12 = 5; + sc_CommTxConfig->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.prb_End_r12 = 44; + sc_CommTxConfig->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.offsetIndicator_r12.present = SL_OffsetIndicator_r12_PR_small_r12; + sc_CommTxConfig->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = 0 ; + sc_CommTxConfig->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.present = SubframeBitmapSL_r12_PR_bs40_r12; + sc_CommTxConfig->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.size = 5; + sc_CommTxConfig->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf = CALLOC(1,5); + sc_CommTxConfig->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.bits_unused = 0; + sc_CommTxConfig->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[0] = 0xF0; + sc_CommTxConfig->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[1] = 0xFF; + sc_CommTxConfig->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[2] = 0xFF; + sc_CommTxConfig->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[3] = 0xFF; + sc_CommTxConfig->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[4] = 0xFF; + //rxParametersNCell_r12 + sc_CommTxConfig->rxParametersNCell_r12 = CALLOC (1, sizeof (*sc_CommTxConfig->rxParametersNCell_r12)); + sc_CommTxConfig->rxParametersNCell_r12->tdd_Config_r12 = CALLOC (1, sizeof (*sc_CommTxConfig->rxParametersNCell_r12->tdd_Config_r12 )); + sc_CommTxConfig->rxParametersNCell_r12->tdd_Config_r12->subframeAssignment = 0 ; + sc_CommTxConfig->rxParametersNCell_r12->tdd_Config_r12->specialSubframePatterns = 0; + sc_CommTxConfig->rxParametersNCell_r12->syncConfigIndex_r12 = 0; + //txParameters_r12 + sc_CommTxConfig->txParameters_r12 = CALLOC (1, sizeof (*sc_CommTxConfig->txParameters_r12)); + sc_CommTxConfig->txParameters_r12->sc_TxParameters_r12.alpha_r12 = Alpha_r12_al0; + sc_CommTxConfig->txParameters_r12->sc_TxParameters_r12.p0_r12 = 0; + sc_CommTxConfig->ext1 = NULL ; + + return *sl_CommConfig; +} + + +SL_DiscConfig_r12_t rrc_eNB_get_sidelink_discTXPool( const protocol_ctxt_t* const ctxt_pP, rrc_eNB_ue_context_t* const ue_context_pP, int n_discoveryMessages ){ + //TODO + SL_DiscConfig_r12_t sl_DiscConfig; + sl_DiscConfig.discTxResources_r12 = CALLOC(1,sizeof(*sl_DiscConfig.discTxResources_r12)); + sl_DiscConfig.discTxResources_r12->present = SL_DiscConfig_r12__discTxResources_r12_PR_setup; + sl_DiscConfig.discTxResources_r12->choice.setup.present = SL_DiscConfig_r12__discTxResources_r12__setup_PR_scheduled_r12; + //sl_DiscConfig.discTxResources_r12->choice.setup.choice.scheduled_r12.discHoppingConfig_r12; + //sl_DiscConfig.discTxResources_r12->choice.setup.choice.scheduled_r12.discTF_IndexList_r12; + //sl_DiscConfig.discTxResources_r12->choice.setup.choice.scheduled_r12.discTxConfig_r12; + return sl_DiscConfig; +} RRC_status_t rrc_rx_tx( protocol_ctxt_t *const ctxt_pP, @@ -6811,23 +7484,48 @@ 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) { - // 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; - break; + // 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", + ue_context_p->ue_context.rnti, + ue_context_p->ue_context.Initialue_identity_s_TMSI.m_tmsi, + ue_context_p->ue_context.ul_failure_timer); + } + else { + LOG_I(RRC,"UE rnti %x failure timer %d/8\n", + ue_context_p->ue_context.rnti, + ue_context_p->ue_context.ul_failure_timer); + } } - } - - if (ue_context_p->ue_context.ue_release_timer_s1>0) { - ue_context_p->ue_context.ue_release_timer_s1++; - - if (ue_context_p->ue_context.ue_release_timer_s1 >= - 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_to_be_removed = ue_context_p; - break; + 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 >= 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; + break; + } + } + if (ue_context_p->ue_context.ue_release_timer_s1>0) { + ue_context_p->ue_context.ue_release_timer_s1++; + if (ue_context_p->ue_context.ue_release_timer_s1 >= + 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; + } } } @@ -6836,33 +7534,110 @@ 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_to_be_removed = ue_context_p; - break; + 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++; + if (ue_context_p->ue_context.ue_reestablishment_timer >= + ue_context_p->ue_context.ue_reestablishment_timer_thres) { + LOG_I(RRC,"UE %d reestablishment_timer max\n",ue_context_p->ue_context.rnti); + ue_context_p->ue_context.ul_failure_timer = 20000; + ue_to_be_removed = ue_context_p; + ue_context_p->ue_context.ue_reestablishment_timer = 0; + 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\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_context_p->ue_context.ue_reestablishment_timer>0) { - ue_context_p->ue_context.ue_reestablishment_timer++; - - if (ue_context_p->ue_context.ue_reestablishment_timer >= - ue_context_p->ue_context.ue_reestablishment_timer_thres) { - LOG_I(RRC,"UE %d reestablishment_timer max\n",ue_context_p->ue_context.rnti); - ue_context_p->ue_context.ul_failure_timer = 20000; - ue_to_be_removed = ue_context_p; - ue_context_p->ue_context.ue_reestablishment_timer = 0; - break; + if (ue_to_be_removed) { + 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; } - } - - 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\n",ue_context_p->ue_context.rnti); - ue_to_be_removed = ue_context_p; - break; + rrc_eNB_free_UE(ctxt_pP->module_id,ue_to_be_removed); + 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 2063a6d38e..637ca64e0c 100644 --- a/openair2/RRC/LTE/rrc_eNB_S1AP.c +++ b/openair2/RRC/LTE/rrc_eNB_S1AP.c @@ -74,7 +74,7 @@ static const uint16_t S1AP_ENCRYPTION_EEA2_MASK = 0x4000; static const uint16_t S1AP_INTEGRITY_EIA1_MASK = 0x8000; static const uint16_t S1AP_INTEGRITY_EIA2_MASK = 0x4000; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 2, 0)) # define INTEGRITY_ALGORITHM_NONE SecurityAlgorithmConfig__integrityProtAlgorithm_eia0_v920 #else #ifdef EXMIMO_IOT @@ -1192,54 +1192,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); } } @@ -1641,40 +1593,72 @@ int rrc_eNB_send_S1AP_E_RAB_MODIFY_RESP(const protocol_ctxt_t *const ctxt_pP, 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; - e_rab_release_t e_rab_release_params[S1AP_MAX_E_RAB]; - uint8_t nb_e_rabs_torelease; - int erab; - int i; - uint8_t b_existed,is_existed; - uint8_t xid; - uint8_t e_rab_release_drb; - MessageDef *msg_delete_tunnels_p = NULL; - 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); +int rrc_eNB_process_S1AP_E_RAB_RELEASE_COMMAND(MessageDef *msg_p, const char *msg_name, instance_t instance){ + uint32_t eNB_ue_s1ap_id; + struct rrc_eNB_ue_context_s* ue_context_p = NULL; + protocol_ctxt_t ctxt; + e_rab_release_t e_rab_release_params[S1AP_MAX_E_RAB]; + uint8_t nb_e_rabs_torelease; + int erab; + int i; + uint8_t b_existed,is_existed; + uint8_t xid; + uint8_t e_rab_release_drb; + MessageDef * msg_delete_tunnels_p = NULL; + 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); - if(ue_context_p != NULL) { - PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_YES, ue_context_p->ue_context.rnti, 0, 0); - 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); + 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); + if(ue_context_p != NULL){ + PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_YES, ue_context_p->ue_context.rnti, 0, 0); - for(erab = 0; erab < nb_e_rabs_torelease; erab++) { - b_existed = 0; - is_existed = 0; + xid = rrc_eNB_get_next_transaction_identifier(ctxt.module_id); - for ( i = erab-1; i>= 0; i--) { - if (e_rab_release_params[erab].e_rab_id == e_rab_release_params[i].e_rab_id) { - is_existed = 1; - break; + LOG_D(RRC,"S1AP-E-RAB Release Command: MME_UE_S1AP_ID %d ENB_UE_S1AP_ID %d release_e_rabs %d \n", + 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; + for ( i = erab-1; i>= 0; i--){ + if (e_rab_release_params[erab].e_rab_id == e_rab_release_params[i].e_rab_id){ + is_existed = 1; + break; + } + } + if(is_existed == 1){ + //e_rab_id is existed + continue; + } + for ( i = 0; i < NB_RB_MAX; i++){ + if (e_rab_release_params[erab].e_rab_id == ue_context_p->ue_context.e_rab[i].param.e_rab_id){ + b_existed = 1; + break; + } + } + if(b_existed == 0) { + //no e_rab_id + ue_context_p->ue_context.e_rabs_release_failed[ue_context_p->ue_context.nb_release_of_e_rabs].e_rab_id = e_rab_release_params[erab].e_rab_id; + ue_context_p->ue_context.e_rabs_release_failed[ue_context_p->ue_context.nb_release_of_e_rabs].cause = S1AP_CAUSE_RADIO_NETWORK; + ue_context_p->ue_context.e_rabs_release_failed[ue_context_p->ue_context.nb_release_of_e_rabs].cause_value = 30; + ue_context_p->ue_context.nb_release_of_e_rabs++; + } else { + if(ue_context_p->ue_context.e_rab[i].status == E_RAB_STATUS_FAILED){ + ue_context_p->ue_context.e_rab[i].xid = xid; + continue; + } else if(ue_context_p->ue_context.e_rab[i].status == E_RAB_STATUS_ESTABLISHED){ + ue_context_p->ue_context.e_rab[i].status = E_RAB_STATUS_TORELEASE; + ue_context_p->ue_context.e_rab[i].xid = xid; + e_rab_release_drb++; + }else{ + //e_rab_id status NG + ue_context_p->ue_context.e_rabs_release_failed[ue_context_p->ue_context.nb_release_of_e_rabs].e_rab_id = e_rab_release_params[erab].e_rab_id; + ue_context_p->ue_context.e_rabs_release_failed[ue_context_p->ue_context.nb_release_of_e_rabs].cause = S1AP_CAUSE_RADIO_NETWORK; + ue_context_p->ue_context.e_rabs_release_failed[ue_context_p->ue_context.nb_release_of_e_rabs].cause_value = 0; + ue_context_p->ue_context.nb_release_of_e_rabs++; + } + } } } @@ -1793,114 +1777,127 @@ int rrc_eNB_process_PAGING_IND(MessageDef *msg_p, const char *msg_name, instance uint32_t T; /* DRX cycle */ for (uint16_t tai_size = 0; tai_size < S1AP_PAGING_IND(msg_p).tai_size; tai_size++) { + LOG_D(RRC,"[eNB %d] In S1AP_PAGING_IND: MCC %d, MNC %d, TAC %d\n", instance, S1AP_PAGING_IND(msg_p).plmn_identity[tai_size].mcc, + S1AP_PAGING_IND(msg_p).plmn_identity[tai_size].mnc, S1AP_PAGING_IND(msg_p).tac[tai_size]); + if (RC.rrc[instance]->configuration.mcc == S1AP_PAGING_IND(msg_p).plmn_identity[tai_size].mcc + && RC.rrc[instance]->configuration.mnc == S1AP_PAGING_IND(msg_p).plmn_identity[tai_size].mnc + && RC.rrc[instance]->configuration.tac == S1AP_PAGING_IND(msg_p).tac[tai_size]) { + for (uint8_t CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { + lte_frame_type_t frame_type = RC.eNB[instance][CC_id]->frame_parms.frame_type; + /* get nB from configuration */ + /* get default DRX cycle from configuration */ + Tc = (uint8_t)RC.rrc[instance]->configuration.pcch_defaultPagingCycle[CC_id]; + if (Tc < PCCH_Config__defaultPagingCycle_rf32 || Tc > PCCH_Config__defaultPagingCycle_rf256) { + continue; + } + Tue = (uint8_t)S1AP_PAGING_IND(msg_p).paging_drx; + /* set T = min(Tc,Tue) */ + T = Tc < Tue ? Ttab[Tc] : Ttab[Tue]; + /* set pcch_nB = PCCH-Config->nB */ + pcch_nB = (uint32_t)RC.rrc[instance]->configuration.pcch_nB[CC_id]; + switch (pcch_nB) { + case PCCH_Config__nB_fourT: + Ns = 4; + break; + case PCCH_Config__nB_twoT: + Ns = 2; + break; + default: + Ns = 1; + break; + } + /* set N = min(T,nB) */ + if (pcch_nB > PCCH_Config__nB_oneT) { + switch (pcch_nB) { + case PCCH_Config__nB_halfT: + N = T/2; + break; + case PCCH_Config__nB_quarterT: + N = T/4; + break; + case PCCH_Config__nB_oneEighthT: + N = T/8; + break; + case PCCH_Config__nB_oneSixteenthT: + N = T/16; + break; + case PCCH_Config__nB_oneThirtySecondT: + N = T/32; + break; + default: + /* pcch_nB error */ + LOG_E(RRC, "[eNB %d] In S1AP_PAGING_IND: pcch_nB error (pcch_nB %d) \n", + instance, pcch_nB); + return (-1); + } + } else { + N = T; + } - LOG_D(RRC,"[eNB %d] In S1AP_PAGING_IND: MCC %d, MNC %d, TAC %d\n", instance, S1AP_PAGING_IND(msg_p).plmn_identity[tai_size].mcc, - S1AP_PAGING_IND(msg_p).plmn_identity[tai_size].mnc, S1AP_PAGING_IND(msg_p).tac[tai_size]); - - if (RC.rrc[instance]->configuration.mcc == S1AP_PAGING_IND(msg_p).plmn_identity[tai_size].mcc - && RC.rrc[instance]->configuration.mnc == S1AP_PAGING_IND(msg_p).plmn_identity[tai_size].mnc - && RC.rrc[instance]->configuration.tac == S1AP_PAGING_IND(msg_p).tac[tai_size]) { - for (uint8_t CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { - lte_frame_type_t frame_type = RC.eNB[instance][CC_id]->frame_parms.frame_type; - /* get nB from configuration */ - /* get default DRX cycle from configuration */ - Tc = (uint8_t)RC.rrc[instance]->configuration.pcch_defaultPagingCycle[CC_id]; - - if (Tc < PCCH_Config__defaultPagingCycle_rf32 || Tc > PCCH_Config__defaultPagingCycle_rf256) { - continue; - } - - Tue = (uint8_t)S1AP_PAGING_IND(msg_p).paging_drx; - /* set T = min(Tc,Tue) */ - T = Tc < Tue ? Ttab[Tc] : Ttab[Tue]; - /* set pcch_nB = PCCH-Config->nB */ - pcch_nB = (uint32_t)RC.rrc[instance]->configuration.pcch_nB[CC_id]; - - switch (pcch_nB) { - case PCCH_Config__nB_fourT: - Ns = 4; - break; - - case PCCH_Config__nB_twoT: - Ns = 2; - break; - - default: - Ns = 1; - break; - } - - /* set N = min(T,nB) */ - if (pcch_nB > PCCH_Config__nB_oneT) { - switch (pcch_nB) { - case PCCH_Config__nB_halfT: - N = T/2; - break; - - case PCCH_Config__nB_quarterT: - N = T/4; - break; - - case PCCH_Config__nB_oneEighthT: - N = T/8; - break; - - case PCCH_Config__nB_oneSixteenthT: - N = T/16; - break; - - case PCCH_Config__nB_oneThirtySecondT: - N = T/32; - break; - - default: - /* pcch_nB error */ - LOG_E(RRC, "[eNB %d] In S1AP_PAGING_IND: pcch_nB error (pcch_nB %d) \n", - instance, pcch_nB); - return (-1); - } - } else { - N = T; - } - - /* insert data to UE_PF_PO or update data in UE_PF_PO */ - pthread_mutex_lock(&ue_pf_po_mutex); - uint8_t i = 0; - - for (i = 0; i < NUMBER_OF_UE_MAX; 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)) { - /* set T = min(Tc,Tue) */ - UE_PF_PO[CC_id][i].T = T; - /* set UE_ID */ - UE_PF_PO[CC_id][i].ue_index_value = (uint16_t)S1AP_PAGING_IND(msg_p).ue_index_value; - /* calculate PF and PO */ - /* set PF_min : SFN mod T = (T div N)*(UE_ID mod N) */ - UE_PF_PO[CC_id][i].PF_min = (T / N) * (UE_PF_PO[CC_id][i].ue_index_value % N); - /* set PO */ - /* i_s = floor(UE_ID/N) mod Ns */ - i_s = (uint8_t)((UE_PF_PO[CC_id][i].ue_index_value / N) % Ns); - - if (Ns == 1) { - UE_PF_PO[CC_id][i].PO = (frame_type==FDD) ? 9 : 0; - } else if (Ns==2) { - UE_PF_PO[CC_id][i].PO = (frame_type==FDD) ? (4+(5*i_s)) : (5*i_s); - } else if (Ns==4) { - UE_PF_PO[CC_id][i].PO = (frame_type==FDD) ? (4*(i_s&1)+(5*(i_s>>1))) : ((i_s&1)+(5*(i_s>>1))); - } - - if (UE_PF_PO[CC_id][i].enable_flag == TRUE) { - //paging exist UE log - LOG_D(RRC,"[eNB %d] CC_id %d In S1AP_PAGING_IND: Update exist UE %d, T %d, PF %d, PO %d\n", instance, CC_id, UE_PF_PO[CC_id][i].ue_index_value, T, UE_PF_PO[CC_id][i].PF_min, UE_PF_PO[CC_id][i].PO); - } else { - /* set enable_flag */ - UE_PF_PO[CC_id][i].enable_flag = TRUE; - //paging new UE log - LOG_D(RRC,"[eNB %d] CC_id %d In S1AP_PAGING_IND: Insert a new UE %d, T %d, PF %d, PO %d\n", instance, CC_id, UE_PF_PO[CC_id][i].ue_index_value, T, UE_PF_PO[CC_id][i].PF_min, UE_PF_PO[CC_id][i].PO); - } - - break; + /* insert data to UE_PF_PO or update data in UE_PF_PO */ + pthread_mutex_lock(&ue_pf_po_mutex); + 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)) { + /* set T = min(Tc,Tue) */ + UE_PF_PO[CC_id][i].T = T; + /* set UE_ID */ + UE_PF_PO[CC_id][i].ue_index_value = (uint16_t)S1AP_PAGING_IND(msg_p).ue_index_value; + /* calculate PF and PO */ + /* set PF_min : SFN mod T = (T div N)*(UE_ID mod N) */ + UE_PF_PO[CC_id][i].PF_min = (T / N) * (UE_PF_PO[CC_id][i].ue_index_value % N); + /* set PO */ + /* i_s = floor(UE_ID/N) mod Ns */ + i_s = (uint8_t)((UE_PF_PO[CC_id][i].ue_index_value / N) % Ns); + if (Ns == 1) { + UE_PF_PO[CC_id][i].PO = (frame_type==FDD) ? 9 : 0; + } else if (Ns==2) { + UE_PF_PO[CC_id][i].PO = (frame_type==FDD) ? (4+(5*i_s)) : (5*i_s); + } else if (Ns==4) { + UE_PF_PO[CC_id][i].PO = (frame_type==FDD) ? (4*(i_s&1)+(5*(i_s>>1))) : ((i_s&1)+(5*(i_s>>1))); + } + if (UE_PF_PO[CC_id][i].enable_flag == TRUE) { + //paging exist UE log + LOG_D(RRC,"[eNB %d] CC_id %d In S1AP_PAGING_IND: Update exist UE %d, T %d, PF %d, PO %d\n", instance, CC_id, UE_PF_PO[CC_id][i].ue_index_value, T, UE_PF_PO[CC_id][i].PF_min, UE_PF_PO[CC_id][i].PO); + } else { + /* set enable_flag */ + UE_PF_PO[CC_id][i].enable_flag = TRUE; + //paging new UE log + LOG_D(RRC,"[eNB %d] CC_id %d In S1AP_PAGING_IND: Insert a new UE %d, T %d, PF %d, PO %d\n", instance, CC_id, UE_PF_PO[CC_id][i].ue_index_value, T, UE_PF_PO[CC_id][i].PF_min, UE_PF_PO[CC_id][i].PO); + } + break; + } + } + pthread_mutex_unlock(&ue_pf_po_mutex); + uint32_t length; + uint8_t buffer[RRC_BUF_SIZE]; + uint8_t *message_buffer; + /* Transfer data to PDCP */ + MessageDef *message_p; + message_p = itti_alloc_new_message (TASK_RRC_ENB, RRC_PCCH_DATA_REQ); + /* Create message for PDCP (DLInformationTransfer_t) */ + length = do_Paging (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); + RRC_PCCH_DATA_REQ (message_p).sdu_size = length; + RRC_PCCH_DATA_REQ (message_p).sdu_p = message_buffer; + RRC_PCCH_DATA_REQ (message_p).mode = PDCP_TRANSMISSION_MODE_TRANSPARENT; /* not used */ + RRC_PCCH_DATA_REQ (message_p).rnti = P_RNTI; + RRC_PCCH_DATA_REQ (message_p).ue_index = i; + RRC_PCCH_DATA_REQ (message_p).CC_id = CC_id; + LOG_D(RRC, "[eNB %d] CC_id %d In S1AP_PAGING_IND: send encdoed buffer to PDCP buffer_size %d\n", instance, CC_id, length); + itti_send_msg_to_task (TASK_PDCP_ENB, instance, message_p); } } 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 7216ef6572..e16391aef1 100644 --- a/openair2/RRC/LTE/rrc_proto.h +++ b/openair2/RRC/LTE/rrc_proto.h @@ -25,7 +25,7 @@ * \date 2010 - 2014 * \email navid.nikaein@eurecom.fr * \version 1.0 - + */ /** \addtogroup _rrc * @{ @@ -106,6 +106,14 @@ rrc_ue_decode_dcch( const uint8_t eNB_indexP ); +#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, + const uint8_t* Sdu, + const uint8_t Sdu_len); +#endif + /** \brief Generate/Encodes RRCConnnectionRequest message at UE \param ctxt_pP Running context \param eNB_index Index of corresponding eNB/CH*/ @@ -181,6 +189,28 @@ void rrc_ue_process_radioResourceConfigDedicated( uint8_t eNB_index, RadioResourceConfigDedicated_t *radioResourceConfigDedicated); + +/** \brief Process a RadioResourceConfig and configure PHY/MAC for SL communication/discovery + \param Mod_idP + \param eNB_index Index of corresponding CH/eNB + \param sib18 Pointer to SIB18 from SI message + \param sib19 Pointer to SIB19 from SI message + \param sl_CommConfig Pointer to SL_CommConfig RRCConnectionConfiguration + \param sl_DiscConfig Pointer to SL_DiscConfig RRCConnectionConfiguration */ +void rrc_ue_process_sidelink_radioResourceConfig( + module_id_t Mod_idP, + uint8_t eNB_index, + SystemInformationBlockType18_r12_t *sib18, + SystemInformationBlockType19_r12_t *sib19, + SL_CommConfig_r12_t* sl_CommConfig, + SL_DiscConfig_r12_t* sl_DiscConfig); + +/** \brief Init control socket to listen to incoming packets from ProSe App + * + */ +void rrc_control_socket_init(void); + + // eNB/CH RRC Procedures /**\brief Function to get the next transaction identifier. @@ -327,6 +357,54 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover( const uint32_t nas_length ); +/**\brief Generate/decode the RRCConnectionReconfiguration for Sidelink at eNB + \param ctxt_pP Running context + \param ue_context_pP RRC UE context + \param destinationInfoList List of the destinations + \param n_discoveryMessages Number of discovery messages*/ +int +rrc_eNB_generate_RRCConnectionReconfiguration_Sidelink( + const protocol_ctxt_t* const ctxt_pP, + rrc_eNB_ue_context_t* const ue_context_pP, + SL_DestinationInfoList_r12_t *destinationInfoList, + int n_discoveryMessages +); + +/** \brief process the received SidelinkUEInformation message at eNB + \param ctxt_pP Running context + \param sidelinkUEInformation sidelinkUEInformation message from UE*/ +uint8_t +rrc_eNB_process_SidelinkUEInformation( + const protocol_ctxt_t* const ctxt_pP, + rrc_eNB_ue_context_t* ue_context_pP, + SidelinkUEInformation_r12_t* sidelinkUEInformation +); + +/** \brief Get a Resource Pool to transmit SL communication + \param ctxt_pP Running context + \param ue_context_pP UE context + \param destinationInfoList Pointer to the list of SL destinations*/ +SL_CommConfig_r12_t rrc_eNB_get_sidelink_commTXPool( + const protocol_ctxt_t* const ctxt_pP, + rrc_eNB_ue_context_t* const ue_context_pP, + SL_DestinationInfoList_r12_t *destinationInfoList +); + +/** \brief Get a Resource Pool for Discovery + \param ctxt_pP Running context + \param ue_context_pP UE context + \param n_discoveryMessages Number of discovery messages*/ +SL_DiscConfig_r12_t rrc_eNB_get_sidelink_discTXPool( + const protocol_ctxt_t* const ctxt_pP, + rrc_eNB_ue_context_t* const ue_context_pP, + int n_discoveryMessages +); + +/** \brief Process request from control socket + * \param arg + */ +void *rrc_control_socket_thread_fct(void *arg); + //L2_interface.c int8_t mac_rrc_data_req( @@ -380,8 +458,8 @@ mac_rrc_data_ind_ue( void mac_sync_ind( module_id_t Mod_instP, uint8_t status); -void mac_eNB_rrc_ul_failure(const module_id_t Mod_instP, - const int CC_id, +void mac_eNB_rrc_ul_failure(const module_id_t Mod_instP, + const int CC_id, const frame_t frameP, const sub_frame_t subframeP, const rnti_t rnti); @@ -550,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/LTE/rrc_vars.h b/openair2/RRC/LTE/rrc_vars.h index dcd608a76a..8a71858101 100644 --- a/openair2/RRC/LTE/rrc_vars.h +++ b/openair2/RRC/LTE/rrc_vars.h @@ -59,7 +59,7 @@ struct LogicalChannelConfig__ul_SpecificParameters LCSRB2 = {3, }; -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) struct LogicalChannelConfig__ext1 logicalChannelSR_Mask_r9_ext1 = { logicalChannelSR_Mask_r9: &logicalChannelSR_Mask_r9 }; @@ -67,14 +67,14 @@ struct LogicalChannelConfig__ext1 logicalChannelSR_Mask_r9_ext1 = { // These are the default SRB configurations from 36.331 (Chapter 9, p. 176-179 in v8.6) LogicalChannelConfig_t SRB1_logicalChannelConfig_defaultValue = {ul_SpecificParameters: &LCSRB1 -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) , ext1: &logicalChannelSR_Mask_r9_ext1 #endif }; LogicalChannelConfig_t SRB2_logicalChannelConfig_defaultValue = {ul_SpecificParameters: &LCSRB2 -#if defined(Rel10) || defined(Rel14) +#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) , ext1: &logicalChannelSR_Mask_r9_ext1 #endif 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/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 7ad43804af..affb9b0cb3 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.h b/openair2/X2AP/x2ap_common.h index 6843e2913f..1a4889f0f0 100644 --- a/openair2/X2AP/x2ap_common.h +++ b/openair2/X2AP/x2ap_common.h @@ -71,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; 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 7ba3d88a87..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" @@ -62,6 +62,13 @@ extern boolean_t pdcp_data_req( const confirm_t confirmP, const sdu_size_t sdu_buffer_sizeP, unsigned char *const sdu_buffer_pP, + const pdcp_transmission_mode_t modeP +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,const uint32_t * const sourceL2Id + ,const uint32_t * const destinationL2Id +#endif + ); + const pdcp_transmission_mode_t modeP); */ extern unsigned char NB_eNB_INST; @@ -355,7 +362,11 @@ NwGtpv1uRcT gtpv1u_eNB_process_stack_req( SDU_CONFIRM_NO, // confirm buffer_len, buffer, - PDCP_TRANSMISSION_MODE_DATA); + PDCP_TRANSMISSION_MODE_DATA +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,NULL, NULL +#endif + ); if ( result == FALSE ) { 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..97d0a6de87 --- /dev/null +++ b/openair3/S1AP/MESSAGES/ASN1/R15/s1ap-15.2.0.asn1 @@ -0,0 +1,7081 @@ +-- ************************************************************** +-- +-- 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 + +-- ************************************************************** +-- +-- 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/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.h b/openair3/S1AP/s1ap_common.h index 09e8de0a05..8a2faa311f 100644 --- a/openair3/S1AP/s1ap_common.h +++ b/openair3/S1AP/s1ap_common.h @@ -71,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) @@ -87,7 +87,6 @@ extern int asn1_xer_print; # define S1AP_DEBUG(x, args...) do { fprintf(stdout, "[S1AP][D]"x, ##args); } while(0) #endif - #define S1AP_FIND_PROTOCOLIE_BY_ID(IE_TYPE, ie, container, IE_ID, mandatory) \ do {\ IE_TYPE **ptr; \ diff --git a/openair3/S1AP/s1ap_eNB.c b/openair3/S1AP/s1ap_eNB.c index 548603bee7..0f3917dedd 100644 --- a/openair3/S1AP/s1ap_eNB.c +++ b/openair3/S1AP/s1ap_eNB.c @@ -99,6 +99,10 @@ 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; +<<<<<<< HEAD +======= + +>>>>>>> origin/develop DevAssert(instance_p != NULL); DevAssert(mme_ip_address != NULL); message_p = itti_alloc_new_message(TASK_S1AP, SCTP_NEW_ASSOCIATION_REQ); @@ -113,6 +117,7 @@ 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)); +<<<<<<< HEAD S1AP_INFO("[eNB %d] check the mme registration state\n",instance_p->instance); mme = s1ap_eNB_get_MME_from_instance(instance_p); @@ -125,6 +130,27 @@ static void s1ap_eNB_register_mme(s1ap_eNB_instance_t *instance_p, s1ap_mme_data_p->assoc_id = -1; s1ap_mme_data_p->s1ap_eNB_instance = instance_p; STAILQ_INIT(&s1ap_mme_data_p->served_gummei); +======= + + 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); + +>>>>>>> origin/develop /* Insert the new descriptor in list of known MME * but not yet associated. */ @@ -139,6 +165,10 @@ static void s1ap_eNB_register_mme(s1ap_eNB_instance_t *instance_p, instance_p->instance, mme->state, mme->cnx_id, instance_p->s1ap_mme_nb, instance_p->s1ap_mme_pending_nb); +<<<<<<< HEAD +======= + +>>>>>>> origin/develop /*s1ap_mme_data_p->cnx_id = mme->cnx_id; sctp_new_association_req_p->ulp_cnx_id = mme->cnx_id; @@ -389,7 +419,16 @@ static int s1ap_eNB_generate_s1_setup_request( uint8_t *buffer; uint32_t len; int ret = 0; +<<<<<<< HEAD s1ap_mme_data_p->state = S1AP_ENB_STATE_WAITING; +======= + + DevAssert(instance_p != NULL); + DevAssert(s1ap_mme_data_p != NULL); + + s1ap_mme_data_p->state = S1AP_ENB_STATE_WAITING; + +>>>>>>> origin/develop /* Prepare the S1AP message to encode */ memset(&pdu, 0, sizeof(pdu)); pdu.present = S1AP_S1AP_PDU_PR_initiatingMessage; @@ -397,6 +436,11 @@ static int s1ap_eNB_generate_s1_setup_request( pdu.choice.initiatingMessage.criticality = S1AP_Criticality_reject; pdu.choice.initiatingMessage.value.present = S1AP_InitiatingMessage__value_PR_S1SetupRequest; out = &pdu.choice.initiatingMessage.value.choice.S1SetupRequest; +<<<<<<< HEAD +======= + + /* mandatory */ +>>>>>>> origin/develop ie = (S1AP_S1SetupRequestIEs_t *)calloc(1, sizeof(S1AP_S1SetupRequestIEs_t)); ie->id = S1AP_ProtocolIE_ID_id_Global_ENB_ID; ie->criticality = S1AP_Criticality_reject; @@ -423,10 +467,15 @@ static int s1ap_eNB_generate_s1_setup_request( ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); } +<<<<<<< HEAD +======= + /* mandatory */ +>>>>>>> origin/develop 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; +<<<<<<< HEAD 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)); @@ -434,6 +483,21 @@ static int s1ap_eNB_generate_s1_setup_request( ASN_SEQUENCE_ADD(&ta->broadcastPLMNs.list, plmn); ASN_SEQUENCE_ADD(&ie->value.choice.SupportedTAs.list, ta); ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); +======= + { + 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 */ +>>>>>>> origin/develop ie = (S1AP_S1SetupRequestIEs_t *)calloc(1, sizeof(S1AP_S1SetupRequestIEs_t)); ie->id = S1AP_ProtocolIE_ID_id_DefaultPagingDRX; ie->criticality = S1AP_Criticality_ignore; @@ -452,9 +516,16 @@ static int s1ap_eNB_generate_s1_setup_request( } /* optional */ +<<<<<<< HEAD if (0) { ie = (S1AP_S1SetupRequestIEs_t *)calloc(1, sizeof(S1AP_S1SetupRequestIEs_t)); ie->id = S1AP_ProtocolIE_ID_id_UE_RetentionInformation ; +======= +#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; +>>>>>>> origin/develop ie->criticality = S1AP_Criticality_ignore; ie->value.present = S1AP_S1SetupRequestIEs__value_PR_UE_RetentionInformation; // ie->value.choice.UE_RetentionInformation = ; @@ -470,6 +541,7 @@ static int s1ap_eNB_generate_s1_setup_request( // 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"); diff --git a/openair3/S1AP/s1ap_eNB_context_management_procedures.c b/openair3/S1AP/s1ap_eNB_context_management_procedures.c index f10ccf58dd..f9f774b638 100644 --- a/openair3/S1AP/s1ap_eNB_context_management_procedures.c +++ b/openair3/S1AP/s1ap_eNB_context_management_procedures.c @@ -60,6 +60,7 @@ int s1ap_ue_context_release_complete(instance_t instance, S1AP_UEContextReleaseComplete_IEs_t *ie; uint8_t *buffer; uint32_t length; + /* Retrieve the S1AP eNB instance associated with Mod_id */ s1ap_eNB_instance_p = s1ap_eNB_get_instance(instance); DevAssert(ue_release_complete_p != NULL); @@ -85,12 +86,16 @@ int s1ap_ue_context_release_complete(instance_t instance, pdu.choice.successfulOutcome.criticality = S1AP_Criticality_reject; pdu.choice.successfulOutcome.value.present = S1AP_SuccessfulOutcome__value_PR_UEContextReleaseComplete; out = &pdu.choice.successfulOutcome.value.choice.UEContextReleaseComplete; + + /* 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); + + /* 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; @@ -108,7 +113,8 @@ int s1ap_ue_context_release_complete(instance_t instance, ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); } - /* release 12 */ + /* 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; @@ -118,7 +124,8 @@ int s1ap_ue_context_release_complete(instance_t instance, ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); } - /* release 13 */ + /* 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; @@ -133,6 +140,8 @@ int s1ap_ue_context_release_complete(instance_t instance, // 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... */ @@ -147,14 +156,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; @@ -207,18 +218,23 @@ int s1ap_ue_context_release_req(instance_t instance, pdu.choice.initiatingMessage.criticality = S1AP_Criticality_ignore; pdu.choice.initiatingMessage.value.present = S1AP_InitiatingMessage__value_PR_UEContextReleaseRequest; out = &pdu.choice.initiatingMessage.value.choice.UEContextReleaseRequest; + /* 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); + + /* 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); + + /* 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; @@ -259,6 +275,7 @@ int s1ap_ue_context_release_req(instance_t instance, 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; @@ -267,6 +284,7 @@ int s1ap_ue_context_release_req(instance_t instance, 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... */ @@ -281,8 +299,9 @@ 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, ue_context_p->mme_ref->assoc_id, buffer, diff --git a/openair3/S1AP/s1ap_eNB_decoder.c b/openair3/S1AP/s1ap_eNB_decoder.c index d3a2fad8f5..9a1c1b117b 100644 --- a/openair3/S1AP/s1ap_eNB_decoder.c +++ b/openair3/S1AP/s1ap_eNB_decoder.c @@ -123,7 +123,19 @@ static int s1ap_eNB_decode_initiating_message(S1AP_S1AP_PDU_t *pdu) 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 nitiating message\n"); + S1AP_INFO("TODO E_RABRelease initiating message\n"); + 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; default: @@ -195,11 +207,13 @@ int s1ap_eNB_decode_pdu(S1AP_S1AP_PDU_t *pdu, const uint8_t *const buffer, const uint32_t length) { asn_dec_rval_t dec_ret; + DevAssert(pdu != NULL); DevAssert(buffer != NULL); + dec_ret = aper_decode(NULL, &asn_DEF_S1AP_S1AP_PDU, - (void **)pdu, + (void **)&pdu, buffer, length, 0, diff --git a/openair3/S1AP/s1ap_eNB_handlers.c b/openair3/S1AP/s1ap_eNB_handlers.c index 66277b1226..2ca99bd6d5 100644 --- a/openair3/S1AP/s1ap_eNB_handlers.c +++ b/openair3/S1AP/s1ap_eNB_handlers.c @@ -66,14 +66,13 @@ int s1ap_eNB_handle_error_indication(uint32_t assoc_id, static int s1ap_eNB_handle_initial_context_request(uint32_t assoc_id, - uint32_t stream, - S1AP_S1AP_PDU_t *pdu); + uint32_t stream, + S1AP_S1AP_PDU_t *pdu); static int s1ap_eNB_handle_ue_context_release_command(uint32_t assoc_id, - uint32_t stream, - S1AP_S1AP_PDU_t *pdu); - + uint32_t stream, + S1AP_S1AP_PDU_t *pdu); static int s1ap_eNB_handle_e_rab_setup_request(uint32_t assoc_id, @@ -87,13 +86,13 @@ int s1ap_eNB_handle_paging(uint32_t assoc_id, static int s1ap_eNB_handle_e_rab_modify_request(uint32_t assoc_id, - uint32_t stream, - S1AP_S1AP_PDU_t *pdu); + uint32_t stream, + S1AP_S1AP_PDU_t *pdu); static int s1ap_eNB_handle_e_rab_release_command(uint32_t assoc_id, - uint32_t stream, - S1AP_S1AP_PDU_t *pdu); + uint32_t stream, + S1AP_S1AP_PDU_t *pdu); /* Handlers matrix. Only eNB related procedure present here */ s1ap_message_decoded_callback messages_callback[][3] = { @@ -140,22 +139,23 @@ s1ap_message_decoded_callback messages_callback[][3] = { { 0, 0, 0 }, /* eNBConfigurationTransfer */ { 0, 0, 0 }, /* MMEConfigurationTransfer */ { 0, 0, 0 }, /* CellTrafficTrace */ -#if defined(UPDATE_RELEASE_9) +#if (S1AP_VERSION >= MAKE_VERSION(9, 0, 0)) { 0, 0, 0 }, /* Kill */ { 0, 0, 0 }, /* DownlinkUEAssociatedLPPaTransport */ { 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,10 +202,13 @@ int s1ap_eNB_handle_message(uint32_t assoc_id, int32_t stream, const uint8_t *const data, const uint32_t data_length) { S1AP_S1AP_PDU_t pdu; - int ret = -1; + int ret; + DevAssert(data != NULL); memset(&pdu, 0, sizeof(pdu)); + memset(&pdu, 0, sizeof(pdu)); + if (s1ap_eNB_decode_pdu(&pdu, data, data_length) < 0) { S1AP_ERROR("Failed to decode PDU\n"); return -1; @@ -227,7 +230,7 @@ int s1ap_eNB_handle_message(uint32_t assoc_id, int32_t stream, 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, pdu.choice.initiatingMessage.procedureCode, - s1ap_direction2String[pdu.present - 1]); + s1ap_direction2String(pdu.present - 1)); ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1AP_S1AP_PDU, &pdu); return -1; } @@ -247,7 +250,9 @@ int s1ap_eNB_handle_s1_setup_failure(uint32_t assoc_id, S1AP_S1SetupFailure_t *container; S1AP_S1SetupFailureIEs_t *ie; s1ap_eNB_mme_data_t *mme_desc_p; + DevAssert(pdu != NULL); + container = &pdu->choice.unsuccessfulOutcome.value.choice.S1SetupFailure; /* S1 Setup Failure == Non UE-related procedure -> stream 0 */ @@ -263,7 +268,7 @@ int s1ap_eNB_handle_s1_setup_failure(uint32_t assoc_id, } S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_S1SetupFailureIEs_t, ie, container, - S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID, TRUE); + 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)) { @@ -286,7 +291,9 @@ int s1ap_eNB_handle_s1_setup_response(uint32_t assoc_id, S1AP_S1SetupResponseIEs_t *ie; s1ap_eNB_mme_data_t *mme_desc_p; int i; + DevAssert(pdu != NULL); + container = &pdu->choice.successfulOutcome.value.choice.S1SetupResponse; /* S1 Setup Response == Non UE-related procedure -> stream 0 */ @@ -303,7 +310,7 @@ int s1ap_eNB_handle_s1_setup_response(uint32_t assoc_id, } S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_S1SetupResponseIEs_t, ie, container, - S1AP_ProtocolIE_ID_id_ServedGUMMEIs, TRUE); + 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. */ @@ -356,14 +363,14 @@ int s1ap_eNB_handle_s1_setup_response(uint32_t assoc_id, STAILQ_INSERT_TAIL(&mme_desc_p->served_gummei, new_gummei_p, next); } - S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_S1SetupResponseIEs_t, ie, container, - S1AP_ProtocolIE_ID_id_RelativeMMECapacity, TRUE); /* Set the capacity of this MME */ - mme_desc_p->relative_mme_capacity = ie->value.choice.RelativeMMECapacity; S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_S1SetupResponseIEs_t, ie, container, - S1AP_ProtocolIE_ID_id_MMEname, FALSE); + S1AP_ProtocolIE_ID_id_RelativeMMECapacity, true); + mme_desc_p->relative_mme_capacity = ie->value.choice.RelativeMMECapacity; /* Optionaly set the mme name */ + 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, @@ -378,52 +385,7 @@ int s1ap_eNB_handle_s1_setup_response(uint32_t assoc_id, mme_desc_p->state = S1AP_ENB_STATE_CONNECTED; 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; } @@ -437,6 +399,7 @@ int s1ap_eNB_handle_error_indication(uint32_t assoc_id, S1AP_ErrorIndicationIEs_t *ie; s1ap_eNB_mme_data_t *mme_desc_p; DevAssert(pdu != NULL); + container = &pdu->choice.initiatingMessage.value.choice.ErrorIndication; /* S1 Setup Failure == Non UE-related procedure -> stream 0 */ @@ -452,7 +415,7 @@ int s1ap_eNB_handle_error_indication(uint32_t assoc_id, } S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_ErrorIndicationIEs_t, ie, container, - S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID, FALSE); + S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID, false); /* optional */ if (!ie) { @@ -460,7 +423,7 @@ int s1ap_eNB_handle_error_indication(uint32_t assoc_id, } S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_ErrorIndicationIEs_t, ie, container, - S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID, FALSE); + S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID, false); /* optional */ if (!ie) { @@ -468,7 +431,7 @@ int s1ap_eNB_handle_error_indication(uint32_t assoc_id, } S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_ErrorIndicationIEs_t, ie, container, - S1AP_ProtocolIE_ID_id_Cause, FALSE); + S1AP_ProtocolIE_ID_id_Cause, false); /* optional */ if (ie) { @@ -482,163 +445,126 @@ int s1ap_eNB_handle_error_indication(uint32_t assoc_id, 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"); break; - 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"); break; - 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"); 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"); break; - 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"); break; - 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"); break; - 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"); break; - 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"); break; - 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"); break; - 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"); break; - 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"); break; - 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"); break; - 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"); break; - 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"); break; - 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"); break; - 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"); break; - 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"); break; - 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"); break; - 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"); break; - case S1AP_CauseRadioNetwork_not_supported_QCI_value: S1AP_WARN("Received S1 Error indication S1AP_CauseRadioNetwork_not_supported_QCI_value\n"); break; - +#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; +#endif /* #if (S1AP_VERSION >= MAKE_VERSION(9, 0, 0)) */ default: S1AP_WARN("Received S1 Error indication cause radio network case not handled\n"); } - break; case S1AP_Cause_PR_transport: @@ -646,15 +572,12 @@ int s1ap_eNB_handle_error_indication(uint32_t assoc_id, 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"); break; - default: S1AP_WARN("Received S1 Error indication cause transport case not handled\n"); } - break; case S1AP_Cause_PR_nas: @@ -662,23 +585,20 @@ int s1ap_eNB_handle_error_indication(uint32_t assoc_id, 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"); break; - 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"); break; - +#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; - +#endif /* #if (S1AP_VERSION >= MAKE_VERSION(9, 0, 0)) */ default: S1AP_WARN("Received S1 Error indication cause nas case not handled\n"); } @@ -690,35 +610,27 @@ int s1ap_eNB_handle_error_indication(uint32_t assoc_id, 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"); 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"); 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"); break; - 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"); break; - case S1AP_CauseProtocol_unspecified: S1AP_WARN("Received S1 Error indication S1AP_CauseProtocol_unspecified\n"); break; - default: S1AP_WARN("Received S1 Error indication cause protocol case not handled\n"); } - break; case S1AP_Cause_PR_misc: @@ -726,37 +638,30 @@ int s1ap_eNB_handle_error_indication(uint32_t assoc_id, 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; - default: S1AP_WARN("Received S1 Error indication cause misc case not handled\n"); } - break; } } S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_ErrorIndicationIEs_t, ie, container, - S1AP_ProtocolIE_ID_id_CriticalityDiagnostics, FALSE); + S1AP_ProtocolIE_ID_id_CriticalityDiagnostics, false); if (ie) { // TODO continue @@ -779,7 +684,10 @@ int s1ap_eNB_handle_initial_context_request(uint32_t assoc_id, 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; + DevAssert(pdu != NULL); + container = &pdu->choice.initiatingMessage.value.choice.InitialContextSetupRequest; if ((mme_desc_p = s1ap_eNB_get_MME(NULL, assoc_id, 0)) == NULL) { @@ -788,12 +696,18 @@ 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_eNB_UE_S1AP_ID, FALSE); + 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, - 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, enb_ue_s1ap_id); @@ -808,37 +722,26 @@ int s1ap_eNB_handle_initial_context_request(uint32_t assoc_id, } ue_desc_p->rx_stream = stream; - S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_InitialContextSetupRequestIEs_t, ie, container, - S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID, TRUE); - ue_desc_p->mme_ue_s1ap_id = ie->value.choice.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); S1AP_INITIAL_CONTEXT_SETUP_REQ(message_p).ue_initial_id = ue_desc_p->ue_initial_id; ue_desc_p->ue_initial_id = 0; - if (ue_desc_p->eNB_ue_s1ap_id != enb_ue_s1ap_id) { - /* TBD */ - } - 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); + 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_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); - /* 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); - S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_InitialContextSetupRequestIEs_t, ie, container, - S1AP_ProtocolIE_ID_id_E_RABToBeSetupListCtxtSUReq, TRUE); + S1AP_ProtocolIE_ID_id_E_RABToBeSetupListCtxtSUReq, true); + S1AP_INITIAL_CONTEXT_SETUP_REQ(message_p).nb_of_e_rabs = ie->value.choice.E_RABToBeSetupListCtxtSUReq.list.count; @@ -877,6 +780,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; } @@ -895,6 +812,7 @@ int s1ap_eNB_handle_ue_context_release_command(uint32_t assoc_id, S1AP_UEContextReleaseCommand_t *container; S1AP_UEContextReleaseCommand_IEs_t *ie; DevAssert(pdu != NULL); + container = &pdu->choice.initiatingMessage.value.choice.UEContextReleaseCommand; if ((mme_desc_p = s1ap_eNB_get_MME(NULL, assoc_id, 0)) == NULL) { @@ -904,7 +822,7 @@ int s1ap_eNB_handle_ue_context_release_command(uint32_t assoc_id, } S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_UEContextReleaseCommand_IEs_t, ie, container, - S1AP_ProtocolIE_ID_id_UE_S1AP_IDs, TRUE); + S1AP_ProtocolIE_ID_id_UE_S1AP_IDs, true); switch (ie->value.choice.UE_S1AP_IDs.present) { case S1AP_UE_S1AP_IDs_PR_uE_S1AP_ID_pair: @@ -915,12 +833,12 @@ int s1ap_eNB_handle_ue_context_release_command(uint32_t assoc_id, 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], + 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) { + enb_ue_s1ap_id)) == NULL) { S1AP_ERROR("[SCTP %d] Received UE context release command for non " "existing UE context 0x%06lx\n", assoc_id, @@ -960,7 +878,7 @@ int s1ap_eNB_handle_ue_context_release_command(uint32_t assoc_id, } S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_UEContextReleaseCommand_IEs_t, ie, container, - S1AP_ProtocolIE_ID_id_Cause, TRUE); + S1AP_ProtocolIE_ID_id_Cause, true); /* TBD */ } @@ -970,13 +888,16 @@ int s1ap_eNB_handle_e_rab_setup_request(uint32_t assoc_id, 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; + DevAssert(pdu != NULL); + container = &pdu->choice.initiatingMessage.value.choice.E_RABSetupRequest; if ((mme_desc_p = s1ap_eNB_get_MME(NULL, assoc_id, 0)) == NULL) { @@ -985,14 +906,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_eNB_UE_S1AP_ID, TRUE); + 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, - ie->value.choice.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, - ie->value.choice.ENB_UE_S1AP_ID); + enb_ue_s1ap_id); return -1; } @@ -1009,23 +937,27 @@ int s1ap_eNB_handle_e_rab_setup_request(uint32_t assoc_id, S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_E_RABSetupRequestIEs_t, ie, container, S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID, TRUE); - if ( ue_desc_p->mme_ue_s1ap_id != ie->value.choice.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, ie->value.choice.MME_UE_S1AP_ID); + 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 = ie->value.choice.MME_UE_S1AP_ID; + 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_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; // check for the NAS PDU @@ -1047,10 +979,11 @@ int s1ap_eNB_handle_e_rab_setup_request(uint32_t assoc_id, item_p->transportLayerAddress.buf, item_p->transportLayerAddress.size); 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_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); @@ -1078,8 +1011,11 @@ int s1ap_eNB_handle_paging(uint32_t assoc_id, MessageDef *message_p = NULL; S1AP_Paging_t *container; S1AP_PagingIEs_t *ie; + DevAssert(pdu != NULL); + container = &pdu->choice.initiatingMessage.value.choice.Paging; + // received Paging Message from MME S1AP_DEBUG("[SCTP %d] Received Paging Message From MME\n",assoc_id); @@ -1105,18 +1041,23 @@ 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 */ + /* id-UEIdentityIndexValue : convert UE Identity Index value */ S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_PagingIEs_t, ie, container, - S1AP_ProtocolIE_ID_id_UEIdentityIndexValue, TRUE); + 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); + 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; S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_PagingIEs_t, ie, container, S1AP_ProtocolIE_ID_id_UEPagingID, TRUE); + /* id-UEPagingID */ + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_PagingIEs_t, ie, container, + S1AP_ProtocolIE_ID_id_UEPagingID, true); /* convert UE Paging Identity */ 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; @@ -1154,37 +1095,11 @@ int s1ap_eNB_handle_paging(uint32_t assoc_id, return -1; } -#if 0 + S1AP_PAGING_IND(message_p).paging_drx = PAGING_DRX_256; - /* 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 + /* id-pagingDRX */ S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_PagingIEs_t, ie, container, - S1AP_ProtocolIE_ID_id_pagingDRX, FALSE); + S1AP_ProtocolIE_ID_id_pagingDRX, false); /* optional */ if (ie) { @@ -1193,10 +1108,11 @@ int s1ap_eNB_handle_paging(uint32_t assoc_id, 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); + S1AP_ProtocolIE_ID_id_CNDomain, true); - /* convert cnDomain */ + /* 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) { @@ -1210,8 +1126,10 @@ int s1ap_eNB_handle_paging(uint32_t assoc_id, 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; + + /* id-TAIList */ S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_PagingIEs_t, ie, container, - S1AP_ProtocolIE_ID_id_TAIList, TRUE); + S1AP_ProtocolIE_ID_id_TAIList, true); S1AP_INFO("[SCTP %d] Received Paging taiList: count %d\n", assoc_id, ie->value.choice.TAIList.list.count); for (int i = 0; i < ie->value.choice.TAIList.list.count; i++) { @@ -1228,56 +1146,6 @@ int s1ap_eNB_handle_paging(uint32_t assoc_id, 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, @@ -1290,22 +1158,26 @@ int s1ap_eNB_handle_paging(uint32_t assoc_id, 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; } static int s1ap_eNB_handle_e_rab_modify_request(uint32_t assoc_id, - uint32_t stream, - S1AP_S1AP_PDU_t *pdu) + uint32_t stream, + S1AP_S1AP_PDU_t *pdu) { - int i; + 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; + DevAssert(pdu != NULL); + container = &pdu->choice.initiatingMessage.value.choice.E_RABModifyRequest; if ((mme_desc_p = s1ap_eNB_get_MME(NULL, assoc_id, 0)) == NULL) { @@ -1314,15 +1186,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_eNB_UE_S1AP_ID, TRUE); + 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, - ie->value.choice.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, - ie->value.choice.ENB_UE_S1AP_ID); + enb_ue_s1ap_id); return -1; } @@ -1337,22 +1215,25 @@ int s1ap_eNB_handle_e_rab_modify_request(uint32_t assoc_id, S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_E_RABModifyRequestIEs_t, ie, container, S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID, TRUE); - if (ue_desc_p->mme_ue_s1ap_id != ie->value.choice.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, ie->value.choice.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 = enb_ue_s1ap_id; - S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_E_RABModifyRequestIEs_t, ie, container, - S1AP_ProtocolIE_ID_id_E_RABToBeModifiedListBearerModReq, TRUE); - for(i = 0; i < ie->value.choice.E_RABToBeModifiedListBearerModReq.list.count; i++) { + S1AP_E_RAB_MODIFY_RESP (message_p).eNB_ue_s1ap_id = enb_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[i])->value.choice.E_RABToBeModifiedItemBearerModReq); - S1AP_E_RAB_MODIFY_RESP(message_p).e_rabs_failed[i].e_rab_id = item_p->e_RAB_ID; - S1AP_E_RAB_MODIFY_RESP(message_p).e_rabs_failed[i].cause = S1AP_Cause_PR_radioNetwork; - S1AP_E_RAB_MODIFY_RESP(message_p).e_rabs_failed[i].cause_value = S1AP_CauseRadioNetwork_unknown_mme_ue_s1ap_id; + 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 = ie->value.choice.E_RABToBeModifiedListBearerModReq.list.count; s1ap_eNB_e_rab_modify_resp(mme_desc_p->s1ap_eNB_instance->instance, @@ -1363,10 +1244,13 @@ int s1ap_eNB_handle_e_rab_modify_request(uint32_t assoc_id, message_p = itti_alloc_new_message(TASK_S1AP, S1AP_E_RAB_MODIFY_REQ); 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 = ie->value.choice.MME_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_ProtocolIE_ID_id_E_RABToBeModifiedListBearerModReq, true); S1AP_E_RAB_MODIFY_REQ(message_p).nb_e_rabs_tomodify = ie->value.choice.E_RABToBeModifiedListBearerModReq.list.count; @@ -1403,8 +1287,8 @@ int s1ap_eNB_handle_e_rab_modify_request(uint32_t assoc_id, // handle e-rab release command and send it to rrc_end static int s1ap_eNB_handle_e_rab_release_command(uint32_t assoc_id, - uint32_t stream, - S1AP_S1AP_PDU_t *pdu) + uint32_t stream, + S1AP_S1AP_PDU_t *pdu) { int i; s1ap_eNB_mme_data_t *mme_desc_p = NULL; @@ -1413,7 +1297,10 @@ int s1ap_eNB_handle_e_rab_release_command(uint32_t assoc_id, 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; if ((mme_desc_p = s1ap_eNB_get_MME(NULL, assoc_id, 0)) == NULL) { @@ -1421,12 +1308,19 @@ int s1ap_eNB_handle_e_rab_release_command(uint32_t assoc_id, return -1; } + + /* id-MME-UE-S1AP-ID */ S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_E_RABReleaseCommandIEs_t, ie, container, - S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID, TRUE); + 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, - ie->value.choice.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, ie->value.choice.ENB_UE_S1AP_ID); return -1; @@ -1443,19 +1337,21 @@ int s1ap_eNB_handle_e_rab_release_command(uint32_t assoc_id, S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_E_RABReleaseCommandIEs_t, ie, container, S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID, TRUE); - if (ue_desc_p->mme_ue_s1ap_id != ie->value.choice.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, ie->value.choice.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, enb_ue_s1ap_id, ie->value.choice.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 = enb_ue_s1ap_id; - S1AP_E_RAB_RELEASE_COMMAND(message_p).mme_ue_s1ap_id = ie->value.choice.MME_UE_S1AP_ID; - S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_E_RABReleaseCommandIEs_t, ie, container, - S1AP_ProtocolIE_ID_id_NAS_PDU, FALSE); + 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 = @@ -1468,8 +1364,9 @@ int s1ap_eNB_handle_e_rab_release_command(uint32_t assoc_id, S1AP_E_RAB_RELEASE_COMMAND(message_p).nas_pdu.buffer = NULL; } + /* id-E-RABToBeReleasedList */ S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_E_RABReleaseCommandIEs_t, ie, container, - S1AP_ProtocolIE_ID_id_E_RABToBeReleasedList, TRUE); + 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++) { 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 3ce4eb17fb..38880d2a72 100644 --- a/openair3/S1AP/s1ap_eNB_nas_procedures.c +++ b/openair3/S1AP/s1ap_eNB_nas_procedures.c @@ -147,16 +147,17 @@ int s1ap_eNB_handle_nas_first_req( 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_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); + /* mandatory */ ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); ie->id = S1AP_ProtocolIE_ID_id_TAI; @@ -187,9 +188,11 @@ int s1ap_eNB_handle_nas_first_req( instance_p->mnc_digit_length, &ie->value.choice.EUTRAN_CGI.pLMNidentity); 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); + /* mandatory */ ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t)); ie->id = S1AP_ProtocolIE_ID_id_RRC_Establishment_Cause; @@ -242,6 +245,7 @@ int s1ap_eNB_handle_nas_first_req( } /* 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; @@ -252,6 +256,7 @@ int s1ap_eNB_handle_nas_first_req( } /* 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; @@ -260,7 +265,6 @@ int s1ap_eNB_handle_nas_first_req( // 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)); @@ -271,6 +275,7 @@ int s1ap_eNB_handle_nas_first_req( 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)); @@ -311,6 +316,7 @@ int s1ap_eNB_handle_nas_first_req( 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)); @@ -341,6 +347,7 @@ int s1ap_eNB_handle_nas_first_req( 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)); @@ -360,6 +367,11 @@ int s1ap_eNB_handle_nas_first_req( // 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 */ @@ -394,7 +406,8 @@ 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, buffer, length, ue_desc_p->tx_stream); @@ -440,16 +453,27 @@ int s1ap_eNB_handle_nas_downlink(uint32_t assoc_id, S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID, TRUE); enb_ue_s1ap_id = ie->value.choice.ENB_UE_S1AP_ID; + /* 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, - ie->value.choice.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), - enb_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", @@ -490,14 +514,15 @@ int s1ap_eNB_handle_nas_downlink(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), 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); + 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, @@ -601,6 +626,7 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_ ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); /* 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; @@ -611,6 +637,7 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_ } /* 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; @@ -629,6 +656,8 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_ // 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"); @@ -643,8 +672,9 @@ 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, ue_context_p->mme_ref->assoc_id, buffer, @@ -665,6 +695,7 @@ int s1ap_eNB_nas_non_delivery_ind(instance_t instance, S1AP_NASNonDeliveryIndication_IEs_t *ie; uint8_t *buffer; uint32_t length; + DevAssert(s1ap_nas_non_delivery_ind != NULL); /* Retrieve the S1AP eNB instance associated with Mod_id */ s1ap_eNB_instance_p = s1ap_eNB_get_instance(instance); @@ -702,17 +733,20 @@ int s1ap_eNB_nas_non_delivery_ind(instance_t instance, 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_eNB_UE_S1AP_ID; + 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; - /* mandatory */ + 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_eNB_UE_S1AP_ID; + ie->id = S1AP_ProtocolIE_ID_id_Cause; ie->criticality = S1AP_Criticality_ignore; /* Send a dummy cause */ ie->value.present = S1AP_NASNonDeliveryIndication_IEs__value_PR_Cause; @@ -732,12 +766,13 @@ int s1ap_eNB_nas_non_delivery_ind(instance_t instance, 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, @@ -803,22 +838,27 @@ int s1ap_eNB_initial_ctxt_resp( 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); + /* mandatory */ ie = (S1AP_InitialContextSetupResponseIEs_t *)calloc(1, sizeof(S1AP_InitialContextSetupResponseIEs_t)); - ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID; + 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_RABSetupItemCtxtSUResIEs_t *item; /* mandatory */ - item = calloc(1, sizeof(S1AP_E_RABSetupItemCtxtSUResIEs_t)); - item->id = S1AP_ProtocolIE_ID_id_E_RABSetupItemBearerSURes; + 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_RABSetupItemBearerSUResIEs__value_PR_E_RABSetupItemBearerSURes; + 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 = initial_ctxt_resp_p->e_rabs[i].eNB_addr.buffer; + 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", @@ -843,7 +883,7 @@ int s1ap_eNB_initial_ctxt_resp( for (i = 0; i < initial_ctxt_resp_p->nb_of_e_rabs_failed; i++) { S1AP_E_RABItemIEs_t *item; /* mandatory */ - item = calloc(1, sizeof(S1AP_E_RABItemIEs_t)); + 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; @@ -855,23 +895,18 @@ int s1ap_eNB_initial_ctxt_resp( 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; @@ -907,12 +942,14 @@ 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 0; } @@ -928,6 +965,7 @@ int s1ap_eNB_ue_capabilities(instance_t instance, S1AP_UECapabilityInfoIndicationIEs_t *ie; uint8_t *buffer; uint32_t length; + /* Retrieve the S1AP eNB instance associated with Mod_id */ s1ap_eNB_instance_p = s1ap_eNB_get_instance(instance); DevAssert(ue_cap_info_ind_p != NULL); @@ -973,6 +1011,7 @@ int s1ap_eNB_ue_capabilities(instance_t instance, 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); + /* mandatory */ ie = (S1AP_UECapabilityInfoIndicationIEs_t *)calloc(1, sizeof(S1AP_UECapabilityInfoIndicationIEs_t)); ie->id = S1AP_ProtocolIE_ID_id_UERadioCapability; @@ -983,6 +1022,7 @@ int s1ap_eNB_ue_capabilities(instance_t instance, ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); /* 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; @@ -991,6 +1031,7 @@ int s1ap_eNB_ue_capabilities(instance_t instance, // 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(&pdu, &buffer, &length) < 0) { /* Encode procedure has failed... */ @@ -1005,8 +1046,9 @@ 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, @@ -1033,7 +1075,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); @@ -1083,13 +1125,16 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance, for (i = 0; i < e_rab_setup_resp_p->nb_of_e_rabs; i++) { S1AP_E_RABSetupItemBearerSUResIEs_t *item; /* mandatory */ - item = calloc(1, sizeof(S1AP_E_RABSetupItemBearerSUResIEs_t)); + 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 = e_rab_setup_resp_p->e_rabs[i].eNB_addr.buffer; + 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", @@ -1115,7 +1160,7 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance, for (i = 0; i < e_rab_setup_resp_p->nb_of_e_rabs_failed; i++) { S1AP_E_RABItemIEs_t *item; - item = calloc(1, sizeof(S1AP_E_RABItemIEs_t)); + 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; @@ -1127,23 +1172,18 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance, 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; @@ -1173,7 +1213,6 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance, ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1AP_E_RABSetupListBearerSURes, &e_RABSetupListBearerSURes); */ fprintf(stderr, "start encode\n"); - if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) { S1AP_ERROR("Failed to encode uplink transport\n"); /* Encode procedure has failed... */ @@ -1187,8 +1226,9 @@ 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, @@ -1215,7 +1255,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); @@ -1240,6 +1280,7 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance, 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; + /* mandatory */ ie = (S1AP_E_RABModifyResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABModifyResponseIEs_t)); ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID; @@ -1264,7 +1305,7 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance, for (i = 0; i < e_rab_modify_resp_p->nb_of_e_rabs; i++) { S1AP_E_RABModifyItemBearerModResIEs_t *item; - item = calloc(1, sizeof(S1AP_E_RABModifyItemBearerModResIEs_t)); + 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; @@ -1272,7 +1313,6 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance, 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); } - ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); } @@ -1285,7 +1325,7 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance, for (i = 0; i < e_rab_modify_resp_p->nb_of_e_rabs_failed; i++) { S1AP_E_RABItemIEs_t *item; - item = calloc(1, sizeof(S1AP_E_RABItemIEs_t)); + 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; @@ -1297,23 +1337,18 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance, 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; @@ -1337,7 +1372,6 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance, } fprintf(stderr, "start encode\n"); - if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) { S1AP_ERROR("Failed to encode uplink transport\n"); /* Encode procedure has failed... */ @@ -1351,8 +1385,9 @@ 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, @@ -1364,21 +1399,22 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance, 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_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 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); 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); @@ -1416,7 +1452,7 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance, for (i = 0; i < e_rab_release_resp_p->nb_of_e_rabs_released; i++) { S1AP_E_RABReleaseItemBearerRelCompIEs_t *item; - item = calloc(1, sizeof(S1AP_E_RABReleaseItemBearerRelCompIEs_t)); + 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; @@ -1424,7 +1460,6 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance, 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); } @@ -1437,7 +1472,7 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance, for (i = 0; i < e_rab_release_resp_p->nb_of_e_rabs_failed; i++) { S1AP_E_RABItemIEs_t *item; - item = calloc(1, sizeof(S1AP_E_RABItemIEs_t)); + 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; @@ -1449,23 +1484,18 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance, 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: break; @@ -1488,6 +1518,7 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance, } /* 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; @@ -1496,9 +1527,9 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance, // 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(&pdu, &buffer, &length) < 0) { S1AP_ERROR("Failed to encode release response\n"); /* Encode procedure has failed... */ diff --git a/openair3/S1AP/s1ap_eNB_overload.c b/openair3/S1AP/s1ap_eNB_overload.c index e4066b7108..8931f0df36 100644 --- a/openair3/S1AP/s1ap_eNB_overload.c +++ b/openair3/S1AP/s1ap_eNB_overload.c @@ -50,13 +50,18 @@ int s1ap_eNB_handle_overload_start(uint32_t assoc_id, s1ap_eNB_mme_data_t *mme_desc_p; S1AP_OverloadStart_t *container; S1AP_OverloadStartIEs_t *ie; + DevAssert(pdu != NULL); + container = &pdu->choice.initiatingMessage.value.choice.OverloadStart; + S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_OverloadStartIEs_t, ie, container, - S1AP_ProtocolIE_ID_id_OverloadResponse, TRUE); + 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); diff --git a/openair3/S1AP/s1ap_eNB_trace.c b/openair3/S1AP/s1ap_eNB_trace.c index a04bd4ce93..e34daae8eb 100644 --- a/openair3/S1AP/s1ap_eNB_trace.c +++ b/openair3/S1AP/s1ap_eNB_trace.c @@ -47,9 +47,11 @@ void s1ap_eNB_generate_trace_failure(struct s1ap_eNB_ue_context_s *ue_desc_p, S1AP_TraceFailureIndicationIEs_t *ie; uint8_t *buffer = NULL; uint32_t length; + DevAssert(ue_desc_p != NULL); DevAssert(trace_id != NULL); DevAssert(cause_p != NULL); + /* Prepare the S1AP message to encode */ memset(&pdu, 0, sizeof(pdu)); pdu.present = S1AP_S1AP_PDU_PR_initiatingMessage; @@ -57,24 +59,34 @@ void s1ap_eNB_generate_trace_failure(struct s1ap_eNB_ue_context_s *ue_desc_p, pdu.choice.initiatingMessage.criticality = S1AP_Criticality_ignore; pdu.choice.initiatingMessage.value.present = S1AP_InitiatingMessage__value_PR_TraceFailureIndication; out = &pdu.choice.initiatingMessage.value.choice.TraceFailureIndication; + + /* 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); + + /* 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); + + + /* 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); + + + /* mandatory */ ie = (S1AP_TraceFailureIndicationIEs_t *)calloc(1, sizeof(S1AP_TraceFailureIndicationIEs_t)); ie->id = S1AP_ProtocolIE_ID_id_Cause; ie->criticality = S1AP_Criticality_ignore; @@ -99,15 +111,19 @@ int s1ap_eNB_handle_trace_start(uint32_t assoc_id, S1AP_TraceStartIEs_t *ie; struct s1ap_eNB_ue_context_s *ue_desc_p; struct s1ap_eNB_mme_data_s *mme_ref_p; + DevAssert(pdu != NULL); + 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, - ie->value.choice.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. */ 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 c5f0c8692c..5d12b38c22 100644 --- a/openair3/TEST/EPC_TEST/generate_scenario.h +++ b/openair3/TEST/EPC_TEST/generate_scenario.h @@ -40,7 +40,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 cbf1fbd7e9..e0ca7f59cc 100644 --- a/openair3/TEST/EPC_TEST/play_scenario_decode.c +++ b/openair3/TEST/EPC_TEST/play_scenario_decode.c @@ -38,6 +38,7 @@ int et_s1ap_decode_pdu(S1AP_PDU_t *const pdu, const uint8_t *const buffer, const { asn_dec_rval_t dec_ret; DevAssert(buffer != NULL); + memset((void *)pdu, 0, sizeof(S1AP_S1AP_PDU_t)); dec_ret = aper_decode(NULL, &asn_DEF_S1AP_S1AP_PDU, diff --git a/openair3/TEST/EPC_TEST/play_scenario_s1ap.c b/openair3/TEST/EPC_TEST/play_scenario_s1ap.c index aca2b66bca..eb0978f9d4 100644 --- a/openair3/TEST/EPC_TEST/play_scenario_s1ap.c +++ b/openair3/TEST/EPC_TEST/play_scenario_s1ap.c @@ -170,13 +170,13 @@ 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: + 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; @@ -187,7 +187,7 @@ int et_handle_s1ap_mismatch_mme_ue_s1ap_id(et_packet_t *const spacket, et_packet break; - case S1AP_ProcedureCode_id_HandoverResourceAllocation: + 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; @@ -201,17 +201,17 @@ int et_handle_s1ap_mismatch_mme_ue_s1ap_id(et_packet_t *const spacket, et_packet 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; @@ -453,28 +453,28 @@ int et_handle_s1ap_mismatch_mme_ue_s1ap_id(et_packet_t *const spacket, et_packet }*/ 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: + 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; @@ -484,22 +484,22 @@ int et_handle_s1ap_mismatch_mme_ue_s1ap_id(et_packet_t *const spacket, et_packet }*/ 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; @@ -705,7 +705,7 @@ int et_s1ap_process_rx_packet(et_event_s1ap_data_ind_t *const s1ap_data_ind) 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)) + // (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 59cb1cdac9..d3be887ee6 100644 --- a/openair3/TEST/EPC_TEST/play_scenario_s1ap_compare_ie.c +++ b/openair3/TEST/EPC_TEST/play_scenario_s1ap_compare_ie.c @@ -60,7 +60,7 @@ extern uint32_t g_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) +void update_xpath_node_mme_ue_s1ap_id(et_s1ap_t * const s1ap, xmlNode *node, const S1ap_MME_UE_S1AP_ID_t new_id) { xmlNode *cur_node = NULL; xmlAttrPtr attr = NULL; 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_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/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 ad5bbda3fe..8cf14b4ca8 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 a0e8fcff89..abeaf4e4c8 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; @@ -902,6 +957,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) { @@ -909,6 +965,11 @@ extern "C" { } // prevent from multiple init done = 1; // 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) { @@ -948,7 +1009,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); @@ -1296,33 +1358,60 @@ 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 - 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 new file mode 100644 index 0000000000..05a520f6ae --- /dev/null +++ b/targets/ARCH/tcp_bridge/README.tcp_bridge_oai @@ -0,0 +1,42 @@ +The driver tcp_bridge_oai.c is to be used with the basic simulator. + +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 + +To use it, you need to run the eNB and the UE. + +The eNB requires the T tracer. +Open two terminals. +In one terminal, run: + cd [openair top directory] + cd common/utils/T/tracer + ./enb -d ../T_messages.txt +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] --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 --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.) + +The UE configuration (security keys) is generated from the file +openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf. You need to configure +your EPC to know about the UE. If you change the file +openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf then you need to +regenerate the configuration files using the program targets/bin/conf2uedata. +You run it as: + $OPENAIR_DIR/targets/bin/conf2uedata -c $OPENAIR_DIR/openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf -o $OPENAIR_DIR/cmake_targets/basic_simulator/ue 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/ARCH/tcp_bridge/tcp_bridge_oai.c b/targets/ARCH/tcp_bridge/tcp_bridge_oai.c new file mode 100644 index 0000000000..ba6d96db93 --- /dev/null +++ b/targets/ARCH/tcp_bridge/tcp_bridge_oai.c @@ -0,0 +1,320 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int fullread(int fd, void *_buf, int count) +{ + char *buf = _buf; + int ret = 0; + int l; + while (count) { + l = read(fd, buf, count); + if (l <= 0) return -1; + count -= l; + buf += l; + ret += l; + } + return ret; +} + +int fullwrite(int fd, void *_buf, int count) +{ + char *buf = _buf; + int ret = 0; + int l; + while (count) { + l = write(fd, buf, count); + if (l <= 0) return -1; + count -= l; + buf += l; + ret += l; + } + return ret; +} + +#include "common_lib.h" + +typedef struct { + int sock; + int samples_per_subframe; + uint64_t timestamp; + int is_enb; +} tcp_bridge_state_t; + +void verify_connection(int fd, int is_enb) +{ + char c = is_enb; + if (fullwrite(fd, &c, 1) != 1) exit(1); + if (fullread(fd, &c, 1) != 1) exit(1); + if (c == is_enb) { + printf("\x1b[31mtcp_bridge: error: you have to run one UE and one eNB" + " (did you run 'export ENODEB=1' in the eNB terminal?)\x1b[m\n"); + exit(1); + } +} + +int tcp_bridge_start(openair0_device *device) +{ + int port = 4043; + tcp_bridge_state_t *tcp_bridge = device->priv; + int try; + int max_try = 5; + + int sock = socket(AF_INET, SOCK_STREAM, 0); + if (sock == -1) { perror("tcp_bridge: socket"); exit(1); } + + int enable = 1; + if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &enable, sizeof(int))) + { perror("tcp_bridge: SO_REUSEADDR"); exit(1); } + + struct sockaddr_in addr = { + sin_family: AF_INET, + sin_port: htons(port), + sin_addr: { s_addr: INADDR_ANY } + }; + + if (bind(sock, (struct sockaddr *)&addr, sizeof(addr))) { + if (errno == EADDRINUSE) goto client_mode; + { perror("tcp_bridge: bind"); exit(1); } + } + + if (listen(sock, 5)) + { perror("tcp_bridge: listen"); exit(1); } + + printf("tcp_bridge: wait for connection on port %d\n", port); + + socklen_t len = sizeof(addr); + int sock2 = accept(sock, (struct sockaddr *)&addr, &len); + if (sock2 == -1) + { perror("tcp_bridge: accept"); exit(1); } + + close(sock); + + tcp_bridge->sock = sock2; + + printf("tcp_bridge: connection established\n"); + + verify_connection(sock2, tcp_bridge->is_enb); + + return 0; + +client_mode: + addr.sin_addr.s_addr = inet_addr("127.0.0.1"); + + for (try = 0; try < max_try; try++) { + if (try != 0) sleep(1); + + printf("tcp_bridge: trying to connect to 127.0.0.1:%d (attempt %d/%d)\n", + port, try+1, max_try); + + if (connect(sock, (struct sockaddr *)&addr, sizeof(addr)) == 0) { + printf("tcp_bridge: connection established\n"); + tcp_bridge->sock = sock; + verify_connection(sock, tcp_bridge->is_enb); + return 0; + } + + perror("tcp_bridge"); + } + + printf("tcp_bridge: connection failed\n"); + + exit(1); +} + +int tcp_bridge_request(openair0_device *device, void *msg, ssize_t msg_len) { abort(); return 0; } +int tcp_bridge_reply(openair0_device *device, void *msg, ssize_t msg_len) { abort(); return 0; } +int tcp_bridge_get_stats(openair0_device* device) { return 0; } +int tcp_bridge_reset_stats(openair0_device* device) { return 0; } +void tcp_bridge_end(openair0_device *device) {} +int tcp_bridge_stop(openair0_device *device) { return 0; } +int tcp_bridge_set_freq(openair0_device* device, openair0_config_t *openair0_cfg,int exmimo_dump_config) { return 0; } +int tcp_bridge_set_gains(openair0_device* device, openair0_config_t *openair0_cfg) { return 0; } + +int tcp_bridge_write(openair0_device *device, openair0_timestamp timestamp, void **buff, int nsamps, int cc, int flags) +{ + if (cc != 1) { printf("tcp_bridge: only 1 antenna supported\n"); exit(1); } + tcp_bridge_state_t *t = device->priv; + int n = fullwrite(t->sock, buff[0], nsamps * 4); + if (n != nsamps * 4) { + printf("tcp_bridge: write error ret %d (wanted %d) error %s\n", n, nsamps*4, strerror(errno)); + abort(); + } + return nsamps; +} + +int tcp_bridge_read(openair0_device *device, openair0_timestamp *timestamp, void **buff, int nsamps, int cc) +{ + if (cc != 1) { printf("tcp_bridge: only 1 antenna supported\n"); exit(1); } + tcp_bridge_state_t *t = device->priv; + int n = fullread(t->sock, buff[0], nsamps * 4); + if (n != nsamps * 4) { + printf("tcp_bridge: read error ret %d nsamps*4 %d error %s\n", n, nsamps * 4, strerror(errno)); + abort(); + } + *timestamp = t->timestamp; + t->timestamp += nsamps; + return nsamps; +} + +int tcp_bridge_read_ue(openair0_device *device, openair0_timestamp *timestamp, void **buff, int nsamps, int cc) +{ + if (cc != 1) { printf("tcp_bridge: only 1 antenna supported\n"); exit(1); } + tcp_bridge_state_t *t = device->priv; + int n; + + /* In synch mode, UE does not write, but we need to + * send something to the eNodeB. + * We know that UE is in synch mode when it reads + * 10 subframes at a time. + */ + if (nsamps == t->samples_per_subframe * 10) { + uint32_t b[nsamps]; + memset(b, 0, nsamps * 4); + n = fullwrite(t->sock, b, nsamps * 4); + if (n != nsamps * 4) { + printf("tcp_bridge: write error ret %d error %s\n", n, strerror(errno)); + abort(); + } + } + + return tcp_bridge_read(device, timestamp, buff, nsamps, cc); +} + +/* To startup proper communcation between eNB and UE, + * we need to understand that: + * - eNodeB starts reading subframe 0 + * - then eNodeB starts sending subframe 4 + * and then repeats read/write for each subframe. + * The UE: + * - reads 10 subframes at a time until it is synchronized + * - then reads subframe n and writes subframe n+2 + * We also want to enforce that the subframe 0 is read + * at the beginning of the UE RX buffer, not in the middle + * of it. + * So it means: + * - for the eNodeB: let it run as in normal mode (as with a B210) + * - for the UE, on its very first read: + * - we want this read to get data from subframe 0 + * but the first write of eNodeB is subframe 4 + * so we first need to read and ignore 6 subframes + * - the UE will start its TX only at the subframe 2 + * corresponding to the subframe 0 it just read, + * so we need to write 12 subframes before anything + * (the function tcp_bridge_read_ue takes care to + * insert dummy TX data during the synch phase) + * + * Here is a drawing of the beginning of things to make + * this logic clearer. + * + * We see that eNB starts RX at subframe 0, starts TX at subfram 4, + * and that UE starts RX at subframe 10 and TX at subframe 12. + * + * We understand that the UE has to transmit 12 empty + * subframes for the eNodeB to start its processing. + * + * And because the eNodeB starts its TX at subframe 4 and we + * want the UE to start its RX at subframe 10, we need to + * read and ignore 6 subframes in the UE. + * + * ------------------------------------------------------------------------- + * eNB RX: | *0* | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 ... + * ------------------------------------------------------------------------- + * + * ------------------------------------------------------------------------- + * eNB TX: | 0 | 1 | 2 | 3 | *4* | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 ... + * ------------------------------------------------------------------------- + * + * ------------------------------------------------------------------------- + * UE RX: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | *10* | 11 | 12 | 13 | 14 ... + * ------------------------------------------------------------------------- + * + * ------------------------------------------------------------------------- + * UE TX: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | *12* | 13 | 14 ... + * ------------------------------------------------------------------------- + * + * As a final note, we do TX before RX to ensure that the eNB will + * get some data and send us something so there is no deadlock + * at the beginning of things. Hopefully the kernel buffers for + * the sockets are big enough so that the first (big) TX can + * return to user mode before the buffers are full. If this + * is wrong in some environment, we will need to work by smaller + * units of data at a time. + */ +int tcp_bridge_ue_first_read(openair0_device *device, openair0_timestamp *timestamp, void **buff, int nsamps, int cc) +{ + if (cc != 1) { printf("tcp_bridge: only 1 antenna supported\n"); exit(1); } + tcp_bridge_state_t *t = device->priv; + + uint32_t b[t->samples_per_subframe * 12]; + memset(b, 0, nsamps * 4); + int n = fullwrite(t->sock, b, t->samples_per_subframe * 12 * 4); + if (n != t->samples_per_subframe * 12 * 4) { + printf("tcp_bridge: write error ret %d error %s\n", n, strerror(errno)); + abort(); + } + n = fullread(t->sock, b, t->samples_per_subframe * 6 * 4); + if (n != t->samples_per_subframe * 6 * 4) { + printf("tcp_bridge: read error ret %d error %s\n", n, strerror(errno)); + abort(); + } + + device->trx_read_func = tcp_bridge_read_ue; + + return tcp_bridge_read_ue(device, timestamp, buff, nsamps, cc); +} + +__attribute__((__visibility__("default"))) +int device_init(openair0_device* device, openair0_config_t *openair0_cfg) +{ + tcp_bridge_state_t *tcp_bridge = (tcp_bridge_state_t*)malloc(sizeof(tcp_bridge_state_t)); + memset(tcp_bridge, 0, sizeof(tcp_bridge_state_t)); + + tcp_bridge->is_enb = getenv("ENODEB") != NULL; + + printf("tcp_bridge: running as %s\n", tcp_bridge->is_enb ? "eNB" : "UE"); + + /* only 25, 50 or 100 PRBs handled for the moment */ + if (openair0_cfg[0].sample_rate != 30720000 && + openair0_cfg[0].sample_rate != 15360000 && + openair0_cfg[0].sample_rate != 7680000) { + printf("tcp_bridge: ERROR: only 25, 50 or 100 PRBs supported\n"); + exit(1); + } + + device->trx_start_func = tcp_bridge_start; + device->trx_get_stats_func = tcp_bridge_get_stats; + device->trx_reset_stats_func = tcp_bridge_reset_stats; + device->trx_end_func = tcp_bridge_end; + device->trx_stop_func = tcp_bridge_stop; + device->trx_set_freq_func = tcp_bridge_set_freq; + device->trx_set_gains_func = tcp_bridge_set_gains; + device->trx_write_func = tcp_bridge_write; + + if (tcp_bridge->is_enb) { + device->trx_read_func = tcp_bridge_read; + } else { + device->trx_read_func = tcp_bridge_ue_first_read; + } + + device->priv = tcp_bridge; + + switch ((int)openair0_cfg[0].sample_rate) { + case 30720000: tcp_bridge->samples_per_subframe = 30720; break; + case 15360000: tcp_bridge->samples_per_subframe = 15360; break; + case 7680000: tcp_bridge->samples_per_subframe = 7680; break; + } + + /* let's pretend to be a b2x0 */ + device->type = USRP_B200_DEV; + + device->openair0_cfg=&openair0_cfg[0]; + + return 0; +} diff --git a/targets/COMMON/openairinterface5g_limits.h b/targets/COMMON/openairinterface5g_limits.h index dba7b5616e..8bd45b8396 100644 --- a/targets/COMMON/openairinterface5g_limits.h +++ b/targets/COMMON/openairinterface5g_limits.h @@ -6,27 +6,33 @@ # define NUMBER_OF_gNB_MAX 1 # define NUMBER_OF_RU_MAX 2 -# define NUMBER_OF_NR_RU_MAX 2 - -# define NUMBER_OF_UE_MAX 16 -# define NUMBER_OF_NR_UE_MAX 16 - -# define NUMBER_OF_CONNECTED_eNB_MAX 3 -# define NUMBER_OF_CONNECTED_gNB_MAX 3 - +# ifndef UE_EXPANSION +# define NUMBER_OF_UE_MAX 16 +# define NUMBER_OF_NR_UE_MAX 16 +# define NUMBER_OF_CONNECTED_eNB_MAX 3 +# define NUMBER_OF_CONNECTED_gNB_MAX 3 +# else +# define NUMBER_OF_UE_MAX 256 +# define NUMBER_OF_NR_UE_MAX 256 +# define NUMBER_OF_CONNECTED_eNB_MAX 1 +# define NUMBER_OF_CONNECTED_gNB_MAX 1 +# endif #else # define NUMBER_OF_eNB_MAX 7 # define NUMBER_OF_gNB_MAX 7 # define NUMBER_OF_RU_MAX 32 -# define NUMBER_OF_NR_RU_MAX 32 - -# define NUMBER_OF_UE_MAX 20 -# define NUMBER_OF_NR_UE_MAX 20 - -# define NUMBER_OF_CONNECTED_eNB_MAX 3 -# define NUMBER_OF_CONNECTED_gNB_MAX 3 - +# ifndef UE_EXPANSION +# define NUMBER_OF_UE_MAX 20 +# define NUMBER_OF_NR_UE_MAX 20 +# define NUMBER_OF_CONNECTED_eNB_MAX 3 +# define NUMBER_OF_CONNECTED_gNB_MAX 3 +# else +# define NUMBER_OF_UE_MAX 256 +# define NUMBER_OF_NR_UE_MAX 256 +# define NUMBER_OF_CONNECTED_eNB_MAX 1 +# define NUMBER_OF_CONNECTED_gNB_MAX 1 +# endif # if defined(STANDALONE) && STANDALONE==1 # undef NUMBER_OF_eNB_MAX # undef NUMBER_OF_gNB_MAX @@ -46,7 +52,6 @@ # define NUMBER_OF_RU_MAX 3 # define NUMBER_OF_NR_RU_MAX 3 # endif - # if defined(LARGE_SCALE) && LARGE_SCALE # undef NUMBER_OF_eNB_MAX # undef NUMBER_OF_gNB_MAX diff --git a/targets/DOCS/nfapi-L2-emulator-setup.txt b/targets/DOCS/nfapi-L2-emulator-setup.txt new file mode 100644 index 0000000000..3e502e2137 --- /dev/null +++ b/targets/DOCS/nfapi-L2-emulator-setup.txt @@ -0,0 +1,31 @@ + +#Build instructions +source oaienv +cd cmake_targets + +#Create lte-uesoftmodem-nos1 (UE) and lte-softmodem-nos1 (eNB) executables +./build_oai --UE --noS1 -x -t ETHERNET + +./build_oai --eNB --noS1 -x -t ETHERNET + +------------------------------------------------------------------------------------------------------------------------------------------------------- + +#Execution instuctions (Currently running eNB (VNF) and UE side (PNF) on the same machine using the loopback interface) +cd cmake_targets/tools + +# Loading nasmesh +source init_nas_nos1 + +# Add a new loopback interface address +sudo ifconfig lo: 127.0.0.2 netmask 255.0.0.0 up + +cd .. +cd lte_noS1_build_oai/build/ + +# Run the eNB process on one terminal (VNF) +sudo ./lte-softmodem-nos1 -O PATH_OF:rcc.band7.tm1.50PRB.nfapi.conf + +# Run the UE process on the other terminal (PNF) (--L2-emul specifying the operation in nfapi-L2-emulation mode +# and it has to be equal to 3, --num_ues specifying the number of UEs) +sudo ./lte-uesoftmodem-nos1 -U -O PATH_OF:oaiL1.nfapi.usrpb210.conf --L2-emul 3 --num-ues 5 > debug_log.txt + 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 new file mode 100644 index 0000000000..7d73e55c6c --- /dev/null +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210-d2d.conf @@ -0,0 +1,245 @@ +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 = 1; + 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 = "sf80"; + rxPool_data_CP_Len = "normal"; + rxPool_ResourceConfig_prb_Num = 3; + rxPool_ResourceConfig_prb_Start = 4; + rxPool_ResourceConfig_prb_End = 9; + rxPool_ResourceConfig_offsetIndicator_present = "prSmall"; + rxPool_ResourceConfig_offsetIndicator_choice = 3; + rxPool_ResourceConfig_subframeBitmap_present = "prBs16"; + rxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "1100110011001100"; + rxPool_ResourceConfig_subframeBitmap_choice_bs_size = 16; + 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 = "rf64" + discRxPool_numRetx = 1; + discRxPool_numRepetition = 2; + discRxPool_ResourceConfig_prb_Num = 3; + discRxPool_ResourceConfig_prb_Start = 4; + discRxPool_ResourceConfig_prb_End = 5; + discRxPool_ResourceConfig_offsetIndicator_present = "prSmall"; + discRxPool_ResourceConfig_offsetIndicator_choice = 4; + discRxPool_ResourceConfig_subframeBitmap_present = "prBs16"; + discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "1001100110011001"; + discRxPool_ResourceConfig_subframeBitmap_choice_bs_size = 16; + 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 = "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 = "eth0"; + ENB_IPV4_ADDRESS_FOR_S1U = "127.0.0.4/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/enb.band7.tm1.50PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf index 7833c02e1f..f40920bf1c 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 @@ -43,20 +43,20 @@ gNBs = 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"; + 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"; @@ -97,14 +97,48 @@ gNBs = 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; + 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; + } ); @@ -164,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/oaiL1.nfapi.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/oaiL1.nfapi.usrpb210.conf index 9393872b30..b13962aee9 100644 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/oaiL1.nfapi.usrpb210.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/oaiL1.nfapi.usrpb210.conf @@ -4,28 +4,47 @@ log_config = { hw_log_level ="info"; hw_log_verbosity ="medium"; phy_log_level ="info"; - phy_log_verbosity ="low"; - mac_log_level ="info"; + phy_log_verbosity ="medium"; + mac_log_level ="debug"; mac_log_verbosity ="medium"; rlc_log_level ="info"; rlc_log_verbosity ="medium"; pdcp_log_level ="info"; pdcp_log_verbosity ="medium"; - rrc_log_level ="info"; - rrc_log_verbosity ="medium"; + rrc_log_level ="debug"; + rrc_log_verbosity ="full"; }; + +#L1s = ( +# { +# num_cc = 1; +# tr_n_preference = "nfapi"; +# local_n_if_name = "eno1"; +# remote_n_address = "192.168.1.28"; +# local_n_address = "192.168.1.74"; +# local_n_portc = 50000; +# remote_n_portc = 50001; +# local_n_portd = 50010; +# remote_n_portd = 50011; +# } +#); + + L1s = ( { num_cc = 1; tr_n_preference = "nfapi"; - local_n_if_name = "lo"; + #local_n_if_name = "enp0s31f6"; + #remote_n_address = "10.0.0.2"; + #local_n_address = "10.0.0.1"; + local_n_if_name = "lo"; remote_n_address = "127.0.0.2"; - local_n_address = "127.0.0.1"; - local_n_portc = 50000; - remote_n_portc = 50001; - local_n_portd = 50010; - remote_n_portd = 50011; + local_n_address = "127.0.0.1"; + local_n_portc = 50000; + remote_n_portc = 50001; + local_n_portd = 50010; + remote_n_portd = 50011; } ); @@ -34,11 +53,10 @@ RUs = ( local_rf = "yes" nb_tx = 1 nb_rx = 1 - att_tx = 0 + att_tx = 90 att_rx = 0; bands = [7,38,42,43]; max_pdschReferenceSignalPower = -27; max_rxgain = 125; - eNB_instances = [0]; } -); +); 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 new file mode 100644 index 0000000000..71a163209d --- /dev/null +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi-STUB.conf @@ -0,0 +1,201 @@ +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"; + 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; + 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_referenceSignalPower = -30; + 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_preambleInitialReceivedTargetPower = -104; + 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 = "192.168.56.102"; + ipv6 = "192:168:30::17"; + active = "yes"; + preference = "ipv4"; + } + ); + + NETWORK_INTERFACES : + { + + ENB_INTERFACE_NAME_FOR_S1_MME = "vboxnet0"; + ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.56.1/24"; + ENB_INTERFACE_NAME_FOR_S1U = "vboxnet0"; + ENB_IPV4_ADDRESS_FOR_S1U = "192.168.56.1/24"; + ENB_PORT_FOR_S1U = 2152; # Spec 2152 + }; + + } +); + +MACRLCs = ( + { + num_cc = 1; + local_s_if_name = "eno1"; + remote_s_address = "10.0.0.2"; + #local_s_address = "192.168.1.78"; + local_s_address = "10.0.0.1"; + local_s_portc = 50001; + remote_s_portc = 50000; + local_s_portd = 50011; + remote_s_portd = 50010; + tr_s_preference = "nfapi"; + tr_n_preference = "local_RRC"; + } +); + + log_config : + { + global_log_level ="debug"; + global_log_verbosity ="medium"; + hw_log_level ="info"; + hw_log_verbosity ="medium"; + phy_log_level ="info"; + phy_log_verbosity ="medium"; + mac_log_level ="debug"; + mac_log_verbosity ="high"; + rlc_log_level ="debug"; + rlc_log_verbosity ="high"; + pdcp_log_level ="info"; + pdcp_log_verbosity ="medium"; + rrc_log_level ="info"; + rrc_log_verbosity ="high"; + }; + + 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 bc2b3b219c..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; @@ -105,6 +105,40 @@ eNBs = 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; + } ); 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 42ab1e81c7..550de4e1a2 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 771bf09499..2b5a0ca684 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,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/rru.oaisim.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf index 8a0f5feb58..41b322fb55 100644 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf @@ -11,14 +11,14 @@ 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]; } ); log_config = { - global_log_level ="debug"; + global_log_level ="info"; global_log_verbosity ="medium"; hw_log_level ="info"; hw_log_verbosity ="medium"; 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 33b5c25470..c402e624fd 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" @@ -118,7 +118,9 @@ extern int transmission_mode; extern int oaisim_flag; -uint16_t sf_ahead=4; +//uint16_t sf_ahead=4; +extern uint16_t sf_ahead; + //pthread_t main_eNB_thread; @@ -148,7 +150,7 @@ void stop_eNB(int nb_inst); int wakeup_tx(PHY_VARS_eNB *eNB,RU_proc_t *ru_proc); int wakeup_txfh(eNB_rxtx_proc_t *proc,RU_proc_t *ru_proc); void wakeup_prach_eNB(PHY_VARS_eNB *eNB,RU_t *ru,int frame,int subframe); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) void wakeup_prach_eNB_br(PHY_VARS_eNB *eNB,RU_t *ru,int frame,int subframe); #endif extern int codingw; @@ -210,18 +212,20 @@ static inline int rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_nam // if this is IF5 or 3GPP_eNB if (eNB && eNB->RU_list && eNB->RU_list[0] && eNB->RU_list[0]->function < NGFI_RAU_IF4p5) { wakeup_prach_eNB(eNB,NULL,proc->frame_rx,proc->subframe_rx); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) wakeup_prach_eNB_br(eNB,NULL,proc->frame_rx,proc->subframe_rx); #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); @@ -239,26 +243,31 @@ static inline int rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_nam eNB->if_inst->UL_indication(&eNB->UL_INFO); pthread_mutex_unlock(&eNB->UL_INFO_mutex); - + /* this conflict resolution may be totally wrong, to be tested */ + /* CONFLICT RESOLUTION: BEGIN */ 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), @@ -290,7 +299,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); } @@ -349,8 +357,19 @@ static void* tx_thread(void* param) { static void* eNB_thread_rxtx( void* param ) { static int eNB_thread_rxtx_status; - eNB_proc_t *eNB_proc = (eNB_proc_t*)param; - eNB_rxtx_proc_t *proc = &eNB_proc->proc_rxtx[0]; + //eNB_proc_t *eNB_proc = (eNB_proc_t*)param; + eNB_rxtx_proc_t *proc; + + // Working + if(nfapi_mode ==2){ + proc = (eNB_rxtx_proc_t*)param; + } + else{ + eNB_proc_t *eNB_proc = (eNB_proc_t*)param; + proc = &eNB_proc->proc_rxtx[0]; + } + + PHY_VARS_eNB *eNB = RC.eNB[0][proc->CC_id]; //RU_proc_t *ru_proc = NULL; @@ -403,11 +422,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 @@ -420,30 +441,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; @@ -472,6 +469,8 @@ void eNB_top(PHY_VARS_eNB *eNB, int frame_rx, int subframe_rx, char *string,RU_t int wakeup_txfh(eNB_rxtx_proc_t *proc,RU_proc_t *ru_proc) { + if(ru_proc == NULL) + return(0); struct timespec wait; wait.tv_sec=0; wait.tv_nsec=5000000L; @@ -561,7 +560,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]; @@ -701,7 +700,7 @@ void wakeup_prach_eNB(PHY_VARS_eNB *eNB,RU_t *ru,int frame,int subframe) { } -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) void wakeup_prach_eNB_br(PHY_VARS_eNB *eNB,RU_t *ru,int frame,int subframe) { eNB_proc_t *proc = &eNB->proc; @@ -762,6 +761,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. @@ -790,7 +790,7 @@ static void* eNB_thread_prach( void* param ) { LOG_D(PHY,"Running eNB prach procedures\n"); prach_procedures(eNB -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0 #endif ); @@ -804,7 +804,7 @@ static void* eNB_thread_prach( void* param ) { return &eNB_thread_prach_status; } -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) /*! * \brief The prach receive thread of eNB for BL/CE UEs. * \param param is a \ref eNB_proc_t structure which contains the info what to process. @@ -849,7 +849,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) { @@ -858,20 +857,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); } } @@ -887,7 +889,7 @@ void init_eNB_proc(int inst) { eNB_proc_t *proc; eNB_rxtx_proc_t *proc_rxtx; pthread_attr_t *attr0=NULL,*attr1=NULL,*attr_prach=NULL; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) pthread_attr_t *attr_prach_br=NULL; #endif @@ -933,7 +935,7 @@ void init_eNB_proc(int inst) { pthread_attr_init( &proc->attr_asynch_rxtx); pthread_attr_init( &proc_rxtx[0].attr_rxtx); pthread_attr_init( &proc_rxtx[1].attr_rxtx); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) proc->instance_cnt_prach_br = -1; proc->RU_mask_prach_br=0; pthread_mutex_init( &proc->mutex_prach_br, NULL); @@ -945,31 +947,29 @@ void init_eNB_proc(int inst) { attr0 = &proc_rxtx[0].attr_rxtx; attr1 = &proc_rxtx[1].attr_rxtx; attr_prach = &proc->attr_prach; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) attr_prach_br = &proc->attr_prach_br; #endif // 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[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 ); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) pthread_create( &proc->pthread_prach_br, attr_prach_br, eNB_thread_prach_br, eNB ); #endif char name[16]; @@ -1053,13 +1053,13 @@ void kill_eNB_proc(int inst) { LOG_I(PHY, "Destroying prach mutex/cond\n"); pthread_mutex_destroy( &proc->mutex_prach ); pthread_cond_destroy( &proc->cond_prach ); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) proc->instance_cnt_prach_br = 0; pthread_cond_signal( &proc->cond_prach_br ); 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++) { @@ -1124,7 +1124,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]) { @@ -1136,7 +1136,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]) { @@ -1203,7 +1203,7 @@ void init_eNB_afterRU(void) { LOG_I(PHY,"Overwriting eNB->prach_vars.rxsigF[0]:%p\n", eNB->prach_vars.rxsigF[0]); eNB->prach_vars.rxsigF[0] = (int16_t**)malloc16(64*sizeof(int16_t*)); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) for (int ce_level=0;ce_level<4;ce_level++) { LOG_I(PHY,"Overwriting eNB->prach_vars_br.rxsigF.rxsigF[0]:%p\n", eNB->prach_vars_br.rxsigF[ce_level]); eNB->prach_vars_br.rxsigF[ce_level] = (int16_t**)malloc16(64*sizeof(int16_t*)); @@ -1226,7 +1226,7 @@ void init_eNB_afterRU(void) { for (i=0;iRU_list[ru_id]->nb_rx;aa++,i++) { LOG_I(PHY,"Attaching RU %d antenna %d to eNB antenna %d\n",eNB->RU_list[ru_id]->idx,i,aa); eNB->prach_vars.rxsigF[0][aa] = eNB->RU_list[ru_id]->prach_rxsigF[i]; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) for (int ce_level=0;ce_level<4;ce_level++) eNB->prach_vars_br.rxsigF[ce_level][aa] = eNB->RU_list[ru_id]->prach_rxsigF_br[ce_level][i]; #endif @@ -1279,7 +1279,7 @@ void init_eNB_afterRU(void) { RC.ru[ru_id]->wakeup_rxtx = wakeup_rxtx; RC.ru[ru_id]->wakeup_prach_eNB = wakeup_prach_eNB; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) RC.ru[ru_id]->wakeup_prach_eNB_br = wakeup_prach_eNB_br; #endif RC.ru[ru_id]->eNB_top = eNB_top; diff --git a/targets/RT/USER/lte-ru.c b/targets/RT/USER/lte-ru.c index 2051cf969f..b7ca10dfc6 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,12 +114,14 @@ 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 clock_source_t clock_source; extern void phy_init_RU(RU_t*); extern void phy_free_RU(RU_t*); @@ -524,7 +526,7 @@ void fh_if4p5_south_asynch_in(RU_t *ru,int *frame,int *subframe) { } if (packet_type == IF4p5_PULFFT) symbol_mask &= (~(1<= MAKE_VERSION(14, 0, 0)) else if (packet_type == IF4p5_PRACH_BR_CE0) prach_rx &= (~0x2); else if (packet_type == IF4p5_PRACH_BR_CE1) prach_rx &= (~0x4); else if (packet_type == IF4p5_PRACH_BR_CE2) prach_rx &= (~0x8); @@ -680,6 +682,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 @@ -700,6 +715,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); @@ -740,9 +760,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; @@ -760,6 +783,16 @@ 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 +#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 + //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; @@ -798,8 +831,12 @@ void rx_rf(RU_t *ru,int *frame,int *subframe) { if (rxs != fp->samples_per_tti) { +#if defined(USRP_REC_PLAY) + exit_fun("Exiting IQ record/playback"); +#else //exit_fun( "problem receiving samples" ); LOG_E(PHY, "problem receiving samples"); +#endif } } @@ -834,7 +871,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) && @@ -842,15 +879,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 @@ -867,8 +944,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); + } } } @@ -942,7 +1022,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 @@ -1007,7 +1086,7 @@ static void* ru_thread_prach( void* param ) { if (ru->eNB_list[0]){ prach_procedures( ru->eNB_list[0] -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0 #endif ); @@ -1020,7 +1099,7 @@ static void* ru_thread_prach( void* param ) { NULL, proc->frame_prach, 0 -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,0 #endif ); @@ -1035,7 +1114,7 @@ static void* ru_thread_prach( void* param ) { return &ru_thread_prach_status; } -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) static void* ru_thread_prach_br( void* param ) { static int ru_thread_prach_status; @@ -1178,13 +1257,14 @@ void wakeup_eNBs(RU_t *ru) { LOG_D(PHY,"wakeup_eNBs (num %d) for RU %d ru->eNB_top:%p\n",ru->num_eNB,ru->idx, 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]; sprintf(string,"Incoming RU %d",ru->idx); LOG_D(PHY,"RU %d Call eNB_top\n",ru->idx); ru->eNB_top(eNB_list[0],ru->proc.frame_rx,ru->proc.subframe_rx,string,ru); + ru->proc.emulate_rf_busy = 0; } else { @@ -1196,8 +1276,9 @@ void wakeup_eNBs(RU_t *ru) { 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; } } } @@ -1234,7 +1315,7 @@ static inline int wakeup_prach_ru(RU_t *ru) { return(0); } -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) static inline int wakeup_prach_ru_br(RU_t *ru) { struct timespec wait; @@ -1330,14 +1411,15 @@ void fill_rf_config(RU_t *ru, char *rf_config_file) { cfg->num_rb_dl=fp->N_RB_DL; cfg->tx_num_channels=ru->nb_tx; cfg->rx_num_channels=ru->nb_rx; - + cfg->clock_source=clock_source; + for (i=0; inb_tx; i++) { 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", @@ -1416,12 +1498,11 @@ int setup_RU_buffers(RU_t *ru) { static void* ru_stats_thread(void* param) { RU_t *ru = (RU_t*)param; - 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); @@ -1435,6 +1516,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; @@ -1449,6 +1536,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) { @@ -1504,6 +1592,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 // set default return value @@ -1608,23 +1699,41 @@ static void* ru_thread( void* param ) { if (ru->fh_south_in) ru->fh_south_in(ru,&frame,&subframe); else AssertFatal(1==0, "No fronthaul interface at south port"); -/* - LOG_D(PHY,"AFTER fh_south_in - SFN/SF:%d%d RU->proc[RX:%d%d TX:%d%d] RC.eNB[0][0]:[RX:%d%d TX(SFN):%d]\n", - frame,subframe, - proc->frame_rx,proc->subframe_rx, - proc->frame_tx,proc->subframe_tx, - RC.eNB[0][0]->proc.frame_rx,RC.eNB[0][0]->proc.subframe_rx, - RC.eNB[0][0]->proc.frame_tx); +#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 + LOG_D(PHY,"RU thread (do_prach %d, is_prach_subframe %d), received frame %d, subframe %d\n", ru->do_prach, is_prach_subframe(fp, proc->frame_rx, proc->subframe_rx), proc->frame_rx,proc->subframe_rx); -*/ if ((ru->do_prach>0) && (is_prach_subframe(fp, proc->frame_rx, proc->subframe_rx)==1)) { wakeup_prach_ru(ru); } -#ifdef Rel14 +#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); } @@ -1641,10 +1750,39 @@ static void* ru_thread( void* param ) { // If this proc is to provide synchronization, do so wakeup_slaves(proc); +#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); - if(get_nprocs() <= 4){ +#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); @@ -1656,17 +1794,29 @@ static void* ru_thread( void* param ) { 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 } 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); + } } ru_thread_status = 0; @@ -1732,14 +1882,13 @@ void *ru_thread_synch(void *arg) { LOG_I(PHY,"Estimated sync_pos %d, peak_val %d => timing offset %d\n",sync_pos,peak_val,ru->rx_offset); - /* +LOG_M_BEGIN(RU) if ((peak_val > 300000) && (sync_pos > 0)) { - // if (sync_pos++ > 3) { - write_output("ru_sync.m","sync",(void*)&sync_corr[0],fp->samples_per_tti*5,1,2); - write_output("ru_rx.m","rxs",(void*)ru->ru_time.rxdata[0][0],fp->samples_per_tti*10,1,1); + LOG_M("ru_sync.m","sync",(void*)&sync_corr[0],fp->samples_per_tti*5,1,2); + LOG_M("ru_rx.m","rxs",&(ru->eNB_list[0]->common_vars.rxdata[0][0]),fp->samples_per_tti*10,1,1); exit(-1); } - */ +LOG_M_END ru->in_synch=1; } } @@ -1752,6 +1901,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) { @@ -1775,6 +2086,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); void init_RU_proc(RU_t *ru) { @@ -1782,7 +2095,7 @@ void init_RU_proc(RU_t *ru) { RU_proc_t *proc; pthread_attr_t *attr_FH=NULL,*attr_FH1=NULL,*attr_prach=NULL,*attr_asynch=NULL,*attr_synch=NULL,*attr_emulateRF=NULL; //pthread_attr_t *attr_fep=NULL; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) pthread_attr_t *attr_prach_br=NULL; #endif char name[100]; @@ -1835,12 +2148,21 @@ void init_RU_proc(RU_t *ru) { pthread_attr_init( &proc->attr_asynch_rxtx); pthread_attr_init( &proc->attr_fep); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) proc->instance_cnt_prach_br = -1; pthread_mutex_init( &proc->mutex_prach_br, NULL); 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; @@ -1849,21 +2171,36 @@ void init_RU_proc(RU_t *ru) { attr_synch = &proc->attr_synch; attr_asynch = &proc->attr_asynch_rxtx; attr_emulateRF = &proc->attr_emulateRF; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) attr_prach_br = &proc->attr_prach_br; #endif #endif pthread_create( &proc->pthread_FH, attr_FH, ru_thread, (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 (get_nprocs() > 4) + 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) { pthread_create( &proc->pthread_prach, attr_prach, ru_thread_prach, (void*)ru ); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) pthread_create( &proc->pthread_prach_br, attr_prach_br, ru_thread_prach_br, (void*)ru ); #endif if (ru->is_slave == 1) pthread_create( &proc->pthread_synch, attr_synch, ru_thread_synch, (void*)ru); @@ -1886,8 +2223,8 @@ 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); @@ -1898,6 +2235,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); @@ -1913,7 +2257,7 @@ void kill_RU_proc(int inst) pthread_cond_signal(&proc->cond_prach); pthread_mutex_unlock(&proc->mutex_prach); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) pthread_mutex_lock(&proc->mutex_prach_br); proc->instance_cnt_prach_br = 0; pthread_cond_signal(&proc->cond_prach_br); @@ -1936,14 +2280,14 @@ 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); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) LOG_D(PHY, "Joining pthread_prach_br\n"); pthread_join(proc->pthread_prach_br, NULL); #endif @@ -1959,28 +2303,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); @@ -2007,7 +2329,7 @@ void kill_RU_proc(int inst) pthread_attr_destroy(&proc->attr_asynch_rxtx); pthread_attr_destroy(&proc->attr_fep); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) pthread_mutex_destroy(&proc->mutex_prach_br); pthread_cond_destroy(&proc->cond_prach_br); pthread_attr_destroy(&proc->attr_prach_br); @@ -2103,7 +2425,7 @@ void configure_ru(int idx, LOG_I(PHY,"REMOTE_IF4p5: prach_FrequOffset %d, prach_ConfigIndex %d\n", config->prach_FreqOffset[0],config->prach_ConfigIndex[0]); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) int i; for (i=0;i<4;i++) { config->emtc_prach_CElevel_enable[0][i] = ru->frame_parms->prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[i]; @@ -2123,16 +2445,16 @@ void configure_rru(int idx, RRU_config_t *config = (RRU_config_t *)arg; RU_t *ru = RC.ru[idx]; - ru->frame_parms->eutra_band = config->band_list[0]; - ru->frame_parms->dl_CarrierFreq = config->tx_freq[0]; - ru->frame_parms->ul_CarrierFreq = config->rx_freq[0]; - if (ru->frame_parms->dl_CarrierFreq == ru->frame_parms->ul_CarrierFreq) { - ru->frame_parms->frame_type = TDD; - ru->frame_parms->tdd_config = config->tdd_config[0]; - ru->frame_parms->tdd_config_S = config->tdd_config_S[0]; + ru->frame_parms.eutra_band = config->band_list[0]; + ru->frame_parms.dl_CarrierFreq = config->tx_freq[0]; + ru->frame_parms.ul_CarrierFreq = config->rx_freq[0]; + if (ru->frame_parms.dl_CarrierFreq == ru->frame_parms.ul_CarrierFreq) { + LOG_I(PHY,"Setting RRU to TDD frame type\n"); + ru->frame_parms.frame_type = TDD; + ru->frame_parms.tdd_config = config->tdd_config[0]; + ru->frame_parms.tdd_config_S = config->tdd_config_S[0]; } - else - ru->frame_parms->frame_type = FDD; + else ru->frame_parms.frame_type = FDD; ru->att_tx = config->att_tx[0]; ru->att_rx = config->att_rx[0]; ru->frame_parms->N_RB_DL = config->N_RB_DL[0]; @@ -2140,14 +2462,14 @@ void configure_rru(int idx, ru->frame_parms->threequarter_fs = config->threequarter_fs[0]; ru->frame_parms->pdsch_config_common.referenceSignalPower = ru->max_pdschReferenceSignalPower-config->att_tx[0]; if (ru->function==NGFI_RRU_IF4p5) { - ru->frame_parms->att_rx = ru->att_rx; - ru->frame_parms->att_tx = ru->att_tx; - + ru->frame_parms.att_rx = ru->att_rx; + ru->frame_parms.att_tx = ru->att_tx; + LOG_I(PHY,"Setting ru->function to NGFI_RRU_IF4p5, prach_FrequOffset %d, prach_ConfigIndex %d, att (%d,%d)\n", config->prach_FreqOffset[0],config->prach_ConfigIndex[0],ru->att_tx,ru->att_rx); - ru->frame_parms->prach_config_common.prach_ConfigInfo.prach_FreqOffset = config->prach_FreqOffset[0]; - ru->frame_parms->prach_config_common.prach_ConfigInfo.prach_ConfigIndex = config->prach_ConfigIndex[0]; -#ifdef Rel14 + ru->frame_parms.prach_config_common.prach_ConfigInfo.prach_FreqOffset = config->prach_FreqOffset[0]; + ru->frame_parms.prach_config_common.prach_ConfigInfo.prach_ConfigIndex = config->prach_ConfigIndex[0]; +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) for (int i=0;i<4;i++) { ru->frame_parms->prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[i] = config->emtc_prach_CElevel_enable[0][i]; ru->frame_parms->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[i] = config->emtc_prach_FreqOffset[0][i]; @@ -2345,7 +2667,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) { @@ -2438,6 +2760,37 @@ void init_RU(char *rf_config_file) { +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++) { @@ -2466,7 +2819,7 @@ void RCconfig_RU(void) { RC.ru = (RU_t**)malloc(RC.nb_RU*sizeof(RU_t*)); - RC.ru_mask=(1< - -#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" @@ -117,6 +114,8 @@ int nfapi_sync_var=-1; //!< protected by mutex \ref nfapi_sync_mutex uint8_t nfapi_mode = 0; // Default to monolithic mode +uint16_t sf_ahead=4; + pthread_cond_t sync_cond; pthread_mutex_t sync_mutex; int sync_var=-1; //!< protected by mutex \ref sync_mutex. @@ -131,28 +130,26 @@ volatile int start_UE = 0; #endif volatile int oai_exit = 0; -static clock_source_t clock_source = internal; +clock_source_t clock_source = internal; static int wait_for_sync = 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; - +int simL1flag; +int snr_dB; FILE *input_fd=NULL; @@ -338,10 +335,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; + } } @@ -457,7 +458,7 @@ void *l2l1_task(void *arg) { switch (ITTI_MSG_ID(message_p)) { case INITIALIZE_MESSAGE: /* Start eNB thread */ - LOG_D(EMU, "L2L1 TASK received %s\n", ITTI_MSG_NAME(message_p)); + printf("L2L1 TASK received %s\n", ITTI_MSG_NAME(message_p)); start_eNB = 1; break; @@ -469,7 +470,7 @@ void *l2l1_task(void *arg) { break; default: - LOG_E(EMU, "Received unexpected message %s\n", ITTI_MSG_NAME(message_p)); + printf("Received unexpected message %s\n", ITTI_MSG_NAME(message_p)); break; } } while (ITTI_MSG_ID(message_p) != INITIALIZE_MESSAGE); @@ -496,11 +497,11 @@ void *l2l1_task(void *arg) { break; case MESSAGE_TEST: - LOG_I(EMU, "Received %s\n", ITTI_MSG_NAME(message_p)); + printf("Received %s\n", ITTI_MSG_NAME(message_p)); break; default: - LOG_E(EMU, "Received unexpected message %s\n", ITTI_MSG_NAME(message_p)); + printf("Received unexpected message %s\n", ITTI_MSG_NAME(message_p)); break; } @@ -519,12 +520,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) { @@ -537,33 +538,27 @@ 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)); /* Read RC configuration file */ RCConfig(); NB_eNB_INST = RC.nb_inst; - NB_RU = RC.nb_RU; - printf("Configuration: nb_rrc_inst %d, nb_L1_inst %d, nb_ru %d\n",NB_eNB_INST,RC.nb_L1_inst,NB_RU); + printf("Configuration: nb_rrc_inst %d, nb_L1_inst %d, nb_ru %d\n",NB_eNB_INST,RC.nb_L1_inst,RC.nb_RU); if (nonbiotflag <= 0) { load_NB_IoT(); printf(" nb_nbiot_rrc_inst %d, nb_nbiot_L1_inst %d, nb_nbiot_macrlc_inst %d\n", @@ -576,11 +571,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 @@ -911,7 +901,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 ) @@ -931,10 +930,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); @@ -947,7 +942,7 @@ int main( int argc, char **argv ) printf("Reading in command-line options\n"); - get_options (); + get_options (); if (CONFIG_ISFLAGSET(CONFIG_ABORT) ) { fprintf(stderr,"Getting configuration failed\n"); exit(-1); @@ -955,7 +950,7 @@ int main( int argc, char **argv ) #if T_TRACER - T_init(T_port, 1-T_nowait, T_dont_fork); + T_Config_Init(); #endif @@ -965,21 +960,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); @@ -1142,13 +1131,13 @@ int main( int argc, char **argv ) rt_sleep_ns(10*100000000ULL); - if (nfapi_mode) { - + if (nfapi_mode) + { printf("NFAPI*** - mutex and cond created - will block shortly for completion of PNF connection\n"); pthread_cond_init(&sync_cond,NULL); pthread_mutex_init(&sync_mutex, NULL); } - + const char *nfapi_mode_str = ""; switch(nfapi_mode) { @@ -1224,6 +1213,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"); @@ -1275,8 +1265,12 @@ 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 ac88699b93..2f8209f2d3 100644 --- a/targets/RT/USER/lte-softmodem.h +++ b/targets/RT/USER/lte-softmodem.h @@ -24,7 +24,7 @@ #include #include "rt_wrapper.h" #include "../../ARCH/COMMON/common_lib.h" -#undef MALLOC +//#undef MALLOC #include "assertions.h" #include "msc.h" #include "PHY/types.h" @@ -52,6 +52,8 @@ #define CONFIG_HLP_DBGUEPR "UE run normal prach power ramping, but don't continue random-access\n" #define CONFIG_HLP_CALPRACH "UE run normal prach with maximum power, but don't continue random-access\n" #define CONFIG_HLP_NOL2CN "bypass L2 and upper layers\n" +#define CONFIG_HLP_SIML1 "activate RF simulator instead of HW\n" +#define CONFIG_HLP_NUMUE "number of UE instances\n" #define CONFIG_HLP_UERXG "set UE RX gain\n" #define CONFIG_HLP_UERXGOFF "external UE amplifier offset\n" #define CONFIG_HLP_UETXG "set UE TX gain\n" @@ -63,7 +65,7 @@ #define CONFIG_HLP_UELOOP "get softmodem (UE) to loop through memory instead of acquiring from HW\n" #define CONFIG_HLP_PHYTST "test UE phy layer, mac disabled\n" #define CONFIG_HLP_DMAMAP "sets flag for improved EXMIMO UE performance\n" -#define CONFIG_HLP_EXCCLK "tells hardware to use an external clock reference\n" +#define CONFIG_HLP_CLK "tells hardware to use a clock reference (0:internal, 1:external, 2:gpsdo)\n" #define CONFIG_HLP_USIM "use XOR autentication algo in case of test usim mode\n" #define CONFIG_HLP_NOSNGLT "Disables single-thread mode in lte-softmodem\n" #define CONFIG_HLP_TADV "Set timing_advance\n" @@ -75,13 +77,15 @@ #define CONFIG_HLP_DLMCS "Set the maximum downlink MCS\n" #define CONFIG_HLP_STMON "Enable processing timing measurement of lte softmodem on per subframe basis \n" #define CONFIG_HLP_PRB "Set the PRB, valid values: 6, 25, 50, 100 \n" +#define CONFIG_HLP_EMULIFACE "Set the interface name for the multicast transport for emulation mode (e.g. eth0, lo, etc.) \n" +//#define CONFIG_HLP_NUMUES "Set the number of UEs for the emulation" #define CONFIG_HLP_MSLOTS "Skip the missed slots/subframes \n" #define CONFIG_HLP_ULMCS "Set the maximum uplink MCS\n" #define CONFIG_HLP_TDD "Set hardware to TDD mode (default: FDD). Used only with -U (otherwise set in config file).\n" +#define CONFIG_HLP_SNR "Set average SNR in dB (for --siml1 option)\n" #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" @@ -129,13 +133,18 @@ /* optname helpstr paramflags XXXptr defXXXval type numelt */ /*--------------------------------------------------------------------------------------------------------------------------------------------------*/ #define CMDLINE_UEPARAMS_DESC { \ -{"ue-rxgain", CONFIG_HLP_UERXG, 0, dblptr:&(rx_gain[0][0]), defdblval:0, TYPE_DOUBLE, 0}, \ +{"siml1", CONFIG_HLP_SIML1, PARAMFLAG_BOOL, iptr:&simL1flag, defintval:0, TYPE_INT, 0}, \ +{"U", CONFIG_HLP_NUMUE, 0, u8ptr:&NB_UE_INST, defuintval:1, TYPE_UINT, 0}, \ +{"ue-rxgain", CONFIG_HLP_UERXG, 0, dblptr:&(rx_gain[0][0]), defdblval:130, TYPE_DOUBLE, 0}, \ {"ue-rxgain-off", CONFIG_HLP_UERXGOFF, 0, dblptr:&rx_gain_off, defdblval:0, TYPE_DOUBLE, 0}, \ {"ue-txgain", CONFIG_HLP_UETXG, 0, dblptr:&(tx_gain[0][0]), defdblval:0, TYPE_DOUBLE, 0}, \ {"ue-nb-ant-rx", CONFIG_HLP_UENANTR, 0, u8ptr:&nb_antenna_rx, defuintval:1, TYPE_UINT8, 0}, \ {"ue-nb-ant-tx", CONFIG_HLP_UENANTT, 0, u8ptr:&nb_antenna_tx, defuintval:1, TYPE_UINT8, 0}, \ {"ue-scan-carrier", CONFIG_HLP_UESCAN, PARAMFLAG_BOOL, iptr:&UE_scan_carrier, defintval:0, TYPE_INT, 0}, \ -{"ue-max-power", NULL, 0, iptr:&(tx_max_power[0]), defintval:90, TYPE_INT, 0}, \ +{"ue-max-power", NULL, 0, iptr:&(tx_max_power[0]), defintval:23, TYPE_INT, 0}, \ +{"emul-iface", CONFIG_HLP_EMULIFACE, 0, strptr:&emul_iface, defstrval:"lo", TYPE_STRING, 100}, \ +{"L2-emul", NULL, 0, u8ptr:&nfapi_mode, defuintval:3, TYPE_UINT8, 0}, \ +{"num-ues", NULL, 0, u8ptr:&(NB_UE_INST), defuintval:1, TYPE_UINT8, 0}, \ {"r" , CONFIG_HLP_PRB, 0, u8ptr:&(frame_parms[0]->N_RB_DL), defintval:25, TYPE_UINT8, 0}, \ {"dlsch-demod-shift", CONFIG_HLP_DLSHIFT, 0, iptr:(int32_t *)&dlsch_demod_shift, defintval:0, TYPE_INT, 0}, \ } @@ -152,9 +161,9 @@ {"phy-test", CONFIG_HLP_PHYTST, PARAMFLAG_BOOL, iptr:&phy_test, defintval:0, TYPE_INT, 0}, \ {"usim-test", CONFIG_HLP_USIM, PARAMFLAG_BOOL, u8ptr:&usim_test, defintval:0, TYPE_UINT8, 0}, \ {"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}, \ +{"clock", CONFIG_HLP_CLK, 0, uptr:&clock_source, defintval:0, TYPE_UINT, 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}, \ @@ -167,15 +176,14 @@ {"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}, \ +{"s" , CONFIG_HLP_SNR, 0, iptr:&snr_dB, defintval:25, TYPE_INT, 0}, \ {"numerology" , CONFIG_HLP_NUMEROLOGY, PARAMFLAG_BOOL, iptr:&numerology, defintval:0, TYPE_INT, 0}, \ {"emulate-rf" , CONFIG_HLP_EMULATE_RF, PARAMFLAG_BOOL, iptr:&emulate_rf, defintval:0, TYPE_INT, 0}, \ {"codingw" , CONFIG_HLP_CODINGW, PARAMFLAG_BOOL, iptr:&codingw, defintval:0, TYPE_INT, 0}, \ @@ -185,7 +193,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 */ @@ -194,28 +201,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 /***************************************************************************************************************************************/ @@ -258,6 +248,7 @@ extern void kill_eNB_proc(int inst); // In lte-ru.c extern void init_RU(const char*); +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); @@ -267,7 +258,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,int,int,int); +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); @@ -279,6 +270,10 @@ extern void init_te_thread(PHY_VARS_eNB *); extern void kill_td_thread(PHY_VARS_eNB *); extern void kill_te_thread(PHY_VARS_eNB *); +extern void RCConfig_sim(void); +extern void init_ocm(double,double); +extern void init_ue_devices(PHY_VARS_UE *); + PHY_VARS_UE* init_ue_vars(LTE_DL_FRAME_PARMS *frame_parms, uint8_t UE_id, uint8_t abstraction_flag); @@ -287,4 +282,11 @@ void init_eNB_afterRU(void); extern int stop_L1L2(module_id_t enb_id); extern int restart_L1L2(module_id_t enb_id); + +extern void init_UE_stub_single_thread(int nb_inst,int eMBMS_active, int uecap_xer_in, char *emul_iface); + +extern PHY_VARS_UE* init_ue_vars(LTE_DL_FRAME_PARMS *frame_parms, + uint8_t UE_id, + uint8_t abstraction_flag); + #endif diff --git a/targets/RT/USER/lte-ue.c b/targets/RT/USER/lte-ue.c index 1eb4ba78f1..837531416b 100644 --- a/targets/RT/USER/lte-ue.c +++ b/targets/RT/USER/lte-ue.c @@ -35,7 +35,11 @@ #include "LAYER2/MAC/mac.h" #include "RRC/LTE/rrc_extern.h" +#include "PHY_INTERFACE/phy_stub_UE.h" #include "PHY_INTERFACE/phy_interface_extern.h" +#include "PHY/INIT/phy_init.h" +#include "PHY/MODULATION/modulation_UE.h" +#include "PHY/LTE_ESTIMATION/lte_estimation.h" #undef MALLOC //there are two conflicting definitions, so we better make sure we don't use it at all //#undef FRAME_LENGTH_COMPLEX_SAMPLES //there are two conflicting definitions, so we better make sure we don't use it at all @@ -43,84 +47,114 @@ #include "PHY/phy_extern_ue.h" #include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_proto.h" +#include "SCHED_UE/sched_UE.h" +#include "PHY/LTE_UE_TRANSPORT/transport_proto_ue.h" -#include "UTIL/LOG/log_extern.h" +#include + +#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 "T.h" extern double cpuf; +extern uint8_t nfapi_mode; #define FRAME_PERIOD 100000000ULL #define DAQ_PERIOD 66667ULL #define FIFO_PRIORITY 40 typedef enum { - pss=0, - pbch=1, - si=2 + pss=0, + pbch=1, + si=2 } sync_mode_t; 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,int,int); +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); +extern void oai_subframe_ind(uint16_t sfn, uint16_t sf); +extern void multicast_link_start(void (*rx_handlerP) (unsigned int, char *), + unsigned char _multicast_group, char *multicast_ifname); +extern int oai_nfapi_crc_indication(nfapi_crc_indication_t *crc_ind); +extern int oai_nfapi_crc_indication(nfapi_crc_indication_t *crc_ind); +extern int oai_nfapi_harq_indication(nfapi_harq_indication_t *harq_ind); +extern int oai_nfapi_sr_indication(nfapi_sr_indication_t *ind); +extern int oai_nfapi_rx_ind(nfapi_rx_indication_t *ind); +extern int multicast_link_write_sock(int groupP, char *dataP, uint32_t sizeP); + +extern int simL1flag; + +//extern int tx_req_UE_MAC1(); + +void ue_stub_rx_handler(unsigned int, char *); int32_t **rxdata; int32_t **txdata; +int timer_subframe; +int timer_frame; +SF_ticking *phy_stub_ticking; + #define KHz (1000UL) #define MHz (1000*KHz) typedef struct eutra_band_s { - int16_t band; - uint32_t ul_min; - uint32_t ul_max; - uint32_t dl_min; - uint32_t dl_max; - lte_frame_type_t frame_type; + int16_t band; + uint32_t ul_min; + uint32_t ul_max; + uint32_t dl_min; + uint32_t dl_max; + lte_frame_type_t frame_type; } eutra_band_t; typedef struct band_info_s { - int nbands; - eutra_band_t band_info[100]; + int nbands; + eutra_band_t band_info[100]; } band_info_t; band_info_t bands_to_scan; static const eutra_band_t eutra_bands[] = { - { 1, 1920 * MHz, 1980 * MHz, 2110 * MHz, 2170 * MHz, FDD}, - { 2, 1850 * MHz, 1910 * MHz, 1930 * MHz, 1990 * MHz, FDD}, - { 3, 1710 * MHz, 1785 * MHz, 1805 * MHz, 1880 * MHz, FDD}, - { 4, 1710 * MHz, 1755 * MHz, 2110 * MHz, 2155 * MHz, FDD}, - { 5, 824 * MHz, 849 * MHz, 869 * MHz, 894 * MHz, FDD}, - { 6, 830 * MHz, 840 * MHz, 875 * MHz, 885 * MHz, FDD}, - { 7, 2500 * MHz, 2570 * MHz, 2620 * MHz, 2690 * MHz, FDD}, - { 8, 880 * MHz, 915 * MHz, 925 * MHz, 960 * MHz, FDD}, - { 9, 1749900 * KHz, 1784900 * KHz, 1844900 * KHz, 1879900 * KHz, FDD}, - {10, 1710 * MHz, 1770 * MHz, 2110 * MHz, 2170 * MHz, FDD}, - {11, 1427900 * KHz, 1452900 * KHz, 1475900 * KHz, 1500900 * KHz, FDD}, - {12, 698 * MHz, 716 * MHz, 728 * MHz, 746 * MHz, FDD}, - {13, 777 * MHz, 787 * MHz, 746 * MHz, 756 * MHz, FDD}, - {14, 788 * MHz, 798 * MHz, 758 * MHz, 768 * MHz, FDD}, - {17, 704 * MHz, 716 * MHz, 734 * MHz, 746 * MHz, FDD}, - {20, 832 * MHz, 862 * MHz, 791 * MHz, 821 * MHz, FDD}, - {22, 3510 * MHz, 3590 * MHz, 3410 * MHz, 3490 * MHz, FDD}, - {33, 1900 * MHz, 1920 * MHz, 1900 * MHz, 1920 * MHz, TDD}, - {34, 2010 * MHz, 2025 * MHz, 2010 * MHz, 2025 * MHz, TDD}, - {35, 1850 * MHz, 1910 * MHz, 1850 * MHz, 1910 * MHz, TDD}, - {36, 1930 * MHz, 1990 * MHz, 1930 * MHz, 1990 * MHz, TDD}, - {37, 1910 * MHz, 1930 * MHz, 1910 * MHz, 1930 * MHz, TDD}, - {38, 2570 * MHz, 2620 * MHz, 2570 * MHz, 2630 * MHz, TDD}, - {39, 1880 * MHz, 1920 * MHz, 1880 * MHz, 1920 * MHz, TDD}, - {40, 2300 * MHz, 2400 * MHz, 2300 * MHz, 2400 * MHz, TDD}, - {41, 2496 * MHz, 2690 * MHz, 2496 * MHz, 2690 * MHz, TDD}, - {42, 3400 * MHz, 3600 * MHz, 3400 * MHz, 3600 * MHz, TDD}, - {43, 3600 * MHz, 3800 * MHz, 3600 * MHz, 3800 * MHz, TDD}, - {44, 703 * MHz, 803 * MHz, 703 * MHz, 803 * MHz, TDD}, + { 1, 1920 * MHz, 1980 * MHz, 2110 * MHz, 2170 * MHz, FDD}, + { 2, 1850 * MHz, 1910 * MHz, 1930 * MHz, 1990 * MHz, FDD}, + { 3, 1710 * MHz, 1785 * MHz, 1805 * MHz, 1880 * MHz, FDD}, + { 4, 1710 * MHz, 1755 * MHz, 2110 * MHz, 2155 * MHz, FDD}, + { 5, 824 * MHz, 849 * MHz, 869 * MHz, 894 * MHz, FDD}, + { 6, 830 * MHz, 840 * MHz, 875 * MHz, 885 * MHz, FDD}, + { 7, 2500 * MHz, 2570 * MHz, 2620 * MHz, 2690 * MHz, FDD}, + { 8, 880 * MHz, 915 * MHz, 925 * MHz, 960 * MHz, FDD}, + { 9, 1749900 * KHz, 1784900 * KHz, 1844900 * KHz, 1879900 * KHz, FDD}, + {10, 1710 * MHz, 1770 * MHz, 2110 * MHz, 2170 * MHz, FDD}, + {11, 1427900 * KHz, 1452900 * KHz, 1475900 * KHz, 1500900 * KHz, FDD}, + {12, 698 * MHz, 716 * MHz, 728 * MHz, 746 * MHz, FDD}, + {13, 777 * MHz, 787 * MHz, 746 * MHz, 756 * MHz, FDD}, + {14, 788 * MHz, 798 * MHz, 758 * MHz, 768 * MHz, FDD}, + {17, 704 * MHz, 716 * MHz, 734 * MHz, 746 * MHz, FDD}, + {20, 832 * MHz, 862 * MHz, 791 * MHz, 821 * MHz, FDD}, + {22, 3510 * MHz, 3590 * MHz, 3410 * MHz, 3490 * MHz, FDD}, + {33, 1900 * MHz, 1920 * MHz, 1900 * MHz, 1920 * MHz, TDD}, + {34, 2010 * MHz, 2025 * MHz, 2010 * MHz, 2025 * MHz, TDD}, + {35, 1850 * MHz, 1910 * MHz, 1850 * MHz, 1910 * MHz, TDD}, + {36, 1930 * MHz, 1990 * MHz, 1930 * MHz, 1990 * MHz, TDD}, + {37, 1910 * MHz, 1930 * MHz, 1910 * MHz, 1930 * MHz, TDD}, + {38, 2570 * MHz, 2620 * MHz, 2570 * MHz, 2630 * MHz, TDD}, + {39, 1880 * MHz, 1920 * MHz, 1880 * MHz, 1920 * MHz, TDD}, + {40, 2300 * MHz, 2400 * MHz, 2300 * MHz, 2400 * MHz, TDD}, + {41, 2496 * MHz, 2690 * MHz, 2496 * MHz, 2690 * MHz, TDD}, + {42, 3400 * MHz, 3600 * MHz, 3400 * MHz, 3600 * MHz, TDD}, + {43, 3600 * MHz, 3800 * MHz, 3600 * MHz, 3800 * MHz, TDD}, + {44, 703 * MHz, 803 * MHz, 703 * MHz, 803 * MHz, TDD}, }; @@ -138,22 +172,25 @@ 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; - // initialize all signal buffers - init_lte_ue_signal(ue,1,abstraction_flag); - // intialize transport - init_lte_ue_transport(ue,abstraction_flag); + + // 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 + init_lte_ue_signal(ue,1,abstraction_flag); + // intialize transport + init_lte_ue_transport(ue,abstraction_flag); + } return(ue); } @@ -166,68 +203,140 @@ char uecap_xer[1024]; void init_thread(int sched_runtime, int sched_deadline, int sched_fifo, cpu_set_t *cpuset, char * name) { #ifdef DEADLINE_SCHEDULER - if (sched_runtime!=0) { - struct sched_attr attr= {0}; - attr.size = sizeof(attr); - attr.sched_policy = SCHED_DEADLINE; - attr.sched_runtime = sched_runtime; - attr.sched_deadline = sched_deadline; - attr.sched_period = 0; - AssertFatal(sched_setattr(0, &attr, 0) == 0, - "[SCHED] %s thread: sched_setattr failed %s \n", name, strerror(errno)); - LOG_I(HW,"[SCHED][eNB] %s deadline thread %lu started on CPU %d\n", - name, (unsigned long)gettid(), sched_getcpu()); - } + if (sched_runtime!=0) { + struct sched_attr attr= {0}; + attr.size = sizeof(attr); + attr.sched_policy = SCHED_DEADLINE; + attr.sched_runtime = sched_runtime; + attr.sched_deadline = sched_deadline; + attr.sched_period = 0; + AssertFatal(sched_setattr(0, &attr, 0) == 0, + "[SCHED] %s thread: sched_setattr failed %s \n", name, strerror(errno)); + LOG_I(HW,"[SCHED][eNB] %s deadline thread %lu started on CPU %d\n", + name, (unsigned long)gettid(), sched_getcpu()); + } #else - if (CPU_COUNT(cpuset) > 0) - AssertFatal( 0 == pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), cpuset), ""); - struct sched_param sp; - sp.sched_priority = sched_fifo; - AssertFatal(pthread_setschedparam(pthread_self(),SCHED_FIFO,&sp)==0, - "Can't set thread priority, Are you root?\n"); - /* Check the actual affinity mask assigned to the thread */ - cpu_set_t *cset=CPU_ALLOC(CPU_SETSIZE); - if (0 == pthread_getaffinity_np(pthread_self(), CPU_ALLOC_SIZE(CPU_SETSIZE), cset)) { - char txt[512]={0}; - for (int j = 0; j < CPU_SETSIZE; j++) - if (CPU_ISSET(j, cset)) - sprintf(txt+strlen(txt), " %d ", j); - printf("CPU Affinity of thread %s is %s\n", name, txt); - } - CPU_FREE(cset); + if (CPU_COUNT(cpuset) > 0) + AssertFatal( 0 == pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), cpuset), ""); + struct sched_param sp; + sp.sched_priority = sched_fifo; + AssertFatal(pthread_setschedparam(pthread_self(),SCHED_FIFO,&sp)==0, + "Can't set thread priority, Are you root?\n"); + /* Check the actual affinity mask assigned to the thread */ + cpu_set_t *cset=CPU_ALLOC(CPU_SETSIZE); + if (0 == pthread_getaffinity_np(pthread_self(), CPU_ALLOC_SIZE(CPU_SETSIZE), cset)) { + char txt[512]={0}; + for (int j = 0; j < CPU_SETSIZE; j++) + if (CPU_ISSET(j, cset)) + sprintf(txt+strlen(txt), " %d ", j); + printf("CPU Affinity of thread %s is %s\n", name, txt); + } + CPU_FREE(cset); #endif } -void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in, int timing_correction) { +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"); - + l2_init_ue(eMBMS_active,(uecap_xer_in==1)?uecap_xer:NULL, 0,// cba_group_active 0); // HO flag - -#ifdef NR -// nr_l2_init_ue(); -// nr_l3_init_ue(); -#endif - + if (PHY_vars_UE_g==NULL) PHY_vars_UE_g = (PHY_VARS_UE***)calloc(1+nb_inst,sizeof(PHY_VARS_UE**)); + for (inst=0;instframe_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) + UE->mac_enabled = 0; + else + UE->mac_enabled = 1; + + if (UE->mac_enabled == 0) { //set default UL parameters for testing mode + for (int i=0; ipusch_config_dedicated[i].betaOffset_ACK_Index = 0; + UE->pusch_config_dedicated[i].betaOffset_RI_Index = 0; + UE->pusch_config_dedicated[i].betaOffset_CQI_Index = 2; + + UE->scheduling_request_config[i].sr_PUCCH_ResourceIndex = 0; + UE->scheduling_request_config[i].sr_ConfigIndex = 7+(0%3); + UE->scheduling_request_config[i].dsr_TransMax = sr_n4; + } + } + + UE->UE_scan = UE_scan; + UE->UE_scan_carrier = UE_scan_carrier; + UE->mode = mode; + printf("UE->mode = %d\n",mode); + + if (UE->mac_enabled == 1) { + UE->pdcch_vars[0][0]->crnti = 0x1234; + UE->pdcch_vars[1][0]->crnti = 0x1234; + }else { + UE->pdcch_vars[0][0]->crnti = 0x1235; + UE->pdcch_vars[1][0]->crnti = 0x1235; + } + UE->rx_total_gain_dB = rxgain; + UE->tx_power_max_dBm = txpowermax; + + 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]); init_UE_threads(inst); - UE = PHY_vars_UE_g[inst][0]; - if (oaisim_flag == 0) { + if (simL1flag == 0) { ret = openair0_device_load(&(UE->rfdevice), &openair0_cfg[0]); if (ret !=0){ exit_fun("Error loading device library"); @@ -235,7 +344,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, @@ -243,16 +352,78 @@ void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in, int timing_correcti } printf("UE threads created by %ld\n", gettid()); -#if 0 -#if defined(ENABLE_USE_MME) - extern volatile int start_UE; - while (start_UE == 0) { - sleep(1); - } -#endif -#endif } +// 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) { + + int inst; + + LOG_I(PHY,"UE : Calling Layer 2 for initialization, nb_inst: %d \n", nb_inst); + + l2_init_ue(eMBMS_active,(uecap_xer_in==1)?uecap_xer:NULL, + 0,// cba_group_active + 0); // HO flag + + for (inst=0;instis_synchronized = 0; printf("UE_thread_sync in with PHY_vars_UE %p\n",arg); - cpu_set_t cpuset; + cpu_set_t cpuset; CPU_ZERO(&cpuset); if ( threads.iq != -1 ) CPU_SET(threads.iq, &cpuset); // this thread priority must be lower that the main acquisition thread sprintf(threadname, "sync UE %d\n", UE->Mod_id); init_thread(100000, 500000, FIFO_PRIORITY-1, &cpuset, threadname); - + printf("starting UE synch thread (IC %d)\n",UE->proc.instance_cnt_synch); ind = 0; found = 0; @@ -305,7 +476,7 @@ static void *UE_thread_synch(void *arg) ind++; } while (ind < sizeof(eutra_bands) / sizeof(eutra_bands[0])); - + if (found == 0) { LOG_E(PHY,"Can't find EUTRA band for frequency %d",UE->frame_parms.dl_CarrierFreq); exit_fun("Can't find EUTRA band for frequency"); @@ -319,7 +490,7 @@ static void *UE_thread_synch(void *arg) openair0_cfg[UE->rf_map.card].rx_freq[UE->rf_map.chain+i] = UE->frame_parms.dl_CarrierFreq; openair0_cfg[UE->rf_map.card].tx_freq[UE->rf_map.chain+i] = UE->frame_parms.ul_CarrierFreq; openair0_cfg[UE->rf_map.card].autocal[UE->rf_map.chain+i] = 1; - if (uplink_frequency_offset[CC_id][i] != 0) // + if (uplink_frequency_offset[CC_id][i] != 0) // openair0_cfg[UE->rf_map.card].duplex_mode = duplex_mode_FDD; else //FDD openair0_cfg[UE->rf_map.card].duplex_mode = duplex_mode_TDD; @@ -341,15 +512,18 @@ static void *UE_thread_synch(void *arg) } } - while (sync_var<0) - pthread_cond_wait(&sync_cond, &sync_mutex); - pthread_mutex_unlock(&sync_mutex); +/* + while (sync_var<0) + pthread_cond_wait(&sync_cond, &sync_mutex); + pthread_mutex_unlock(&sync_mutex); +*/ + wait_sync("UE_thread_sync"); - printf("Started device, unlocked sync_mutex (UE_sync_thread)\n"); + printf("Started device, unlocked sync_mutex (UE_sync_thread)\n"); - if (UE->rfdevice.trx_start_func(&UE->rfdevice) != 0 ) { - LOG_E(HW,"Could not start the device\n"); - oai_exit=1; + if (UE->rfdevice.trx_start_func(&UE->rfdevice) != 0 ) { + LOG_E(HW,"Could not start the device\n"); + oai_exit=1; } while (oai_exit==0) { @@ -358,202 +532,201 @@ static void *UE_thread_synch(void *arg) // the thread waits here most of the time pthread_cond_wait( &UE->proc.cond_synch, &UE->proc.mutex_synch ); AssertFatal ( 0== pthread_mutex_unlock(&UE->proc.mutex_synch), ""); - + switch (sync_mode) { case pss: LOG_I(PHY,"[SCHED][UE] Scanning band %d (%d), freq %u\n",bands_to_scan.band_info[current_band].band, current_band,bands_to_scan.band_info[current_band].dl_min+current_offset); lte_sync_timefreq(UE,current_band,bands_to_scan.band_info[current_band].dl_min+current_offset); current_offset += 20000000; // increase by 20 MHz - + if (current_offset > bands_to_scan.band_info[current_band].dl_max-bands_to_scan.band_info[current_band].dl_min) { current_band++; - current_offset=0; - } + current_offset=0; + } - if (current_band==bands_to_scan.nbands) { - current_band=0; - oai_exit=1; - } + if (current_band==bands_to_scan.nbands) { + current_band=0; + oai_exit=1; + } - for (i=0; irf_map.card].rx_num_channels; i++) { - downlink_frequency[UE->rf_map.card][UE->rf_map.chain+i] = bands_to_scan.band_info[current_band].dl_min+current_offset; - uplink_frequency_offset[UE->rf_map.card][UE->rf_map.chain+i] = bands_to_scan.band_info[current_band].ul_min-bands_to_scan.band_info[0].dl_min + current_offset; + for (i=0; irf_map.card].rx_num_channels; i++) { + downlink_frequency[UE->rf_map.card][UE->rf_map.chain+i] = bands_to_scan.band_info[current_band].dl_min+current_offset; + uplink_frequency_offset[UE->rf_map.card][UE->rf_map.chain+i] = bands_to_scan.band_info[current_band].ul_min-bands_to_scan.band_info[0].dl_min + current_offset; - openair0_cfg[UE->rf_map.card].rx_freq[UE->rf_map.chain+i] = downlink_frequency[CC_id][i]; - openair0_cfg[UE->rf_map.card].tx_freq[UE->rf_map.chain+i] = downlink_frequency[CC_id][i]+uplink_frequency_offset[CC_id][i]; - openair0_cfg[UE->rf_map.card].rx_gain[UE->rf_map.chain+i] = UE->rx_total_gain_dB; - if (UE->UE_scan_carrier) { - openair0_cfg[UE->rf_map.card].autocal[UE->rf_map.chain+i] = 1; - } - } + openair0_cfg[UE->rf_map.card].rx_freq[UE->rf_map.chain+i] = downlink_frequency[CC_id][i]; + openair0_cfg[UE->rf_map.card].tx_freq[UE->rf_map.chain+i] = downlink_frequency[CC_id][i]+uplink_frequency_offset[CC_id][i]; + openair0_cfg[UE->rf_map.card].rx_gain[UE->rf_map.chain+i] = UE->rx_total_gain_dB; + if (UE->UE_scan_carrier) { + openair0_cfg[UE->rf_map.card].autocal[UE->rf_map.chain+i] = 1; + } + } + + break; - break; - case pbch: #if DISABLE_LOG_X - printf("[UE thread Synch] Running Initial Synch (mode %d)\n",UE->mode); + printf("[UE thread Synch] Running Initial Synch (mode %d)\n",UE->mode); #else - LOG_I(PHY, "[UE thread Synch] Running Initial Synch (mode %d)\n",UE->mode); + LOG_I(PHY, "[UE thread Synch] Running Initial Synch (mode %d)\n",UE->mode); #endif - if (initial_sync( UE, UE->mode ) == 0) { + 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, - freq_offset, - UE->rx_total_gain_dB, - downlink_frequency[0][0]+freq_offset, - downlink_frequency[0][0]+uplink_frequency_offset[0][0]+freq_offset, - UE->UE_scan_carrier ); + LOG_I( HW, "Got synch: hw_slot_offset %d, carrier off %d Hz, rxgain %d (DL %u, UL %u), UE_scan_carrier %d\n", + (UE->rx_offset<<1) / UE->frame_parms.samples_per_tti, + freq_offset, + UE->rx_total_gain_dB, + downlink_frequency[0][0]+freq_offset, + downlink_frequency[0][0]+uplink_frequency_offset[0][0]+freq_offset, + UE->UE_scan_carrier ); - // rerun with new cell parameters and frequency-offset - for (i=0; irf_map.card].rx_num_channels; i++) { - openair0_cfg[UE->rf_map.card].rx_gain[UE->rf_map.chain+i] = UE->rx_total_gain_dB;//-USRP_GAIN_OFFSET; - if (UE->UE_scan_carrier == 1) { - if (freq_offset >= 0) - openair0_cfg[UE->rf_map.card].rx_freq[UE->rf_map.chain+i] += abs(UE->common_vars.freq_offset); - else - openair0_cfg[UE->rf_map.card].rx_freq[UE->rf_map.chain+i] -= abs(UE->common_vars.freq_offset); - openair0_cfg[UE->rf_map.card].tx_freq[UE->rf_map.chain+i] = - openair0_cfg[UE->rf_map.card].rx_freq[UE->rf_map.chain+i]+uplink_frequency_offset[CC_id][i]; - downlink_frequency[CC_id][i] = openair0_cfg[CC_id].rx_freq[i]; - freq_offset=0; - } + // rerun with new cell parameters and frequency-offset + for (i=0; irf_map.card].rx_num_channels; i++) { + openair0_cfg[UE->rf_map.card].rx_gain[UE->rf_map.chain+i] = UE->rx_total_gain_dB;//-USRP_GAIN_OFFSET; + if (UE->UE_scan_carrier == 1) { + if (freq_offset >= 0) + openair0_cfg[UE->rf_map.card].rx_freq[UE->rf_map.chain+i] += abs(UE->common_vars.freq_offset); + else + openair0_cfg[UE->rf_map.card].rx_freq[UE->rf_map.chain+i] -= abs(UE->common_vars.freq_offset); + openair0_cfg[UE->rf_map.card].tx_freq[UE->rf_map.chain+i] = + openair0_cfg[UE->rf_map.card].rx_freq[UE->rf_map.chain+i]+uplink_frequency_offset[CC_id][i]; + downlink_frequency[CC_id][i] = openair0_cfg[CC_id].rx_freq[i]; + freq_offset=0; } + } - // reconfigure for potentially different bandwidth - switch(UE->frame_parms.N_RB_DL) { - case 6: - openair0_cfg[UE->rf_map.card].sample_rate =1.92e6; - openair0_cfg[UE->rf_map.card].rx_bw =.96e6; - openair0_cfg[UE->rf_map.card].tx_bw =.96e6; - // openair0_cfg[0].rx_gain[0] -= 12; - break; - case 25: - openair0_cfg[UE->rf_map.card].sample_rate =7.68e6; - openair0_cfg[UE->rf_map.card].rx_bw =2.5e6; - openair0_cfg[UE->rf_map.card].tx_bw =2.5e6; - // openair0_cfg[0].rx_gain[0] -= 6; - break; - case 50: - openair0_cfg[UE->rf_map.card].sample_rate =15.36e6; - openair0_cfg[UE->rf_map.card].rx_bw =5.0e6; - openair0_cfg[UE->rf_map.card].tx_bw =5.0e6; - // openair0_cfg[0].rx_gain[0] -= 3; - break; - case 100: - openair0_cfg[UE->rf_map.card].sample_rate=30.72e6; - openair0_cfg[UE->rf_map.card].rx_bw=10.0e6; - openair0_cfg[UE->rf_map.card].tx_bw=10.0e6; - // openair0_cfg[0].rx_gain[0] -= 0; - break; - } + // reconfigure for potentially different bandwidth + switch(UE->frame_parms.N_RB_DL) { + case 6: + openair0_cfg[UE->rf_map.card].sample_rate =1.92e6; + openair0_cfg[UE->rf_map.card].rx_bw =.96e6; + openair0_cfg[UE->rf_map.card].tx_bw =.96e6; + // openair0_cfg[0].rx_gain[0] -= 12; + break; + case 25: + openair0_cfg[UE->rf_map.card].sample_rate =7.68e6; + openair0_cfg[UE->rf_map.card].rx_bw =2.5e6; + openair0_cfg[UE->rf_map.card].tx_bw =2.5e6; + // openair0_cfg[0].rx_gain[0] -= 6; + break; + case 50: + openair0_cfg[UE->rf_map.card].sample_rate =15.36e6; + openair0_cfg[UE->rf_map.card].rx_bw =5.0e6; + openair0_cfg[UE->rf_map.card].tx_bw =5.0e6; + // openair0_cfg[0].rx_gain[0] -= 3; + break; + case 100: + openair0_cfg[UE->rf_map.card].sample_rate=30.72e6; + openair0_cfg[UE->rf_map.card].rx_bw=10.0e6; + openair0_cfg[UE->rf_map.card].tx_bw=10.0e6; + // openair0_cfg[0].rx_gain[0] -= 0; + break; + } - UE->rfdevice.trx_set_freq_func(&UE->rfdevice,&openair0_cfg[0],0); - //UE->rfdevice.trx_set_gains_func(&openair0,&openair0_cfg[0]); - //UE->rfdevice.trx_stop_func(&UE->rfdevice); - sleep(1); - init_frame_parms(&UE->frame_parms,1); - /*if (UE->rfdevice.trx_start_func(&UE->rfdevice) != 0 ) { - LOG_E(HW,"Could not start the device\n"); - oai_exit=1; - }*/ + UE->rfdevice.trx_set_freq_func(&UE->rfdevice,&openair0_cfg[0],0); + //UE->rfdevice.trx_set_gains_func(&openair0,&openair0_cfg[0]); + //UE->rfdevice.trx_stop_func(&UE->rfdevice); + sleep(1); + init_frame_parms(&UE->frame_parms,1); + /*if (UE->rfdevice.trx_start_func(&UE->rfdevice) != 0 ) { + LOG_E(HW,"Could not start the device\n"); + oai_exit=1; + }*/ - if (UE->UE_scan_carrier == 1) { + if (UE->UE_scan_carrier == 1) { - UE->UE_scan_carrier = 0; - } else { - AssertFatal ( 0== pthread_mutex_lock(&UE->proc.mutex_synch), ""); - UE->is_synchronized = 1; - AssertFatal ( 0== pthread_mutex_unlock(&UE->proc.mutex_synch), ""); + UE->UE_scan_carrier = 0; + } else { + AssertFatal ( 0== pthread_mutex_lock(&UE->proc.mutex_synch), ""); + UE->is_synchronized = 1; + AssertFatal ( 0== pthread_mutex_unlock(&UE->proc.mutex_synch), ""); - if( UE->mode == rx_dump_frame ) { - FILE *fd; - if ((UE->proc.proc_rxtx[0].frame_rx&1) == 0) { // this guarantees SIB1 is present - if ((fd = fopen("rxsig_frame0.dat","w")) != NULL) { - fwrite((void*)&UE->common_vars.rxdata[0][0], - sizeof(int32_t), - 10*UE->frame_parms.samples_per_tti, - fd); - LOG_I(PHY,"Dummping Frame ... bye bye \n"); - fclose(fd); - exit(0); - } else { - LOG_E(PHY,"Cannot open file for writing\n"); - exit(0); - } - } else { - AssertFatal ( 0== pthread_mutex_lock(&UE->proc.mutex_synch), ""); - UE->is_synchronized = 0; - AssertFatal ( 0== pthread_mutex_unlock(&UE->proc.mutex_synch), ""); + if( UE->mode == rx_dump_frame ) { + FILE *fd; + if ((UE->proc.proc_rxtx[0].frame_rx&1) == 0) { // this guarantees SIB1 is present + if ((fd = fopen("rxsig_frame0.dat","w")) != NULL) { + fwrite((void*)&UE->common_vars.rxdata[0][0], + sizeof(int32_t), + 10*UE->frame_parms.samples_per_tti, + fd); + LOG_I(PHY,"Dummping Frame ... bye bye \n"); + fclose(fd); + exit(0); + } else { + LOG_E(PHY,"Cannot open file for writing\n"); + exit(0); + } + } else { + AssertFatal ( 0== pthread_mutex_lock(&UE->proc.mutex_synch), ""); + UE->is_synchronized = 0; + AssertFatal ( 0== pthread_mutex_unlock(&UE->proc.mutex_synch), ""); - } - } - } - } else { - // initial sync failed - // calculate new offset and try again - if (UE->UE_scan_carrier == 1) { - if (freq_offset >= 0) - freq_offset += 100; - freq_offset *= -1; + } + } + } + } else { + // initial sync failed + // calculate new offset and try again + if (UE->UE_scan_carrier == 1) { + if (freq_offset >= 0) + freq_offset += 100; + freq_offset *= -1; - if (abs(freq_offset) > 7500) { - LOG_I( PHY, "[initial_sync] No cell synchronization found, abandoning\n" ); - FILE *fd; - if ((fd = fopen("rxsig_frame0.dat","w"))!=NULL) { - fwrite((void*)&UE->common_vars.rxdata[0][0], - sizeof(int32_t), - 10*UE->frame_parms.samples_per_tti, - fd); - LOG_I(PHY,"Dummping Frame ... bye bye \n"); - fclose(fd); - exit(0); - } - AssertFatal(1==0,"No cell synchronization found, abandoning"); - return &UE_thread_synch_retval; // not reached - } - } + if (abs(freq_offset) > 7500) { + LOG_I( PHY, "[initial_sync] No cell synchronization found, abandoning\n" ); + FILE *fd; + if ((fd = fopen("rxsig_frame0.dat","w"))!=NULL) { + fwrite((void*)&UE->common_vars.rxdata[0][0], + sizeof(int32_t), + 10*UE->frame_parms.samples_per_tti, + fd); + LOG_I(PHY,"Dummping Frame ... bye bye \n"); + fclose(fd); + exit(0); + } + AssertFatal(1==0,"No cell synchronization found, abandoning"); + return &UE_thread_synch_retval; // not reached + } + } #if DISABLE_LOG_X - printf("[initial_sync] trying carrier off %d Hz, rxgain %d (DL %u, UL %u)\n", - freq_offset, - UE->rx_total_gain_dB, - downlink_frequency[0][0]+freq_offset, - downlink_frequency[0][0]+uplink_frequency_offset[0][0]+freq_offset ); + printf("[initial_sync] trying carrier off %d Hz, rxgain %d (DL %u, UL %u)\n", + freq_offset, + UE->rx_total_gain_dB, + downlink_frequency[0][0]+freq_offset, + downlink_frequency[0][0]+uplink_frequency_offset[0][0]+freq_offset ); #else - LOG_I(PHY, "[initial_sync] trying carrier off %d Hz, rxgain %d (DL %u, UL %u)\n", - freq_offset, - UE->rx_total_gain_dB, - downlink_frequency[0][0]+freq_offset, - downlink_frequency[0][0]+uplink_frequency_offset[0][0]+freq_offset ); + LOG_I(PHY, "[initial_sync] trying carrier off %d Hz, rxgain %d (DL %u, UL %u)\n", + freq_offset, + UE->rx_total_gain_dB, + downlink_frequency[0][0]+freq_offset, + downlink_frequency[0][0]+uplink_frequency_offset[0][0]+freq_offset ); #endif - for (i=0; irf_map.card].rx_num_channels; i++) { - openair0_cfg[UE->rf_map.card].rx_freq[UE->rf_map.chain+i] = downlink_frequency[CC_id][i]+freq_offset; - openair0_cfg[UE->rf_map.card].tx_freq[UE->rf_map.chain+i] = downlink_frequency[CC_id][i]+uplink_frequency_offset[CC_id][i]+freq_offset; - openair0_cfg[UE->rf_map.card].rx_gain[UE->rf_map.chain+i] = UE->rx_total_gain_dB;//-USRP_GAIN_OFFSET; - if (UE->UE_scan_carrier==1) - openair0_cfg[UE->rf_map.card].autocal[UE->rf_map.chain+i] = 1; - } - UE->rfdevice.trx_set_freq_func(&UE->rfdevice,&openair0_cfg[0],0); - }// initial_sync=0 - break; - case si: - default: - break; - } + for (i=0; irf_map.card].rx_num_channels; i++) { + openair0_cfg[UE->rf_map.card].rx_freq[UE->rf_map.chain+i] = downlink_frequency[CC_id][i]+freq_offset; + openair0_cfg[UE->rf_map.card].tx_freq[UE->rf_map.chain+i] = downlink_frequency[CC_id][i]+uplink_frequency_offset[CC_id][i]+freq_offset; + openair0_cfg[UE->rf_map.card].rx_gain[UE->rf_map.chain+i] = UE->rx_total_gain_dB;//-USRP_GAIN_OFFSET; + if (UE->UE_scan_carrier==1) + openair0_cfg[UE->rf_map.card].autocal[UE->rf_map.chain+i] = 1; + } + UE->rfdevice.trx_set_freq_func(&UE->rfdevice,&openair0_cfg[0],0); + }// initial_sync=0 + break; + case si: + default: + break; + } - AssertFatal ( 0== pthread_mutex_lock(&UE->proc.mutex_synch), ""); - // indicate readiness - UE->proc.instance_cnt_synch--; - AssertFatal ( 0== pthread_mutex_unlock(&UE->proc.mutex_synch), ""); + AssertFatal ( 0== pthread_mutex_lock(&UE->proc.mutex_synch), ""); + // indicate readiness + UE->proc.instance_cnt_synch--; + AssertFatal ( 0== pthread_mutex_unlock(&UE->proc.mutex_synch), ""); - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_UE_THREAD_SYNCH, 0 ); - } // while !oai_exit + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_UE_THREAD_SYNCH, 0 ); + } // while !oai_exit - return &UE_thread_synch_retval; + return &UE_thread_synch_retval; } /*! @@ -563,148 +736,679 @@ 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; + 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; - proc->instance_cnt_rxtx=-1; - proc->subframe_rx=proc->sub_frame_start; + proc->instance_cnt_rxtx=-1; + proc->subframe_rx=proc->sub_frame_start; - char threadname[256]; - sprintf(threadname,"UE_%d_proc_%d", UE->Mod_id, proc->sub_frame_start); - cpu_set_t cpuset; - CPU_ZERO(&cpuset); + char threadname[256]; + sprintf(threadname,"UE_%d_proc_%d", UE->Mod_id, proc->sub_frame_start); + cpu_set_t cpuset; + CPU_ZERO(&cpuset); - if ( (proc->sub_frame_start+1)%RX_NB_TH == 0 && threads.one != -1 ) - CPU_SET(threads.one, &cpuset); - if ( (proc->sub_frame_start+1)%RX_NB_TH == 1 && threads.two != -1 ) - CPU_SET(threads.two, &cpuset); - if ( (proc->sub_frame_start+1)%RX_NB_TH == 2 && threads.three != -1 ) - CPU_SET(threads.three, &cpuset); - //CPU_SET(threads.three, &cpuset); - init_thread(900000,1000000 , FIFO_PRIORITY-1, &cpuset, - threadname); + if ( (proc->sub_frame_start+1)%RX_NB_TH == 0 && threads.one != -1 ) + CPU_SET(threads.one, &cpuset); + if ( (proc->sub_frame_start+1)%RX_NB_TH == 1 && threads.two != -1 ) + CPU_SET(threads.two, &cpuset); + if ( (proc->sub_frame_start+1)%RX_NB_TH == 2 && threads.three != -1 ) + CPU_SET(threads.three, &cpuset); + //CPU_SET(threads.three, &cpuset); + init_thread(900000,1000000 , FIFO_PRIORITY-1, &cpuset, + threadname); - while (!oai_exit) { - if (pthread_mutex_lock(&proc->mutex_rxtx) != 0) { - LOG_E( PHY, "[SCHED][UE] error locking mutex for UE RXTX\n" ); - exit_fun("nothing to add"); - } - while (proc->instance_cnt_rxtx < 0) { - // most of the time, the thread is waiting here - pthread_cond_wait( &proc->cond_rxtx, &proc->mutex_rxtx ); - } - if (pthread_mutex_unlock(&proc->mutex_rxtx) != 0) { - LOG_E( PHY, "[SCHED][UE] error unlocking mutex for UE RXn_TXnp4\n" ); - exit_fun("nothing to add"); - } - - initRefTimes(t2); - initRefTimes(t3); - pickTime(current); - updateTimes(proc->gotIQs, &t2, 10000, "Delay to wake up UE_Thread_Rx (case 2)"); - - // Process Rx data for one sub-frame - lte_subframe_t sf_type = subframe_select( &UE->frame_parms, proc->subframe_rx); - if ((sf_type == SF_DL) || - (UE->frame_parms.frame_type == FDD) || - (sf_type == SF_S)) { - - if (UE->frame_parms.frame_type == TDD) { - LOG_D(PHY, "%s,TDD%d,%s: calling UE_RX\n", - threadname, - 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, - (UE->frame_parms.frame_type==FDD? "FDD": - (UE->frame_parms.frame_type==TDD? "TDD":"UNKNOWN_DUPLEX_MODE")), - (sf_type==SF_DL? "SF_DL" : - (sf_type==SF_UL? "SF_UL" : - (sf_type==SF_S ? "SF_S" : "UNKNOWN_SF_TYPE")))); - } -#ifdef UE_SLOT_PARALLELISATION - phy_procedures_slot_parallelization_UE_RX( UE, proc, 0, 0, 1, UE->mode, no_relay, NULL ); -#else - phy_procedures_UE_RX( UE, proc, 0, 0, 1, UE->mode, no_relay, NULL ); -#endif - } - -#if UE_TIMING_TRACE - start_meas(&UE->generic_stat); -#endif - if (UE->mac_enabled==1) { - - ret = ue_scheduler(UE->Mod_id, - proc->frame_rx, - proc->subframe_rx, - proc->frame_tx, - proc->subframe_tx, - subframe_select(&UE->frame_parms,proc->subframe_tx), - 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 ); - } - } -#if UE_TIMING_TRACE - stop_meas(&UE->generic_stat); -#endif - - - // Prepare the future Tx data - - if ((subframe_select( &UE->frame_parms, proc->subframe_tx) == SF_UL) || - (UE->frame_parms.frame_type == FDD) ) - if (UE->mode != loop_through_memory) - phy_procedures_UE_TX(UE,proc,0,0,UE->mode,no_relay); - - - - if ((subframe_select( &UE->frame_parms, proc->subframe_tx) == SF_S) && - (UE->frame_parms.frame_type == TDD)) - if (UE->mode != loop_through_memory) - phy_procedures_UE_S_TX(UE,0,0,no_relay); - updateTimes(current, &t3, 10000, "Delay to process sub-frame (case 3)"); - - if (pthread_mutex_lock(&proc->mutex_rxtx) != 0) { - LOG_E( PHY, "[SCHED][UE] error locking mutex for UE RXTX\n" ); - exit_fun("noting to add"); - } - proc->instance_cnt_rxtx--; - if (pthread_mutex_unlock(&proc->mutex_rxtx) != 0) { - LOG_E( PHY, "[SCHED][UE] error unlocking mutex for UE RXTX\n" ); - exit_fun("noting to add"); - } + while (!oai_exit) { + if (pthread_mutex_lock(&proc->mutex_rxtx) != 0) { + LOG_E( PHY, "[SCHED][UE] error locking mutex for UE RXTX\n" ); + exit_fun("nothing to add"); + } + while (proc->instance_cnt_rxtx < 0) { + // most of the time, the thread is waiting here + pthread_cond_wait( &proc->cond_rxtx, &proc->mutex_rxtx ); + } + if (pthread_mutex_unlock(&proc->mutex_rxtx) != 0) { + LOG_E( PHY, "[SCHED][UE] error unlocking mutex for UE RXn_TXnp4\n" ); + exit_fun("nothing to add"); } -// thread finished - free(arg); - return &UE_thread_rxtx_retval; + initRefTimes(t2); + initRefTimes(t3); + pickTime(current); + updateTimes(proc->gotIQs, &t2, 10000, "Delay to wake up UE_Thread_Rx (case 2)"); + + // Process Rx data for one sub-frame + lte_subframe_t sf_type = subframe_select( &UE->frame_parms, proc->subframe_rx); + if ((sf_type == SF_DL) || + (UE->frame_parms.frame_type == FDD) || + (sf_type == SF_S)) { + + if (UE->frame_parms.frame_type == TDD) { + LOG_D(PHY, "%s,TDD%d,%s: calling UE_RX\n", + threadname, + 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, + (UE->frame_parms.frame_type==FDD? "FDD": + (UE->frame_parms.frame_type==TDD? "TDD":"UNKNOWN_DUPLEX_MODE")), + (sf_type==SF_DL? "SF_DL" : + (sf_type==SF_UL? "SF_UL" : + (sf_type==SF_S ? "SF_S" : "UNKNOWN_SF_TYPE")))); + } +#ifdef UE_SLOT_PARALLELISATION + phy_procedures_slot_parallelization_UE_RX( UE, proc, 0, 0, 1, UE->mode, no_relay, NULL ); +#else + phy_procedures_UE_RX(UE, proc, 0, 0, 1, UE->mode); +#endif + } + +#if UE_TIMING_TRACE + start_meas(&UE->generic_stat); +#endif + if (UE->mac_enabled==1) { + + int ret = ue_scheduler(UE->Mod_id, + proc->frame_rx, + proc->subframe_rx, + proc->frame_tx, + proc->subframe_tx, + subframe_select(&UE->frame_parms,proc->subframe_tx), + 0, + 0/*FIXME CC_id*/); + if ( ret != CONNECTION_OK) { + LOG_E( PHY, "[UE %"PRIu8"] Frame %"PRIu32", subframe %u %s\n", + UE->Mod_id, proc->frame_rx, proc->subframe_tx,get_connectionloss_errstr(ret) ); + } + } +#if UE_TIMING_TRACE + stop_meas(&UE->generic_stat); +#endif + + + // Prepare the future Tx data + + if ((subframe_select( &UE->frame_parms, proc->subframe_tx) == SF_UL) || + (UE->frame_parms.frame_type == FDD) ) + if (UE->mode != loop_through_memory) + phy_procedures_UE_TX(UE,proc,0,0,UE->mode); + + + + if ((subframe_select( &UE->frame_parms, proc->subframe_tx) == SF_S) && + (UE->frame_parms.frame_type == TDD)) + if (UE->mode != loop_through_memory) + phy_procedures_UE_S_TX(UE,0,0); + updateTimes(current, &t3, 10000, "Delay to process sub-frame (case 3)"); + + if (pthread_mutex_lock(&proc->mutex_rxtx) != 0) { + LOG_E( PHY, "[SCHED][UE] error locking mutex for UE RXTX\n" ); + exit_fun("noting to add"); + } + proc->instance_cnt_rxtx--; +#if BASIC_SIMULATOR + if (pthread_cond_signal(&proc->cond_rxtx) != 0) abort(); +#endif + if (pthread_mutex_unlock(&proc->mutex_rxtx) != 0) { + LOG_E( PHY, "[SCHED][UE] error unlocking mutex for UE RXTX\n" ); + exit_fun("noting to add"); + } + } + + // thread finished + free(arg); + return &UE_thread_rxtx_retval; } + + +unsigned int emulator_absSF; + +void ue_stub_rx_handler(unsigned int num_bytes, char *rx_buffer) { + + PHY_VARS_UE *UE; + UE = PHY_vars_UE_g[0][0]; + + UE_tport_t *pdu = (UE_tport_t*)rx_buffer; + SLSCH_t *slsch = (SLSCH_t*)&pdu->slsch; + SLDCH_t *sldch = (SLDCH_t*)&pdu->sldch; + + switch (((UE_tport_header_t*)rx_buffer)->packet_type) { + case TTI_SYNC: + emulator_absSF = ((UE_tport_header_t*)rx_buffer)->absSF; + wakeup_thread(&UE->timer_mutex,&UE->timer_cond,&UE->instance_cnt_timer,"timer_thread"); + break; + case SLSCH: + + + LOG_I(PHY,"Emulator SFN.SF %d.%d, Got SLSCH packet\n",emulator_absSF/10,emulator_absSF%10); + LOG_I(PHY,"Received %d bytes on UE-UE link for SFN.SF %d.%d, sending SLSCH payload (%d bytes) to MAC\n",num_bytes, + pdu->header.absSF/10,pdu->header.absSF%10, + slsch->payload_length); + printf("SLSCH:"); + for (int i=0;iheader.absSF/10, + pdu->header.absSF%10, + pdu->payload, + slsch->payload_length, + 0, + SL_DISCOVERY_FLAG_NO); + break; + + case SLDCH: + + + LOG_I(PHY,"Emulator SFN.SF %d.%d, Got SLDCH packet\n",emulator_absSF/10,emulator_absSF%10); + LOG_I(PHY,"Received %d bytes on UE-UE link for SFN.SF %d.%d, sending SLDCH payload (%d bytes) to MAC\n",num_bytes, + pdu->header.absSF/10,pdu->header.absSF%10, + sldch->payload_length); + printf("SLDCH:"); + for (int i=0;iheader.absSF/10, + pdu->header.absSF%10, + sldch->payload, + sldch->payload_length, + 0, + SL_DISCOVERY_FLAG_YES); + break; + + } +} + + +/*! + * \brief This is the UE thread for RX subframe n and TX subframe n+4. + * This thread performs the phy_procedures_UE_RX() on every received slot. + * then, if TX is enabled it performs TX for n+4. + * \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. + */ + +static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) { + + thread_top_init("UE_phy_stub_thread_rxn_txnp4",1,870000L,1000000L,1000000L); + + module_id_t Mod_id = 0; + //int init_ra_UE = -1; // This counter is used to initiate the RA of each UE in different SFrames + static __thread int UE_thread_rxtx_retval; + struct rx_tx_thread_data *rtd = arg; + UE_rxtx_proc_t *proc = rtd->proc; + + // Initializations for nfapi-L2-emulator mode + dl_config_req = NULL; + ul_config_req = NULL; + hi_dci0_req = NULL; + tx_request_pdu_list = NULL; + + PHY_VARS_UE *UE; //= rtd->UE; + int ret; + + + phy_stub_ticking->ticking_var = -1; + proc->subframe_rx=proc->sub_frame_start; + + + //PANOS: CAREFUL HERE! + wait_sync("UE_phy_stub_single_thread_rxn_txnp4"); + + while (!oai_exit) { + + if (pthread_mutex_lock(&phy_stub_ticking->mutex_ticking) != 0) { + LOG_E( MAC, "[SCHED][UE] error locking mutex for UE RXTX\n" ); + exit_fun("nothing to add"); + } + while (phy_stub_ticking->ticking_var < 0) { + // most of the time, the thread is waiting here + //pthread_cond_wait( &proc->cond_rxtx, &proc->mutex_rxtx ) + LOG_D(MAC,"Waiting for ticking_var\n"); + pthread_cond_wait( &phy_stub_ticking->cond_ticking, &phy_stub_ticking->mutex_ticking); + } + phy_stub_ticking->ticking_var--; + if (pthread_mutex_unlock(&phy_stub_ticking->mutex_ticking) != 0) { + LOG_E( MAC, "[SCHED][UE] error unlocking mutex for UE RXn_TXnp4\n" ); + exit_fun("nothing to add"); + } + + proc->subframe_rx=timer_subframe; + proc->frame_rx = timer_frame; + proc->subframe_tx=(timer_subframe+4)%10; + proc->frame_tx = proc->frame_rx + (proc->subframe_rx>5?1:0); + //oai_subframe_ind(proc->frame_rx, proc->subframe_rx); + + + oai_subframe_ind(timer_frame, timer_subframe); + + //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)");*/ + + + // 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)); + + UL_INFO->rx_ind.rx_indication_body.rx_pdu_list = (nfapi_rx_indication_pdu_t*)malloc(NB_UE_INST*sizeof(nfapi_rx_indication_pdu_t)); + UL_INFO->rx_ind.rx_indication_body.number_of_pdus = 0; + + + UL_INFO->crc_ind.crc_indication_body.crc_pdu_list = (nfapi_crc_indication_pdu_t*)malloc(NB_UE_INST*sizeof(nfapi_crc_indication_pdu_t)); + UL_INFO->crc_ind.crc_indication_body.number_of_crcs = 0; + + UL_INFO->harq_ind.harq_indication_body.harq_pdu_list = (nfapi_harq_indication_pdu_t*)malloc(NB_UE_INST*sizeof(nfapi_harq_indication_pdu_t)); + UL_INFO->harq_ind.harq_indication_body.number_of_harqs = 0; + + UL_INFO->sr_ind.sr_indication_body.sr_pdu_list = (nfapi_sr_indication_pdu_t*)malloc(NB_UE_INST*sizeof(nfapi_sr_indication_pdu_t)); + UL_INFO->sr_ind.sr_indication_body.number_of_srs = 0; + + + + + for (Mod_id=0; Mod_idframe_parms, proc->subframe_rx); + if ((sf_type == SF_DL) || + (UE->frame_parms.frame_type == FDD) || + (sf_type == SF_S)) { + + if (UE->frame_parms.frame_type == TDD) { + 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: 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" : + (sf_type==SF_UL? "SF_UL" : + (sf_type==SF_S ? "SF_S" : "UNKNOWN_SF_TYPE")))); + } + + + phy_procedures_UE_SL_RX(UE,proc); + + if (dl_config_req!=NULL && tx_request_pdu_list!=NULL){ + //if(dl_config_req!= NULL) { + dl_config_req_UE_MAC(dl_config_req, Mod_id); + + } + + if (hi_dci0_req!=NULL && hi_dci0_req->hi_dci0_request_body.hi_dci0_pdu_list!=NULL){ + hi_dci0_req_UE_MAC(hi_dci0_req, Mod_id); + } + + if(nfapi_mode!=3) + phy_procedures_UE_SL_TX(UE,proc); + + } + +#if UE_TIMING_TRACE + start_meas(&UE->generic_stat); +#endif + + if (UE->mac_enabled==1) { + + ret = ue_scheduler(UE->Mod_id, + proc->frame_rx, + proc->subframe_rx, + proc->frame_tx, + proc->subframe_tx, + subframe_select(&UE->frame_parms,proc->subframe_tx), + 0, + 0/*FIXME CC_id*/); + if ( ret != CONNECTION_OK) { + LOG_E( PHY, "[UE %"PRIu8"] Frame %"PRIu32", subframe %u %s\n", + UE->Mod_id, proc->frame_rx, proc->subframe_tx,get_connectionloss_errstr(ret) ); + } + } +#if UE_TIMING_TRACE + stop_meas(&UE->generic_stat); +#endif + + + // Prepare the future Tx data + + if ((subframe_select( &UE->frame_parms, proc->subframe_tx) == SF_UL) || + (UE->frame_parms.frame_type == FDD) ) + if (UE->mode != loop_through_memory){ + + // We make the start of RA between consecutive UEs differ by 20 frames + //if ((UE_mac_inst[Mod_id].UE_mode[0] == PRACH && Mod_id == 0) || (UE_mac_inst[Mod_id].UE_mode[0] == PRACH && Mod_id>0 && proc->frame_rx >= UE_mac_inst[Mod_id-1].ra_frame + 20) ) { + if (UE_mac_inst[Mod_id].UE_mode[0] == PRACH && Mod_id == next_Mod_id && proc->frame_rx >= next_ra_frame) { + + // check if we have PRACH opportunity + + if (is_prach_subframe(&UE->frame_parms,proc->frame_tx, proc->subframe_tx) && UE_mac_inst[Mod_id].SI_Decoded == 1) { + + // The one working strangely... + //if (is_prach_subframe(&UE->frame_parms,proc->frame_tx, proc->subframe_tx && Mod_id == (module_id_t) init_ra_UE) ) { + + PRACH_RESOURCES_t *prach_resources = ue_get_rach(Mod_id, 0, proc->frame_tx, 0, proc->subframe_tx); + if(prach_resources!=NULL ) { + UE_mac_inst[Mod_id].ra_frame = proc->frame_rx; + LOG_D(MAC, "UE_phy_stub_thread_rxn_txnp4 before RACH, Mod_id: %d \n", Mod_id ); + fill_rach_indication_UE_MAC(Mod_id, proc->frame_tx ,proc->subframe_tx, UL_INFO, prach_resources->ra_PreambleIndex, prach_resources->ra_RNTI); + Msg1_transmitted(Mod_id, 0, proc->frame_tx, 0); + UE_mac_inst[Mod_id].UE_mode[0] = RA_RESPONSE; + next_Mod_id = Mod_id + 1; + next_ra_frame = (proc->frame_rx + 20)%1000; + } + + //ue_prach_procedures(ue,proc,eNB_id,abstraction_flag,mode); + } + } // mode is PRACH + // 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){ + ul_config_req_UE_MAC(ul_config_req, timer_frame, timer_subframe, Mod_id); + } + } + + phy_procedures_UE_SL_RX(UE,proc); + + + } //for (Mod_id=0; Mod_idcrc_ind.crc_indication_body.number_of_crcs>0) + { + //LOG_D(PHY,"UL_info->crc_ind.crc_indication_body.number_of_crcs:%d CRC_IND:SFN/SF:%d\n", UL_info->crc_ind.crc_indication_body.number_of_crcs, NFAPI_SFNSF2DEC(UL_info->crc_ind.sfn_sf)); + //LOG_I(MAC, "ul_config_req_UE_MAC 2.2, SFN/SF of PNF counter:%d.%d, number_of_crcs: %d \n", timer_frame, timer_subframe, UL_INFO->crc_ind.crc_indication_body.number_of_crcs); + oai_nfapi_crc_indication(&UL_INFO->crc_ind); + //LOG_I(MAC, "ul_config_req_UE_MAC 2.21 \n"); + UL_INFO->crc_ind.crc_indication_body.number_of_crcs = 0; + } + if (UL_INFO->rx_ind.rx_indication_body.number_of_pdus>0) + { + //LOG_D(PHY,"UL_info->rx_ind.number_of_pdus:%d RX_IND:SFN/SF:%d\n", UL_info->rx_ind.rx_indication_body.number_of_pdus, NFAPI_SFNSF2DEC(UL_info->rx_ind.sfn_sf)); + //LOG_I(MAC, "ul_config_req_UE_MAC 2.3, SFN/SF of PNF counter:%d.%d, number_of_pdus: %d \n", timer_frame, timer_subframe, UL_INFO->rx_ind.rx_indication_body.number_of_pdus); + oai_nfapi_rx_ind(&UL_INFO->rx_ind); + //LOG_I(MAC, "ul_config_req_UE_MAC 2.31 \n"); + UL_INFO->rx_ind.rx_indication_body.number_of_pdus = 0; + } + if(UL_INFO->harq_ind.harq_indication_body.number_of_harqs>0) + { + //LOG_D(MAC, "ul_config_req_UE_MAC 2.4, SFN/SF of PNF counter:%d.%d, number_of_harqs: %d \n", timer_frame, timer_subframe, UL_INFO->harq_ind.harq_indication_body.number_of_harqs); + oai_nfapi_harq_indication(&UL_INFO->harq_ind); + //LOG_I(MAC, "ul_config_req_UE_MAC 2.41 \n"); + UL_INFO->harq_ind.harq_indication_body.number_of_harqs =0; + + } + if(UL_INFO->sr_ind.sr_indication_body.number_of_srs>0) + { + //LOG_I(MAC, "ul_config_req_UE_MAC 2.5, SFN/SF of PNF counter:%d.%d, number_of_srs: %d \n", timer_frame, timer_subframe, UL_INFO->sr_ind.sr_indication_body.number_of_srs); + oai_nfapi_sr_indication(&UL_INFO->sr_ind); + //LOG_I(MAC, "ul_config_req_UE_MAC 2.51 \n"); + UL_INFO->sr_ind.sr_indication_body.number_of_srs = 0; + } + + // Free UL_INFO messages + //if(UL_INFO->crc_ind.crc_indication_body.crc_pdu_list != NULL){ + free(UL_INFO->crc_ind.crc_indication_body.crc_pdu_list); + UL_INFO->crc_ind.crc_indication_body.crc_pdu_list = NULL; + //} + //if(UL_INFO->rx_ind.rx_indication_body.rx_pdu_list != NULL){ + free(UL_INFO->rx_ind.rx_indication_body.rx_pdu_list); + UL_INFO->rx_ind.rx_indication_body.rx_pdu_list = NULL; + //} + //if(UL_INFO->harq_ind.harq_indication_body.harq_pdu_list !=NULL){ + free(UL_INFO->harq_ind.harq_indication_body.harq_pdu_list); + UL_INFO->harq_ind.harq_indication_body.harq_pdu_list = NULL; + //} + //if(UL_INFO->sr_ind.sr_indication_body.sr_pdu_list!=NULL){ + free(UL_INFO->sr_ind.sr_indication_body.sr_pdu_list); + UL_INFO->sr_ind.sr_indication_body.sr_pdu_list = NULL; + //} + + free(UL_INFO); + UL_INFO = NULL; + + // De-allocate memory of nfapi requests copies before next subframe round + if(dl_config_req!=NULL){ + if(dl_config_req->vendor_extension) + free(dl_config_req->vendor_extension); + if(dl_config_req->dl_config_request_body.dl_config_pdu_list!=NULL){ + free(dl_config_req->dl_config_request_body.dl_config_pdu_list); + dl_config_req->dl_config_request_body.dl_config_pdu_list = NULL; + } + free(dl_config_req); + dl_config_req = NULL; + } + if(tx_request_pdu_list!=NULL){ + free(tx_request_pdu_list); + tx_request_pdu_list = NULL; + } + if(ul_config_req!=NULL){ + if(ul_config_req->ul_config_request_body.ul_config_pdu_list != NULL){ + free(ul_config_req->ul_config_request_body.ul_config_pdu_list); + ul_config_req->ul_config_request_body.ul_config_pdu_list = NULL; + } + free(ul_config_req); + ul_config_req = NULL; + } + + if(hi_dci0_req!=NULL){ + if(hi_dci0_req->hi_dci0_request_body.hi_dci0_pdu_list!=NULL){ + free(hi_dci0_req->hi_dci0_request_body.hi_dci0_pdu_list); + hi_dci0_req->hi_dci0_request_body.hi_dci0_pdu_list = NULL; + } + free(hi_dci0_req); + hi_dci0_req = NULL; + } + + + + } + // thread finished + free(arg); + return &UE_thread_rxtx_retval; +} + + + + +/*! + * \brief This is the UE thread for RX subframe n and TX subframe n+4. + * This thread performs the phy_procedures_UE_RX() on every received slot. + * then, if TX is enabled it performs TX for n+4. + * \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. + */ + +static void *UE_phy_stub_thread_rxn_txnp4(void *arg) { + + thread_top_init("UE_phy_stub_thread_rxn_txnp4",1,870000L,1000000L,1000000L); + + module_id_t Mod_id = 0; + 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; + + phy_stub_ticking->ticking_var = -1; + proc->subframe_rx=proc->sub_frame_start; + + // CAREFUL HERE! + wait_sync("UE_phy_stub_thread_rxn_txnp4"); + + while (!oai_exit) { + + if (pthread_mutex_lock(&phy_stub_ticking->mutex_ticking) != 0) { + LOG_E( MAC, "[SCHED][UE] error locking mutex for UE RXTX\n" ); + exit_fun("nothing to add"); + } + while (phy_stub_ticking->ticking_var < 0) { + // most of the time, the thread is waiting here + //pthread_cond_wait( &proc->cond_rxtx, &proc->mutex_rxtx ) + LOG_D(MAC,"Waiting for ticking_var\n"); + pthread_cond_wait( &phy_stub_ticking->cond_ticking, &phy_stub_ticking->mutex_ticking); + } + phy_stub_ticking->ticking_var--; + if (pthread_mutex_unlock(&phy_stub_ticking->mutex_ticking) != 0) { + LOG_E( MAC, "[SCHED][UE] error unlocking mutex for UE RXn_TXnp4\n" ); + exit_fun("nothing to add"); + } + + proc->subframe_rx=timer_subframe; + proc->frame_rx = timer_frame; + proc->subframe_tx=(timer_subframe+4)%10; + proc->frame_tx = proc->frame_rx + (proc->subframe_rx>5?1:0); + + + // Process Rx data for one sub-frame + lte_subframe_t sf_type = subframe_select( &UE->frame_parms, proc->subframe_rx); + if ((sf_type == SF_DL) || + (UE->frame_parms.frame_type == FDD) || + (sf_type == SF_S)) { + + if (UE->frame_parms.frame_type == TDD) { + 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: 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" : + (sf_type==SF_UL? "SF_UL" : + (sf_type==SF_S ? "SF_S" : "UNKNOWN_SF_TYPE")))); + } + + + phy_procedures_UE_SL_RX(UE,proc); + + oai_subframe_ind(timer_frame, timer_subframe); + + if(dl_config_req!= NULL) { + + dl_config_req_UE_MAC(dl_config_req, Mod_id); + + } + //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){ + 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); + hi_dci0_req->hi_dci0_request_body.hi_dci0_pdu_list = NULL; + //} + free(hi_dci0_req); + hi_dci0_req = NULL; + } + + else if(hi_dci0_req!=NULL){ + free(hi_dci0_req); + hi_dci0_req = NULL; + } + + if (nfapi_mode != 3) + phy_procedures_UE_SL_TX(UE,proc); + + } + +#if UE_TIMING_TRACE + start_meas(&UE->generic_stat); +#endif + if (UE->mac_enabled==1) { + + int ret = ue_scheduler(UE->Mod_id, + proc->frame_rx, + proc->subframe_rx, + proc->frame_tx, + proc->subframe_tx, + subframe_select(&UE->frame_parms,proc->subframe_tx), + 0, + 0); + if (ret != CONNECTION_OK) + LOG_E( PHY, "[UE %"PRIu8"] Frame %"PRIu32", subframe %u %s\n", + UE->Mod_id, proc->frame_rx, proc->subframe_tx,get_connectionloss_errstr(ret) ); + } +#if UE_TIMING_TRACE + stop_meas(&UE->generic_stat); +#endif + + + // Prepare the future Tx data + + if ((subframe_select( &UE->frame_parms, proc->subframe_tx) == SF_UL) || + (UE->frame_parms.frame_type == FDD) ) + if (UE->mode != loop_through_memory){ + + if ((UE_mac_inst[Mod_id].UE_mode[0] == PRACH) ) { + + // check if we have PRACH opportunity + + if (is_prach_subframe(&UE->frame_parms,proc->frame_tx, proc->subframe_tx)) { + PRACH_RESOURCES_t *prach_resources = ue_get_rach(Mod_id, 0, proc->frame_tx, 0, proc->subframe_tx); + if(prach_resources!=NULL) { + fill_rach_indication_UE_MAC(Mod_id, proc->frame_tx ,proc->subframe_tx, UL_INFO, prach_resources->ra_PreambleIndex, prach_resources->ra_RNTI); + Msg1_transmitted(Mod_id, 0, proc->frame_tx, 0); + UE_mac_inst[Mod_id].UE_mode[0] = RA_RESPONSE; + } + + //ue_prach_procedures(ue,proc,eNB_id,abstraction_flag,mode); + } + } // mode is PRACH + // 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){ + //LOG_I(MAC, "UE_phy_stub_thread_rxn_txnp4 ul_config_req is not NULL \n"); + ul_config_req_UE_MAC(ul_config_req, timer_frame, timer_subframe, Mod_id); + if(ul_config_req->ul_config_request_body.ul_config_pdu_list != NULL){ + free(ul_config_req->ul_config_request_body.ul_config_pdu_list); + ul_config_req->ul_config_request_body.ul_config_pdu_list = NULL; + } + free(ul_config_req); + ul_config_req = NULL; + } + else if(ul_config_req!=NULL){ + free(ul_config_req); + ul_config_req = NULL; + } + } + + phy_procedures_UE_SL_RX(UE,proc); + + } + // thread finished + free(arg); + return &UE_thread_rxtx_retval; +} + + + /*! * \brief This is the main UE thread. * This thread controls the other three UE threads: @@ -718,81 +1422,94 @@ static void *UE_thread_rxn_txnp4(void *arg) { void *UE_thread(void *arg) { - PHY_VARS_UE *UE = (PHY_VARS_UE *) arg; - // int tx_enabled = 0; - int dummy_rx[UE->frame_parms.nb_antennas_rx][UE->frame_parms.samples_per_tti] __attribute__((aligned(32))); - openair0_timestamp timestamp,timestamp1; - void* rxp[NB_ANTENNAS_RX], *txp[NB_ANTENNAS_TX]; - int start_rx_stream = 0; - int i; - int th_id; + PHY_VARS_UE *UE = (PHY_VARS_UE *) arg; + // int tx_enabled = 0; + int dummy_rx[UE->frame_parms.nb_antennas_rx][UE->frame_parms.samples_per_tti] __attribute__((aligned(32))); + openair0_timestamp timestamp,timestamp1; + void* rxp[NB_ANTENNAS_RX], *txp[NB_ANTENNAS_TX]; + int start_rx_stream = 0; + int i; + int th_id; - static uint8_t thread_idx = 0; + static uint8_t thread_idx = 0; - cpu_set_t cpuset; - CPU_ZERO(&cpuset); - if ( threads.iq != -1 ) - CPU_SET(threads.iq, &cpuset); - init_thread(100000, 500000, FIFO_PRIORITY, &cpuset, - "UHD Threads"); + cpu_set_t cpuset; + CPU_ZERO(&cpuset); + if ( threads.iq != -1 ) + CPU_SET(threads.iq, &cpuset); + init_thread(100000, 500000, FIFO_PRIORITY, &cpuset, + "UHD Threads"); + /* + while (sync_var<0) + pthread_cond_wait(&sync_cond, &sync_mutex); + pthread_mutex_unlock(&sync_mutex); + */ + + wait_sync("UE thread"); #ifdef NAS_UE - MessageDef *message_p; - message_p = itti_alloc_new_message(TASK_NAS_UE, INITIALIZE_MESSAGE); - itti_send_msg_to_task (TASK_NAS_UE, UE->Mod_id + NB_eNB_INST, message_p); + MessageDef *message_p; + message_p = itti_alloc_new_message(TASK_NAS_UE, INITIALIZE_MESSAGE); + itti_send_msg_to_task (TASK_NAS_UE, UE->Mod_id + NB_eNB_INST, message_p); #endif - int sub_frame=-1; - //int cumulated_shift=0; + int sub_frame=-1; + //int cumulated_shift=0; - - while (!oai_exit) { - AssertFatal ( 0== pthread_mutex_lock(&UE->proc.mutex_synch), ""); - int instance_cnt_synch = UE->proc.instance_cnt_synch; - int is_synchronized = UE->is_synchronized; - AssertFatal ( 0== pthread_mutex_unlock(&UE->proc.mutex_synch), ""); - if (is_synchronized == 0) { - if (instance_cnt_synch < 0) { // we can invoke the synch - // grab 10 ms of signal and wakeup synch thread - for (int i=0; iframe_parms.nb_antennas_rx; i++) - rxp[i] = (void*)&UE->common_vars.rxdata[i][0]; + while (!oai_exit) { + AssertFatal ( 0== pthread_mutex_lock(&UE->proc.mutex_synch), ""); + int instance_cnt_synch = UE->proc.instance_cnt_synch; + int is_synchronized = UE->is_synchronized; + AssertFatal ( 0== pthread_mutex_unlock(&UE->proc.mutex_synch), ""); - if (UE->mode != loop_through_memory) - AssertFatal( UE->frame_parms.samples_per_tti*10 == - UE->rfdevice.trx_read_func(&UE->rfdevice, - ×tamp, - rxp, - UE->frame_parms.samples_per_tti*10, - UE->frame_parms.nb_antennas_rx), ""); - AssertFatal ( 0== pthread_mutex_lock(&UE->proc.mutex_synch), ""); - instance_cnt_synch = ++UE->proc.instance_cnt_synch; - if (instance_cnt_synch == 0) { - AssertFatal( 0 == pthread_cond_signal(&UE->proc.cond_synch), ""); - } else { - LOG_E( PHY, "[SCHED][UE] UE sync thread busy!!\n" ); - exit_fun("nothing to add"); - } - AssertFatal ( 0== pthread_mutex_unlock(&UE->proc.mutex_synch), ""); - } else { + if (is_synchronized == 0) { +#if BASIC_SIMULATOR + while (!((instance_cnt_synch = UE->proc.instance_cnt_synch) < 0)) { + printf("ue sync not ready\n"); + usleep(500*1000); + } +#endif + if (instance_cnt_synch < 0) { // we can invoke the synch + // grab 10 ms of signal and wakeup synch thread + for (int i=0; iframe_parms.nb_antennas_rx; i++) + rxp[i] = (void*)&UE->common_vars.rxdata[i][0]; + + if (UE->mode != loop_through_memory) + AssertFatal( UE->frame_parms.samples_per_tti*10 == + UE->rfdevice.trx_read_func(&UE->rfdevice, + ×tamp, + rxp, + UE->frame_parms.samples_per_tti*10, + UE->frame_parms.nb_antennas_rx), ""); + AssertFatal ( 0== pthread_mutex_lock(&UE->proc.mutex_synch), ""); + instance_cnt_synch = ++UE->proc.instance_cnt_synch; + if (instance_cnt_synch == 0) { + AssertFatal( 0 == pthread_cond_signal(&UE->proc.cond_synch), ""); + } else { + LOG_E( PHY, "[SCHED][UE] UE sync thread busy!!\n" ); + exit_fun("nothing to add"); + } + AssertFatal ( 0== pthread_mutex_unlock(&UE->proc.mutex_synch), ""); + } else { #if OAISIM - (void)dummy_rx; /* avoid gcc warnings */ - usleep(500); + (void)dummy_rx; /* avoid gcc warnings */ + usleep(500); #else - // grab 10 ms of signal into dummy buffer - if (UE->mode != loop_through_memory) { - for (int i=0; iframe_parms.nb_antennas_rx; i++) - rxp[i] = (void*)&dummy_rx[i][0]; - for (int sf=0; sf<10; sf++) - // printf("Reading dummy sf %d\n",sf); - UE->rfdevice.trx_read_func(&UE->rfdevice, - ×tamp, - rxp, - UE->frame_parms.samples_per_tti, - UE->frame_parms.nb_antennas_rx); - } + // grab 10 ms of signal into dummy buffer + if (UE->mode != loop_through_memory) { + for (int i=0; iframe_parms.nb_antennas_rx; i++) + rxp[i] = (void*)&dummy_rx[i][0]; + for (int sf=0; sf<10; sf++) + // printf("Reading dummy sf %d\n",sf); + UE->rfdevice.trx_read_func(&UE->rfdevice, + ×tamp, + rxp, + UE->frame_parms.samples_per_tti, + UE->frame_parms.nb_antennas_rx); + } #endif - } + } } // UE->is_synchronized==0 else { @@ -835,6 +1552,17 @@ void *UE_thread(void *arg) { // update thread index for received subframe UE->current_thread_id[sub_frame] = thread_idx; +#if BASIC_SIMULATOR + { + int t; + for (t = 0; t < 2; t++) { + UE_rxtx_proc_t *proc = &UE->proc.proc_rxtx[t]; + pthread_mutex_lock(&proc->mutex_rxtx); + while (proc->instance_cnt_rxtx >= 0) pthread_cond_wait( &proc->cond_rxtx, &proc->mutex_rxtx ); + pthread_mutex_unlock(&proc->mutex_rxtx); + } + } +#endif LOG_D(PHY,"Process Subframe %d thread Idx %d \n", sub_frame, UE->current_thread_id[sub_frame]); thread_idx++; @@ -961,6 +1689,7 @@ void *UE_thread(void *arg) { return NULL; } + /*! * \brief Initialize the UE theads. * Creates the UE threads: @@ -974,117 +1703,379 @@ void *UE_thread(void *arg) { * and the locking between them. */ void init_UE_threads(int inst) { - struct rx_tx_thread_data *rtd; - PHY_VARS_UE *UE; + struct rx_tx_thread_data *rtd; + PHY_VARS_UE *UE; - AssertFatal(PHY_vars_UE_g!=NULL,"PHY_vars_UE_g is NULL\n"); - AssertFatal(PHY_vars_UE_g[inst]!=NULL,"PHY_vars_UE_g[inst] is NULL\n"); - AssertFatal(PHY_vars_UE_g[inst][0]!=NULL,"PHY_vars_UE_g[inst][0] is NULL\n"); - UE = PHY_vars_UE_g[inst][0]; + AssertFatal(PHY_vars_UE_g!=NULL,"PHY_vars_UE_g is NULL\n"); + AssertFatal(PHY_vars_UE_g[inst]!=NULL,"PHY_vars_UE_g[inst] is NULL\n"); + AssertFatal(PHY_vars_UE_g[inst][0]!=NULL,"PHY_vars_UE_g[inst][0] is NULL\n"); + UE = PHY_vars_UE_g[inst][0]; - pthread_attr_init (&UE->proc.attr_ue); - pthread_attr_setstacksize(&UE->proc.attr_ue,8192);//5*PTHREAD_STACK_MIN); + pthread_attr_init (&UE->proc.attr_ue); + pthread_attr_setstacksize(&UE->proc.attr_ue,8192);//5*PTHREAD_STACK_MIN); - pthread_mutex_init(&UE->proc.mutex_synch,NULL); - pthread_cond_init(&UE->proc.cond_synch,NULL); + 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 - int nb_threads=RX_NB_TH; - for (int i=0; iUE = UE; - rtd->proc = &UE->proc.proc_rxtx[i]; + // the threads are not yet active, therefore access is allowed without locking + int nb_threads=RX_NB_TH; + for (int i=0; iUE = UE; + rtd->proc = &UE->proc.proc_rxtx[i]; - pthread_mutex_init(&UE->proc.proc_rxtx[i].mutex_rxtx,NULL); - pthread_cond_init(&UE->proc.proc_rxtx[i].cond_rxtx,NULL); - UE->proc.proc_rxtx[i].sub_frame_start=i; - UE->proc.proc_rxtx[i].sub_frame_step=nb_threads; - printf("Init_UE_threads rtd %d proc %d nb_threads %d i %d\n",rtd->proc->sub_frame_start, UE->proc.proc_rxtx[i].sub_frame_start,nb_threads, i); - pthread_create(&UE->proc.proc_rxtx[i].pthread_rxtx, NULL, UE_thread_rxn_txnp4, rtd); + pthread_mutex_init(&UE->proc.proc_rxtx[i].mutex_rxtx,NULL); + pthread_cond_init(&UE->proc.proc_rxtx[i].cond_rxtx,NULL); + UE->proc.proc_rxtx[i].sub_frame_start=i; + UE->proc.proc_rxtx[i].sub_frame_step=nb_threads; + printf("Init_UE_threads rtd %d proc %d nb_threads %d i %d\n",rtd->proc->sub_frame_start, UE->proc.proc_rxtx[i].sub_frame_start,nb_threads, i); + pthread_create(&UE->proc.proc_rxtx[i].pthread_rxtx, NULL, UE_thread_rxn_txnp4, rtd); #ifdef UE_SLOT_PARALLELISATION - //pthread_mutex_init(&UE->proc.proc_rxtx[i].mutex_slot0_dl_processing,NULL); - //pthread_cond_init(&UE->proc.proc_rxtx[i].cond_slot0_dl_processing,NULL); - //pthread_create(&UE->proc.proc_rxtx[i].pthread_slot0_dl_processing,NULL,UE_thread_slot0_dl_processing, rtd); + //pthread_mutex_init(&UE->proc.proc_rxtx[i].mutex_slot0_dl_processing,NULL); + //pthread_cond_init(&UE->proc.proc_rxtx[i].cond_slot0_dl_processing,NULL); + //pthread_create(&UE->proc.proc_rxtx[i].pthread_slot0_dl_processing,NULL,UE_thread_slot0_dl_processing, rtd); - pthread_mutex_init(&UE->proc.proc_rxtx[i].mutex_slot1_dl_processing,NULL); - pthread_cond_init(&UE->proc.proc_rxtx[i].cond_slot1_dl_processing,NULL); - pthread_create(&UE->proc.proc_rxtx[i].pthread_slot1_dl_processing,NULL,UE_thread_slot1_dl_processing, rtd); + pthread_mutex_init(&UE->proc.proc_rxtx[i].mutex_slot1_dl_processing,NULL); + pthread_cond_init(&UE->proc.proc_rxtx[i].cond_slot1_dl_processing,NULL); + pthread_create(&UE->proc.proc_rxtx[i].pthread_slot1_dl_processing,NULL,UE_thread_slot1_dl_processing, rtd); #endif - } - pthread_create(&UE->proc.pthread_synch,NULL,UE_thread_synch,(void*)UE); + } + pthread_create(&UE->proc.pthread_synch,NULL,UE_thread_synch,(void*)UE); } + +/*! + * \brief Initialize the UE theads. + * Creates the UE threads: + * - UE_thread_rxtx0 + * - UE_thread_synch + * - UE_thread_fep_slot0 + * - UE_thread_fep_slot1 + * - UE_thread_dlsch_proc_slot0 + * - UE_thread_dlsch_proc_slot1 + * and the locking between them. + */ +void init_UE_single_thread_stub(int nb_inst) { + struct rx_tx_thread_data *rtd; + PHY_VARS_UE *UE; + + for (int i=0; iproc.attr_ue); + pthread_attr_setstacksize(&UE->proc.attr_ue,8192);//5*PTHREAD_STACK_MIN); + + // 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 + // 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; iUE = UE; + rtd->proc = &UE->proc.proc_rxtx[i]; + + pthread_mutex_init(&UE->proc.proc_rxtx[i].mutex_rxtx,NULL); + pthread_cond_init(&UE->proc.proc_rxtx[i].cond_rxtx,NULL); + UE->proc.proc_rxtx[i].sub_frame_start=i; + UE->proc.proc_rxtx[i].sub_frame_step=nb_threads; + printf("Init_UE_threads rtd %d proc %d nb_threads %d i %d\n",rtd->proc->sub_frame_start, UE->proc.proc_rxtx[i].sub_frame_start,nb_threads, i); + pthread_create(&UE->proc.proc_rxtx[i].pthread_rxtx, NULL, UE_phy_stub_single_thread_rxn_txnp4, rtd); + + } + // Remove thread for UE_sync in phy_stub_UE mode. + //pthread_create(&UE->proc.pthread_synch,NULL,UE_thread_synch,(void*)UE); +} + + + + +/*! + * \brief Initialize the UE theads. + * Creates the UE threads: + * - UE_thread_rxtx0 + * - UE_thread_synch + * - UE_thread_fep_slot0 + * - UE_thread_fep_slot1 + * - UE_thread_dlsch_proc_slot0 + * - UE_thread_dlsch_proc_slot1 + * and the locking between them. + */ +void init_UE_threads_stub(int inst) { + struct rx_tx_thread_data *rtd; + PHY_VARS_UE *UE; + + AssertFatal(PHY_vars_UE_g!=NULL,"PHY_vars_UE_g is NULL\n"); + AssertFatal(PHY_vars_UE_g[inst]!=NULL,"PHY_vars_UE_g[inst] is NULL\n"); + AssertFatal(PHY_vars_UE_g[inst][0]!=NULL,"PHY_vars_UE_g[inst][0] is NULL\n"); + UE = PHY_vars_UE_g[inst][0]; + + pthread_attr_init (&UE->proc.attr_ue); + pthread_attr_setstacksize(&UE->proc.attr_ue,8192);//5*PTHREAD_STACK_MIN); + + // 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 + // 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; iUE = UE; + rtd->proc = &UE->proc.proc_rxtx[i]; + + pthread_mutex_init(&UE->proc.proc_rxtx[i].mutex_rxtx,NULL); + pthread_cond_init(&UE->proc.proc_rxtx[i].cond_rxtx,NULL); + UE->proc.proc_rxtx[i].sub_frame_start=i; + UE->proc.proc_rxtx[i].sub_frame_step=nb_threads; + printf("Init_UE_threads rtd %d proc %d nb_threads %d i %d\n",rtd->proc->sub_frame_start, UE->proc.proc_rxtx[i].sub_frame_start,nb_threads, i); + pthread_create(&UE->proc.proc_rxtx[i].pthread_rxtx, NULL, UE_phy_stub_thread_rxn_txnp4, rtd); + + + } + // Remove thread for UE_sync in phy_stub_UE mode. + //pthread_create(&UE->proc.pthread_synch,NULL,UE_thread_synch,(void*)UE); +} + + + + #ifdef OPENAIR2 void fill_ue_band_info(void) { - UE_EUTRA_Capability_t *UE_EUTRA_Capability = UE_rrc_inst[0].UECap->UE_EUTRA_Capability; - int i,j; + UE_EUTRA_Capability_t *UE_EUTRA_Capability = UE_rrc_inst[0].UECap->UE_EUTRA_Capability; + int i,j; - bands_to_scan.nbands = UE_EUTRA_Capability->rf_Parameters.supportedBandListEUTRA.list.count; + bands_to_scan.nbands = UE_EUTRA_Capability->rf_Parameters.supportedBandListEUTRA.list.count; - for (i=0; irf_Parameters.supportedBandListEUTRA.list.array[i]->bandEUTRA) { - memcpy(&bands_to_scan.band_info[i], - &eutra_bands[j], - sizeof(eutra_band_t)); + for (j=0; jrf_Parameters.supportedBandListEUTRA.list.array[i]->bandEUTRA) { + memcpy(&bands_to_scan.band_info[i], + &eutra_bands[j], + sizeof(eutra_band_t)); - printf("Band %d (%lu) : DL %u..%u Hz, UL %u..%u Hz, Duplex %s \n", - bands_to_scan.band_info[i].band, - UE_EUTRA_Capability->rf_Parameters.supportedBandListEUTRA.list.array[i]->bandEUTRA, - bands_to_scan.band_info[i].dl_min, - bands_to_scan.band_info[i].dl_max, - bands_to_scan.band_info[i].ul_min, - bands_to_scan.band_info[i].ul_max, - (bands_to_scan.band_info[i].frame_type==FDD) ? "FDD" : "TDD"); - break; - } - } + printf("Band %d (%lu) : DL %u..%u Hz, UL %u..%u Hz, Duplex %s \n", + bands_to_scan.band_info[i].band, + UE_EUTRA_Capability->rf_Parameters.supportedBandListEUTRA.list.array[i]->bandEUTRA, + bands_to_scan.band_info[i].dl_min, + bands_to_scan.band_info[i].dl_max, + bands_to_scan.band_info[i].ul_min, + bands_to_scan.band_info[i].ul_max, + (bands_to_scan.band_info[i].frame_type==FDD) ? "FDD" : "TDD"); + break; + } + } } #endif 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; + int i, CC_id; + LTE_DL_FRAME_PARMS *frame_parms; - for (CC_id=0; CC_idrf_map; - - AssertFatal( phy_vars_ue[CC_id] !=0, ""); - frame_parms = &(phy_vars_ue[CC_id]->frame_parms); - - // replace RX signal buffers with mmaped HW versions - rxdata = (int32_t**)malloc16( frame_parms->nb_antennas_rx*sizeof(int32_t*) ); - txdata = (int32_t**)malloc16( frame_parms->nb_antennas_tx*sizeof(int32_t*) ); - - 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 ); - 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 - } - - 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 ); - 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]; - } - - // rxdata[x] points now to the same memory region as phy_vars_ue[CC_id]->common_vars.rxdata[x] - // txdata[x] points now to the same memory region as phy_vars_ue[CC_id]->common_vars.txdata[x] - // be careful when releasing memory! - // because no "release_ue_buffers"-function is available, at least rxdata and txdata memory will leak (only some bytes) + for (CC_id=0; CC_idframe_parms); + + // replace RX signal buffers with mmaped HW versions + rxdata = (int32_t**)malloc16( frame_parms->nb_antennas_rx*sizeof(int32_t*) ); + txdata = (int32_t**)malloc16( frame_parms->nb_antennas_tx*sizeof(int32_t*) ); + + 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], 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 } - return 0; + + 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], 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]; + } + + // rxdata[x] points now to the same memory region as phy_vars_ue[CC_id]->common_vars.rxdata[x] + // txdata[x] points now to the same memory region as phy_vars_ue[CC_id]->common_vars.txdata[x] + // be careful when releasing memory! + // because no "release_ue_buffers"-function is available, at least rxdata and txdata memory will leak (only some bytes) + } + 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 +// playing the role of nfapi-pnf. + +//02/02/2018 +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"); + + 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_D(MAC, "timer_thread(), T_0 value: %" PRId64 "\n", T_0); + + 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++; + } + + //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_D(MAC, "timer_thread() Timing problem! ticking_var value:%d \n \n \n", phy_stub_ticking->ticking_var); + + 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) { + clock_gettime(CLOCK_MONOTONIC, &t_now); + sf_cnt++; + T_next_SF = T_0 + sf_cnt*1000000; + T_now =(uint64_t) t_now.tv_sec*1000000000 + t_now.tv_nsec; + if(T_now > T_next_SF){ + t_sleep.tv_sec =0; + t_sleep.tv_nsec =0; + } + else{ + T_sleep = T_next_SF - T_now; + t_sleep.tv_sec =0; + t_sleep.tv_nsec = (__syscall_slong_t) T_sleep; + } + nanosleep(&t_sleep, (struct timespec *)NULL); + 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, + (char *)&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"); + } + + + /*stop_meas(&UE->timer_stats); + t_diff = get_time_meas_us(&UE->timer_stats); + + stop_meas(&UE->timer_stats); + t_diff = get_time_meas_us(&UE->timer_stats);*/ + } + 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]; + phy_stub_ticking = (SF_ticking*)malloc(sizeof(SF_ticking)); + pthread_mutex_init(&UE->timer_mutex,NULL); + pthread_cond_init(&UE->timer_cond,NULL); + UE->instance_cnt_timer = -1; + pthread_mutex_init(&phy_stub_ticking->mutex_ticking,NULL); + pthread_cond_init(&phy_stub_ticking->cond_ticking,NULL); + pthread_create(&phy_stub_ticking->pthread_timer, NULL, &timer_thread, NULL); + return 0; +} + + +/* HACK: this function is needed to compile the UE + * fix it somehow + */ +int8_t find_dlsch(uint16_t rnti, PHY_VARS_eNB *eNB,find_type_t type) +{ + printf("you cannot read this\n"); + abort(); } diff --git a/targets/RT/USER/lte-uesoftmodem.c b/targets/RT/USER/lte-uesoftmodem.c index c3a5207c24..a2a12f9dd9 100644 --- a/targets/RT/USER/lte-uesoftmodem.c +++ b/targets/RT/USER/lte-uesoftmodem.c @@ -63,7 +63,6 @@ #include "PHY/LTE_TRANSPORT/transport_vars.h" #include "SCHED/sched_common_vars.h" #include "PHY/MODULATION/modulation_vars.h" -#include "../../SIMU/USER/init_lte.h" #include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac_vars.h" @@ -71,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" @@ -112,6 +111,17 @@ unsigned char scope_enb_num_ue = 2; static pthread_t forms_thread; //xforms #endif //XFORMS +pthread_cond_t nfapi_sync_cond; +pthread_mutex_t nfapi_sync_mutex; +int nfapi_sync_var=-1; //!< protected by mutex \ref nfapi_sync_mutex + +uint8_t nfapi_mode = 0; + +uint16_t sf_ahead=2; + +char *emul_iface; + + pthread_cond_t sync_cond; pthread_mutex_t sync_mutex; int sync_var=-1; //!< protected by mutex \ref sync_mutex. @@ -126,7 +136,7 @@ volatile int start_UE = 0; #endif volatile int oai_exit = 0; -static clock_source_t clock_source = internal; +clock_source_t clock_source = internal; static int wait_for_sync = 0; unsigned int mmapped_dma=0; @@ -139,12 +149,11 @@ 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; +int snr_dB=25; + runmode_t mode = normal_txrx; FILE *input_fd=NULL; @@ -153,11 +162,11 @@ FILE *input_fd=NULL; #if MAX_NUM_CCs == 1 rx_gain_t rx_gain_mode[MAX_NUM_CCs][4] = {{max_gain,max_gain,max_gain,max_gain}}; double tx_gain[MAX_NUM_CCs][4] = {{20,0,0,0}}; -double rx_gain[MAX_NUM_CCs][4] = {{110,0,0,0}}; +double rx_gain[MAX_NUM_CCs][4] = {{130,0,0,0}}; #else rx_gain_t rx_gain_mode[MAX_NUM_CCs][4] = {{max_gain,max_gain,max_gain,max_gain},{max_gain,max_gain,max_gain,max_gain}}; double tx_gain[MAX_NUM_CCs][4] = {{20,0,0,0},{20,0,0,0}}; -double rx_gain[MAX_NUM_CCs][4] = {{110,0,0,0},{20,0,0,0}}; +double rx_gain[MAX_NUM_CCs][4] = {{130,0,0,0},{20,0,0,0}}; #endif double rx_gain_off = 0.0; @@ -201,8 +210,7 @@ uint8_t exit_missed_slots=1; uint64_t num_missed_slots=0; // counter for the number of missed slots -extern void reset_opp_meas(void); -extern void print_opp_meas(void); +extern void init_UE_stub_single_thread(int nb_inst,int eMBMS_active, int uecap_xer_in, char *emul_iface); extern PHY_VARS_UE* init_ue_vars(LTE_DL_FRAME_PARMS *frame_parms, uint8_t UE_id, @@ -319,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); } @@ -326,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) @@ -440,11 +452,11 @@ void *l2l1_task(void *arg) { break; case MESSAGE_TEST: - LOG_I(EMU, "Received %s\n", ITTI_MSG_NAME(message_p)); + LOG_I(SIM, "Received %s\n", ITTI_MSG_NAME(message_p)); break; default: - LOG_E(EMU, "Received unexpected message %s\n", ITTI_MSG_NAME(message_p)); + LOG_E(SIM, "Received unexpected message %s\n", ITTI_MSG_NAME(message_p)); break; } @@ -464,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) { @@ -489,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); @@ -503,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); @@ -527,8 +538,7 @@ static void get_options(void) { } UE_scan=0; - - if (tddflag > 0) { + if (tddflag > 0) { for (CC_id=0; CC_idframe_type = TDD; } @@ -560,34 +570,22 @@ static void get_options(void) { for (CC_id=1;CC_idN_RB_DL == 100) { - if (frame_parms[0]->threequarter_fs) { + if(frame_parms->N_RB_DL == 100) { + if (frame_parms->threequarter_fs) { openair0_cfg[card].sample_rate=23.04e6; openair0_cfg[card].samples_per_frame = 230400; openair0_cfg[card].tx_bw = 10e6; @@ -657,17 +655,17 @@ void init_openair0(void) { openair0_cfg[card].tx_bw = 10e6; openair0_cfg[card].rx_bw = 10e6; } - } else if(frame_parms[0]->N_RB_DL == 50) { + } else if(frame_parms->N_RB_DL == 50) { openair0_cfg[card].sample_rate=15.36e6; openair0_cfg[card].samples_per_frame = 153600; openair0_cfg[card].tx_bw = 5e6; openair0_cfg[card].rx_bw = 5e6; - } else if (frame_parms[0]->N_RB_DL == 25) { + } else if (frame_parms->N_RB_DL == 25) { openair0_cfg[card].sample_rate=7.68e6; openair0_cfg[card].samples_per_frame = 76800; openair0_cfg[card].tx_bw = 2.5e6; openair0_cfg[card].rx_bw = 2.5e6; - } else if (frame_parms[0]->N_RB_DL == 6) { + } else if (frame_parms->N_RB_DL == 6) { openair0_cfg[card].sample_rate=1.92e6; openair0_cfg[card].samples_per_frame = 19200; openair0_cfg[card].tx_bw = 1.5e6; @@ -677,23 +675,20 @@ void init_openair0(void) { - if (frame_parms[0]->frame_type==TDD) + if (frame_parms->frame_type==TDD) openair0_cfg[card].duplex_mode = duplex_mode_TDD; else //FDD openair0_cfg[card].duplex_mode = duplex_mode_FDD; - printf("HW: Configuring card %d, nb_antennas_tx/rx %d/%d\n",card, - PHY_vars_UE_g[0][0]->frame_parms.nb_antennas_tx, - PHY_vars_UE_g[0][0]->frame_parms.nb_antennas_rx); openair0_cfg[card].Mod_id = 0; - openair0_cfg[card].num_rb_dl=frame_parms[0]->N_RB_DL; + openair0_cfg[card].num_rb_dl=frame_parms->N_RB_DL; openair0_cfg[card].clock_source = clock_source; - openair0_cfg[card].tx_num_channels=min(2,PHY_vars_UE_g[0][0]->frame_parms.nb_antennas_tx); - openair0_cfg[card].rx_num_channels=min(2,PHY_vars_UE_g[0][0]->frame_parms.nb_antennas_rx); + openair0_cfg[card].tx_num_channels=min(2,frame_parms->nb_antennas_tx); + openair0_cfg[card].rx_num_channels=min(2,frame_parms->nb_antennas_rx); for (i=0; i<4; i++) { @@ -709,7 +704,7 @@ void init_openair0(void) { openair0_cfg[card].autocal[i] = 1; openair0_cfg[card].tx_gain[i] = tx_gain[0][i]; - openair0_cfg[card].rx_gain[i] = PHY_vars_UE_g[0][0]->rx_total_gain_dB - rx_gain_off; + openair0_cfg[card].rx_gain[i] = rxgain - rx_gain_off; openair0_cfg[card].configFilename = rf_config_file; @@ -741,16 +736,44 @@ void terminate_task(task_id_t task_id, module_id_t mod_id) #endif + + +static inline void wait_nfapi_init(char *thread_name) { + + printf( "waiting for NFAPI PNF connection and population of global structure (%s)\n",thread_name); + pthread_mutex_lock( &nfapi_sync_mutex ); + + while (nfapi_sync_var<0) + pthread_cond_wait( &nfapi_sync_cond, &nfapi_sync_mutex ); + + pthread_mutex_unlock(&nfapi_sync_mutex); + + printf( "NFAPI: got sync (%s)\n", thread_name); +} + +int stop_L1L2(module_id_t enb_id) +{ + return 0; +} + + +int restart_L1L2(module_id_t enb_id) +{ + return 0; +} + int main( int argc, char **argv ) { - int i; #if defined (XFORMS) void *status; #endif int CC_id; uint8_t abstraction_flag=0; - uint8_t beta_ACK=0,beta_RI=0,beta_CQI=2; + + // Default value for the number of UEs. It will hold, + // if not changed from the command line option --num-ues + NB_UE_INST=1; #if defined (XFORMS) int ret; @@ -761,17 +784,11 @@ 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 - PHY_VARS_UE *UE[MAX_NUM_CCs]; mode = normal_txrx; memset(&openair0_cfg[0],0,sizeof(openair0_config_t)*MAX_CARDS); - memset(tx_max_power,0,sizeof(int)*MAX_NUM_CCs); set_latency_target(); @@ -779,11 +796,33 @@ int main( int argc, char **argv ) printf("Reading in command-line options\n"); - get_options (); + for (int i=0;i 1 && simL1flag != 1) { + printf("Running with more than 1 UE instance and simL1 is not active, this will result in undefined behaviour for now, exiting.\n"); + abort(); + } + + printf("NFAPI_MODE value: %d \n", nfapi_mode); + + // Not sure if the following is needed here + /*if (CONFIG_ISFLAGSET(CONFIG_ABORT)) { + if (UE_flag == 0) { + fprintf(stderr,"Getting configuration failed\n"); + exit(-1); + } + else { + printf("Setting nfapi mode to UE_STUB_OFFNET\n"); + nfapi_mode = 4; + } + }*/ #if T_TRACER - T_init(T_port, 1-T_nowait, T_dont_fork); + T_Config_Init(); #endif @@ -792,34 +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(EMU, 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(); + pthread_cond_init(&sync_cond,NULL); + pthread_mutex_init(&sync_mutex, NULL); + #if defined(ENABLE_ITTI) - log_set_instance_type (LOG_INSTANCE_UE); 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); @@ -845,6 +881,14 @@ int main( int argc, char **argv ) #endif #endif +//TTN for D2D +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + printf ("RRC control socket\n"); + rrc_control_socket_init(); + printf ("PDCP PC5S socket\n"); + pdcp_pc5_socket_init(); +#endif + #if !defined(ENABLE_ITTI) // to make a graceful exit when ctrl-c is pressed signal(SIGSEGV, signal_handler); @@ -869,66 +913,64 @@ int main( int argc, char **argv ) - printf("Before CC \n"); + NB_INST=1; + if(nfapi_mode == 3){ + PHY_vars_UE_g = malloc(sizeof(PHY_VARS_UE**)*NB_UE_INST); + for (int i=0; imac_enabled = 0; - else - UE[CC_id]->mac_enabled = 1; - - if (UE[CC_id]->mac_enabled == 0) { //set default UL parameters for testing mode - for (i=0; ipusch_config_dedicated[i].betaOffset_ACK_Index = beta_ACK; - UE[CC_id]->pusch_config_dedicated[i].betaOffset_RI_Index = beta_RI; - UE[CC_id]->pusch_config_dedicated[i].betaOffset_CQI_Index = beta_CQI; - - UE[CC_id]->scheduling_request_config[i].sr_PUCCH_ResourceIndex = 0; - UE[CC_id]->scheduling_request_config[i].sr_ConfigIndex = 7+(0%3); - UE[CC_id]->scheduling_request_config[i].dsr_TransMax = sr_n4; - } - } - - UE[CC_id]->UE_scan = UE_scan; - UE[CC_id]->UE_scan_carrier = UE_scan_carrier; - UE[CC_id]->mode = mode; - printf("UE[%d]->mode = %d\n",CC_id,mode); - - if (UE[CC_id]->mac_enabled == 1) { - UE[CC_id]->pdcch_vars[0][0]->crnti = 0x1234; - UE[CC_id]->pdcch_vars[1][0]->crnti = 0x1234; - }else { - UE[CC_id]->pdcch_vars[0][0]->crnti = 0x1235; - UE[CC_id]->pdcch_vars[1][0]->crnti = 0x1235; - } - UE[CC_id]->rx_total_gain_dB = (int)rx_gain[CC_id][0] + rx_gain_off; - UE[CC_id]->tx_power_max_dBm = tx_max_power[CC_id]; - - if (frame_parms[CC_id]->frame_type==FDD) { - UE[CC_id]->N_TA_offset = 0; - } - else { - if (frame_parms[CC_id]->N_RB_DL == 100) - UE[CC_id]->N_TA_offset = 624; - else if (frame_parms[CC_id]->N_RB_DL == 50) - UE[CC_id]->N_TA_offset = 624/2; - else if (frame_parms[CC_id]->N_RB_DL == 25) - UE[CC_id]->N_TA_offset = 624/4; - - } - init_openair0(); + + if (phy_test==1) + PHY_vars_UE_g[i][CC_id]->mac_enabled = 0; + else + PHY_vars_UE_g[i][CC_id]->mac_enabled = 1; + } + } + } + else init_openair0(frame_parms[0],(int)rx_gain[0][0]); + + + if (simL1flag==1) { + AssertFatal(NULL!=load_configmodule(argc,argv), + "[SOFTMODEM] Error, configuration module init failed\n"); + + RCConfig_sim(); } - printf("Runtime table\n"); - fill_modeled_runtime_table(runtime_phy_rx,runtime_phy_tx); + // start the main UE threads + int eMBMS_active = 0; + + if (nfapi_mode==3) // UE-STUB-PNF + { + config_sync_var=0; + wait_nfapi_init("main?"); + //Panos: Temporarily we will be using single set of threads for multiple UEs. + //init_UE_stub(1,eMBMS_active,uecap_xer_in,emul_iface); + init_UE_stub_single_thread(NB_UE_INST,eMBMS_active,uecap_xer_in,emul_iface); + } + 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]); + } + + + if (phy_test==0) { + printf("Filling UE band info\n"); + fill_ue_band_info(); + dl_phy_sync_success (0, 0, 0, 1); + } + + if (nfapi_mode!=3){ + number_of_cards = 1; + for(CC_id=0; CC_idrf_map.card=0; + PHY_vars_UE_g[0][CC_id]->rf_map.chain=CC_id+chain_offset; + } + } + + cpuf=get_cpu_freq_GHz(); @@ -979,18 +1021,76 @@ int main( int argc, char **argv ) printf("cannot create ITTI tasks\n"); exit(-1); // need a softer mode } + 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"); #endif - // init UE_PF_PO and mutex lock - pthread_mutex_init(&ue_pf_po_mutex, NULL); - memset (&UE_PF_PO[0][0], 0, sizeof(UE_PF_PO_t)*NUMBER_OF_UE_MAX*MAX_NUM_CCs); mlockall(MCL_CURRENT | MCL_FUTURE); - pthread_cond_init(&sync_cond,NULL); - pthread_mutex_init(&sync_mutex, NULL); - + + 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; @@ -1026,68 +1126,25 @@ 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); - // start the main threads - int eMBMS_active = 0; - init_UE(1,eMBMS_active,uecap_xer_in,0); - - if (phy_test==0) { - printf("Filling UE band info\n"); - fill_ue_band_info(); - dl_phy_sync_success (0, 0, 0, 1); - } - - number_of_cards = 1; - for(CC_id=0; CC_idrf_map.card=0; - PHY_vars_UE_g[0][CC_id]->rf_map.chain=CC_id+chain_offset; - } - - - - // connect the TX/RX buffers - - for (CC_id=0; CC_idhw_timing_advance = timing_advance; -#else - UE[CC_id]->hw_timing_advance = 160; -#endif - } - if (setup_ue_buffers(UE,&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(UE[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; - - printf("Sending sync to all threads\n"); 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(); printf("Called end_configmodule() from %s() %s:%d\n", __FUNCTION__, __FILE__, __LINE__); - +*/ // wait for end of program printf("TYPE TO TERMINATE\n"); //getchar(); + #if defined(ENABLE_ITTI) printf("Entering ITTI signals handler\n"); itti_wait_tasks_end(); @@ -1096,9 +1153,9 @@ int main( int argc, char **argv ) printf("oai_exit=%d\n",oai_exit); #else - while (oai_exit==0) - rt_sleep_ns(100000000ULL); - printf("Terminating application - oai_exit=%d\n",oai_exit); + while (oai_exit==0) + rt_sleep_ns(100000000ULL); + printf("Terminating application - oai_exit=%d\n",oai_exit); #endif @@ -1121,15 +1178,12 @@ int main( int argc, char **argv ) pthread_cond_destroy(&sync_cond); pthread_mutex_destroy(&sync_mutex); - pthread_mutex_destroy(&ue_pf_po_mutex); + // pthread_mutex_destroy(&ue_pf_po_mutex); // *** Handle per CC_id openair0 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 new file mode 100644 index 0000000000..cdf8f1ad0d --- /dev/null +++ b/targets/RT/USER/rfsim.c @@ -0,0 +1,541 @@ +/* + * 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 rfsim.c +* \brief function for simulated RF device +* \author R. Knopp +* \date 2018 +* \version 1.0 +* \company Eurecom +* \email: openair_tech@eurecom.fr +* \note +* \warning +*/ + + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "assertions.h" +#include "rfsim.h" +#include "openair1/SIMULATION/TOOLS/sim.h" +#include "enb_config.h" +#include "enb_paramdef.h" +#include "platform_constants.h" +#include "common/config/config_paramdesc.h" +#include "common/config/config_userapi.h" +#include "common/ran_context.h" +#include "PHY/defs_UE.h" +#include "PHY/defs_eNB.h" +#include "common/utils/LOG/vcd_signal_dumper.h" + +RAN_CONTEXT_t RC; +extern PHY_VARS_UE ***PHY_vars_UE_g; + + +// put all of these in a common structure after +sim_t sim; + + +void init_ru_devices(void); +void init_RU(const char*); +void *rfsim_top(void *n_frames); + +void wait_RUs(void) +{ + int i; + + // wait for all RUs to be configured over fronthaul + pthread_mutex_lock(&RC.ru_mutex); + + + + while (RC.ru_mask>0) { + pthread_cond_wait(&RC.ru_cond,&RC.ru_mutex); + } + + // copy frame parameters from RU to UEs + for (i=0;iframe_parms.samples_per_tti + RC.ru[0]->frame_parms.ofdm_symbol_size + RC.ru[0]->frame_parms.nb_prefix_samples0; + + } + + for (int ru_id=0;ru_idframe_parms.samples_per_tti; + + printf("RUs are ready, let's go\n"); +} + +void wait_eNBs(void) +{ + return; +} + + +void RCConfig_sim(void) { + + paramlist_def_t RUParamList = {CONFIG_STRING_RU_LIST,NULL,0}; + + // AssertFatal(RC.config_file_name!=NULL,"configuration file is undefined\n"); + + // Get num RU instances + config_getlist( &RUParamList,NULL,0, NULL); + RC.nb_RU = RUParamList.numelt; + + printf("returned with %d rus\n",RC.nb_RU); + + init_RU(NULL); + + printf("Waiting for RUs to get set up\n"); + wait_RUs(); + + init_ru_devices(); + + static int nframes = 100000; + + AssertFatal(0 == pthread_create(&sim.rfsim_thread, + NULL, + rfsim_top, + (void*)&nframes), ""); + +} + + + +int ru_trx_start(openair0_device *device) { + return(0); +} + +void ru_trx_end(openair0_device *device) { + return; +} + +int ru_trx_stop(openair0_device *device) { + return(0); +} +int UE_trx_start(openair0_device *device) { + return(0); +} +void UE_trx_end(openair0_device *device) { + return; +} +int UE_trx_stop(openair0_device *device) { + return(0); +} +int ru_trx_set_freq(openair0_device *device, openair0_config_t *openair0_cfg, int dummy) { + return(0); +} +int ru_trx_set_gains(openair0_device *device, openair0_config_t *openair0_cfg) { + return(0); +} +int UE_trx_set_freq(openair0_device *device, openair0_config_t *openair0_cfg, int dummy) { + return(0); +} +int UE_trx_set_gains(openair0_device *device, openair0_config_t *openair0_cfg) { + return(0); +} + +extern pthread_mutex_t subframe_mutex; +extern int subframe_ru_mask,subframe_UE_mask; + + +int ru_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void **buff, int nsamps, int cc) { + + int ru_id = device->Mod_id; + int CC_id = device->CC_id; + + int subframe; + int sample_count=0; + + *ptimestamp = sim.last_ru_rx_timestamp[ru_id][CC_id]; + + + LOG_D(SIM,"RU_trx_read nsamps %d TS(%llu,%llu) => subframe %d\n",nsamps, + (unsigned long long)sim.current_ru_rx_timestamp[ru_id][CC_id], + (unsigned long long)sim.last_ru_rx_timestamp[ru_id][CC_id], + (int)((*ptimestamp/RC.ru[ru_id]->frame_parms.samples_per_tti)%10)); + // if we're at a subframe boundary generate UL signals for this ru + + while (sample_countframe_parms.samples_per_tti)%10; + if (subframe_select(&RC.ru[ru_id]->frame_parms,subframe) != SF_DL || RC.ru[ru_id]->frame_parms.frame_type == FDD) { + LOG_D(SIM,"RU_trx_read generating UL subframe %d (Ts %llu, current TS %llu)\n", + subframe,(unsigned long long)*ptimestamp, + (unsigned long long)sim.current_ru_rx_timestamp[ru_id][CC_id]); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_DO_UL_SIGNAL,1); + do_UL_sig(&sim, + subframe, + 0, // abstraction_flag + &RC.ru[ru_id]->frame_parms, + 0, // frame is only used for abstraction + ru_id, + CC_id); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_DO_UL_SIGNAL,0); + } + sim.last_ru_rx_timestamp[ru_id][CC_id] += RC.ru[ru_id]->frame_parms.samples_per_tti; + sample_count += RC.ru[ru_id]->frame_parms.samples_per_tti; + } + + + return(nsamps); +} + +int UE_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void **buff, int nsamps, int cc) +{ + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_UE_TRX_READ,1); + int UE_id = device->Mod_id; + int CC_id = device->CC_id; + + int subframe; + int sample_count=0; + int read_size; + int sptti = PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti; + + *ptimestamp = sim.last_UE_rx_timestamp[UE_id][CC_id]; + + LOG_D(PHY,"UE %d DL simulation 0: UE_trx_read nsamps %d TS %llu (%llu, offset %d) antenna %d\n", + UE_id, + nsamps, + (unsigned long long)sim.current_UE_rx_timestamp[UE_id][CC_id], + (unsigned long long)sim.last_UE_rx_timestamp[UE_id][CC_id], + (int)(sim.last_UE_rx_timestamp[UE_id][CC_id]%sptti), + cc); + + + if (nsamps < sptti) + read_size = nsamps; + else + read_size = sptti; + + while (sample_countframe_parms, + UE_id, + CC_id); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_DO_DL_SIGNAL,0); + LOG_D(PHY,"UE %d: DL simulation 6: UE_trx_read @ TS %"PRIi64" (%"PRIi64")=> frame %d, subframe %d\n", + UE_id, sim.current_UE_rx_timestamp[UE_id][CC_id], + sim.last_UE_rx_timestamp[UE_id][CC_id], + (int)((sim.last_UE_rx_timestamp[UE_id][CC_id]/(sptti*10))&1023), + subframe); + + sim.last_UE_rx_timestamp[UE_id][CC_id] += read_size; + sample_count += read_size; + + + + + } + + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_UE_TRX_READ,0); + return(nsamps); +} + + +int ru_trx_write(openair0_device *device,openair0_timestamp timestamp, void **buff, int nsamps, int cc, int flags) { + + int ru_id = device->Mod_id; + + LTE_DL_FRAME_PARMS *frame_parms = &RC.ru[ru_id]->frame_parms; + + pthread_mutex_lock(&sim.subframe_mutex); + LOG_D(SIM,"[TXPATH] ru_trx_write: RU %d mask %d\n",ru_id,sim.subframe_ru_mask); + pthread_mutex_unlock(&sim.subframe_mutex); + + // compute amplitude of TX signal from first symbol in subframe + // note: assumes that the packet is an entire subframe + + sim.ru_amp[ru_id] = 0; + for (int aa=0; aanb_tx; aa++) { + sim.ru_amp[ru_id] += (double)signal_energy((int32_t*)buff[aa],frame_parms->ofdm_symbol_size)/(12*frame_parms->N_RB_DL); + } + sim.ru_amp[ru_id] = sqrt(sim.ru_amp[ru_id]); + + LOG_D(PHY,"Setting amp for RU %d to %f (%d)\n",ru_id,sim.ru_amp[ru_id], dB_fixed((double)signal_energy((int32_t*)buff[0],frame_parms->ofdm_symbol_size))); + // tell top-level we are done + pthread_mutex_lock(&sim.subframe_mutex); + sim.subframe_ru_mask|=(1<rfdevice.Mod_id = ru_id; + ru->rfdevice.CC_id = 0; + ru->rfdevice.trx_start_func = ru_trx_start; + ru->rfdevice.trx_read_func = ru_trx_read; + ru->rfdevice.trx_write_func = ru_trx_write; + ru->rfdevice.trx_end_func = ru_trx_end; + ru->rfdevice.trx_stop_func = ru_trx_stop; + ru->rfdevice.trx_set_freq_func = ru_trx_set_freq; + ru->rfdevice.trx_set_gains_func = ru_trx_set_gains; + sim.last_ru_rx_timestamp[ru_id][0] = 0; + + } +} + +void init_ue_devices(PHY_VARS_UE *UE) { + + AssertFatal(UE!=NULL,"UE context is not allocated\n"); + printf("Initializing UE %d.%d\n",UE->Mod_id,UE->CC_id); + UE->rfdevice.Mod_id = UE->Mod_id; + UE->rfdevice.CC_id = UE->CC_id; + UE->rfdevice.trx_start_func = UE_trx_start; + UE->rfdevice.trx_read_func = UE_trx_read; + UE->rfdevice.trx_write_func = UE_trx_write; + UE->rfdevice.trx_end_func = UE_trx_end; + UE->rfdevice.trx_stop_func = UE_trx_stop; + UE->rfdevice.trx_set_freq_func = UE_trx_set_freq; + UE->rfdevice.trx_set_gains_func = UE_trx_set_gains; + sim.last_UE_rx_timestamp[UE->Mod_id][UE->CC_id] = 0; +} + +void init_ocm(double snr_dB,double sinr_dB) +{ + module_id_t UE_id, ru_id; + int CC_id; + + randominit(0); + set_taus_seed(0); + + + init_channel_vars ();//fp, &s_re, &s_im, &r_re, &r_im, &r_re0, &r_im0); + + // initialize channel descriptors + LOG_I(PHY,"Initializing channel descriptors (nb_RU %d, nb_UE %d)\n",RC.nb_RU,NB_UE_INST); + for (ru_id = 0; ru_id < RC.nb_RU; ru_id++) { + for (UE_id = 0; UE_id < NB_UE_INST; UE_id++) { + for (CC_id=0; CC_idframe_parms.N_RB_DL); + sim.RU2UE[ru_id][UE_id][CC_id] = + new_channel_desc_scm(RC.ru[ru_id]->nb_tx, + PHY_vars_UE_g[UE_id][CC_id]->frame_parms.nb_antennas_rx, + AWGN, + N_RB2sampling_rate(RC.ru[ru_id]->frame_parms.N_RB_DL), + N_RB2channel_bandwidth(RC.ru[ru_id]->frame_parms.N_RB_DL), + 0.0, + 0, + 0); + random_channel(sim.RU2UE[ru_id][UE_id][CC_id],0); + LOG_D(OCM,"[SIM] Initializing channel (%s) from UE %d to ru %d\n", "AWGN",UE_id, ru_id); + + + sim.UE2RU[UE_id][ru_id][CC_id] = + new_channel_desc_scm(PHY_vars_UE_g[UE_id][CC_id]->frame_parms.nb_antennas_tx, + RC.ru[ru_id]->nb_rx, + AWGN, + N_RB2sampling_rate(RC.ru[ru_id]->frame_parms.N_RB_UL), + N_RB2channel_bandwidth(RC.ru[ru_id]->frame_parms.N_RB_UL), + 0.0, + 0, + 0); + + random_channel(sim.UE2RU[UE_id][ru_id][CC_id],0); + + // to make channel reciprocal uncomment following line instead of previous. However this only works for SISO at the moment. For MIMO the channel would need to be transposed. + //UE2RU[UE_id][ru_id] = RU2UE[ru_id][UE_id]; + + AssertFatal(sim.RU2UE[ru_id][UE_id][CC_id]!=NULL,"RU2UE[%d][%d][%d] is null\n",ru_id,UE_id,CC_id); + AssertFatal(sim.UE2RU[UE_id][ru_id][CC_id]!=NULL,"UE2RU[%d][%d][%d] is null\n",UE_id,ru_id,CC_id); + //pathloss: -132.24 dBm/15kHz RE + target SNR - eNB TX power per RE + if (ru_id == (UE_id % RC.nb_RU)) { + sim.RU2UE[ru_id][UE_id][CC_id]->path_loss_dB = -132.24 + snr_dB - RC.ru[ru_id]->frame_parms.pdsch_config_common.referenceSignalPower; + sim.UE2RU[UE_id][ru_id][CC_id]->path_loss_dB = -132.24 + snr_dB - RC.ru[ru_id]->frame_parms.pdsch_config_common.referenceSignalPower; + } else { + sim.RU2UE[ru_id][UE_id][CC_id]->path_loss_dB = -132.24 + sinr_dB - RC.ru[ru_id]->frame_parms.pdsch_config_common.referenceSignalPower; + sim.UE2RU[UE_id][ru_id][CC_id]->path_loss_dB = -132.24 + sinr_dB - RC.ru[ru_id]->frame_parms.pdsch_config_common.referenceSignalPower; + } + + LOG_I(OCM,"Path loss from eNB %d to UE %d (CCid %d)=> %f dB (eNB TX %d, SNR %f)\n",ru_id,UE_id,CC_id, + sim.RU2UE[ru_id][UE_id][CC_id]->path_loss_dB, + RC.ru[ru_id]->frame_parms.pdsch_config_common.referenceSignalPower,snr_dB); + + + } + } + } +} + + +void update_ocm(double snr_dB,double sinr_dB) +{ + module_id_t UE_id, ru_id; + int CC_id; + + + for (ru_id = 0; ru_id < RC.nb_RU; ru_id++) { + for (UE_id = 0; UE_id < NB_UE_INST; UE_id++) { + for (CC_id=0; CC_idpath_loss_dB = -132.24 + snr_dB - RC.ru[ru_id]->frame_parms.pdsch_config_common.referenceSignalPower; + sim.UE2RU[UE_id][ru_id][CC_id]->path_loss_dB = -132.24 + snr_dB - RC.ru[ru_id]->frame_parms.pdsch_config_common.referenceSignalPower; + } else { + sim.RU2UE[ru_id][UE_id][CC_id]->path_loss_dB = -132.24 + sinr_dB - RC.ru[ru_id]->frame_parms.pdsch_config_common.referenceSignalPower; + sim.UE2RU[UE_id][ru_id][CC_id]->path_loss_dB = -132.24 + sinr_dB - RC.ru[ru_id]->frame_parms.pdsch_config_common.referenceSignalPower; + } + + LOG_D(OCM,"Path loss from eNB %d to UE %d (CCid %d)=> %f dB (eNB TX %d, SNR %f)\n",ru_id,UE_id,CC_id, + sim.RU2UE[ru_id][UE_id][CC_id]->path_loss_dB, + RC.ru[ru_id]->frame_parms.pdsch_config_common.referenceSignalPower,snr_dB); + + } + } + } +} + + +void init_channel_vars(void) +{ + + int i; + + memset(sim.RU_output_mask,0,sizeof(int)*NUMBER_OF_UE_MAX); + for (i=0;iframe_parms,(sf+4)%10)!=SF_UL) ? sim.subframe_ru_mask : ((1<frame_parms.frame_type == FDD || subframe_select(&RC.ru[0]->frame_parms,(sf+4)%10)!=SF_DL) ? sim.subframe_UE_mask : ((1<frame_parms.samples_per_tti; + LOG_D(SIM,"RU %d/%d: TS %"PRIi64"\n",ru_id,CC_id,sim.current_ru_rx_timestamp[ru_id][CC_id]); + } + for (int UE_inst = 0; UE_instframe_parms.samples_per_tti; + LOG_D(SIM,"UE %d/%d: TS %"PRIi64"\n",UE_inst,CC_id,sim.current_UE_rx_timestamp[UE_inst][CC_id]); + } + if (oai_exit == 1) return((void*)NULL); + } + } + + return((void*)NULL); +} diff --git a/targets/SIMU/USER/cor_SF_sim.h b/targets/RT/USER/rfsim.h similarity index 74% rename from targets/SIMU/USER/cor_SF_sim.h rename to targets/RT/USER/rfsim.h index 35b75564e8..c5361724c9 100644 --- a/targets/SIMU/USER/cor_SF_sim.h +++ b/targets/RT/USER/rfsim.h @@ -18,14 +18,19 @@ * For more information about the OpenAirInterface (OAI) Software Alliance: * contact@openairinterface.org */ +#ifndef __RFSIM__H__ +#define __RFSIM__H__ +#include "lte-softmodem.h" +#include "openair1/SIMULATION/TOOLS/sim.h" +#include "platform_constants.h" +#include "common/ran_context.h" +#include "PHY/defs_UE.h" +#include "PHY/defs_eNB.h" -#include -#include -#include -//#include -#include -#include +void init_ocm(double snr_dB,double sinr_dB); -double **init_SF (int map_length, int map_height, double decor_dist, double variance); //,double decor,double var); -double **createMat (int nbRow, int nbCol); -void destroyMat(double **mat1,int row,int col); +void update_ocm(double snr_dB,double sinr_dB); + +void init_channel_vars(void); + +#endif diff --git a/targets/RT/USER/rru_if4p5_simulator.gtkw b/targets/RT/USER/rru_if4p5_simulator.gtkw new file mode 100644 index 0000000000..40ed3b5c7d --- /dev/null +++ b/targets/RT/USER/rru_if4p5_simulator.gtkw @@ -0,0 +1,42 @@ +[*] +[*] GTKWave Analyzer v3.3.58 (w)1999-2014 BSI +[*] Tue Jun 5 12:44:02 2018 +[*] +[dumpfile] "/tmp/openair_dump_UE.vcd" +[dumpfile_mtime] "Tue Jun 5 12:38:07 2018" +[dumpfile_size] 21826387 +[savefile] "/home/knopp/oai/openairinterface5g/targets/RT/USER/rru_if4p5_simulator.gtkw" +[timestart] 6591570000 +[size] 1301 716 +[pos] 309 0 +*-22.793451 29983948856 -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 +[sst_width] 312 +[signals_width] 262 +[sst_expanded] 1 +[sst_vpaned_height] 294 +@29 +functions.UE_trx_read +@28 +functions.trx_read +functions.trx_write +@24 +variables.trx_write_flags[63:0] +@28 +functions.trx_write_if +functions.send_if4 +functions.trx_read_if +functions.recv_if4 +@24 +variables.trx_ts[63:0] +variables.trx_tst[63:0] +variables.frame_number_RX0_RU[63:0] +variables.subframe_number_RX0_RU[63:0] +variables.frame_number_TX0_RU[63:0] +variables.subframe_number_TX0_RU[63:0] +@28 +functions.do_DL_sig +functions.do_UL_sig +functions.phy_procedures_ru_feprx0 +functions.phy_procedures_ru_feptx_ofdm0 +[pattern_trace] 1 +[pattern_trace] 0 diff --git a/targets/RT/USER/rru_if4p5_usrp.gtkw b/targets/RT/USER/rru_if4p5_usrp.gtkw index 1a13e6d15f..93bac49812 100644 --- a/targets/RT/USER/rru_if4p5_usrp.gtkw +++ b/targets/RT/USER/rru_if4p5_usrp.gtkw @@ -1,23 +1,23 @@ [*] [*] GTKWave Analyzer v3.3.58 (w)1999-2014 BSI -[*] Sun Jan 15 07:26:50 2017 +[*] Tue Jun 5 09:36:17 2018 [*] -[dumpfile] "/tmp/openair_dump_eNB.vcd" -[dumpfile_mtime] "Sun Jan 15 07:04:19 2017" -[dumpfile_size] 18140627 -[savefile] "/home/uprru1/oai/openairinterface5g/targets/RT/USER/rru_if4p5_usrp.gtkw" -[timestart] 29977510000 +[dumpfile] "/tmp/openair_dump_UE.vcd" +[dumpfile_mtime] "Tue Jun 5 09:22:52 2018" +[dumpfile_size] 23057775 +[savefile] "/home/knopp/oai/openairinterface5g/targets/RT/USER/rru_if4p5_usrp.gtkw" +[timestart] 25050480000 [size] 1301 716 [pos] 309 0 *-21.793451 29983948856 -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 -[sst_width] 284 +[sst_width] 312 [signals_width] 262 [sst_expanded] 1 [sst_vpaned_height] 294 @28 functions.trx_read functions.trx_write -@25 +@24 variables.trx_write_flags[63:0] @28 functions.trx_write_if @@ -27,23 +27,10 @@ functions.recv_if4 @24 variables.trx_ts[63:0] variables.trx_tst[63:0] -@28 -functions.eNB_thread_rxtx0 -@24 -variables.frame_number_RX0_eNB[63:0] -variables.subframe_number_RX0_eNB[63:0] -variables.frame_number_TX0_eNB[63:0] -variables.subframe_number_TX0_eNB[63:0] -@28 -functions.eNB_thread_rxtx1 -@24 -variables.frame_number_RX1_eNB[63:0] -variables.subframe_number_RX1_eNB[63:0] -variables.frame_number_TX1_eNB[63:0] -variables.subframe_number_TX1_eNB[63:0] -@28 -functions.phy_eNB_ofdm_mod_l -functions.phy_eNB_slot_fep -functions.phy_enb_prach_rx +variables.frame_number_RX0_RU[63:0] +variables.subframe_number_RX0_RU[63:0] +variables.frame_number_TX0_RU[63:0] +@25 +variables.subframe_number_TX0_RU[63:0] [pattern_trace] 1 [pattern_trace] 0 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/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/Makefile b/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/Makefile deleted file mode 100644 index c8ea4ea5c3..0000000000 --- a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -all: oaisim nasmesh - -oaisim: - (cd $(OPENAIR_TARGETS)/SIMU/USER && make LINK_ENB_PDCP_TO_IP_DRIVER=1 -j2 ) -nasmesh: - (cd $(OPENAIR2_DIR) && make nasmesh_netlink.ko) - (cd $(OPENAIR2_DIR)/NAS/DRIVER/MESH/RB_TOOL/ && make) - -one_eNB_one_UE: oaisim nasmesh - -userclean: clean oaisim nasmesh - -clean: - (cd $(OPENAIR_TARGETS)/SIMU/USER && make cleanall) diff --git a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_enb b/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_enb deleted file mode 100755 index 9274c93ca9..0000000000 --- a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_enb +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/sh - -sudo kill -9 `ps -ef | grep oaisim | awk '{print $2}'` -sudo pkill oaisim - -# set params -EMULATION_DEV_INTERFACE="eth0" -EMULATION_MULTICAST_GROUP=1 -EMULATION_LOG_LEVEL=7 # 3 = error, 5 info, 7 debug, trace= 9 -#OAI_LOCAL_ADDRESS="10.0.1.1" -#OAI_REMOTE_ADDRESS="10.0.1.2" -#EMULATION_DEV_ADDRESS= `hostname -I cut -f1 -d' '` -EMULATION_DEV_ADDRESS=`LC_ALL=C ifconfig $EMULATION_DEV_INTERFACE | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'` - -echo "Setting Emulation Interface to $EMULATION_DEV_INTERFACE ($EMULATION_DEV_ADDRESS)" - -#funcs -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 not installed." - sudo apt-get install --assume-yes $1 - } - fi -} - -#PGM provide a reliable mutlicast data transport" -test_install_package libpgm-dev -test_install_package libpgm-5.1-0 - -PGM_FOUND=`dpkg-query -W -f='${Status}' libpgm-dev 2>/dev/null | grep -c "ok installed" ` - -if [ $PGM_FOUND = 1 ]; then - PGM=-D$EMULATION_DEV_ADDRESS -else - PGM=" " -fi - -# check the compilation -echo "Bringup eNB interface" -sudo rmmod nasmesh -make all -sudo insmod $OPENAIR2_DIR/NAS/DRIVER/MESH/nasmesh.ko - -#avoid conflict with reserved multicast addresses (224.0.0.11,224.0.0.13, 224.0.0.16) -#sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 -echo "Make sure that eth0 is the interface between the machines, otherwise change" -sudo ip route add 239.0.0.160/28 dev $EMULATION_DEV_INTERFACE - -# when running as a suduoers, the following lines are not needed -#sudo ifconfig oai0 $OAI_LOCAL_ADDRESS netmask 255.255.255.0 broadcast 10.0.1.255 -#echo "applying DRB classification" -#echo "$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c0 -i0 -z0 -s $OAI_LOCAL_ADDRESS -t $OAI_REMOTE_ADDRESS -r 1" -#$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c0 -i0 -z0 -s $OAI_LOCAL_ADDRESS -t $OAI_REMOTE_ADDRESS -r 1 - -if [ -z $1 ]; then -echo "$OPENAIR_TARGETS/SIMU/USER/oaisim -u0 -M0 -p2 -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM > /dev/null" -sudo -E $OPENAIR_TARGETS/SIMU/USER/oaisim -u0 -M0 -p2 -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM > /dev/null -else - if [ $1 = "all" ]; then - echo "$OPENAIR_TARGETS/SIMU/USER/oaisim -u0 -M0 -p2 -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM" - sudo -E $OPENAIR_TARGETS/SIMU/USER/oaisim -u0 -M0 -p2 -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM - else - echo "$OPENAIR_TARGETS/SIMU/USER/oaisim -u0 -M0 -p2 -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM | grep -i $1" - sudo -E $OPENAIR_TARGETS/SIMU/USER/oaisim -u0 -M0 -p2 -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM | grep -i $1 - fi -fi -echo "End" diff --git a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_ue b/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_ue deleted file mode 100755 index b014717b31..0000000000 --- a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_ue +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/sh - -sudo kill -9 `ps -ef | grep oaisim | awk '{print $2}'` -sudo pkill oaisim - -# set params -EMULATION_DEV_INTERFACE="eth0" -EMULATION_MULTICAST_GROUP=1 -EMULATION_LOG_LEVEL=7 # 3 = error, 5 info, 7 debug, trace= 9 -#OAI_LOCAL_ADDRESS="10.0.1.2" -#OAI_REMOTE_ADDRESS="10.0.1.1" -#EMULATION_DEV_ADDRESS= `hostname -I cut -f1 -d' '` -EMULATION_DEV_ADDRESS=`LC_ALL=C ifconfig $EMULATION_DEV_INTERFACE | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'` - -echo "Setting Emulation Interface to $EMULATION_DEV_INTERFACE ($EMULATION_DEV_ADDRESS)" - -#funcs -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 not installed." - sudo apt-get install --assume-yes $1 - } - fi -} -#PGM provide a reliable mutlicast data transport" -test_install_package libpgm-dev -test_install_package libpgm-5.1-0 -PGM_FOUND=`dpkg-query -W -f='${Status}' libpgm-dev 2>/dev/null | grep -c "ok installed" ` -if [ $PGM_FOUND = 1 ]; then - PGM=-D$EMULATION_DEV_ADDRESS -else - PGM=" " -fi - -echo "Building" -sudo rmmod nasmesh -make nasmesh all -sudo insmod $OPENAIR2_DIR/NAS/DRIVER/MESH/nasmesh.ko - - -#avoid conflict with reserved multicast addresses (224.0.0.11,224.0.0.13, 224.0.0.16) -#sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 -echo "Make sure that eth0 is the interface between the machines, otherwise change" -sudo ip route add 239.0.0.160/28 dev $EMULATION_DEV_INTERFACE - -# when running as a suduoers, the following lines are not needed -#sudo ifconfig oai0 $OAI_LOCAL_ADDRES netmask 255.255.255.0 broadcast 10.0.1.255 -#$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c0 -i0 -z0 -s $OAI_LOCAL_ADDRESS -t $OAI_REMOTE_ADDRESS -r 1 - -# running oaisim -if [ -z $1 ]; then -echo "$OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M1 -p2 -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM > /dev/null" -sudo -E $OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M1 -p2 -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM > /dev/null -else - if [ $1 = "all" ]; then - echo "$OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M1 -p2 -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM " - sudo -E $OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M1 -p2 -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM - else - echo "$OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M1 -p2 -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM | grep -i $1" - sudo -E $OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M1 -p2 -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM | grep -i $1 - fi -fi -echo "End" diff --git a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/AT_serial_bouchon.py b/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/AT_serial_bouchon.py deleted file mode 100755 index 4c1a505542..0000000000 --- a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/AT_serial_bouchon.py +++ /dev/null @@ -1,209 +0,0 @@ -#!/usr/bin/python - -import os, sys, warnings -import serial - -def sendToTTY(lineP): - sys.stdout.write("\nSend:\n" + lineP+"\n") - g_ser.write(lineP) - g_ser.flush() - - - -g_ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1) - -buffer = '' -while True: - buffer += g_ser.read(1) - #sys.stdout.write("buffer is now:\n" + buffer+"\n") - buffer = buffer.lstrip('\r') - if '\r' in buffer: - at_received, buffer = buffer.split('\r')[-2:] - - at_received = at_received.strip('\n') - at_received = at_received.strip('\r') - - if at_received == '\n' or at_received == '' or at_received == '\r': - break - else: - sys.stdout.write("Receive stripped:\n" + at_received+"\n") - # Q0 = enable codes - # Q1 = disable codes - if at_received == 'ATE0Q0V1': - sendToTTY('\rOK\r') - - # ATS0, Automatic Answer - # This S-parameter controls the automatic answering feature of the modem - # 0 automatic answering is disabled - # 1 - 255 enable automatic answering on the ring number specified - # here value received is 0 - elif at_received.startswith('ATS0='): - sendToTTY('\rOK\r') - - # AT+CMEEReport mobile equipment error - #0 Disable +CME ERROR result code. Use ERROR instead. - #1 Enable +CME ERROR result code and use numeric values - #2 Enable +CME ERROR result code and use verbose values - # here value received is 1 - elif at_received.startswith('AT+CMEE='): - sendToTTY('\rOK\r') - - # Network registration events - # AT+CREGNetwork registration (ver. 2) - # Description: - # Controls the presentation of an unsolicited result code +CREG : - # when =1 and there is a change in the ME network registration status or - # code +CREG: [,,] when =2 and there is a change of thenetwork cell. - # Read command returns the status of result code presentation and an integer , - # which shows whether the network has currently indicated the registration of the ME. - # Location information elements and are returned only when =2 and ME - # is registered in the network. - # : - # 0 Disable network registration unsolicited result code. Default value - # 1 Enable network registration unsolicited result code,+CREG: - # 2 Enable network registration and location information unsolicited result code, +CREG:[,,] - # : - # 0 not registered new operator to registered and not searching - # 1 registered, home network - # 2 not registered, currently searching a new operator to register with - # 3 registration denied - # 4 unknown - # 5 registered, roaming - elif at_received == 'AT+CREG=2': - sendToTTY('\rOK\r') - sendToTTY('+CREG: 1,00C3,01021A02 \r') - - elif at_received == 'AT+CREG=1': - sendToTTY('\rOK\r') - sendToTTY('+CREG: 1\r') - - elif at_received == 'AT+CREG?': - sendToTTY('+CREG: 1,00C3,01021A02\r\nOK\r') - - - - # GPRS registration events - # +CGREGNetwork registration reporting - # Packet domain network registration status AT+CGPADDRShow PDP address - # Description: - # Controls the presentation of the unsolicited result code +CGREG: - # when ='1' and there is a change in the ME GPRS network registration status or - # +CGREG: [,,] when ='2' and there is achange of the network cell. - # --- - # Note: If the GPRS MT also supports circuit mode services, - # AT+CREG and the +CREG result code apply to the registration status and location - # information for those services. The read command returns the status of result - # code presentation and an integer which shows whether the network has - # currently indicated the registration of the ME. - # Location information elements and are returned only when =2 - # and ME is registered in the network. - elif at_received == 'AT+CGREG=1': - sendToTTY('\rOK\r') - sendToTTY('+CGREG: 1\r') - - elif at_received == 'AT+CGREG?': - sendToTTY('+CGREG: 0,1\r\nOK\r') - - - - # Call Waiting notifications - elif at_received == 'AT+CCWA=1': - sendToTTY('\rOK\r') - - # Alternating voice/data off - elif at_received == 'AT+CMOD=0': - sendToTTY('\rOK\r') - - # +CSSU unsolicited supp service notifications - elif at_received == 'AT+CSSN=0,1': - sendToTTY('\rOK\r') - - # no connected at_received identification - elif at_received == 'AT+COLP=0': - sendToTTY('+COLP:0\r\nOK\r') - - # HEX character set - # AT+CSCSSelect TE character set (ver. 3) - elif at_received == 'AT+CSCS=\"HEX\"': - sendToTTY('\rOK\r') - - # USSD unsolicited - # AT+CUSD Unstructured supplementary service data (ver. 2) - # - # 0 Disable result code presentation in the TA.Defaultvalue - # 1 Enable result code presentation in the TA - # 2 Terminate (abort) USSD dialogue. This value is not applicable to the read command response. Notsupported - elif at_received == 'AT+CUSD=1': - sendToTTY('\rOK\r') - - # Enable +CGEV GPRS event notifications, but don't buffer - # AT+CGEREPPacket domain event reporting (ver. 1) - elif at_received == 'AT+CGEREP=1,0': - sendToTTY('\rOK\r') - - # SMS PDU mode - # AT+CMGF Message format (ver. 1) - elif at_received == 'AT+CMGF=0': - sendToTTY('\rOK\r') - - elif at_received == 'AT+CPIN?': - sendToTTY('\r+CPIN: READY\r\nOK\r') - #sendToTTY('\rOK\r') - - # AT+CFUNSet phone functionality (ver. 2) - # 0 Minimum functionality, that is, the phone is turnedoff. Default value - # 1 Full functionality, that is, the phone is turned on - # 2 Disable phone transmit RF circuits only. Notsupported - # 3 Disable phone receive RF circuits only. Notsupported - # 4 Disable phone transmit and receive RF circuits.Note: This is often referred to as "flight mode" - # 5 GSM only (WCDMA radio off) - # 6 WCDMA only (GSM radio off) - elif at_received == 'AT+CFUN?': - sendToTTY('+CFUN: 1\r\nOK\r') - - elif at_received == 'AT+CFUN=1': - sendToTTY('\rOK\r') - - # AT+CLCCList current calls - # Description: - # Returns the list of current calls. If command succeeds but no calls areavailable, no information response is sent to TE - elif at_received == 'AT+CLCC': - sendToTTY('+CLCC: \r\nOK\r') - - # AT+COPSOperator selection (ver. 2) - # AT+COPS=[[,[,[,AcT]]]] - # - # Description - # 0 Automatic ( field is ignored.) Default value - # 1 Manual ( field will be present) - # 2 Deregister from network. Not supported - # 3 Set only (for read command +COPS?), donot attempt registration/deregistration ( field is ignored). - # This value is not applicable in readcommand response - # 4 Manual/automatic ( field will be present). Ifmanual selection fails, automatic mode (=0)is entered - elif at_received == 'AT+COPS=3,0;+COPS?;+COPS=3,1;+COPS?;+COPS=3,2;+COPS?': - sendToTTY('+COPS: 0,0, \"Free - Mobile\"\r\n+COPS: 0,1, \"Free\"\r\n+COPS: 0,2, \"310170\"\r\nOK\r') - - elif at_received == 'AT+COPS?': - #sendToTTY('+COPS: 0,0, \"Free - Mobile\"\r\n+COPS: 0,1, \"Free\"\r\n+COPS: 0,2, \"310170\"\r\nOK\r') - sendToTTY('+COPS: 0,0, \"Free - Mobile\"\r\nOK\r') - - elif at_received == 'AT+COPS=0': - #sendToTTY('+COPS: 0,0, \"Free - Mobile\"\r\n+COPS: 0,1, \"Free\"\r\n+COPS: 0,2, \"310170\"\r\nOK\r') - sendToTTY('+COPS: 0,0, \"Free - Mobile\"\r\nOK\r') - - # IMEI - elif at_received == 'AT+CGSN': - sendToTTY('+CGSN:534500314160207\r\nOK\r') - - # Signal quality (ver.1) - # Returns received signal strength indication and channel bit errorrate from the phone. - elif at_received == 'AT+CSQ': - #31,7 - sendToTTY('+CSQ:8,7\r\nOK\r') - - - - else: - sendToTTY('\rOK\r') - - diff --git a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/Makefile b/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/Makefile deleted file mode 100755 index c89992e7e4..0000000000 --- a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -all: oaisim naslite_netlink_ether - -oaisim: - (cd $(OPENAIR_TARGETS)/SIMU/USER && make oaisim OAI_NW_DRIVER_TYPE_ETHERNET=1 PDCP_USE_NETLINK=1) -naslite_netlink_ether: - (cd $(OPENAIR2_DIR) && make naslite_netlink_ether.ko) - (cd $(OPENAIR2_DIR)/NAS/DRIVER/LITE/RB_TOOL/ && make) - -remserial: - (cd $(OPENAIR3_DIR)/UTILS/REMSERIAL-1.4.UDP && make all) - (cp -upv $(OPENAIR3_DIR)/UTILS/REMSERIAL-1.4.UDP/remserial /usr/bin/remserial.udp) - -one_eNB_one_UE: oaisim naslite_netlink_ether - -userclean: clean oaisim naslite_netlink_ether - -clean: - (cd $(OPENAIR_TARGETS)/SIMU/USER && make clean) - (cd $(OPENAIR2_DIR)/NAS/DRIVER/LITE && make clean) - (cd $(OPENAIR2_DIR) && make clean) diff --git a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_enb b/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_enb deleted file mode 100755 index 010917b7cf..0000000000 --- a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_enb +++ /dev/null @@ -1,86 +0,0 @@ -#!/bin/sh -echo "Bringup eNB interface" - -ip link set oai0 down -rmmod nasmesh -make naslite_netlink_ether oaisim -insmod $OPENAIR2_DIR/NAS/DRIVER/LITE/nasmesh.ko nas_IMEI=3,9,1,8,3,6,6,2,0,0,0,0,0,0 - -#avoid conflict with reserved multicast addresses (224.0.0.11,224.0.0.13, 224.0.0.16) -#route add -net 224.0.0.0 netmask 240.0.0.0 dev eth2 -#ip addr add dev eth1 192.168.14.145/24 broadcast 192.168.14.255 -ip link set oai0 broadcast ff:ff:ff:ff:ff:ff -#ip route add 192.168.14.0/24 dev eth2 -ip route add 224.0.0.160/28 dev eth1 -ip link set oai0 up -sleep 1 - -EXTIF="eth0" -INTIF="oai0" -IPTABLES=/sbin/iptables -#IPTABLES=/usr/local/sbin/iptables -DEPMOD=/sbin/depmod -MODPROBE=/sbin/modprobe -echo " External Interface: $EXTIF" -echo " Internal Interface: $INTIF" -echo "----------------------------------------------------------------------" -echo -en "ip_tables, " -$MODPROBE ip_tables -echo -en "ip_conntrack, " -$MODPROBE ip_conntrack -echo -en "ip_conntrack_irc, " -$MODPROBE ip_conntrack_irc -echo -en "iptable_nat, " -$MODPROBE iptable_nat -echo -e " Done loading modules.\n" -echo " Enabling forwarding.." -echo "1" > /proc/sys/net/ipv4/ip_forward -echo " Enabling DynamicAddr.." -echo "1" > /proc/sys/net/ipv4/ip_dynaddr -echo " Clearing any existing rules and setting default policy.." -$IPTABLES -P INPUT ACCEPT -$IPTABLES -F INPUT -$IPTABLES -P OUTPUT ACCEPT -$IPTABLES -F OUTPUT -$IPTABLES -P FORWARD DROP -$IPTABLES -F FORWARD -$IPTABLES -t nat -F -$IPTABLES -t mangle -F -$IPTABLES -t filter -F -echo " FWD: Allow all connections OUT and only existing and related ones IN" -$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT -$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT -#$IPTABLES -A FORWARD -j LOG -echo " Enabling SNAT (MASQUERADE) functionality on $EXTIF" -$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE - - - -ifconfig oai0 10.0.1.1 netmask 255.255.255.0 broadcast 10.0.1.255 -sleep 1 -#$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c0 -i0 -z0 -s 10.0.1.1 -t 10.0.1.2 -r 3 -ip addr add dev oai0 2001:1::1/64 -# -a -> Add RB -# -d -> Delete RB -# -cxx -> lcr (uid of a cx_entity) -# -ixx -> instance -# -zxx -> dscp -# -fxxx -> classref (uid of a classifier entry) if fn is used , fn is used for send classifier and n+1 for receive classifier -# -sxxx -> source ipv4 address -# -txxx -> destination ipv4 address -# -x -> source ipv6 address -# -y -> destination ipv6 address -# -r -> radio bearer id -echo "rb_tool -a -c0 -i0 -f0 -z0 -x 2001:1::1/128 -y 2001:1::2/128 -r 1" -$OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL/rb_tool -a -c0 -i0 -f0 -z0 -x 2001:1::1/128 -y 2001:1::2/128 -r 1 - -echo "rb_tool -a -c0 -i0 -f2 -z63 -s 10.0.1.1/32 -t 10.0.1.2/32 -r 1" -$OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL/rb_tool -a -c0 -i0 -f2 -z64 -s 10.0.1.1/32 -t 10.0.1.2/32 -r 1 - -echo "rb_tool -a -c0 -i0 -f2 -z63 -s 10.0.1.1/32 -t 10.0.1.2/32 -r 1" -$OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL/rb_tool -a -c0 -i0 -f4 -z64 -s 0.0.0.0/32 -t 0.0.0.0/32 -r 1 - -echo "to see eNB stats, please run : watch_enb script" -echo "$OPENAIR_TARGETS/SIMU/USER/oaisim -u0 -M0 -p2 -g3 -l3 > /dev/null" -nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -u0 -M0 -p2 -g3 -l3 | grep RLC -echo "End" diff --git a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_enb_v2 b/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_enb_v2 deleted file mode 100755 index 5a03ff1385..0000000000 --- a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_enb_v2 +++ /dev/null @@ -1,320 +0,0 @@ -#!/bin/bash -# -#------------------------------------------------ -MAKE_IP_DRIVER_TARGET="naslite_netlink_ether" -MAKE_LTE_ACCESS_STRATUM_TARGET="oaisim" -IP_DRIVER_NAME=oai_nw_drv -########################################################### -# CONFIGURE OPTIONS -EMULIF="eth1" -LTEIF="oai0" -EXTIF="eth0" -INTIF=$LTEIF -#---------------------------------------------------------- -LTE_NETWORK_CIDR="10.0.1.0/24" -ENB_IPv4="10.0.1.1" -ENB_IPv6="2001:1::1" -ENB_IPv6_CIDR=$ENB_IPv6"/64" -ENB_IPv4_CIDR=$ENB_IPv4"/24" -ENB_IF_ID="3,9,1,8,3,6,6,2,0,0,0,0,0,0" -#---------------------------------------------------------- -UE_IPv4="10.0.1.2" -UE_IPv6="2001:1::2" -UE_IPv6_CIDR=$UE_IPv6"/64" -UE_IPv4_CIDR=$UE_IPv4"/24" -#---------------------------------------------------------- - -# +-------+ +-------+ -# | eNB | EMULIF | UE | -# | +---------------------+ | -# | | | | -# | | | | -# | | | | -# | | | | -# | | | | -# | | | | -# | | LTEIF | | -# | +.................... + | -# | |ENB_IPv4 UE_IPv4_CIDR| | -# +-------+ LTE link over +-------+ -# UDP over ethernet -########################################################### -IPTABLES=/sbin/iptables -THIS_SCRIPT_PATH=$(dirname $(readlink -f $0)) -declare -x OPENAIR_DIR="" -declare -x OPENAIR1_DIR="" -declare -x OPENAIR2_DIR="" -declare -x OPENAIR3_DIR="" -declare -x OPENAIR_TARGETS="" -########################################################### - - -black='\E[30m' -red='\E[31m' -green='\E[32m' -yellow='\E[33m' -blue='\E[34m' -magenta='\E[35m' -cyan='\E[36m' -white='\E[37m' - -ROOT_UID=0 -E_NOTROOT=67 - - -cecho() # Color-echo - # arg1 = message - # arg2 = color -{ -local default_msg="No Message." - message=${1:-$default_msg} - color=${2:-$black} - echo -e "$color" - echo -n "$message" - tput sgr0 - echo - return -} - -echo_error() { -local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $red -} - -echo_warning() { -local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $yellow -} - -echo_success() { -local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $green -} - -set_openair() { - path=`pwd` - declare -i length_path - declare -i index - length_path=${#path} - - index=`echo $path | grep -b -o 'targets' | cut -d: -f1` - #echo ${path%$token*} - if [[ $index -lt $length_path && index -gt 0 ]] - then - declare -x OPENAIR_DIR - index=`expr $index - 1` - openair_path=`echo $path | cut -c1-$index` - #openair_path=`echo ${path:0:$index}` - export OPENAIR_DIR=$openair_path - export OPENAIR1_DIR=$openair_path/openair1 - export OPENAIR2_DIR=$openair_path/openair2 - export OPENAIR3_DIR=$openair_path/openair3 - export OPENAIR_TARGETS=$openair_path/targets - return 0 - fi - return -1 -} - -bash_exec() { - output=$($1 2>&1) - result=$? - if [ $result -eq 0 ] - then - echo_success "$1" - else - echo_error "$1: $output" - fi -} - -wait_process_started () { - if [ -z "$1" ] - then - echo_error "WAITING FOR PROCESS START: NO PROCESS" - return 1 - fi - ps -C $1 > /dev/null 2>&1 - while [ $? -ne 0 ]; do - echo_warning "WAITING FOR $1 START" - sleep 2 - ps -C $1 > /dev/null 2>&1 - done - echo_success "PROCESS $1 STARTED" - return 0 -} - -assert() { - # If condition false - # exit from script with error message - E_PARAM_ERR=98 - E_PARAM_FAILED=99 - - if [ -z "$2" ] # Not enought parameters passed. - then - return $E_PARAM_ERR - fi - - lineno=$2 - if [ ! $1 ] - then - echo "Assertion failed: \"$1\"" - echo "File \"$0\", line $lineno" - exit $E_ASSERT_FAILED - fi -} - -#bash_exec "set_openair" -set_openair -cecho "OPENAIR_DIR = $OPENAIR_DIR" $green -cecho "OPENAIR1_DIR = $OPENAIR1_DIR" $green -cecho "OPENAIR2_DIR = $OPENAIR2_DIR" $green -cecho "OPENAIR3_DIR = $OPENAIR3_DIR" $green -cecho "OPENAIR_TARGETS = $OPENAIR_TARGETS" $green - - -echo "Bringup UE interface" -bash_exec "rmmod $IP_DRIVER_NAME" -cecho "make $MAKE_IP_DRIVER_TARGET $MAKE_LTE_ACCESS_STRATUM_TARGET....." $green -bash_exec "make $MAKE_IP_DRIVER_TARGET $MAKE_LTE_ACCESS_STRATUM_TARGET" -bash_exec "insmod $OPENAIR2_DIR/NAS/DRIVER/LITE/$IP_DRIVER_NAME.ko oai_nw_drv_IMEI=$ENB_IF_ID" - - -echo " Enabling proxy ARP.." -bash_exec "sysctl -w net.ipv4.conf.all.proxy_arp=1" -assert "`sysctl -n net.ipv4.conf.all.proxy_arp` -eq 1" $LINENO - -echo " Enabling ipv4 forwarding.." -bash_exec "sysctl -w net.ipv4.ip_forward=1" -assert "`sysctl -n net.ipv4.ip_forward` -eq 1" $LINENO - -bash_exec "sysctl -w net.ipv4.conf.all.forwarding=1" -assert "`sysctl -n net.ipv4.conf.all.forwarding` -eq 1" $LINENO - -echo " Enabling ipv6 forwarding.." -bash_exec "sysctl -w net.ipv6.conf.all.forwarding=1" -assert "`sysctl -n net.ipv6.conf.all.forwarding` -eq 1" $LINENO - -echo " Enabling DynamicAddr.." -bash_exec "sysctl -w net.ipv4.ip_dynaddr=1" -assert " `sysctl -n net.ipv4.ip_dynaddr` -eq 1" $LINENO - -bash_exec "ip route flush cache" -bash_exec "ip route add 239.0.0.160/28 dev $EMULIF" - -bash_exec "ip link set $LTEIF broadcast ff:ff:ff:ff:ff:ff" -bash_exec "ip link set $LTEIF up" -sleep 1 - - -assert " -x $IPTABLES " $LINENO - -bash_exec "$IPTABLES -P INPUT ACCEPT" -bash_exec "$IPTABLES -F INPUT" -bash_exec "$IPTABLES -P OUTPUT ACCEPT" -bash_exec "$IPTABLES -F OUTPUT" -bash_exec "$IPTABLES -P FORWARD DROP" -bash_exec "$IPTABLES -F FORWARD" -bash_exec "$IPTABLES -t nat -F" -bash_exec "$IPTABLES -t mangle -F" -bash_exec "$IPTABLES -t filter -F" - - - -echo " External Interface: $EXTIF" -echo " Internal Interface: $INTIF" - -bash_exec "modprobe ip_tables" -bash_exec "modprobe ip_conntrack" -bash_exec "modprobe ip_conntrack_ftp" -bash_exec "modprobe nf_conntrack_h323" -bash_exec "modprobe nf_conntrack_irc" -bash_exec "modprobe nf_conntrack_pptp" -bash_exec "modprobe nf_conntrack_proto_gre" -bash_exec "modprobe nf_conntrack_proto_sctp" -bash_exec "modprobe nf_conntrack_tftp" -bash_exec "modprobe nf_conntrack_sip" -bash_exec "modprobe iptable_nat" -bash_exec "modprobe x_tables" - - -bash_exec "sysctl -w net.ipv4.conf.all.log_martians=1" -assert " `sysctl -n net.ipv4.conf.all.log_martians` -eq 1" $LINENO - -bash_exec "sysctl -w net.ipv4.conf.$LTEIF.log_martians=1" -assert " `sysctl -n net.ipv4.conf.$LTEIF.log_martians` -eq 1" $LINENO - -bash_exec "sysctl -w net.ipv4.conf.$EXTIF.log_martians=1" -assert " `sysctl -n net.ipv4.conf.$EXTIF.log_martians` -eq 1" $LINENO - -bash_exec "sysctl -w net.ipv4.conf.$INTIF.log_martians=1" -assert " `sysctl -n net.ipv4.conf.$INTIF.log_martians` -eq 1" $LINENO - -echo " Disabling reverse path filtering" -bash_exec "sysctl -w net.ipv4.conf.all.rp_filter=0" -assert " `sysctl -n net.ipv4.conf.all.rp_filter` -eq 0" $LINENO - -bash_exec "sysctl -w net.ipv4.conf.$LTEIF.rp_filter=0" -assert " `sysctl -n net.ipv4.conf.$LTEIF.rp_filter` -eq 0" $LINENO - -bash_exec "sysctl -w net.ipv4.conf.$EXTIF.rp_filter=0" -assert " `sysctl -n net.ipv4.conf.$EXTIF.rp_filter` -eq 0" $LINENO - -bash_exec "sysctl -w net.ipv4.conf.$INTIF.rp_filter=0" -assert " `sysctl -n net.ipv4.conf.$INTIF.rp_filter` -eq 0" $LINENO - - -bash_exec "$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT" -bash_exec "$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT" -bash_exec "$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE" - -bash_exec "ip route flush cache" - - -bash_exec "ip addr add dev $LTEIF $ENB_IPv4_CIDR" -sleep 1 -bash_exec "ip addr add dev $LTEIF $ENB_IPv6_CIDR" -sleep 1 - -# -a -> Add RB -# -d -> Delete RB -# -cxx -> lcr -# -ixx -> instance -# -zxx -> dscp -# -fxxx -> classref (uid of a classifier entry) if fn is used , fn is used for send classifier and n+1 for receive classifier -# -sxxx -> source ipv4 address -# -txxx -> destination ipv4 address -# -x -> source ipv6 address -# -y -> destination ipv6 address -# -r -> radio bearer id -bash_exec "$OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL/rb_tool -a -c0 -f0 -i0 -z0 -x $ENB_IPv6 -y $UE_IPv6 -r 1" -bash_exec "$OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL/rb_tool -a -c0 -f2 -i0 -z64 -s $ENB_IPv4/32 -t $UE_IPv4/32 -r 1" -bash_exec "$OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL/rb_tool -a -c0 -f4 -i0 -z64 -s 0.0.0.0/32 -t 0.0.0.0/32 -r 1" -sleep 1 - -echo "#####################################################################" -echo "iptables -t nat -nvL" -echo "---------------------------------------------------------------------" -iptables -t nat -nvL -echo "#####################################################################" -echo "ip route show table main" -echo "---------------------------------------------------------------------" -ip route show table main - -echo "$OPENAIR_TARGETS/SIMU/USER/oaisim -u0 -M0 -p2 -g3 -l3 > /dev/null" -nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -u0 -M0 -p2 -g3 -l3 > /dev/null - - diff --git a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_ue b/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_ue deleted file mode 100755 index 12644d7533..0000000000 --- a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_ue +++ /dev/null @@ -1,259 +0,0 @@ -#!/bin/bash -# -#------------------------------------------------ -MAKE_IP_DRIVER_TARGET="naslite_netlink_ether" -MAKE_LTE_ACCESS_STRATUM_TARGET="oaisim" -IP_DRIVER_NAME=oai_nw_drv -########################################################### -# CONFIGURE OPTIONS -EMULIF="eth0" -LTEIF="oai0" - -#---------------------------------------------------------- -LTE_NETWORK_CIDR="10.0.1.0/24" -ENB_IPv4="10.0.1.1" -ENB_IPv6="2001:1::1" -#---------------------------------------------------------- -UE_IPv4="10.0.1.2" -UE_IPv6="2001:1::2" -UE_IPv6_CIDR=$UE_IPv6"/64" -UE_IPv4_CIDR=$UE_IPv4"/24" -UE_IMEI="3,9,1,8,3,6,7,3,0,0,0,0,0,0" -#---------------------------------------------------------- - -# +-------+ +-------+ -# | eNB | EMULIF | UE | -# | +---------------------+ + -# | | | | -# | | | | -# | | | | -# | | | | -# | | | + -# | | | | -# | | LTEIF | | -# | +.................... + | -# | |ENB_IPv4 UE_IPv4_CIDR| | -# +-------+ LTE link over +-------+ - -########################################################### -IPTABLES=/sbin/iptables -THIS_SCRIPT_PATH=$(dirname $(readlink -f $0)) -declare -x OPENAIR_DIR="" -declare -x OPENAIR1_DIR="" -declare -x OPENAIR2_DIR="" -declare -x OPENAIR3_DIR="" -declare -x OPENAIR_TARGETS="" -########################################################### - - -black='\E[30m' -red='\E[31m' -green='\E[32m' -yellow='\E[33m' -blue='\E[34m' -magenta='\E[35m' -cyan='\E[36m' -white='\E[37m' - -ROOT_UID=0 -E_NOTROOT=67 - - -cecho() # Color-echo - # arg1 = message - # arg2 = color -{ -local default_msg="No Message." - message=${1:-$default_msg} - color=${2:-$black} - echo -e "$color" - echo -n "$message" - tput sgr0 - echo - return -} - -echo_error() { -local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $red -} - -echo_warning() { -local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $yellow -} - -echo_success() { -local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $green -} - -set_openair() { - path=`pwd` - declare -i length_path - declare -i index - length_path=${#path} - - index=`echo $path | grep -b -o 'targets' | cut -d: -f1` - #echo ${path%$token*} - if [[ $index -lt $length_path && index -gt 0 ]] - then - declare -x OPENAIR_DIR - index=`expr $index - 1` - openair_path=`echo $path | cut -c1-$index` - #openair_path=`echo ${path:0:$index}` - export OPENAIR_DIR=$openair_path - export OPENAIR1_DIR=$openair_path/openair1 - export OPENAIR2_DIR=$openair_path/openair2 - export OPENAIR3_DIR=$openair_path/openair3 - export OPENAIR_TARGETS=$openair_path/targets - return 0 - fi - return -1 -} - -bash_exec() { - output=$($1 2>&1) - result=$? - if [ $result -eq 0 ] - then - echo_success "$1" - else - echo_error "$1: $output" - fi -} - -wait_process_started () { - if [ -z "$1" ] - then - echo_error "WAITING FOR PROCESS START: NO PROCESS" - return 1 - fi - ps -C $1 > /dev/null 2>&1 - while [ $? -ne 0 ]; do - echo_warning "WAITING FOR $1 START" - sleep 2 - ps -C $1 > /dev/null 2>&1 - done - echo_success "PROCESS $1 STARTED" - return 0 -} - -assert() { - # If condition false - # exit from script with error message - E_PARAM_ERR=98 - E_PARAM_FAILED=99 - - if [ -z "$2" ] # Not enought parameters passed. - then - return $E_PARAM_ERR - fi - - lineno=$2 - if [ ! $1 ] - then - echo "Assertion failed: \"$1\"" - echo "File \"$0\", line $lineno" - exit $E_ASSERT_FAILED - fi -} - -ctrl_c() { - bash_exec "pkill oaisim" - bash_exec "ip link set $LTEIF down" - - bash_exec "rmmod $IP_DRIVER_NAME" - - bash_exec "$IPTABLES -P INPUT ACCEPT" - bash_exec "$IPTABLES -F INPUT" - bash_exec "$IPTABLES -P OUTPUT ACCEPT" - bash_exec "$IPTABLES -F OUTPUT" - bash_exec "$IPTABLES -P FORWARD ACCEPT" - bash_exec "$IPTABLES -F FORWARD" - bash_exec "$IPTABLES -t nat -F" - bash_exec "$IPTABLES -t mangle -F" - bash_exec "$IPTABLES -t filter -F" - bash_exec "ip route flush cache" -} - -#bash_exec "set_openair" -set_openair -cecho "OPENAIR_DIR = $OPENAIR_DIR" $green -cecho "OPENAIR1_DIR = $OPENAIR1_DIR" $green -cecho "OPENAIR2_DIR = $OPENAIR2_DIR" $green -cecho "OPENAIR3_DIR = $OPENAIR3_DIR" $green -cecho "OPENAIR_TARGETS = $OPENAIR_TARGETS" $green - -echo "Bringup UE interface" -bash_exec "rmmod $IP_DRIVER_NAME" -cecho "make $MAKE_IP_DRIVER_TARGET $MAKE_LTE_ACCESS_STRATUM_TARGET ....." $green -bash_exec "make $MAKE_IP_DRIVER_TARGET $MAKE_LTE_ACCESS_STRATUM_TARGET " -bash_exec "insmod $OPENAIR2_DIR/NAS/DRIVER/LITE/$IP_DRIVER_NAME.ko oai_nw_drv_IMEI=$UE_IMEI" - -bash_exec "ip route flush cache" -bash_exec "ip route add 239.0.0.160/28 dev $EMULIF" - -bash_exec "ip link set $LTEIF broadcast ff:ff:ff:ff:ff:ff" -bash_exec "ip link set $LTEIF up" -sleep 1 -bash_exec "ip addr add dev $LTEIF $UE_IPv4_CIDR" -bash_exec "ip addr add dev $LTEIF $UE_IPv6_CIDR" - -# -a -> Add RB -# -d -> Delete RB -# -cxx -> lcr -# -ixx -> instance -# -zxx -> dscp -# -fxxx -> classref (uid of a classifier entry) if fn is used , fn is used for send classifier and n+1 for receive classifier -# -sxxx -> source ipv4 address -# -txxx -> destination ipv4 address -# -x -> source ipv6 address -# -y -> destination ipv6 address -# -r -> radio bearer id -bash_exec "$OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL/rb_tool -a -c0 -f0 -i0 -z0 -x $UE_IPv6 -y $ENB_IPv6 -r 1" -bash_exec "$OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL/rb_tool -a -c0 -f2 -i0 -z64 -s $UE_IPv4/32 -t $ENB_IPv4/32 -r 1" -bash_exec "$OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL/rb_tool -a -c0 -f4 -i0 -z64 -s 0.0.0.0/32 -t 0.0.0.0/32 -r 1" -sleep 1 - -bash_exec "sysctl -w net.ipv4.conf.all.log_martians=1" -assert " `sysctl -n net.ipv4.conf.all.log_martians` -eq 1" $LINENO - -echo " Disabling reverse path filtering" -bash_exec "sysctl -w net.ipv4.conf.all.rp_filter=0" -assert " `sysctl -n net.ipv4.conf.all.rp_filter` -eq 0" $LINENO - - -bash_exec "ip route flush cache" - -echo "#####################################################################" -echo "ip route show table main" -echo "---------------------------------------------------------------------" -ip route show table main - -trap ctrl_c INT - -echo "to see UE stats, please run : watch_ue script" -echo "$OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M1 -p2 -g3 -l3 > /dev/null" -nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M1 -p2 -g3 -l3 > /dev/null -#gdb $OPENAIR_TARGETS/SIMU/USER/oaisim -echo "End" -ctrl_c - - - diff --git a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_ue_cx2android b/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_ue_cx2android deleted file mode 100755 index 2e54ae6148..0000000000 --- a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_ue_cx2android +++ /dev/null @@ -1,426 +0,0 @@ -#!/bin/bash -# -#------------------------------------------------ -MAKE_IP_DRIVER_TARGET="naslite_netlink_ether" -MAKE_LTE_ACCESS_STRATUM_TARGET="oaisim" -MAKE_REMSERIAL_TARGET="remserial" -IP_DRIVER_NAME=oai_nw_drv -########################################################### -# CONFIGURE OPTIONS -EMULIF="eth0" -LTEIF="oai0" - -INTIF="ppp0" -EXTIF=$LTEIF -#---------------------------------------------------------- -LTE_NETWORK_CIDR="10.0.1.0/24" -ENB_IPv4="10.0.1.1" -ENB_IPv6="2001:1::1" -#---------------------------------------------------------- -UE_IPv4="10.0.1.2" -UE_IPv6="2001:1::2" -UE_IPv6_CIDR=$UE_IPv6"/64" -UE_IPv4_CIDR=$UE_IPv4"/24" -UE_IMEI="3,9,1,8,3,6,7,3,0,0,0,0,0,0" -#---------------------------------------------------------- -USE_PPP="yes" -PPP_OPTIONS="proxyarp passive nodetach ipcp-accept-remote" -PPP_DEVICE="ttyPPP_DROID" -PPP_SPEED="460800" -UE_PPP_IPv4="192.168.15.1" -TERMINAL_PPP_IPv4="192.168.15.175" -REMSERIAL_UDP_PORT="23001" -#---------------------------------------------------------- - -# +-------+ +-------+ +-------+ -# | eNB | EMULIF | UE |INTIF |ANDROID| -# | +---------------------+ +---------------------+ TERMIN| -# | | | | ppp link over | AL | -# | | | | UDP over ethernet | | -# | | | | (remserial) | | -# | | | | | | -# | | | +---serial link-------+ | -# | | | | for AT commands | | -# | | LTEIF | | | | -# | +.................... + | | | -# | |ENB_IPv4 UE_IPv4_CIDR| | | | -# +-------+ LTE link over +-------+ +-------+ - -########################################################### -IPTABLES=/sbin/iptables -THIS_SCRIPT_PATH=$(dirname $(readlink -f $0)) -declare -x OPENAIR_DIR="" -declare -x OPENAIR1_DIR="" -declare -x OPENAIR2_DIR="" -declare -x OPENAIR3_DIR="" -declare -x OPENAIR_TARGETS="" -########################################################### - - -black='\E[30m' -red='\E[31m' -green='\E[32m' -yellow='\E[33m' -blue='\E[34m' -magenta='\E[35m' -cyan='\E[36m' -white='\E[37m' - -ROOT_UID=0 -E_NOTROOT=67 - - -cecho() # Color-echo - # arg1 = message - # arg2 = color -{ -local default_msg="No Message." - message=${1:-$default_msg} - color=${2:-$black} - echo -e "$color" - echo -n "$message" - tput sgr0 - echo - return -} - -echo_error() { -local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $red -} - -echo_warning() { -local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $yellow -} - -echo_success() { -local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $green -} - -set_openair() { - path=`pwd` - declare -i length_path - declare -i index - length_path=${#path} - - index=`echo $path | grep -b -o 'targets' | cut -d: -f1` - #echo ${path%$token*} - if [[ $index -lt $length_path && index -gt 0 ]] - then - declare -x OPENAIR_DIR - index=`expr $index - 1` - openair_path=`echo $path | cut -c1-$index` - #openair_path=`echo ${path:0:$index}` - export OPENAIR_DIR=$openair_path - export OPENAIR1_DIR=$openair_path/openair1 - export OPENAIR2_DIR=$openair_path/openair2 - export OPENAIR3_DIR=$openair_path/openair3 - export OPENAIR_TARGETS=$openair_path/targets - return 0 - fi - return -1 -} - -bash_exec() { - output=$($1 2>&1) - result=$? - if [ $result -eq 0 ] - then - echo_success "$1" - else - echo_error "$1: $output" - fi -} - -wait_process_started () { - if [ -z "$1" ] - then - echo_error "WAITING FOR PROCESS START: NO PROCESS" - return 1 - fi - ps -C $1 > /dev/null 2>&1 - while [ $? -ne 0 ]; do - echo_warning "WAITING FOR $1 START" - sleep 2 - ps -C $1 > /dev/null 2>&1 - done - echo_success "PROCESS $1 STARTED" - return 0 -} - -assert() { - # If condition false - # exit from script with error message - E_PARAM_ERR=98 - E_PARAM_FAILED=99 - - if [ -z "$2" ] # Not enought parameters passed. - then - return $E_PARAM_ERR - fi - - lineno=$2 - if [ ! $1 ] - then - echo "Assertion failed: \"$1\"" - echo "File \"$0\", line $lineno" - exit $E_ASSERT_FAILED - fi -} - -ctrl_c() { - bash_exec "pkill oaisim" - if [ "$USE_PPP"x = yesx ]; then - bash_exec "pkill remserial.bash" - bash_exec "pkill ppp_android.bash" - fi - bash_exec "pkill AT_serial_bouchon.py" - bash_exec "ip link set $LTEIF down" - - bash_exec "ip route del default via $ENB_IPv4 dev $EXTIF table int2lte" - bash_exec "ip route flush table int2lte" - bash_exec "ip rule del prio 1000" - - bash_exec "rmmod $IP_DRIVER_NAME" - - bash_exec "$IPTABLES -P INPUT ACCEPT" - bash_exec "$IPTABLES -F INPUT" - bash_exec "$IPTABLES -P OUTPUT ACCEPT" - bash_exec "$IPTABLES -F OUTPUT" - bash_exec "$IPTABLES -P FORWARD ACCEPT" - bash_exec "$IPTABLES -F FORWARD" - bash_exec "$IPTABLES -t nat -F" - bash_exec "$IPTABLES -t mangle -F" - bash_exec "$IPTABLES -t filter -F" - bash_exec "ip route flush cache" -} - -#bash_exec "set_openair" -set_openair -cecho "OPENAIR_DIR = $OPENAIR_DIR" $green -cecho "OPENAIR1_DIR = $OPENAIR1_DIR" $green -cecho "OPENAIR2_DIR = $OPENAIR2_DIR" $green -cecho "OPENAIR3_DIR = $OPENAIR3_DIR" $green -cecho "OPENAIR_TARGETS = $OPENAIR_TARGETS" $green - -echo "Bringup UE interface" -bash_exec "rmmod $IP_DRIVER_NAME" -cecho "make $MAKE_IP_DRIVER_TARGET $MAKE_LTE_ACCESS_STRATUM_TARGET $MAKE_REMSERIAL_TARGET....." $green -bash_exec "make $MAKE_IP_DRIVER_TARGET $MAKE_LTE_ACCESS_STRATUM_TARGET $MAKE_REMSERIAL_TARGET" -bash_exec "insmod $OPENAIR2_DIR/NAS/DRIVER/LITE/$IP_DRIVER_NAME.ko oai_nw_drv_IMEI=$UE_IMEI" - - -echo " Enabling ipv4 forwarding.." -bash_exec "sysctl -w net.ipv4.ip_forward=1" -assert "`sysctl -n net.ipv4.ip_forward` -eq 1" $LINENO - -bash_exec "sysctl -w net.ipv4.conf.all.forwarding=1" -assert "`sysctl -n net.ipv4.conf.all.forwarding` -eq 1" $LINENO - -echo " Enabling ipv6 forwarding.." -bash_exec "sysctl -w net.ipv6.conf.all.forwarding=1" -assert "`sysctl -n net.ipv6.conf.all.forwarding` -eq 1" $LINENO - - -if [ "$USE_PPP"x = yesx ]; then - echo " PPP enabled.." - command -v pppd > /dev/null 2>&1 || { echo_error "pppd executable needed - please install it"; exit 1;} - command -v remserial.udp > /dev/null 2>&1 || { echo_error "remserial.udp executable needed - please install it"; exit 1;} - #generate pppd script - rm -f /tmp/ppp_android.bash - bash_exec "touch /tmp/ppp_android.bash" - if [ ! -f /tmp/ppp_android.bash ]; then - echo_error "Cannot generate /tmp/ppp_android.bash file, exiting" - exit 1 - fi - echo "#!/bin/bash" >> /tmp/ppp_android.bash - echo "pppd $PPP_OPTIONS $UE_PPP_IPv4:$TERMINAL_PPP_IPv4 /dev/$PPP_DEVICE $PPP_SPEED" >> /tmp/ppp_android.bash - bash_exec "chmod 777 /tmp/ppp_android.bash" - assert " -x /tmp/ppp_android.bash " $LINENO - - #generate remserial script - rm -f /tmp/remserial.bash - bash_exec "touch /tmp/remserial.bash" - if [ ! -f /tmp/remserial.bash ]; then - echo_error "Cannot generate /tmp/remserial.bash file, exiting" - exit 1 - fi - echo "#!/bin/bash" >> /tmp/remserial.bash - echo "remserial.udp -s \"$PPP_SPEED raw\" -p $REMSERIAL_UDP_PORT -l /dev/$PPP_DEVICE /dev/ptmx" >> /tmp/remserial.bash - bash_exec "chmod 777 /tmp/remserial.bash" - assert " -x /tmp/remserial.bash " $LINENO -fi - -xterm -e $THIS_SCRIPT_PATH/AT_serial_bouchon.py & -wait_process_started AT_serial_bouchon.py - -if [ "$USE_PPP"x = yesx ]; then - xterm -e /tmp/remserial.bash & - wait_process_started remserial.bash - - xterm -e /tmp/ppp_android.bash & - wait_process_started ppp_android.bash -fi - - -assert " -x $IPTABLES " $LINENO - -bash_exec "ip route del default via $ENB_IPv4 dev $EXTIF table int2lte" -bash_exec "ip route flush table int2lte" -bash_exec "ip rule del prio 1000" - -bash_exec "$IPTABLES -P INPUT ACCEPT" -bash_exec "$IPTABLES -F INPUT" -bash_exec "$IPTABLES -P OUTPUT ACCEPT" -bash_exec "$IPTABLES -F OUTPUT" -bash_exec "$IPTABLES -P FORWARD DROP" -bash_exec "$IPTABLES -F FORWARD" -bash_exec "$IPTABLES -t nat -F" -bash_exec "$IPTABLES -t mangle -F" -bash_exec "$IPTABLES -t filter -F" - -bash_exec "ip route flush cache" -bash_exec "ip route add 239.0.0.160/28 dev $EMULIF" - -bash_exec "ip link set $LTEIF broadcast ff:ff:ff:ff:ff:ff" -bash_exec "ip link set $LTEIF up" -sleep 1 -bash_exec "ip addr add dev $LTEIF $UE_IPv4_CIDR" -bash_exec "ip addr add dev $LTEIF $UE_IPv6_CIDR" - -echo " Enabling proxy ARP.." -bash_exec "sysctl -w net.ipv4.conf.all.proxy_arp=1" -assert "`sysctl -n net.ipv4.conf.all.proxy_arp` -eq 1" $LINENO - - -# -a -> Add RB -# -d -> Delete RB -# -cxx -> lcr -# -ixx -> instance -# -zxx -> dscp -# -fxxx -> classref (uid of a classifier entry) if fn is used , fn is used for send classifier and n+1 for receive classifier -# -sxxx -> source ipv4 address -# -txxx -> destination ipv4 address -# -x -> source ipv6 address -# -y -> destination ipv6 address -# -r -> radio bearer id -bash_exec "$OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL/rb_tool -a -c0 -f0 -i0 -z0 -x $UE_IPv6 -y $ENB_IPv6 -r 3" -bash_exec "$OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL/rb_tool -a -c0 -f2 -i0 -z64 -s $UE_IPv4/32 -t $ENB_IPv4/32 -r 3" -bash_exec "$OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL/rb_tool -a -c0 -f4 -i0 -z64 -s 0.0.0.0/32 -t 0.0.0.0/32 -r 3" -sleep 1 - -echo " External Interface: $EXTIF" -echo " Internal Interface: $INTIF" - -bash_exec "modprobe ip_tables" -bash_exec "modprobe ip_conntrack" -bash_exec "modprobe ip_conntrack_ftp" -bash_exec "modprobe nf_conntrack_h323" -bash_exec "modprobe nf_conntrack_irc" -bash_exec "modprobe nf_conntrack_pptp" -bash_exec "modprobe nf_conntrack_proto_gre" -bash_exec "modprobe nf_conntrack_proto_sctp" -bash_exec "modprobe nf_conntrack_tftp" -bash_exec "modprobe nf_conntrack_sip" -bash_exec "modprobe iptable_nat" -bash_exec "modprobe x_tables" - -echo " Enabling DynamicAddr.." -bash_exec "sysctl -w net.ipv4.ip_dynaddr=1" -assert " `sysctl -n net.ipv4.ip_dynaddr` -eq 1" $LINENO - -bash_exec "sysctl -w net.ipv4.conf.all.log_martians=1" -assert " `sysctl -n net.ipv4.conf.all.log_martians` -eq 1" $LINENO - -bash_exec "sysctl -w net.ipv4.conf.$LTEIF.log_martians=1" -assert " `sysctl -n net.ipv4.conf.$LTEIF.log_martians` -eq 1" $LINENO - -bash_exec "sysctl -w net.ipv4.conf.$EMULIF.log_martians=1" -assert " `sysctl -n net.ipv4.conf.$EMULIF.log_martians` -eq 1" $LINENO - -if [ ! "$USE_PPP"x = yesx ]; then - bash_exec "sysctl -w net.ipv4.conf.$INTIF.log_martians=1" - assert " `sysctl -n net.ipv4.conf.$INTIF.log_martians` -eq 1" $LINENO -fi -echo " Disabling reverse path filtering" -bash_exec "sysctl -w net.ipv4.conf.all.rp_filter=0" -assert " `sysctl -n net.ipv4.conf.all.rp_filter` -eq 0" $LINENO - -bash_exec "sysctl -w net.ipv4.conf.$LTEIF.rp_filter=0" -assert " `sysctl -n net.ipv4.conf.$LTEIF.rp_filter` -eq 0" $LINENO - -bash_exec "sysctl -w net.ipv4.conf.$EMULIF.rp_filter=0" -assert " `sysctl -n net.ipv4.conf.$EMULIF.rp_filter` -eq 0" $LINENO - -if [ ! "$USE_PPP"x = yesx ]; then - bash_exec "sysctl -w net.ipv4.conf.$INTIF.rp_filter=0" - assert " `sysctl -n net.ipv4.conf.$INTIF.rp_filter` -eq 0" $LINENO -fi - -bash_exec "$IPTABLES -t mangle -A PREROUTING -i $INTIF -j MARK --set-mark 22" - -bash_exec "$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT" -bash_exec "$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT" -bash_exec "$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE" - -bash_exec "ip route add 127.0.0.0/8 dev lo table int2lte" -bash_exec "ip route add $LTE_NETWORK_CIDR dev $EXTIF table int2lte scope link" -bash_exec "ip route add default via $ENB_IPv4 dev $EXTIF table int2lte scope global" - -bash_exec "ip route flush cache" - -bash_exec "ip rule add fwmark 22 lookup int2lte prio 1000" - -echo "#####################################################################" -echo "iptables -t nat -nvL" -echo "---------------------------------------------------------------------" -iptables -t nat -nvL -echo "#####################################################################" -echo "iptables -t mangle -nvL" -echo "---------------------------------------------------------------------" -iptables -t mangle -nvL -echo "#####################################################################" -echo "iptables -t filter -nvL" -echo "---------------------------------------------------------------------" -iptables -t filter -nvL -echo "#####################################################################" -echo "ip rule show" -echo "---------------------------------------------------------------------" -ip rule show -echo "#####################################################################" -echo "ip route show table int2lte" -echo "---------------------------------------------------------------------" -ip route show table int2lte -echo "#####################################################################" -echo "ip route show table main" -echo "---------------------------------------------------------------------" -ip route show table main - -trap ctrl_c INT - -echo "to see UE stats, please run : watch_ue script" -echo "$OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M1 -p2 -g3 -l3 > /dev/null" -nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M1 -p2 -g3 -l3 > /dev/null -#gdb $OPENAIR_TARGETS/SIMU/USER/oaisim -echo "End" -ctrl_c - - - diff --git a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/Makefile b/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/Makefile deleted file mode 100644 index 7e14cfa8de..0000000000 --- a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -all: oaisim nasmesh - -userclean: clean oaisim nasmesh - -oaisim: - (cd $(OPENAIR_TARGETS)/SIMU/USER && make LINK_ENB_PDCP_TO_IP_DRIVER=1 -j2) -nasmesh: - (cd $(OPENAIR2_DIR) && make nasmesh_netlink.ko) - (cd $(OPENAIR2_DIR)/NAS/DRIVER/MESH/RB_TOOL/ && make) - -clean: - (cd $(OPENAIR_TARGETS)/SIMU/USER && make clean) - diff --git a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_enb b/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_enb deleted file mode 100755 index 0f22fecbef..0000000000 --- a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_enb +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -echo "Bringup eNB interface" - -sudo rmmod nasmesh -make all -sudo insmod $OPENAIR2_DIR/NAS/DRIVER/MESH/nasmesh.ko - -#avoid conflict with reserved multicast addresses (224.0.0.11,224.0.0.13, 224.0.0.16) -#sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 -sudo ip route add 239.0.0.160/28 dev eth0 - - -sudo ifconfig oai0 10.0.1.1 netmask 255.255.255.0 broadcast 10.0.1.255 - -$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c0 -i0 -z0 -s 10.0.1.1 -t 10.0.1.2 -r 1 -$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c1 -i0 -z0 -s 10.0.1.1 -t 10.0.1.3 -r 12 - -#xterm -T ENB -hold -e ping 10.0.1.2& -#xterm -T ENB -hold -e ping 10.0.1.3& - -if [ -z $1 ]; then -echo "nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -u0 -M0 -p3 -g3 -l3 > /dev/null" -nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -u0 -M0 -p3 -g3 -l3 > /dev/null -else - if [ $1 = "all" ]; then - echo "nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -u0 -M0 -p3 -g3 -l7" - nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -u0 -M0 -p3 -g3 -l7 - else - echo "nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -u0 -M0 -p3 -g3 -l7 | grep -i $1" - nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -u0 -M0 -p3 -g3 -l7 | grep -i $1 - fi -fi - -echo "End" diff --git a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_ue1 b/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_ue1 deleted file mode 100755 index 15b45b7b24..0000000000 --- a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_ue1 +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh -echo "Bringup UE interface" -sudo rmmod nasmesh -make all -sudo insmod $OPENAIR2_DIR/NAS/DRIVER/MESH/nasmesh.ko - -#avoid conflict with reserved multicast addresses (224.0.0.11,224.0.0.13, 224.0.0.16) -#sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 -sudo ip route add 239.0.0.160/28 dev eth0 - - -sudo ifconfig oai0 10.0.1.2 netmask 255.255.255.0 broadcast 10.0.1.255 - -$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c0 -i0 -z0 -s 10.0.1.2 -t 10.0.1.1 -r 1 - -#xterm -T UE1 -hold -e ping 10.0.1.1& - -if [ -z $1 ]; then -echo "nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M1 -p3 -g3 -l3 > /dev/null" -nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M1 -p3 -g3 -l3 > /dev/null -else - if [ $1 = "all" ]; then - echo "nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M1 -p3 -g3 -l7" - nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M1 -p3 -g3 -l7 - else - echo "nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M1 -p3 -g3 -l7 | grep -i $1" - nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M1 -p3 -g3 -l7 | grep -i $1 - fi -fi - -echo "End" diff --git a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_ue2 b/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_ue2 deleted file mode 100755 index 5cf1bb3712..0000000000 --- a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_ue2 +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -echo "Bringup UE interface" -sudo rmmod nasmesh -make all -sudo insmod $OPENAIR2_DIR/NAS/DRIVER/MESH/nasmesh.ko - -#avoid conflict with reserved multicast addresses (224.0.0.11,224.0.0.13, 224.0.0.16) -#sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 -sudo ip route add 239.0.0.160/28 dev eth0 - -sudo ifconfig oai0 10.0.1.3 netmask 255.255.255.0 broadcast 10.0.1.255 - -$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c0 -i0 -z0 -s 10.0.1.3 -t 10.0.1.1 -r 1 - -#xterm -T UE2 -hold -e ping 10.0.1.1& - -if [ -z $1 ]; then -echo "nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M2 -p3 -g3 -l3 > /dev/null" -nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M2 -p3 -g3 -l3 > /dev/null -else - if [ $1 = "all" ]; then - echo "nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M2 -p3 -g3 -l7" - nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M2 -p3 -g3 -l7 - else - echo "nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M2 -p3 -g3 -l7 | grep -i $1" - nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M2 -p3 -g3 -l7 | grep -i $1 - fi -fi - -echo "End" diff --git a/targets/SIMU/EXAMPLES/OSD/README.txt b/targets/SIMU/EXAMPLES/OSD/README.txt deleted file mode 100644 index e46362510c..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/README.txt +++ /dev/null @@ -1,4 +0,0 @@ - -This is the folder used by the OCG(openair config generation) to parse a xml-based scenario defined by the user in the WEBXML directory, and produce emulation results in the RESULTS directory. - -Please make sure that you have correctly set the OPENAIR_TARGETS variables. diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_0.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_0.xml deleted file mode 100644 index 3b41cc8ca3..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_0.xml +++ /dev/null @@ -1,147 +0,0 @@ - - - - urban - - 2.0 - -50 - - Rayleigh1 - - 5 - 7.68 - 1.9 - - - 5 - 3 - 1.13 - 16 - 40 - - - 1 - 5 - 20 - - - - - - - 1 - 1 - - homogeneous - macrocell - - - - random - - 1 - - fixed - - 1 - 200 - 0.1 - 5.0 - 0.1 - 10 - - - sumo-gui - $OPENAIR2_DIR/UTIL/OMG/SUMO/SCENARIOS/scen.sumo.cfg - 0 - 10 - 10 - 127.0.1.1 - 8883 - - - - random - - 1 - - - fixed - - - - - - - 0 - gaming_OA - 1 - 400 - 2000 - - - - - - 0.9 - 0.1 - 100 - - - 0.1 - 0.1 - 10000 - - - 100 - - 2 - udp - ipv6 - 0 - 400 - 2000 - - uniform - 100 - 1000 - 1 - 7 - - gaussian - 200 - 500 - 5 - 4 - - - 8080 - - - - - - 5000 - - - - enable - disable - - - - 1 - - - - - - 1 - - - 1 - - - - EURECOM - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_1.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_1.xml deleted file mode 100644 index 82cf2e80f8..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_1.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - 500 - - debug - - - EMU-TEST - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_10.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_10.xml deleted file mode 100644 index edf6ad1019..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_10.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - 5000 - 5000 - - - - - 3 - - STATIC - - - random - - 1 - - STATIC - - - - - - - 0 - random - 1:3 - - - - 1:2 - udp - ipv6 - 0 - - poisson - 7.3 - - unifrom - 100 - 500 - - - - - 3 - tcp - ipv4 - 0 - - fixed - 100 - - exponential - 2.2 - - - - - - - 0 - - - 1 - - - info - 1 - - 1234 - - - - OTG_3 - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_11.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_11.xml deleted file mode 100644 index 189ecebeb7..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_11.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - - urban - - 2.0 - -50 - - Rayleigh1 - - 5 - 7.68 - 1.9 - - - 5 - 3 - 1.13 - 16 - 40 - - - 1 - 5 - 20 - - - - - - - 5000 - 5000 - - homogeneous - macrocell - - - - random - - 1 - - STATIC - - 1 - 200 - 0.1 - 5.0 - 0.1 - 10 - - - sumo-gui - $OPENAIR2_DIR/UTIL/OMG/SUMO/SCENARIOS/scen.sumo.cfg - 0 - 10 - 10 - 127.0.1.1 - 8883 - - - - random - - 1 - - STATIC - - - - - - - 1 - mcbr - 0 - - - - 0 - udp - ipv6 - 1 - - poisson - 100 - 1000 - 4.5 - 7.3 - 30 - 15 - - uniform - 100 - 500 - 5.3 - 2.2 - 0.5 - 30 - - - - - - - 0 - - - enable - enable - enable - - - warning - 1 - - 1234 - - - - OCM_OMG_OTG_1 - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_120.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_120.xml deleted file mode 100644 index 6b84283808..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_120.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - urban - - 2 - -100 - - AWGN - - 5 - 7.68 - 1.9 - - - 5 - 1 - 1.13 - 16 - 40 - - - 1 - 5 - 20 - - - - - - - 2000 - 2000 - - - - - 1 - - STATIC - - - random - - 1 - - STATIC - - - - - - - - 0 - scbr - 1 - 100 - 55000 - - - - - - 1 - udp - 100 - 55000 - ipv4 - 0 - uniform - 1 - 10 - uniform - 10 - 100 - - - - - - 60000 - disable - - enable - enable - enable - - - info - low - - 2013 - - - - CBA_1 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_121.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_121.xml deleted file mode 100644 index 93e9575137..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_121.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - urban - - 2 - -100 - - AWGN - - 5 - 7.68 - 1.9 - - - 5 - 1 - 1.13 - 16 - 40 - - - 1 - 5 - 20 - - - - - - - 2000 - 2000 - - - - - 1 - - STATIC - - - random - - 1 - - STATIC - - - - - - - - 0 - scbr - 1 - 100 - 55000 - - - - - - 1 - udp - 100 - 55000 - ipv4 - 0 - uniform - 1 - 10 - uniform - 100 - 500 - - - - - - 60000 - disable - - enable - enable - enable - - - info - low - - 2013 - - - - CBA_1 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_122.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_122.xml deleted file mode 100644 index 8ee129e560..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_122.xml +++ /dev/null @@ -1,105 +0,0 @@ - - - - urban - - 2 - -100 - - AWGN - - 5 - 7.68 - 1.9 - - - 5 - 1 - 1.13 - 16 - 40 - - - 1 - 5 - 20 - - - - - - - 2000 - 2000 - - - - - 1 - - STATIC - - - random - - 1 - - STATIC - - - - - - - 0 - scbr - 1 - 100 - 55000 - - - - - - 1 - udp - 100 - 55000 - ipv4 - 0 - uniform - 10 - 100 - unifrom - 10 - 100 - - - - - - 60000 - disable - - enable - enable - enable - - - info - low - - 2013 - - - - CBA_1 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_123.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_123.xml deleted file mode 100644 index 614908e1f0..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_123.xml +++ /dev/null @@ -1,105 +0,0 @@ - - - - urban - - 2 - -100 - - AWGN - - 5 - 7.68 - 1.9 - - - 5 - 1 - 1.13 - 16 - 40 - - - 1 - 5 - 20 - - - - - - - 2000 - 2000 - - - - - 1 - - STATIC - - - random - - 1 - - STATIC - - - - - - - 0 - scbr - 1 - 100 - 55000 - - - - - - 1 - udp - 100 - 55000 - ipv4 - 0 - uniform - 10 - 100 - uniform - 100 - 1000 - - - - - - 60000 - disable - - enable - enable - enable - - - info - low - - 2013 - - - - CBA_1 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_124.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_124.xml deleted file mode 100644 index 855d93aafe..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_124.xml +++ /dev/null @@ -1,105 +0,0 @@ - - - - urban - - 2 - -100 - - AWGN - - 5 - 7.68 - 1.9 - - - 5 - 1 - 1.13 - 16 - 40 - - - 1 - 5 - 20 - - - - - - - 2000 - 2000 - - - - - 1 - - STATIC - - - random - - 1 - - STATIC - - - - - - - 0 - scbr - 1 - 100 - 55000 - - - - - - 1 - udp - 100 - 55000 - ipv4 - 0 - uniform - 10 - 100 - uniform - 1000 - 6000 - - - - - - 60000 - disable - - enable - enable - enable - - - info - low - - 2013 - - - - CBA_1 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_125.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_125.xml deleted file mode 100644 index 93378a8856..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_125.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - urban - - 2 - -100 - - AWGN - - 5 - 7.68 - 1.9 - - - 5 - 1 - 1.13 - 16 - 40 - - - 1 - 5 - 20 - - - - - - - 2000 - 2000 - - - - - 1 - - STATIC - - - random - - 1 - - STATIC - - - - - - - - 0 - scbr - 1 - 100 - 55000 - - - - - - 1 - udp - 100 - 55000 - ipv4 - 0 - uniform - 100 - 1000 - uniform - 10 - 100 - - - - - - 60000 - disable - - enable - enable - enable - - - info - low - - 2013 - - - - CBA_1 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_126.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_126.xml deleted file mode 100644 index 01f16cdae9..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_126.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - urban - - 2 - -100 - - AWGN - - 5 - 7.68 - 1.9 - - - 5 - 1 - 1.13 - 16 - 40 - - - 1 - 5 - 20 - - - - - - - 2000 - 2000 - - - - - 1 - - STATIC - - - random - - 1 - - STATIC - - - - - - - - 0 - scbr - 1 - 100 - 55000 - - - - - - 1 - udp - 100 - 55000 - ipv4 - 0 - uniform - 100 - 1000 - uniform - 100 - 1000 - - - - - - 60000 - disable - - enable - enable - enable - - - info - low - - 2013 - - - - CBA_1 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_127.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_127.xml deleted file mode 100644 index 8e3b0ee4f2..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_127.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - urban - - 2 - -100 - - AWGN - - 5 - 7.68 - 1.9 - - - 5 - 1 - 1.13 - 16 - 40 - - - 1 - 5 - 20 - - - - - - - 2000 - 2000 - - - - - 1 - - STATIC - - - random - - 1 - - STATIC - - - - - - - - 0 - scbr - 1 - 100 - 55000 - - - - - - 1 - udp - 100 - 55000 - ipv4 - 0 - uniform - 100 - 1000 - uniform - 1000 - 9000 - - - - - - 60000 - disable - - enable - enable - enable - - - info - low - - 2013 - - - - CBA_1 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_128.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_128.xml deleted file mode 100644 index 1e015ac23e..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_128.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - urban - - 2 - -100 - - AWGN - - 5 - 7.68 - 1.9 - - - 5 - 1 - 1.13 - 16 - 40 - - - 1 - 5 - 20 - - - - - - - 2000 - 2000 - - - - - 1 - - STATIC - - - random - - 1 - - STATIC - - - - - - - - 0 - scbr - 1 - 100 - 55000 - - - - - - 1 - udp - 100 - 55000 - ipv4 - 0 - uniform - 1000 - 10000 - uniform - 10 - 100 - - - - - - 60000 - disable - - enable - enable - enable - - - info - low - - 2013 - - - - CBA_1 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_129.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_129.xml deleted file mode 100644 index 004ad957fe..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_129.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - urban - - 2 - -100 - - AWGN - - 5 - 7.68 - 1.9 - - - 5 - 1 - 1.13 - 16 - 40 - - - 1 - 5 - 20 - - - - - - - 2000 - 2000 - - - - - 1 - - STATIC - - - random - - 1 - - STATIC - - - - - - - - 0 - scbr - 1 - 100 - 55000 - - - - - - 1 - udp - 100 - 55000 - ipv4 - 0 - uniform - 1000 - 10000 - uniform - 100 - 1000 - - - - - - 60000 - disable - - enable - enable - enable - - - info - low - - 2013 - - - - CBA_1 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_13.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_13.xml deleted file mode 100644 index 4b42383449..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_13.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - 500 - 500 - - - - - 3 - - STATIC - - - random - - 1 - - STATIC - - - - - - - - - - - 0 - tcp - ipv4 - 1:3 - disable - 1 - uniform - 30 - 50 - uniform - 512 - 1024 - - - - - - - 10000 - enabled - enable - - enable - enable - enable - - - debug - 1 - - 1234 - - - - OTG_2 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_14.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_14.xml deleted file mode 100644 index 1039c643dc..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_14.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - 500 - 500 - - - - - 1 - - STATIC - - - random - - 1 - - STATIC - - - - - - - - - - - 0 - tcp - ipv4 - 1 - disable - 1 - uniform - 500 - 500 - uniform - 1000 - 1500 - - - - - - - - 0 - enable - enable - - enable - enable - disable - - - trace - 1 - - 1234 - - - - OTG_2 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_15.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_15.xml deleted file mode 100644 index 0aa4fa1ca1..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_15.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - 500 - 500 - - - - - 1 - - STATIC - - - random - - 1 - - STATIC - - - - - - - 0.6 - 10 - 200 - 1 - tcp - ipv4 - 0 - enable - 1 - uniform - 80 - 100 - uniform - 100 - 200 - - - - - - 0.6 - 10 - 200 - 0 - tcp - ipv4 - 1 - enable - 1 - uniform - 1000 - 2000 - uniform - 100 - 200 - - - - - - 100000 - enable - enable - - enable - enable - enable - - - trace - 1 - - 1234 - - - - OTG_2 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_16.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_16.xml deleted file mode 100644 index ceda1c309c..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_16.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - 500 - 500 - - - - - 3 - - STATIC - - - random - - 1 - - STATIC - - - - - - - - - - - 70 - 0.1 - 0.8 - 50 - 13 - 230 - 1:3 - udp - ipv6 - 0 - enable - 1 - uniform - 4.5 - pareto - 0.5 - 30 - - - - - - 1000 - enable - enable - - enable - enable - enable - - - trace - 1 - - 1234 - - - - OTG_2 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_17.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_17.xml deleted file mode 100644 index 0dbc30e3ff..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_17.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - 500 - 500 - - - - - 3 - - STATIC - - - random - - 1 - - STATIC - - - - - - - - - - - 70 - 0.1 - 0.2 - 100 - 200 - 230 - 1:3 - udp - ipv6 - 0 - enable - 1 - uniform - 100 - 200 - pareto - 0.5 - 30 - - - - - - 3000 - enable - enable - - enable - enable - enable - - - trace - 1 - - 1234 - - - - OTG_2 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_18.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_18.xml deleted file mode 100644 index ed4b8395bb..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_18.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - 500 - 500 - - - - - 3 - - STATIC - - - random - - 1 - - STATIC - - - - - - - - 0 - m2m_traffic - enable - 1 - 1:3 - - - - - - 5000 - enable - enable - - enable - enable - enable - - - trace - 1 - - 1234 - - - - OTG_2 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_19.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_19.xml deleted file mode 100644 index e422beb3c4..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_19.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - 500 - 500 - - - - - 3 - - STATIC - - - random - - 1 - - STATIC - - - - - - - - - - 0 - tcp - ipv4 - 1:3 - enable - 1 - uniform - 400 - 500 - uniform - 80 - 150 - 60 - 70 - 0.2 - 0.1 - 0.2 - 0.1 - 0.3 - 0.1 - 0.2 - 100 - 120 - 150 - 500 - - - - - - 0 - enable - enable - - enable - enable - enable - - - debug - 1 - - 1234 - - - - OTG_2 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_2.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_2.xml deleted file mode 100644 index c2aae58b56..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_2.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - free_space - - 2 - -50 - - - - - - -90 - - - - -90 - - - - - - - 1000 - 1000 - - - - - random - - 2 - - RWP - - - - random - - 2 - - STATIC - - - - - - 0 - - debug - - - OCM_OMG_1 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_20.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_20.xml deleted file mode 100644 index b8f35407c1..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_20.xml +++ /dev/null @@ -1,87 +0,0 @@ - - - - - 2.0 - - AWGN - - 1.9 - - - - - 500 - 500 - - - - - 4 - - STATIC - - - random - - 1 - - STATIC - - - - - - - - 0 - udp - ipv6 - 1:3 - disable - uniform - 40 - 50 - fixed - 1400 - 1400 - - - - 1:3 - udp - ipv6 - 0 - 200 - 7000 - disable - fixed - 40 - 50 - uniform - 256 - 768 - - - - - - 30000 - disable - - enable - enable - enable - - - info - low - 1 - - 1234 - - - - MEDIEVAL_OTG_1 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_21.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_21.xml deleted file mode 100644 index 19c85d6b0b..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_21.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - 500 - 500 - - - - - 1 - - STATIC - - - random - - 1 - - STATIC - - - - - - - - 1 - alarm_temperature - disable - 1 - 0 - - - - - - 10000 - enable - enable - - enable - enable - enable - - - trace - 1 - - 1234 - - - - OTG_2 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_22.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_22.xml deleted file mode 100644 index 90685f8a60..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_22.xml +++ /dev/null @@ -1,105 +0,0 @@ - - - - urban - - 2 - -100 - - AWGN - - 5 - 7.68 - 1.9 - - - 5 - 1 - 1.13 - 16 - 40 - - - 1 - 5 - 20 - - - - - - - 2000 - 2000 - - - - - 7 - - STATIC - - - random - - 1 - - STATIC - - - - - - - - - - 1:7 - udp - 0 - 8000 - ipv4 - 0 - fixed - 30 - 2000 - fixed - 100 - 200 - - - - - - 10000 - disable - - enable - enable - enable - - - trace - medium - - 2014 - - - - CBA_1 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_26.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_26.xml deleted file mode 100755 index 5f84eca3cc..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_26.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - 2.0 - -100 - - AWGN - - 1.9 - 1 - - - - - - 1000 - 1000 - - - - - 7 - - STATIC - - - random - - 1 - - STATIC - - - - - - - - 0 - udp - ipv6 - 1:7 - 1000 - 10000 - - disable - uniform - 50 - 100 - uniform - 128 - 1400 - - - - 1:7 - udp - ipv6 - 0 - 0 - 10000 - disable - uniform - 100 - 150 - uniform - 256 - 768 - - - - - - 15000 - disable - - enable - enable - enable - - - info - low - 1 - - 0 - - - - MEDIEVAL_OTG_1 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_27.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_27.xml deleted file mode 100644 index 74ef5e772f..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_27.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - - 2.0 - - AWGN - - 1.9 - - - - - 1000 - 1000 - - - - - 1 - - STATIC - - - random - - 1 - - STATIC - - - - - - - - 0 - udp - ipv4 - 1 - 1000 - 10000 - - disable - fixed - 1000 - 1000 - fixed - 32 - 32 - - - - 1 - udp - ipv6 - 0 - 1000 - 10000 - disable - fixed - 1000 - 1000 - uniform - 32 - 32 - - - - - - 15000 - disable - - enable - enable - enable - - - debug - medium - 1 - - 0 - - - - MEDIEVAL_OTG_1 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_29.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_29.xml deleted file mode 100644 index 5810f14ad0..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_29.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - - free_space - - 2 - -50 - - AWGN - - 5 - 7.68 - 1.9 - 1 - - - 0 - 1 - 1.13 - 0 - 43 - - - 0 - 0 - 20 - - - - - - - 500 - 500 - - - - random - - 2 - - STATIC - - - - random - - 2 - - - STATIC - - - - - - - - 0 - 2 - fixed - 10 - fixed - 125 - - - - 2 - 0 - fixed - 10 - fixed - 125 - - - - - - 10000 - - - enable - enable - enable - - - - debug - medium - 1 - - 1234 - - - - LOLA_SCHED_1 - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_3.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_3.xml deleted file mode 100644 index 85bc55d4bc..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_3.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - free_space - - 2 - -50 - - Rice1 - - - 5 - 7.68 - 1.9 - - - - -90 - - - -90 - - - - - - - 500 - 500 - - - - random - - 1 - - STATIC - - - - random - - 1 - - - STATIC - - - - - - 5000 - - debug - - - - OCM_OMG_2 - - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_33.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_33.xml deleted file mode 100644 index 569dada42c..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_33.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - 500 - 500 - - - - - 1 - - STATIC - - - random - - 1 - - STATIC - - - - - - - - - - 0 - voip_g729 - 1 - - - 1 - voip_g729 - 0 - - - - 0 - voip_g711 - 1 - - - 1 - voip_g711 - 0 - - - - 1 - iqsim_mango - 0 - disable - - - 0 - iqsim_mango - 1 - - - - 1 - iqsim_newsteo - 0 - - - 0 - iqsim_newsteo - 1 - - - - - 10000 - enable - enable - - enable - enable - disable - - - info - 1 - - 1234 - - - - OTG_2 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_34.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_34.xml deleted file mode 100644 index 2018130d93..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_34.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - 500 - 500 - - - - random - - 1 - - RWP - - 5 - 5 - 0.1 - 5.0 - 0.1 - 10 - - - - random - - 1 - - - STATIC - - - - - - - 10000 - - 1 - enable - enable - - - info - medium - 1 - - 0 - - - - eMBMS_1 - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_4.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_4.xml deleted file mode 100644 index 45ae081a93..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_4.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - 100 - 100 - - - - random - - 1 - - RWP - - RESTRICTED - - - 0.01 - 10 - 0.01 - 10 - 0.01 - 10 - - - - - random - - 1 - - STATIC - - - - - - - 1000 - - - OMG_OMV - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_40.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_40.xml deleted file mode 100644 index c7fdcc4de6..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_40.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - urban - - 3.67 - -128 - - Rayleigh1 - - 7.68 - 1.9 - 6 - - - 0 - 1 - 0 - 0 - 43 - - - 0 - 0 - 20 - - - - - - - 5000 - 5000 - - - - random - - 1 - - TRACE - static_2ues.tr - - - random - - 1 - - STATIC - - - - - - - - - 0 - 1 - fixed - 10 - fixed - 1000 - - - - - - 10000 - disable - - 1 - - - info - high - 1 - - 7111 - - - - OCM_OMG_OTG_REF_1 - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_41.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_41.xml deleted file mode 100644 index d568b8b7de..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_41.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - urban - - 3.67 - -128 - - AWGN - - 7.68 - 1.9 - 1 - - - 0 - 1 - 0 - 0 - 43 - - - 0 - 0 - 20 - - - - - - - 5000 - 5000 - - - - random - - 1 - - TRACE - static_2ues.tr - - - random - - 1 - - STATIC - - - - - - - - 0 - 1 - fixed - 10 - fixed - 1500 - - - - - 1 - 0 - fixed - 10 - fixed - 1000 - - - - - 10000 - - - 1 - - - info - medium - 1 - - 7111 - - - - OCM_OMG_OTG_REF_1 - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_42.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_42.xml deleted file mode 100644 index cbec73e902..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_42.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - urban - - 3.67 - - -120 - - AWGN - - 7.68 - 1.9 - 1 - - - 0 - 1 - 0 - 0 - 15 - - - 0 - 0 - 0 - - - - - - - 10000 //2400 - 10000 //2400 - - - - random - - 1 - - TRACE - handover.tr - - - - random - - 3 - - TRACE - hexagonal_eNBs.tr - - - - - - 10000 - - - debug - high - 1 - - 1234 - - - - HO_1 - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_43.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_43.xml deleted file mode 100644 index f4a95c2a2a..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_43.xml +++ /dev/null @@ -1,70 +0,0 @@ - -- - - - urban - - 3.67 - -111 - - Rayleigh1 - - 7.68 - 1.9 - 1 - - - 0 - 1 - 0 - 0 - 15 - - - 0 - 0 - 20 - - - - - - - 800 - 800 - - - - random - - 1 - - TRACE - static_1ue.tr - - - random - - 1 - - STATIC - - - - - - - 1200 - disable - - - info - low - 1 - - 69 - - - - eMBMS_OMG_REF_1 - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_5.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_5.xml deleted file mode 100644 index 32526c6f6e..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_5.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - - urban - - 2.67 - -100 - - AWGN - - 5 - 7.68 - 1.9 - - - 5 - 1 - 1.13 - 16 - 40 - - - 1 - 5 - 20 - - - - - - - 1000 - 1000 - - - - random - - 2 - - RWP - - 1 - 2 - 0.1 - 15.0 - - - - random - - 1 - - - STATIC - - - - - - - 0 - mcbr - 1:2 - 100 - 6000 - - - - 1:2 - udp - 100 - 6000 - ipv4 - 0 - uniform - 10 - 100 - uniform - 64 - 1024 - - - - - - 10000 - - disable - - enable - enable - enable - - - info - low - - 0 - - - - OCM_OMG_OTG - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_6.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_6.xml deleted file mode 100644 index 89c4646cce..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_6.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - 5000 - 5000 - - - - - 1 - - STATIC - - - random - - 1 - - STATIC - - - - - - 0 - - debug - high - 10 - - 1234 - - - 1 - 0 - - - - CLI - - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_60.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_60.xml deleted file mode 100644 index 2b85350097..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_60.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - - - urban - - 2 - -100 - - AWGN - - 5 - - 1.9 - - - 5 - 1 - 1.13 - 16 - 40 - - - 1 - 5 - 20 - - - - - - - - 500 - 500 - - - - - 1 - - STATIC - - - - fixed - - 10 - 10 - - - 1 - - STATIC - - - - - - - - 0 - voip_g729 - 1 - - - 0 - scbr - 1 - - - 1 - voip_g729 - 0 - - - - - - 10000 - enable - enable - - enable - enable - enable - enable - - - debug - low - - - -TEST1 - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_7.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_7.xml deleted file mode 100644 index 6105cd1137..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_7.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - 700 - 700 - - - - random - - 8 - - SUMO - - 1 - 20 - 0.1 - 5.0 - 0.1 - 10 - - - sumo-gui - $OPENAIR2_DIR/UTIL/OMG/SUMO/SCENARIOS/traci.scen.sumo.cfg - 0 - 10000 - 1 - 127.0.1.1 - 8890 - - - - random - - 1 - - - STATIC - - - - - - - 10000 - - info - 1 - - 974930 - - - - OMG_SUMO - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_70.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_70.xml deleted file mode 100644 index 0bb408788f..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_70.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - urban - - 2 - -100 - - AWGN - - 5 - 7.68 - 1.9 - - - 5 - 1 - 1.13 - 16 - 40 - - - 1 - 5 - 20 - - - - - - - 2000 - 2000 - - - - - 2 - - STATIC - - - random - - 1 - - STATIC - - - - - - - - 0 - - scbr - 1:2 - - - - - - 1:2 - udp - 0 - 55000 - ipv4 - 0 - uniform - 100 - 1000 - uniform - 100 - 1000 - - - - - - 60000 - disable - - enable - enable - enable - - - info - low - - 2013 - - - - - - 10 - - - - CBA_1 - - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_8.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_8.xml deleted file mode 100644 index f13b06ab34..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_8.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - 5000 - 5000 - - - - - 4 - - STATIC - - - random - - 1 - - STATIC - - - - - - - 0 - mcbr - 1:3 - - - 1:3 - scbr - 1:3 - - - - - 30000 - - 1 - - - debug - medium - 1 - - 1234 - - - - OTG_1 - diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_9.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_9.xml deleted file mode 100644 index 6dcee26270..0000000000 --- a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_9.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - 5000 - 5000 - - - - - 3 - - STATIC - - - random - - 1 - - STATIC - - - - - - - 0 - gaming_OA - 3 - - - 1:3 - udp - ipv6 - 0 - - gaussian - 100 - 1000 - 4.5 - - pareto - 0.5 - 30 - - - - - - - 5000 - - - 1 - - - debug - 1 - - 1234 - - - - OTG_2 - diff --git a/targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/Makefile b/targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/Makefile deleted file mode 100644 index 6fdf92b93e..0000000000 --- a/targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -#ifdef cygwin -#cyg=cygwin -#endif - -help: - @echo "make one_eNB_two_UE_nas: compiles the code and performs a simulation with IP traffic between two virtual nodes (Linux only)" - @echo "make one_eNB_one_UE: compiles the code and performs a small simulation (30 frames) with 1 eNB and 1 UE and checks that RLC data is transported between the two nodes after the connection setup" - @echo "make one_eNB_four_UE: comples the code and performs a small simulation (60 frames) with 1 eNB and 4 UE and checks that all 4 UEs have established a complete connection (RRC output is traced)" - @echo "make clean: Removes all .o files" - -all: help - -oaisim: - (cd $(OPENAIR_TARGETS)/SIMU/USER && $(MAKE) oaisim LINK_ENB_PDCP_TO_IP_DRIVER=1 OAI_NW_DRIVER_TYPE_ETHERNET=1 DEBUG=1) -oaisim_nas: - (cd $(OPENAIR_TARGETS)/SIMU/USER && $(MAKE) oaisim OAI_NW_DRIVER_TYPE_ETHERNET=1 LINK_ENB_PDCP_TO_IP_DRIVER=1) -nasmesh: - (cd $(OPENAIR2_DIR) && make nasmesh_netlink_address_fix.ko) - (cd $(OPENAIR2_DIR)/NAS/DRIVER/MESH/RB_TOOL && make) - -one_eNB_one_UE_nas: oaisim_nas nasmesh - ./start_one_eNB_multi_UE_nas 1 - -one_eNB_two_UE_nas: oaisim_nas nasmesh - ./start_one_eNB_multi_UE_nas 2 - -one_eNB_three_UE_nas: oaisim_nas nasmesh - ./start_one_eNB_multi_UE_nas 3 - -one_eNB_one_UE : oaisim - ../../USER/oaisim -n30 | egrep SEND_SDU - -one_eNB_four_UE : oaisim - ../../USER/oaisim -n60 -u4 | egrep "\[RRC\]" - -one_eNB_one_UE_PHY : oaisim_nas nasmesh - ./start_one_eNB_two_UE_PHY_nas 2 - -clean: - (cd $(OPENAIR_TARGETS)/SIMU/USER && make clean) - -echo_vars: - echo $(OPENAIR1_DIR) - echo $(OPENAIR2_DIR) - echo $(OPENAIR3_DIR) - echo $(OPENAIR_TARGETS) diff --git a/targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/start_one_eNB_multi_UE_nas b/targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/start_one_eNB_multi_UE_nas deleted file mode 100755 index df8357c610..0000000000 --- a/targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/start_one_eNB_multi_UE_nas +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh -echo "Bringup eNB interface" - -sudo rmmod nasmesh -sudo insmod $OPENAIR2_DIR/NAS/DRIVER/MESH/nasmesh.ko - -#avoid conflict with reserved multicast addresses (224.0.0.11,224.0.0.13, 224.0.0.16) -#sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 -sudo ip route add 224.0.0.160/28 dev eth0 - - -echo "bring up oai0 interface for enb" -sudo ifconfig oai0 10.0.1.1 netmask 255.255.255.0 broadcast 10.0.1.255 -echo "bring up oai1 interface for ue 1" -sudo ifconfig oai1 10.0.2.2 netmask 255.255.255.0 broadcast 10.0.2.255 - -# enb -> ue1 -$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c0 -i0 -z0 -s 10.0.1.1 -t 10.0.1.2 -r 1 -# ue1 -> enb -$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c0 -i1 -z0 -s 10.0.2.2 -t 10.0.2.1 -r 1 - -if [ $1 -ge 2 ]; then - echo "bring up oai2 interface for ue 2" - sudo ifconfig oai2 10.0.3.3 netmask 255.255.255.0 broadcast 10.0.3.255 - -# enb -> ue2 - $OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c1 -i0 -z0 -s 10.0.1.1 -t 10.0.1.3 -r 12 -# ue2 -> enb - $OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c1 -i2 -z0 -s 10.0.3.3 -t 10.0.3.1 -r 1 -fi - -if [ $1 -ge 3 ]; then - echo "bring up oai3 interface for ue 3" - sudo ifconfig oai3 10.0.4.4 netmask 255.255.255.0 broadcast 10.0.4.255 - -# enb -> ue2 - $OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c2 -i0 -z0 -s 10.0.1.1 -t 10.0.1.4 -r 23 -# ue2 -> enb - $OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c2 -i3 -z0 -s 10.0.4.4 -t 10.0.4.1 -r 1 -fi - -if [ $1 -ge 4 ]; then - - echo "add oai interfaces for more UEs here" - -fi - -echo "start the emulation with 1eNB and" $1 "UE" -echo "$OPENAIR_TARGETS/SIMU/USER/oaisim -a -V -u" $1 ">/dev/null" -$OPENAIR_TARGETS/SIMU/USER/oaisim -a -V -u $1 > /dev/null - - -echo "End" diff --git a/targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/start_one_eNB_two_UE_PHY_nas b/targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/start_one_eNB_two_UE_PHY_nas deleted file mode 100755 index 2646a7902f..0000000000 --- a/targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/start_one_eNB_two_UE_PHY_nas +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh -echo "Bringup eNB interface" - -sudo rmmod nasmesh -sudo insmod $OPENAIR2_DIR/NAS/DRIVER/MESH/nasmesh.ko - -#avoid conflict with reserved multicast addresses (224.0.0.11,224.0.0.13, 224.0.0.16) -#sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 -sudo ip route add 224.0.0.160/28 dev eth0 - - -echo "bring up oai0 interface for enb" -sudo ifconfig oai0 10.0.1.1 netmask 255.255.255.0 broadcast 10.0.1.255 -echo "bring up oai1 interface for ue 1" -sudo ifconfig oai1 10.0.2.2 netmask 255.255.255.0 broadcast 10.0.2.255 - -# enb -> ue1 -$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c0 -i0 -z0 -s 10.0.1.1 -t 10.0.1.2 -r 1 -# ue1 -> enb -$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c0 -i1 -z0 -s 10.0.2.2 -t 10.0.2.1 -r 1 - -if [ $1 -ge 2 ]; then - echo "bring up oai2 interface for ue 2" - sudo ifconfig oai2 10.0.3.3 netmask 255.255.255.0 broadcast 10.0.3.255 - -# enb -> ue2 - $OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c1 -i0 -z0 -s 10.0.1.1 -t 10.0.1.3 -r 12 -# ue2 -> enb - $OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c1 -i2 -z0 -s 10.0.3.3 -t 10.0.3.1 -r 1 -fi - -if [ $1 -ge 3 ]; then - echo "bring up oai3 interface for ue 3" - sudo ifconfig oai3 10.0.4.4 netmask 255.255.255.0 broadcast 10.0.4.255 - -# enb -> ue2 - $OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c2 -i0 -z0 -s 10.0.1.1 -t 10.0.1.4 -r 23 -# ue2 -> enb - $OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c2 -i3 -z0 -s 10.0.4.4 -t 10.0.4.1 -r 1 -fi - -if [ $1 -ge 4 ]; then - - echo "add oai interfaces for more UEs here" - -fi - -echo "start the emulation with 1eNB and 2 UE" -echo "$OPENAIR_TARGETS/SIMU/USER/oaisim -c40 > /dev/null" -$OPENAIR_TARGETS/SIMU/USER/oaisim -c40 > /dev/null - - -echo "End" diff --git a/targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB_OAI_LITE/Makefile b/targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB_OAI_LITE/Makefile deleted file mode 100755 index 7cff6e66e6..0000000000 --- a/targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB_OAI_LITE/Makefile +++ /dev/null @@ -1,31 +0,0 @@ - -all: oaisim naslite_netlink_ether - -oaisim: - (cd $(OPENAIR_TARGETS)/SIMU/USER && $(MAKE) oaisim OAI_NW_DRIVER_TYPE_ETHERNET=1 LINK_ENB_PDCP_TO_IP_DRIVER=1) - -naslite_netlink_ether: - (cd $(OPENAIR2_DIR) && $(MAKE) naslite_netlink_ether.ko) - (cd $(OPENAIR2_DIR)/NAS/DRIVER/LITE/RB_TOOL/ && $(MAKE)) - -userclean: clean oaisim naslite_netlink_ether - -one_eNB_one_UE_nas: oaisim naslite_netlink_ether - /bin/bash ./start_one_eNB_multi_UE_nas 1 - -one_eNB_two_UE_nas: oaisim naslite_netlink_ether - /bin/bash ./start_one_eNB_multi_UE_nas 2 - -one_eNB_three_UE_nas: oaisim naslite_netlink_ether - /bin/bash ./start_one_eNB_multi_UE_nas 3 - -clean: - (cd $(OPENAIR_TARGETS)/SIMU/USER && $(MAKE) clean) - (cd $(OPENAIR2_DIR)/NAS/DRIVER/LITE && $(MAKE) clean) - -echo_vars: - echo $(OPENAIR1_DIR) - echo $(OPENAIR2_DIR) - echo $(OPENAIR3_DIR) - echo $(OPENAIR_TARGETS) - diff --git a/targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB_OAI_LITE/start_one_eNB_multi_UE_nas b/targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB_OAI_LITE/start_one_eNB_multi_UE_nas deleted file mode 100755 index 9074794228..0000000000 --- a/targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB_OAI_LITE/start_one_eNB_multi_UE_nas +++ /dev/null @@ -1,531 +0,0 @@ -#!/bin/bash -echo "Bash version ${BASH_VERSION}..." - -declare GENERATE_SEQ_DIAGRAM="no" -declare LOG_FILE_LTE="no" -#------------------------------------------------ -declare MAKE_IP_DRIVER_TARGET="naslite_netlink_ether" -declare MAKE_LTE_ACCESS_STRATUM_TARGET="oaisim" -declare IP_DRIVER_NAME="oai_nw_drv" -#------------------------------------------------ -declare -a NAS_IMEI=( 3 9 1 8 3 6 6 2 0 0 0 0 0 0 ) -# first value is for ENB, then UE0, UE1, etc. -declare -a MARKING=( 1 2 3 4 5 6 7 8 9 10 11 12 14 15 16 ) -# BE CAREFULL MAY NOT WORK WITH OTHER VALUES (TO DO) -declare -i NUM_ENB=1 -#------------------------------------------------ -# Notes: -# We would like to remove the ipv4 addresses swap in the IP driver code for oai virtualized. -# Let's say oai0 has ipv4 @ 10.0.1.1, oai1 has ipv4 @ 10.0.2.2 etc. -# In the past when we generated some local traffic on the computer and wanted to make it go -# through for example oai1 to oai0, the ipv4 destination address was 10.0.2.1 -# meaning 10.0.2.2 wants to send a paquet to 10.0.1.1, -# so ip_destination[2] has the digit corresponding to the source -# so ip_destination[3] has the digit corresponding to the destination -# then in the driver we modified at the receiving side (oai0 here) the ip source and destination -# addresses in this way: -# Originating packet: SRC 10.0.X.X -> 10.0.2.1 -# Resulting modified packet at the receiving side: SRC 10.0.1.2 -> 10.0.1.1 -# So the packet could be accepted by the device (same dest @) and the fake source was was recorded (1.2). -# So the response to this packet could return to the interface by where the request was pulled. -# But this solution lead to recompute checksums of packets in the driver. -# -# So here we describe a solution where packets are not modified by the IP driver but by the kernel: -# -# +---------------+ +---------------+ +---------------+ -# |APP "VIRTUALLY"| |APP "VIRTUALLY"| |APP "VIRTUALLY"| etc -# |running on eNB | |running on UE0 | |running on UE1 | -# |sending traffic| | | | | -# | to UE 1 | | | | | -# +---------------+ +---------------+ +---------------+ -# | ^ | ^ | ^ -# | | | | | | -# Tx packet (n1) | | | Tx packet (n2) | -# XXXX->10.0.1.3 | | | XXXX->10.0.1.3 | -# | | | | | | -# | Rx packet (n2) | | | Rx packet (n1) -# | 10.0.1.3->10.0.1.1 | | | 10.0.3.1->10.0.3.3 -# V | V | V | -# +-----------------------------------------------------------------------------+ -# | IPTABLES Table mangle chain OUTPUT TARGET MARK OPERATION setmark | -# | On packets coming from applications | -# |-----------------------------------------------------------------------------| -# | Example for packet n1: | -# | iptables -t mangle -A OUTPUT --dst 10.0.1.3 -j MARK --set-mark 0x0103 | -# +-----------------------------------------------------------------------------+ -# | | | | | | -# Tx packet (n1) | | | | | -# XXXX->10.0.1.3 | | | | | -# mark 0x0103 | | | | | -# | | | | | | -# V | V | V | -# +-----------------------------------------------------------------------------+ -# | IPTABLES Table nat chain POSTROUTING TARGET SNAT OPERATION --to Fake IP SRC| -# | On packets coming from applications | -# |-----------------------------------------------------------------------------| -# | Example for packet n1: | -# | iptables -t nat -A POSTROUTING -m mark --mark 0x0103 -j SNAT --to 10.0.3.1 | -# +-----------------------------------------------------------------------------+ -# | | | | | | -# | | | | | Rx packet (n1) -# | | | | | 10.0.3.1->10.0.3.3 -# | | | | | mark 0x0103 -# | | | | | | -# +-----------------------------------------------------------------------------+ -# | IPTABLES Table mangle chain PREROUTING TARGET MARK OPERATION setmark | -# | On packets coming from applications | -# |-----------------------------------------------------------------------------| -# | Example for packet n1: | -# | iptables -t nat -A PREROUTING -m mark --mark 0x0103 -j DNAT --to 10.0.3.3 | -# +-----------------------------------------------------------------------------+ -# | ^ | ^ | ^ -# | | | | | | -# Tx packet (n1) | | | | Rx packet (n1) -# 10.0.3.1->10.0.1.3 | | | 10.0.3.1->10.0.1.3 -# mark 0x0103 | | | | mark 0x0103 -# | | | | | | -# +-----------------------------------------------------------------------------+ -# | IPTABLES Table mangle chain PREROUTING TARGET MARK OPERATION setmark | -# | On packets coming from applications | -# |-----------------------------------------------------------------------------| -# | Example for packet n1: | -# | iptables -t mangle -A PREROUTING --dst 10.0.1.3 -j MARK --set-mark 0x0103 | -# +-----------------------------------------------------------------------------+ -# | ^ | ^ | ^ -# | | | | | Rx packet (n1) -# | | | | | 10.0.3.1->10.0.1.3 -# | | | | | | -# |10.0.1.1| |10.0.2.2| |10.0.3.3| -# V | V | V | -# +----------+ +----------+ +----------+ -# | oai0 | | oai1 | | oai2 | -# | (eNB) | | (UE0) | | (UE1) | -# +----------+ +----------+ +----------+ - -#################################################################################### -# HERE IS A DISPLAY OF THE CONTENT OF THE NAT TABLE FOR THE DESCRIBED SETTING -#################################################################################### -# Chain PREROUTING (policy ACCEPT 1108 packets, 242K bytes) -# pkts bytes target prot opt in out source destination -# 0 0 DNAT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x102 to:10.0.2.2 -# 0 0 DNAT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x103 to:10.0.3.3 -# 0 0 DNAT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x201 to:10.0.1.1 -# 0 0 DNAT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x203 to:10.0.3.3 -# 0 0 DNAT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x301 to:10.0.1.1 -# 0 0 DNAT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x302 to:10.0.2.2 -# -# Chain POSTROUTING (policy ACCEPT 2118 packets, 175K bytes) -# pkts bytes target prot opt in out source destination -# 0 0 SNAT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x102 to:10.0.2.1 -# 0 0 SNAT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x103 to:10.0.3.1 -# 0 0 SNAT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x201 to:10.0.1.2 -# 0 0 SNAT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x203 to:10.0.3.2 -# 0 0 SNAT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x301 to:10.0.1.3 -# 0 0 SNAT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x302 to:10.0.2.3 -# -# Chain OUTPUT (policy ACCEPT 2133 packets, 186K bytes) -# pkts bytes target prot opt in out source destination -#################################################################################### -# HERE IS A DISPLAY OF THE CONTENT OF THE MANGLE TABLE FOR THE DESCRIBED SETTING -#################################################################################### -#root@hades:~# iptables -t mangle -nvL -# Chain PREROUTING (policy ACCEPT 2008K packets, 316M bytes) -# pkts bytes target prot opt in out source destination -# 0 0 MARK all -- * * 0.0.0.0/0 10.0.1.2 MARK xset 0x102/0xffffffff -# 0 0 MARK all -- * * 0.0.0.0/0 10.0.1.3 MARK xset 0x103/0xffffffff -# 0 0 MARK all -- * * 0.0.0.0/0 10.0.2.1 MARK xset 0x201/0xffffffff -# 0 0 MARK all -- * * 0.0.0.0/0 10.0.2.3 MARK xset 0x203/0xffffffff -# 0 0 MARK all -- * * 0.0.0.0/0 10.0.3.1 MARK xset 0x301/0xffffffff -# 0 0 MARK all -- * * 0.0.0.0/0 10.0.3.2 MARK xset 0x302/0xffffffff -# -# Chain INPUT (policy ACCEPT 2008K packets, 316M bytes) -# pkts bytes target prot opt in out source destination -# -# Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) -# pkts bytes target prot opt in out source destination -# -# Chain OUTPUT (policy ACCEPT 1989K packets, 331M bytes) -# pkts bytes target prot opt in out source destination -# 0 0 MARK all -- * * 0.0.0.0/0 10.0.1.2 MARK xset 0x102/0xffffffff -# 0 0 MARK all -- * * 0.0.0.0/0 10.0.1.3 MARK xset 0x103/0xffffffff -# 0 0 MARK all -- * * 0.0.0.0/0 10.0.2.1 MARK xset 0x201/0xffffffff -# 0 0 MARK all -- * * 0.0.0.0/0 10.0.2.3 MARK xset 0x203/0xffffffff -# 0 0 MARK all -- * * 0.0.0.0/0 10.0.3.1 MARK xset 0x301/0xffffffff -# 0 0 MARK all -- * * 0.0.0.0/0 10.0.3.2 MARK xset 0x302/0xffffffff -# -# Chain POSTROUTING (policy ACCEPT 1990K packets, 331M bytes) -# pkts bytes target prot opt in out source destination -# -#################################################################################### -# We also avoid the manipulation of ipv4 ARP packets by setting ourselves the neighbour cache: -#################################################################################### -#root@hades:~# ip neigh show -#... -#10.0.3.1 dev oai1 lladdr 00:39:18:36:62:00 PERMANENT -#10.0.2.1 dev oai1 lladdr 00:39:18:36:62:00 PERMANENT -#10.0.1.1 dev oai1 lladdr 00:39:18:36:62:00 PERMANENT -#... -#10.0.1.2 dev oai0 lladdr 00:39:18:36:62:01 PERMANENT -#10.0.2.2 dev oai0 lladdr 00:39:18:36:62:01 PERMANENT -#10.0.3.2 dev oai0 lladdr 00:39:18:36:62:01 PERMANENT -#... -#10.0.1.3 dev oai0 lladdr 00:39:18:36:62:02 PERMANENT -#10.0.2.3 dev oai0 lladdr 00:39:18:36:62:02 PERMANENT -#10.0.3.3 dev oai0 lladdr 00:39:18:36:62:02 PERMANENT - -# - -########################################################### -IPTABLES=/sbin/iptables -THIS_SCRIPT_PATH=$(dirname $(readlink -f $0)) -declare -x OPENAIR_DIR="" -declare -x OPENAIR1_DIR="" -declare -x OPENAIR2_DIR="" -declare -x OPENAIR3_DIR="" -declare -x OPENAIR_TARGETS="" -########################################################### - - -black='\E[30m' -red='\E[31m' -green='\E[32m' -yellow='\E[33m' -blue='\E[34m' -magenta='\E[35m' -cyan='\E[36m' -white='\E[37m' - -ROOT_UID=0 -E_NOTROOT=67 - - -cecho() # Color-echo - # arg1 = message - # arg2 = color -{ -local default_msg="No Message." - message=${1:-$default_msg} - color=${2:-$black} - echo -e "$color" - echo -n "$message" - tput sgr0 - echo - return -} - -echo_error() { -local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $red -} - -echo_warning() { -local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $yellow -} - -echo_success() { -local my_string="" - until [ -z "$1" ] - do - my_string="$my_string$1" - shift - done - cecho "$my_string" $green -} - -set_openair() { - path=`pwd` - declare -i length_path - declare -i index - length_path=${#path} - - index=`echo $path | grep -b -o 'targets' | cut -d: -f1` - #echo ${path%$token*} - if [[ $index -lt $length_path && index -gt 0 ]] - then - declare -x OPENAIR_DIR - index=`expr $index - 1` - openair_path=`echo $path | cut -c1-$index` - #openair_path=`echo ${path:0:$index}` - export OPENAIR_DIR=$openair_path - export OPENAIR1_DIR=$openair_path/openair1 - export OPENAIR2_DIR=$openair_path/openair2 - export OPENAIR3_DIR=$openair_path/openair3 - export OPENAIR_TARGETS=$openair_path/targets - return 0 - fi - return -1 -} - -bash_exec() { - output=$($1 2>&1) - result=$? - if [ $result -eq 0 ] - then - echo_success "$1" - else - echo_error "$1: $output" - fi -} - -wait_process_started () { - if [ -z "$1" ] - then - echo_error "WAITING FOR PROCESS START: NO PROCESS" - return 1 - fi - ps -C $1 > /dev/null 2>&1 - while [ $? -ne 0 ]; do - echo_warning "WAITING FOR $1 START" - sleep 2 - ps -C $1 > /dev/null 2>&1 - done - echo_success "PROCESS $1 STARTED" - return 0 -} - -assert() { - # If condition false - # exit from script with error message - E_PARAM_ERR=98 - E_PARAM_FAILED=99 - - if [ -z "$2" ] # Not enought parameters passed. - then - return $E_PARAM_ERR - fi - - lineno=$2 - if [ ! $1 ] - then - echo "Assertion failed: \"$1\"" - echo "File \"$0\", line $lineno" - exit $E_ASSERT_FAILED - fi -} - -ctrl_c() { - bash_exec "pkill oaisim" - bash_exec "ip link set $LTEIF down" - - bash_exec "rmmod $IP_DRIVER_NAME" - - bash_exec "$IPTABLES -P INPUT ACCEPT" - bash_exec "$IPTABLES -F INPUT" - bash_exec "$IPTABLES -P OUTPUT ACCEPT" - bash_exec "$IPTABLES -F OUTPUT" - bash_exec "$IPTABLES -P FORWARD ACCEPT" - bash_exec "$IPTABLES -F FORWARD" - bash_exec "$IPTABLES -t nat -F" - bash_exec "$IPTABLES -t mangle -F" - bash_exec "$IPTABLES -t filter -F" - bash_exec "ip route flush cache" -} - - -set_openair -cecho "OPENAIR_DIR = $OPENAIR_DIR" $green -cecho "OPENAIR1_DIR = $OPENAIR1_DIR" $green -cecho "OPENAIR2_DIR = $OPENAIR2_DIR" $green -cecho "OPENAIR3_DIR = $OPENAIR3_DIR" $green -cecho "OPENAIR_TARGETS = $OPENAIR_TARGETS" $green - - -declare -i NUM_MOBILES -declare -i INSTANCE -declare -i IP_SOURCE -declare -i IP_DEST -declare -i IP -declare -i RB_ID -declare -i CLASSIFIER_ID - - -trap ctrl_c INT - -bash_exec "ip route flush cache" -bash_exec "$IPTABLES -P INPUT ACCEPT" -bash_exec "$IPTABLES -F INPUT" -bash_exec "$IPTABLES -P OUTPUT ACCEPT" -bash_exec "$IPTABLES -F OUTPUT" -bash_exec "$IPTABLES -P FORWARD DROP" -bash_exec "$IPTABLES -F FORWARD" -bash_exec "$IPTABLES -t nat -F" -bash_exec "$IPTABLES -t mangle -F" -bash_exec "$IPTABLES -t filter -F" - - -NUM_MOBILES=$1 - -for ((i=0 ; i < `expr $NUM_MOBILES + $NUM_ENB`; i++ )) -do - TEST_OAI=`/sbin/ifconfig | grep oai$i | awk '{print $1}'` - if [ "$TEST_OAI" = oai"$i"x ]; then - bash_exec "ip link set oai$i down" - fi -done - - - -echo "Bringup OAI network interfaces" - -bash_exec "rmmod $IP_DRIVER_NAME" -cecho "make $MAKE_IP_DRIVER_TARGET $MAKE_LTE_ACCESS_STRATUM_TARGET....." $green -bash_exec "make $MAKE_IP_DRIVER_TARGET $MAKE_LTE_ACCESS_STRATUM_TARGET" -bash_exec "insmod $OPENAIR2_DIR/NAS/DRIVER/LITE/$IP_DRIVER_NAME.ko oai_nw_drv_IMEI=${NAS_IMEI[0]},${NAS_IMEI[1]},${NAS_IMEI[2]},${NAS_IMEI[3]},${NAS_IMEI[4]},${NAS_IMEI[5]},${NAS_IMEI[6]},${NAS_IMEI[7]},${NAS_IMEI[8]},${NAS_IMEI[9]},${NAS_IMEI[10]},${NAS_IMEI[11]},${NAS_IMEI[12]},${NAS_IMEI[13]}" - - -NUM_MOBILES=$1 -IP=1 - -######################## -# # -# CONFIGURE OAI IF # -# # -######################## -for ((i=0 ; i < `expr $NUM_MOBILES + $NUM_ENB`; i++ )) -do - bash_exec "ip link set oai$i broadcast ff:ff:ff:ff:ff:ff" - bash_exec "ip link set oai$i up" - sleep 1 - - bash_exec "ifconfig oai$i 10.0.$IP.$IP netmask 255.255.255.0 broadcast 10.0.$IP.255" - - sleep 1 - bash_exec "ip addr add dev oai$i 2001:$IP::$IP/64" - - # avoid arp in virtualization - for ((j=0 ; j <= $NUM_MOBILES ; j++ )) - do - if [[ $i -ne $j ]] - then - bash_exec "ip neighbour add to 10.0.$IP.$IP lladdr 00:${NAS_IMEI[0]}${NAS_IMEI[1]}:${NAS_IMEI[2]}${NAS_IMEI[3]}:${NAS_IMEI[4]}${NAS_IMEI[5]}:${NAS_IMEI[6]}${NAS_IMEI[7]}:${NAS_IMEI[8]}$i nud permanent dev oai$j" - fi - done - let IP=IP+1 -done - -for ((src=0 ; src < `expr $NUM_ENB + $NUM_MOBILES` ; src++)) -do - let IP_SRC=$src+1 - for ((dst=0 ; dst < `expr $NUM_ENB + $NUM_MOBILES` ; dst++)) - do - if [[ $src -ne $dst ]] - then - let IP_DST=$dst+1 - let marksrc=${MARKING[$src]} - marksrc16=`printf '%02x' $marksrc` - let markdst=${MARKING[$dst]} - markdst16=`printf '%02x' $markdst` - bash_exec "iptables -t mangle -A OUTPUT --dst 10.0.$IP_SRC.$IP_DST -j MARK --set-mark 0x$marksrc16$markdst16" - bash_exec "iptables -t nat -A POSTROUTING -m mark --mark 0x$marksrc16$markdst16 -j SNAT --to 10.0.$IP_DST.$IP_SRC" - - # we can use same mark since not same path (PREROUTING) - bash_exec "iptables -t mangle -A PREROUTING --dst 10.0.$IP_SRC.$IP_DST -j MARK --set-mark 0x$marksrc16$markdst16" - bash_exec "iptables -t nat -A PREROUTING -m mark --mark 0x$marksrc16$markdst16 -j DNAT --to 10.0.$IP_DST.$IP_DST" - fi - done -done - -echo "########################################################################################" -echo "# IPTABLES MANGLE #" -echo "########################################################################################" -iptables -t mangle -nvL -echo "########################################################################################" -echo "# IPTABLES NAT #" -echo "########################################################################################" -iptables -t nat -nvL - -######################## -# # -# CONFIGURE RABS # -# # -######################## -# Loop Cx 0 -> NUM_MOBILES - 1 for configuring default RABS on eNB -CLASSIFIER_ID=4 -for ((instance=0 ; instance < $NUM_ENB ; instance++ )) -do - let IP_SRC=instance+1 - for ((cx=0 ; cx < $NUM_MOBILES ; cx++ )) - do - let IP_DEST=cx+2 - if [[ $IP_SRC -ne $IP_DEST ]] - then - # ON eNB - let RB_ID=(cx*8)+3 - bash_exec "$OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL/rb_tool -a -c$cx -i$instance -f$CLASSIFIER_ID -z0 -s 10.0.$IP_DEST.$IP_SRC/32 -t 10.0.$IP_SRC.$IP_DEST/32 -r $RB_ID" - let CLASSIFIER_ID=CLASSIFIER_ID+2 - - # ON UE - let IP_SOURCE=instance+1 - let instance_ue=cx+$NUM_ENB - RB_ID=3 - bash_exec "$OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL/rb_tool -a -c$instance -i$instance_ue -f$CLASSIFIER_ID -z0 -s 10.0.$IP_SRC.$IP_DEST/32 -t 10.0.$IP_DEST.$IP_SRC/32 -r $RB_ID" - let CLASSIFIER_ID=CLASSIFIER_ID+2 - - # ON eNB - bash_exec "ip neighbour add to 10.0.$IP_SRC.$IP_DEST lladdr 00:${NAS_IMEI[0]}${NAS_IMEI[1]}:${NAS_IMEI[2]}${NAS_IMEI[3]}:${NAS_IMEI[4]}${NAS_IMEI[5]}:${NAS_IMEI[6]}${NAS_IMEI[7]}:${NAS_IMEI[8]}$instance_ue nud permanent dev oai$instance" - - # ON UE - bash_exec "ip neighbour add to 10.0.$IP_DEST.$IP_SRC lladdr 00:${NAS_IMEI[0]}${NAS_IMEI[1]}:${NAS_IMEI[2]}${NAS_IMEI[3]}:${NAS_IMEI[4]}${NAS_IMEI[5]}:${NAS_IMEI[6]}${NAS_IMEI[7]}:${NAS_IMEI[8]}$instance nud permanent dev oai$instance_ue" - fi - done -done - - -IP=1 -for ((i=0 ; i < `expr $NUM_MOBILES + $NUM_ENB`; i++ )) -do - # avoid arp in virtualization - for ((j=0 ; j <= $NUM_MOBILES ; j++ )) - do - if [[ $i -ne $j ]] - then - bash_exec "ip neighbour add to 10.0.$IP.$IP lladdr 00:${NAS_IMEI[0]}${NAS_IMEI[1]}:${NAS_IMEI[2]}${NAS_IMEI[3]}:${NAS_IMEI[4]}${NAS_IMEI[5]}:${NAS_IMEI[6]}${NAS_IMEI[7]}:${NAS_IMEI[8]}$i nud permanent dev oai$j" - fi - done - let IP=IP+1 -done - -# echo "start the emulation with 1eNB and" $1 "UE" -if [ "$GENERATE_SEQ_DIAGRAM"x = yesx ]; then - if [ -e /tmp/msc_log.txt ]; then - bash_exec "rm -f /tmp/msc_log.txt" - fi - - if [ "$LOG_FILE_LTE"x = yesx ]; then - if [ -e /tmp/lte_log.txt ]; then - bash_exec "rm -f /tmp/lte_log.txt" - fi - $OPENAIR_TARGETS/SIMU/USER/oaisim -a -u $1 > /tmp/lte_log.txt - chmod 777 /tmp/lte_log.txt - cat /tmp/lte_log.txt | grep MSC_ > /tmp/msc_log.txt - else - $OPENAIR_TARGETS/SIMU/USER/oaisim -a -u $1 | grep MSC_ > /tmp/msc_log.txt - fi - chmod 777 /tmp/msc_log.txt - echo "End of emulation, now generating sequence diagrams..." - $OPENAIR_TARGETS/SCRIPTS/msc_gen.py /tmp/msc_log.txt -else - if [ "$LOG_FILE_LTE"x = yesx ]; then - if [ -e /tmp/lte_log.txt ]; then - bash_exec "rm -f /tmp/lte_log.txt" - fi - $OPENAIR_TARGETS/SIMU/USER/oaisim -a -u $1 > /tmp/lte_log.txt - chmod 777 /tmp/lte_log.txt - else - $OPENAIR_TARGETS/SIMU/USER/oaisim -a -u $1 -F -P wireshark > /tmp/lte_log.txt - fi - echo "End of emulation" -fi - - diff --git a/targets/SIMU/PROC/Process.c b/targets/SIMU/PROC/Process.c deleted file mode 100644 index 9b529fd593..0000000000 --- a/targets/SIMU/PROC/Process.c +++ /dev/null @@ -1,531 +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 -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "SIMULATION/TOOLS/defs.h" -#include "SIMULATION/RF/defs.h" -#include "PHY/types.h" -#include "PHY/defs.h" -#include "PHY/extern.h" -#include "MAC_INTERFACE/extern.h" - -#ifdef OPENAIR2 -#include "LAYER2/MAC/defs.h" -#include "LAYER2/MAC/extern.h" -#include "PHY_INTERFACE/extern.h" -#endif - -#include "../USER/oaisim.h" -#include "channel_sim_proc.h" -#include "interface.h" -#include "Tsync.h" -#include "Process.h" - -#define FILENAMEMAX 255 - -//#define DEBUG_SIM -void Process_Func(int node_id,int port,double **r_re0,double **r_im0,double **r_re,double **r_im,double **s_re,double **s_im, - node_desc_t *enb_data[NUMBER_OF_eNB_MAX],node_desc_t *ue_data[NUMBER_OF_UE_MAX],u8 abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms) -{ - - if(node_idlte_ue_common_vars.txdata,&PHY_vars_UE_g[0]->lte_ue_common_vars.rxdata,frame_parms); - - // Interface_init(port,node_id); - char p_input[FILENAMEMAX]; - int fd_pipe; - int fd_channel; - mkfifo("/tmp/channel", 0666); - fd_channel=open("/tmp/channel",O_RDWR,0); - sprintf(p_input,"/tmp/pipe_%d",node_id); - mkfifo(p_input, 0666); - fd_pipe=open(p_input,O_RDWR,0); - // IntInitAll(); - mac_xface->frame=0; - - while(1) { - // wait_4slot(&slot,&mac_xface->frame); - read(fd_pipe,&slot,sizeof(slot)); - - last_slot = (slot - 1)%20; - - if (last_slot <0) - last_slot+=20; - - next_slot = (slot + 1)%20; - - direction = subframe_select(frame_parms,next_slot>>1); -#ifdef DEBUG_SIM - printf("\n\n[SIM] EMU PHY procedures UE %d for frame %d, slot %d (subframe %d)\n", - UE_id,mac_xface->frame, slot, (next_slot >> 1)); -#endif - - if (PHY_vars_UE_g[UE_id]->UE_mode[0] != NOT_SYNCHED) { - if ((mac_xface->frame)>0) { - phy_procedures_UE_lte ((last_slot),(next_slot), PHY_vars_UE_g[UE_id], 0, abstraction_flag); - } - } else { - if (((mac_xface->frame)>0) && ((last_slot) == (SLOTS_PER_FRAME-1))) { - initial_sync(PHY_vars_UE_g[UE_id]); - } - } - - - if( direction == SF_UL || (direction == SF_S && next_slot%2!=0)) { - do_OFDM_mod(PHY_vars_UE_g[UE_id]->lte_ue_common_vars.txdataF,PHY_vars_UE_g[UE_id]->lte_ue_common_vars.txdata,next_slot,&PHY_vars_UE_g[UE_id]->lte_frame_parms); - } - - write(fd_channel,&node_id,sizeof(node_id)); - - // send_exec_complete(CHANNEL_PORT); - if(slot==19) - (mac_xface->frame)++; - - } - -} - -void eNB_Inst(int node_id,int port,double **r_re0,double **r_im0,double **r_re,double **r_im,double **s_re,double **s_im, - node_desc_t *enb_data[NUMBER_OF_eNB_MAX],u8 abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms) -{ - int next_slot,last_slot,slot=0,UE_id=0,eNB_id=0; - lte_subframe_t direction; - printf("eNB [ %d ] Starts \n",node_id); - - // init_mmap(node_id,frame_parms, &s_re, &s_im, &r_re, &r_im, &r_re0, &r_im0); - init_channel_vars (frame_parms, &s_re, &s_im, &r_re, &r_im, &r_re0, &r_im0); - mmap_enb(node_id,PHY_vars_eNB_g[0]->lte_eNB_common_vars.txdata,PHY_vars_eNB_g[0]->lte_eNB_common_vars.rxdata,frame_parms); - - // Interface_init(port,node_id); - // IntInitAll(); - char p_input[FILENAMEMAX]; - int fd_pipe; - int fd_channel; - - mkfifo("/tmp/channel", 0666); - fd_channel=open("/tmp/channel",O_RDWR,0); - sprintf(p_input,"/tmp/pipe_%d",node_id); - mkfifo(p_input, 0666); - fd_pipe=open(p_input, O_RDWR,0); - mac_xface->frame=0; - - while(1) { - // wait_4slot(&slot,&mac_xface->frame); - read(fd_pipe,&slot,sizeof(slot)); - - last_slot = (slot - 1)%20; - - if (last_slot <0) - last_slot+=20; - - next_slot = (slot + 1)%20; - direction = subframe_select(frame_parms,next_slot>>1); -#ifdef DEBUG_SIM - printf - ("\n\n [SIM]EMU PHY procedures eNB %d for frame %d, slot %d (subframe %d) (rxdataF_ext %p) Nid_cell %d\n", - eNB_id, mac_xface->frame, slot, next_slot >> 1, - PHY_vars_eNB_g[0]->lte_eNB_ulsch_vars[0]->rxdataF_ext, PHY_vars_eNB_g[eNB_id]->lte_frame_parms.Nid_cell); -#endif - phy_procedures_eNB_lte (last_slot, next_slot, PHY_vars_eNB_g[eNB_id], abstraction_flag); - - if( direction == SF_DL || (direction == SF_S && next_slot%2==0)) { - do_OFDM_mod(PHY_vars_eNB_g[eNB_id]->lte_eNB_common_vars.txdataF[0], - PHY_vars_eNB_g[eNB_id]->lte_eNB_common_vars.txdata[0], - next_slot, - &PHY_vars_eNB_g[eNB_id]->lte_frame_parms); - } - - write(fd_channel,&node_id,sizeof(node_id)); - - // send_exec_complete(CHANNEL_PORT); - if(slot==19) - (mac_xface->frame)++; - } - -} - -void Channel_Inst(int node_id,int port,double **s_re[MAX_eNB+MAX_UE],double **s_im[MAX_eNB+MAX_UE],double **r_re[MAX_eNB+MAX_UE],double **r_im[MAX_eNB+MAX_UE],double **r_re0,double **r_im0, - double **r_re0_d[MAX_UE][MAX_eNB],double **r_im0_d[MAX_UE][MAX_eNB],double **r_re0_u[MAX_eNB][MAX_UE],double **r_im0_u[MAX_eNB][MAX_UE],channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX], - channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX],node_desc_t *enb_data[NUMBER_OF_eNB_MAX],node_desc_t *ue_data[NUMBER_OF_UE_MAX],u8 abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms) -{ - - // Interface_init(port,node_id); - // IntInitAll(); - mkfifo("/tmp/channel", 0666); - fd_channel=open("/tmp/channel", O_RDWR ,0); - - int next_slot,last_slot,slot=0,UE_id=0,eNB_id=0; - lte_subframe_t direction; - char in_buffer[100]; - - int ci,ji=0; - - for(ci=0; cithread_id=NUM_THREAD_DOWNLINK; - u2e_t[UE_id][eNB_id]->eNB_id=eNB_id; - u2e_t[UE_id][eNB_id]->UE_id=UE_id; - u2e_t[UE_id][eNB_id]->r_re0=r_re0_d[UE_id][eNB_id]; - u2e_t[UE_id][eNB_id]->r_im0=r_im0_d[UE_id][eNB_id]; - u2e_t[UE_id][eNB_id]->r_re=r_re[NB_eNB_INST+UE_id]; - u2e_t[UE_id][eNB_id]->r_im=r_im[NB_eNB_INST+UE_id]; - u2e_t[UE_id][eNB_id]->s_im=s_im[eNB_id]; - u2e_t[UE_id][eNB_id]->s_re=s_re[eNB_id]; - u2e_t[UE_id][eNB_id]->eNB2UE=eNB2UE[eNB_id][UE_id]; - u2e_t[UE_id][eNB_id]->UE2eNB=UE2eNB[UE_id][eNB_id]; - u2e_t[UE_id][eNB_id]->enb_data=enb_data[eNB_id]; - u2e_t[UE_id][eNB_id]->ue_data=ue_data[UE_id]; - u2e_t[UE_id][eNB_id]->next_slot=&next_slot; - u2e_t[UE_id][eNB_id]->abstraction_flag=&abstraction_flag; - u2e_t[UE_id][eNB_id]->frame_parms=frame_parms; - - for (int i=0;i<3;i++) - { - u2e_t[UE_id][eNB_id]->tx_data[i]=tx[eNB_id][i]; - u2e_t[UE_id][eNB_id]->rx_data[i]=rx[NB_eNB_INST+UE_id][i]; - } - - if(pthread_cond_init (&downlink_cond[eNB_id][UE_id], NULL)) exit(1); - - if(pthread_mutex_lock(&downlink_mutex[eNB_id][UE_id])) exit(1); - - pthread_create (&cthr_d[UE_id][eNB_id], NULL, do_DL_sig_channel_T,(void*)(u2e_t[UE_id][eNB_id])); - NUM_THREAD_DOWNLINK++; - } - } - - NUM_THREAD_UPLINK=0; - - for (eNB_id=0; eNB_id<(NB_eNB_INST); eNB_id++) { - for (UE_id = 0; UE_id < (NB_UE_INST); UE_id++) { - e2u_t[eNB_id][UE_id]->thread_id=NUM_THREAD_UPLINK; - e2u_t[eNB_id][UE_id]->eNB_id=eNB_id; - e2u_t[eNB_id][UE_id]->UE_id=UE_id; - e2u_t[eNB_id][UE_id]->r_re=r_re[eNB_id]; - e2u_t[eNB_id][UE_id]->r_im=r_im[eNB_id]; - e2u_t[eNB_id][UE_id]->r_re0=r_re0_u[eNB_id][UE_id]; - e2u_t[eNB_id][UE_id]->r_im0=r_im0_u[eNB_id][UE_id]; - e2u_t[eNB_id][UE_id]->s_im=s_im[NB_eNB_INST+UE_id]; - e2u_t[eNB_id][UE_id]->s_re=s_re[NB_eNB_INST+UE_id]; - e2u_t[eNB_id][UE_id]->eNB2UE=eNB2UE[eNB_id][UE_id]; - e2u_t[eNB_id][UE_id]->UE2eNB=UE2eNB[UE_id][eNB_id]; - e2u_t[eNB_id][UE_id]->enb_data=enb_data[eNB_id]; - e2u_t[eNB_id][UE_id]->ue_data=ue_data[UE_id]; - e2u_t[eNB_id][UE_id]->next_slot=&next_slot; - e2u_t[eNB_id][UE_id]->abstraction_flag=&abstraction_flag; - e2u_t[eNB_id][UE_id]->frame_parms=frame_parms; - for (int i=0;i<3;i++) - { - e2u_t[eNB_id][UE_id]->tx_data[i]=tx[NB_eNB_INST+UE_id][i]; - e2u_t[eNB_id][UE_id]->rx_data[i]=rx[eNB_id][i]; - } - - if(pthread_cond_init (&uplink_cond[UE_id][eNB_id], NULL)) exit(1); - - if(pthread_mutex_lock(&uplink_mutex[UE_id][eNB_id])) exit(1); - - pthread_create (&cthr_u[eNB_id][UE_id], NULL, do_UL_sig_channel_T,(void*)e2u_t[eNB_id][UE_id]); - NUM_THREAD_UPLINK++; - } - } -} - -void Channel_DL(double **s_re[MAX_eNB+MAX_UE],double **s_im[MAX_eNB+MAX_UE],double **r_re[MAX_eNB+MAX_UE],double **r_im[MAX_eNB+MAX_UE],double **r_re0,double **r_im0, - double **r_re0_d[MAX_UE][MAX_eNB],double **r_im0_d[MAX_UE][MAX_eNB],double **r_re0_u[MAX_eNB][MAX_UE],double **r_im0_u[MAX_eNB][MAX_UE],channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX], - channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX],node_desc_t *enb_data[NUMBER_OF_eNB_MAX],node_desc_t *ue_data[NUMBER_OF_UE_MAX],u8 abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms, - int slot) -{ - - int count=0; - int next_slot,last_slot,UE_id=0,eNB_id=0; - lte_subframe_t direction; - s32 **txdata,**rxdata; - double tx_pwr, rx_pwr; - s32 rx_pwr2; - u32 i; - u32 slot_offset; - - for (eNB_id=0; eNB_id<(NB_eNB_INST); eNB_id++) { - write(fd_NB[eNB_id],&slot,sizeof(slot)); - count++; - //send_exec_msg(mac_xface->frame,slot,eNB_PORT+eNB_id); - } - - - while(count--) { - int dummy=1; - read(fd_channel,&dummy,sizeof(dummy)); - //wait_4Msg(); - } - - - - - for (eNB_id=0; eNB_id<(NB_eNB_INST); eNB_id++) { - frame_parms = &PHY_vars_eNB_g[eNB_id]->lte_frame_parms; - slot_offset = (nslot)*(frame_parms->samples_per_tti>>1); - txdata =tx[eNB_id][0]; - tx_pwr = dac_fixed_gain(s_re[eNB_id], - s_im[eNB_id], - txdata, - slot_offset, - frame_parms->nb_antennas_tx, - frame_parms->samples_per_tti>>1, - 14, - 40); - printf("[SIM][DL] eNB %d: tx_pwr %f dB for slot %d (subframe %d)\n",eNB_id,10*log10(tx_pwr),nslot,nslot>>1); - } - - _COT=0; - - for (UE_id = 0; UE_id < (NB_UE_INST); UE_id++) { - for (eNB_id=0; eNB_id<(NB_eNB_INST); eNB_id++) { - if(pthread_cond_signal(&downlink_cond[eNB_id][UE_id])) exit(1); - - if(pthread_mutex_unlock(&downlink_mutex[eNB_id][UE_id])) exit(1); - } - } - - if(pthread_cond_wait(&downlink_cond_channel, &downlink_mutex_channel)) exit(1); - - for (UE_id = 0; UE_id < (NB_UE_INST); UE_id++) { - Clean_Param(r_re[NB_eNB_INST+UE_id],r_im[NB_eNB_INST+UE_id],frame_parms); - - for (eNB_id=0; eNB_id<(NB_eNB_INST); eNB_id++) { - Channel_Out(SF_DL,eNB_id,UE_id,r_re[NB_eNB_INST+UE_id],r_im[NB_eNB_INST+UE_id],r_re0_d[UE_id][eNB_id],r_im0_d[UE_id][eNB_id],frame_parms); - // adc_channel(eNB_id,UE_id,r_re[NB_eNB_INST+UE_id],r_im[NB_eNB_INST+UE_id]); - - } - } - - count=0; - - for (UE_id = 0; UE_id < (NB_UE_INST); UE_id++) - if (mac_xface->frame >= (UE_id * 10)) { - write(fd_NB[NB_eNB_INST+UE_id],&slot,sizeof(slot)); - //send_exec_msg(mac_xface->frame,slot,UE_PORT+UE_id); - count++; - } - - while(count--) { - int dummy=1; - read(fd_channel,&dummy,sizeof(dummy)); - //wait_4Msg(); - } - -} - - -void Channel_UL(double **s_re[MAX_eNB+MAX_UE],double **s_im[MAX_eNB+MAX_UE],double **r_re[MAX_eNB+MAX_UE],double **r_im[MAX_eNB+MAX_UE],double **r_re0,double **r_im0, - double **r_re0_d[MAX_UE][MAX_eNB],double **r_im0_d[MAX_UE][MAX_eNB],double **r_re0_u[MAX_eNB][MAX_UE],double **r_im0_u[MAX_eNB][MAX_UE],channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX], - channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX],node_desc_t *enb_data[NUMBER_OF_eNB_MAX],node_desc_t *ue_data[NUMBER_OF_UE_MAX],u8 abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms, - int slot) -{ - int count=0; - int next_slot,last_slot,UE_id=0,eNB_id=0; - lte_subframe_t direction; - s32 **txdata,**rxdata; - double tx_pwr, rx_pwr; - s32 rx_pwr2; - u32 i; - u32 slot_offset; - - for (UE_id = 0; UE_id < (NB_UE_INST); UE_id++) - if (mac_xface->frame >= (UE_id * 10)) { - write(fd_NB[NB_eNB_INST+UE_id],&slot,sizeof(slot)); - //send_exec_msg(mac_xface->frame,slot,UE_PORT+UE_id); - count++; - } - - while(count--) { - int dummy=1; - read(fd_channel,&dummy,sizeof(dummy)); - //wait_4Msg(); - } - - - - for (UE_id = 0; UE_id < (NB_UE_INST); UE_id++) { - frame_parms = &PHY_vars_UE_g[UE_id]->lte_frame_parms; - slot_offset = (nslot)*(frame_parms->samples_per_tti>>1); - txdata =tx[NB_eNB_INST+UE_id][0]; //PHY_vars_UE_g[UE_id]->lte_ue_common_vars.txdata; - tx_pwr = dac_fixed_gain(s_re[NB_eNB_INST+UE_id], - s_im[NB_eNB_INST+UE_id], - txdata, - slot_offset, - frame_parms->nb_antennas_tx, - frame_parms->samples_per_tti>>1, - 14, - 18); - printf("[SIM][UL] UE %d tx_pwr %f dB for slot %d (subframe %d)\n",UE_id,10*log10(tx_pwr),nslot,nslot>>1); - rx_pwr = signal_energy_fp(s_re[NB_eNB_INST+UE_id],s_im[NB_eNB_INST+UE_id],frame_parms->nb_antennas_rx,frame_parms->samples_per_tti>>1,0); - printf("[SIM][UL] UE %d tx_pwr %f dB for slot %d (subframe %d)\n",UE_id,10*log10(rx_pwr),nslot,nslot>>1); - } - - _COT_U=0; - - for (eNB_id=0; eNB_id<(NB_eNB_INST); eNB_id++) { - for (UE_id = 0; UE_id < (NB_UE_INST); UE_id++) { - if ( pthread_cond_signal(&uplink_cond[UE_id][eNB_id])) exit(1); - - if ( pthread_mutex_unlock(&uplink_mutex[UE_id][eNB_id])) exit(1); - } - } - - if ( pthread_cond_wait(&uplink_cond_channel, &uplink_mutex_channel)) exit(1); - - for (eNB_id=0; eNB_id<(NB_eNB_INST); eNB_id++) { - Clean_Param(r_re[eNB_id],r_im[eNB_id],frame_parms); - - for (UE_id = 0; UE_id < (NB_UE_INST); UE_id++) { - Channel_Out(SF_UL,eNB_id,UE_id,r_re[eNB_id],r_im[eNB_id],r_re0_u[eNB_id][UE_id],r_im0_u[eNB_id][UE_id],frame_parms); - printf("[SIM][DL] eNB %d: tx_pwr %f dB for slot %d (subframe %d)\n",eNB_id,10*log10(tx_pwr),next_slot,next_slot>>1); - } - } - - - count=0; - - for (eNB_id=0; eNB_id<(NB_eNB_INST); eNB_id++) { - write(fd_NB[eNB_id],&slot,sizeof(slot)); - // send_exec_msg(mac_xface->frame,slot,eNB_PORT+eNB_id); - count++; - } - - while(count--) { - int dummy=1; - read(fd_channel,&dummy,sizeof(dummy)); - // wait_4Msg(); - } - -} - -void Channel_Func(double **s_re[MAX_eNB+MAX_UE],double **s_im[MAX_eNB+MAX_UE],double **r_re[MAX_eNB+MAX_UE],double **r_im[MAX_eNB+MAX_UE],double **r_re0,double **r_im0, - double **r_re0_d[MAX_UE][MAX_eNB],double **r_im0_d[MAX_UE][MAX_eNB],double **r_re0_u[MAX_eNB][MAX_UE],double **r_im0_u[MAX_eNB][MAX_UE],channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX], - channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX],node_desc_t *enb_data[NUMBER_OF_eNB_MAX],node_desc_t *ue_data[NUMBER_OF_UE_MAX],u8 abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms, - int slot) -{ - int last_slot; - lte_subframe_t direction; - - last_slot = (slot - 1)%20; - - if (last_slot <0) - last_slot+=20; - - nslot = (slot + 1)%20; - - direction = subframe_select(frame_parms,nslot>>1); - - if( direction == SF_DL || (direction == SF_S && nslot%2==0)) { - Channel_DL(s_re,s_im,r_re,r_im,r_re0,r_im0,r_re0_d,r_im0_d,r_re0_u,r_im0_u,eNB2UE,UE2eNB,enb_data,ue_data,abstraction_flag,frame_parms,slot); - } else { - Channel_UL(s_re,s_im,r_re,r_im,r_re0,r_im0,r_re0_d,r_im0_d,r_re0_u,r_im0_u,eNB2UE,UE2eNB,enb_data,ue_data,abstraction_flag,frame_parms,slot); - } -} diff --git a/targets/SIMU/PROC/Process.h b/targets/SIMU/PROC/Process.h deleted file mode 100644 index 71383f945f..0000000000 --- a/targets/SIMU/PROC/Process.h +++ /dev/null @@ -1,59 +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 __PROCESS_H__ -# define __PROCESS_H__ - -#include "interface.h" - -int32_t **tx[MAX_eNB+MAX_UE][3],**rx[MAX_eNB+MAX_UE][3]; -int nslot; - -void Process_Func(int node_id,int port,double **r_re0,double **r_im0,double **r_re,double **r_im,double **s_re,double **s_im, - node_desc_t *enb_data[NUMBER_OF_eNB_MAX],node_desc_t *ue_data[NUMBER_OF_UE_MAX],uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms); - -void UE_Inst(int node_id,int port,double **r_re0,double **r_im0,double **r_re,double **r_im,double **s_re,double **s_im, - node_desc_t *ue_data[NUMBER_OF_UE_MAX],uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms); - -void eNB_Inst(int node_id,int port,double **r_re0,double **r_im0,double **r_re,double **r_im,double **s_re,double **s_im, - node_desc_t *enb_data[NUMBER_OF_eNB_MAX],uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms); - -void Channel_Inst(int node_id,int port,double **s_re[MAX_eNB+MAX_UE],double **s_im[MAX_eNB+MAX_UE],double **r_re[MAX_eNB+MAX_UE],double **r_im[MAX_eNB+MAX_UE],double **r_re0,double **r_im0, - double **r_re0_d[MAX_UE][MAX_eNB],double **r_im0_d[MAX_UE][MAX_eNB],double **r_re0_u[MAX_eNB][MAX_UE],double **r_im0_u[MAX_eNB][MAX_UE],channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX], - channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX],node_desc_t *enb_data[NUMBER_OF_eNB_MAX],node_desc_t *ue_data[NUMBER_OF_UE_MAX],uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms); - -void Channel_DL(double **s_re[MAX_eNB+MAX_UE],double **s_im[MAX_eNB+MAX_UE],double **r_re[MAX_eNB+MAX_UE],double **r_im[MAX_eNB+MAX_UE],double **r_re0,double **r_im0, - double **r_re0_d[MAX_UE][MAX_eNB],double **r_im0_d[MAX_UE][MAX_eNB],double **r_re0_u[MAX_eNB][MAX_UE],double **r_im0_u[MAX_eNB][MAX_UE],channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX], - channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX],node_desc_t *enb_data[NUMBER_OF_eNB_MAX],node_desc_t *ue_data[NUMBER_OF_UE_MAX],uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms, - int slot); - -void Channel_UL(double **s_re[MAX_eNB+MAX_UE],double **s_im[MAX_eNB+MAX_UE],double **r_re[MAX_eNB+MAX_UE],double **r_im[MAX_eNB+MAX_UE],double **r_re0,double **r_im0, - double **r_re0_d[MAX_UE][MAX_eNB],double **r_im0_d[MAX_UE][MAX_eNB],double **r_re0_u[MAX_eNB][MAX_UE],double **r_im0_u[MAX_eNB][MAX_UE],channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX], - channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX],node_desc_t *enb_data[NUMBER_OF_eNB_MAX],node_desc_t *ue_data[NUMBER_OF_UE_MAX],uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms, - int slot); - -void Channel_Func(double **s_re[MAX_eNB+MAX_UE],double **s_im[MAX_eNB+MAX_UE],double **r_re[MAX_eNB+MAX_UE],double **r_im[MAX_eNB+MAX_UE],double **r_re0,double **r_im0, - double **r_re0_d[MAX_UE][MAX_eNB],double **r_im0_d[MAX_UE][MAX_eNB],double **r_re0_u[MAX_eNB][MAX_UE],double **r_im0_u[MAX_eNB][MAX_UE],channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX], - channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX],node_desc_t *enb_data[NUMBER_OF_eNB_MAX],node_desc_t *ue_data[NUMBER_OF_UE_MAX],uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms, - int slot); - - -#endif diff --git a/targets/SIMU/PROC/SCRIPT/Run.py b/targets/SIMU/PROC/SCRIPT/Run.py deleted file mode 100755 index 9520508ff7..0000000000 --- a/targets/SIMU/PROC/SCRIPT/Run.py +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env python -import subprocess -import optparse -import re - -OPT=" " -TERMINAL="gnome-terminal -x " -TIME="time" - -def runBash(cmd): - p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) - out = p.stdout.read().strip() - return out - -def main(): - global OPT,TIME,TERMINAL - subprocess.call('ps | nawk \'/oaisim/ {system("kill " $1)}\'', shell=True) - p = optparse.OptionParser() - p.add_option('--eNB', '-b', default="1") - p.add_option('--UE', '-u', default="1") - p.add_option('--frame','-n', default="100") - p.add_option('--terminal','-t', default="1") - p.add_option('--time','--time', default="0") - options, arguments = p.parse_args() - print '---- Configuration ---- ' - print 'Number of eNB : %s' % options.eNB - print 'Number of UE : %s' % options.UE - if(options.terminal=='1'): - OPT+=TERMINAL - if(options.time=='1'): - OPT+=TIME - - #CHANNEL= 'valgrind --tool=callgrind --collect-bus=yes --branch-sim=yes $OPENAIR_TARGETS/SIMU/USER/oaisim -X0 -b%s -u%s -n%s' % (options.eNB,options.UE,options.frame) - CHANNEL= '$OPENAIR_TARGETS/SIMU/USER/oaisim -X0 -b%s -u%s -n%s' % (options.eNB,options.UE,options.frame) - #subprocess.call(CHANNEL, shell=True) - print CHANNEL - - nb_enb=int(options.eNB) - nb_ue=int(options.UE) - frame=int(options.frame) - - for x in xrange(0,nb_enb): - ENB='%s $OPENAIR_TARGETS/SIMU/USER/oaisim -X1 -i%s &' % (OPT,x) - print ENB - subprocess.call(ENB,shell=True) - subprocess.call('sleep 1', shell=True) - - for x in xrange(0,nb_ue): - UE='%s $OPENAIR_TARGETS/SIMU/USER/oaisim -X2 -i%s &' % (OPT,x) - print UE - subprocess.call(UE,shell=True) - subprocess.call('sleep 1', shell=True) - - # subprocess.call('sleep 2', shell=True) - subprocess.call(CHANNEL, shell=True) - # subprocess.call('ps | nawk \'/oaisim/ {system("kill " $1)}\'', shell=True) - -if __name__ == '__main__': - main() - - diff --git a/targets/SIMU/PROC/Tsync.h b/targets/SIMU/PROC/Tsync.h deleted file mode 100644 index a6ffe11def..0000000000 --- a/targets/SIMU/PROC/Tsync.h +++ /dev/null @@ -1,63 +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 - */ - -/* - * Tsync.h - * - */ -#include -#ifndef TSYNC_H_ -#define TSYNC_H_ - -#define COMPILER_BARRIER() __asm__ __volatile__ ("" ::: "memory") -int mycount; -pthread_mutex_t exclusive; -pthread_mutex_t downlink_mutex[MAX_eNB][MAX_UE]; -pthread_mutex_t downlink_mutex_channel; -pthread_cond_t downlink_cond[MAX_eNB][MAX_UE]; -pthread_cond_t downlink_cond_channel; - -pthread_mutex_t uplink_mutex[MAX_UE][MAX_eNB]; -pthread_mutex_t uplink_mutex_channel; -pthread_cond_t uplink_cond[MAX_UE][MAX_eNB]; -pthread_cond_t uplink_cond_channel; - -int COT; -int COT_U; - -volatile int _COT; -volatile int _COT_U; - - -int NUM_THREAD_DOWNLINK; -int NUM_THREAD_UPLINK; - -ch_thread *e2u_t[MAX_UE][MAX_eNB]; -ch_thread *u2e_t[MAX_UE][MAX_eNB]; - -pthread_t cthr_u[MAX_eNB][MAX_UE]; -pthread_t cthr_d[MAX_eNB][MAX_UE]; - -int fd_NB[MAX_eNB+MAX_UE]; -int fd_channel; - - -#endif /* TSYNC_H_ */ diff --git a/targets/SIMU/PROC/channel_sim_proc.c b/targets/SIMU/PROC/channel_sim_proc.c deleted file mode 100644 index dd0adec0d2..0000000000 --- a/targets/SIMU/PROC/channel_sim_proc.c +++ /dev/null @@ -1,677 +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 -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "SIMULATION/TOOLS/defs.h" -#include "SIMULATION/RF/defs.h" -#include "PHY/types.h" -#include "PHY/defs.h" -#include "PHY/extern.h" -#include "MAC_INTERFACE/extern.h" - -#ifdef OPENAIR2 -#include "LAYER2/MAC/defs.h" -#include "LAYER2/MAC/extern.h" -#include "UTIL/LOG/log_if.h" -#include "RRC/LITE/extern.h" -#include "PHY_INTERFACE/extern.h" -#endif - -#include "../USER/oaisim.h" - -#include "channel_sim_proc.h" -#include "interface.h" -#include "Tsync.h" -#include "Process.h" -#define RF -//#define DEBUG_SIM - - -void init_rre(LTE_DL_FRAME_PARMS *frame_parms,double ***r_re0,double ***r_im0) -{ - - int i; - - (*r_re0) = malloc(2*sizeof(double*)); - (*r_im0) = malloc(2*sizeof(double*)); - - for (i=0; i<2; i++) { - (*r_re0)[i] = malloc(FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - bzero((*r_re0)[i],FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - (*r_im0)[i] = malloc(FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - bzero((*r_im0)[i],FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - } - - -} - -void mmap_enb(int id,int **tx_data[3],int **rx_data[3],LTE_DL_FRAME_PARMS *frame_parms) -{ - - - int i; - int fd[20]; - int result; - unsigned int FILESIZE; - - FILESIZE=FRAME_LENGTH_COMPLEX_SAMPLES*(sizeof(s32)); - - char buffer[100]; - int j=0,k=0; - - char sect=1; - - for(k=0; keNB_id); - UE_i=(cthread->UE_id); - r_re0=cthread->r_re0; - r_re=cthread->r_re; - r_im=cthread->r_im; - r_im0=cthread->r_im0; - s_im=cthread->s_im; - s_re=cthread->s_re; - eNB2UE[eNB_i][UE_i]=cthread->eNB2UE; - enb_data[0]=(cthread->enb_data); - enb_data_2[eNB_i]=cthread->enb_data; - - ue_data[UE_i]=cthread->ue_data; - frame_parms=cthread->frame_parms; - next_slot=(cthread->next_slot); - abstraction_flag=*(cthread->abstraction_flag); - thread_id=(cthread->thread_id); - - for (int i=0;i<3;i++) - { - tx_data[i]=cthread->tx_data[i]; - rx_data[i]=cthread->rx_data[i]; - } - - s32 att_eNB_id=-1; - s32 **txdata,**rxdata; - - double tx_pwr, rx_pwr; - s32 rx_pwr2; - u32 i,aa; - u32 slot_offset; - - while(1) { - - if(pthread_cond_wait(&downlink_cond[eNB_i][UE_i], &downlink_mutex[eNB_i][UE_i])) exit(1); - - slot_offset = (nslot)*(frame_parms->samples_per_tti>>1); - // pthread_mutex_lock(&exclusive); - - multipath_channel(eNB2UE[eNB_i][UE_i],s_re,s_im,r_re0,r_im0, - frame_parms->samples_per_tti>>1,0); - - - rx_pwr = signal_energy_fp2(eNB2UE[eNB_i][UE_i]->ch[0],eNB2UE[eNB_i][UE_i]->channel_length)*eNB2UE[eNB_i][UE_i]->channel_length; - - printf("[SIM][DL] Channel eNB %d => UE %d : tx_power %f dBm, path_loss %f dB\n", - eNB_i,UE_i, - enb_data_2[eNB_i]->tx_power_dBm, - eNB2UE[eNB_i][UE_i]->path_loss_dB); - printf("[SIM][DL] Channel eNB %d => UE %d : Channel gain %f dB (%f)\n",eNB_i,UE_i,10*log10(rx_pwr),rx_pwr); - - rx_pwr = signal_energy_fp(r_re0,r_im0,frame_parms->nb_antennas_rx,frame_parms->samples_per_tti>>1,0); - - printf("[SIM][DL] UE %d : rx_pwr %f dB for slot %d (subframe %d)\n",UE_i,10*log10(rx_pwr),nslot,nslot>>1); - - if (eNB2UE[eNB_i][UE_i]->first_run == 1) - eNB2UE[eNB_i][UE_i]->first_run = 0; - - rf_rx(r_re0, - r_im0, - NULL, - NULL, - 0, - frame_parms->nb_antennas_rx, - frame_parms->samples_per_tti>>1, - 1e3/eNB2UE[eNB_i][UE_i]->BW, // sampling time (ns) - 0.0, // freq offset (Hz) (-20kHz..20kHz) - 0.0, // drift (Hz) NOT YET IMPLEMENTED - ue_data[UE_i]->rx_noise_level, // noise_figure NOT YET IMPLEMENTED - 110.00 - 66.227, // rx_gain (dB) (66.227 = 20*log10(pow2(11)) = gain from the adc that will be applied later) - 200, // IP3_dBm (dBm) - &eNB2UE[eNB_i][UE_i]->ip, // initial phase - 30.0e3, // pn_cutoff (kHz) - -500.0, // pn_amp (dBc) default: 50 - 0.0, // IQ imbalance (dB), - 0.0); // IQ phase imbalance (rad) - - rx_pwr = signal_energy_fp(r_re0,r_im0,frame_parms->nb_antennas_rx,frame_parms->samples_per_tti>>1,0); - - printf("[SIM][DL] UE %d : ADC in (eNB %d) %f dB for slot %d (subframe %d)\n",UE_i,eNB_i,10*log10(rx_pwr),nslot,nslot>>1); - //count = __sync_add_and_fetch(&_COT, 1); - //COMPILER_BARRIER(); - - if (pthread_mutex_lock(&downlink_mutex_channel)) exit(1); - - _COT++; - - if(_COT==NUM_THREAD_DOWNLINK) { - // if(count==NUM_THREAD_DOWNLINK){ - if(pthread_cond_signal(&downlink_cond_channel)) exit(1); - } - - if(pthread_mutex_unlock(&downlink_mutex_channel)) exit(1); - - // pthread_mutex_unlock(&exclusive); - } - - -} - -void do_UL_sig_channel_T(void *param) -{ - - ch_thread* cthread = (ch_thread*)param; - int count=0; - u8 eNB_i,UE_i; - double **r_re0,**r_re,**r_im,**r_im0,**s_re,**s_im; - channel_desc_t *UE2eNB[8][3]; - node_desc_t *enb_data2[3]; - node_desc_t *ue_data[8]; - u16 next_slot,abstraction_flag; - LTE_DL_FRAME_PARMS *frame_parms; - int thread_id; - - eNB_i=(cthread->eNB_id); - UE_i=(cthread->UE_id); - r_re0=cthread->r_re0; - r_re=cthread->r_re; - r_im=cthread->r_im; - r_im0=cthread->r_im0; - s_im=cthread->s_im; - s_re=cthread->s_re; - UE2eNB[UE_i][eNB_i]=cthread->UE2eNB; - enb_data2[eNB_i]=cthread->enb_data; - ue_data[UE_i]=cthread->ue_data; - next_slot=*(cthread->next_slot); - abstraction_flag=*(cthread->abstraction_flag); - frame_parms=cthread->frame_parms; - thread_id=(cthread->thread_id); - - s32 **txdata,**rxdata; - - u8 UE_id=0,eNB_id=0,aa; - double tx_pwr, rx_pwr; - s32 rx_pwr2; - u32 i; - u32 slot_offset; - double nf = 0; //currently unused - - - while(1) { - - slot_offset = (nslot)*(frame_parms->samples_per_tti>>1); - - if(pthread_cond_wait(&uplink_cond[UE_i][eNB_i], &uplink_mutex[UE_i][eNB_i])) exit(1);//[UE_i][eNB_i]); - - // pthread_mutex_lock(&exclusive); - - multipath_channel(UE2eNB[UE_i][eNB_i],s_re,s_im,r_re0,r_im0, - frame_parms->samples_per_tti>>1,0); - - printf("[SIM][UL] Channel UE %d => eNB %d : %f dB\n",UE_i,eNB_i,10*log10(rx_pwr)); - - rx_pwr = signal_energy_fp(r_re0,r_im0,frame_parms->nb_antennas_rx,frame_parms->samples_per_tti>>1,0); - - printf("[SIM][UL] eNB %d : eNB out %f dB for slot %d (subframe %d), sptti %d\n",eNB_i,10*log10(rx_pwr),nslot,nslot>>1,frame_parms->samples_per_tti); - - if (UE2eNB[UE_i][eNB_i]->first_run == 1) - UE2eNB[UE_i][eNB_i]->first_run = 0; - - - // RF model - rf_rx(r_re0, - r_im0, - NULL, - NULL, - 0, - frame_parms->nb_antennas_rx, - frame_parms->samples_per_tti>>1, - (UE_id==0) ? (1.0/7.68e6 * 1e9) : 1e9, // sampling time (ns) + set noise bandwidth to 0 for UE>0 (i.e. no noise except for first UE) - 0.0, // freq offset (Hz) (-20kHz..20kHz) - 0.0, // drift (Hz) NOT YET IMPLEMENTED - nf, // noise_figure NOT YET IMPLEMENTED - 150.00 - 66.227, // rx_gain (dB) (66.227 = 20*log10(pow2(11)) = gain from the adc that will be applied later) - 200, // IP3_dBm (dBm) - &UE2eNB[UE_i][eNB_i]->ip, // initial phase - 30.0e3, // pn_cutoff (kHz) - -500.0, // pn_amp (dBc) default: 50 - 0.0, // IQ imbalance (dB), - 0.0); // IQ phase imbalance (rad) - - - rx_pwr = signal_energy_fp(r_re,r_im,frame_parms->nb_antennas_rx,frame_parms->samples_per_tti>>1,0); - - printf("[SIM][UL] rx_pwr (ADC in) %f dB for slot %d (subframe %d)\n",10*log10(rx_pwr),nslot,nslot>>1); - - // count = __sync_add_and_fetch(&_COT_U, 1); - // COMPILER_BARRIER(); - - if (pthread_mutex_lock(&uplink_mutex_channel)) exit(1); - - _COT_U++; - - if(_COT_U==NUM_THREAD_UPLINK) { - //if(count==NUM_THREAD_UPLINK){ - if (pthread_cond_signal(&uplink_cond_channel)) exit(1); - } - - if(pthread_mutex_unlock(&uplink_mutex_channel)) exit(1); - - // pthread_mutex_unlock(&exclusive); - - } - -} - -void Clean_Param(double **r_re,double **r_im,LTE_DL_FRAME_PARMS *frame_parms) -{ - u32 i,aa; - - for (i=0; i<(frame_parms->samples_per_tti>>1); i++) { - for (aa=0; aanb_antennas_rx; aa++) { - r_re[aa][i]=0.0; - r_im[aa][i]=0.0; - } - } -} - -void Channel_Out(lte_subframe_t direction,int eNB_id,int UE_id,double **r_re,double **r_im,double **r_re0,double **r_im0,LTE_DL_FRAME_PARMS *frame_parms) -{ - u32 i,aa; - double alpha=0.0; - u32 slot_offset; - frame_parms = &PHY_vars_UE_g[0]->lte_frame_parms; - slot_offset = (nslot)*(frame_parms->samples_per_tti>>1); - s32 rx_pwr2; - s32 **rxdata; - - if(eNB_id==(UE_id % NB_eNB_INST)) - alpha=1; - - for (i=0; i<(frame_parms->samples_per_tti>>1); i++) { - for (aa=0; aanb_antennas_rx; aa++) { - r_re[aa][i]+=(r_re0[aa][i]*alpha); - r_im[aa][i]+=(r_im0[aa][i]*alpha); - - } - } - - rxdata=rx[eNB_id][0]; - - if (direction == SF_DL ) { - frame_parms = &PHY_vars_eNB_g[0]->lte_frame_parms; - slot_offset = (nslot)*(frame_parms->samples_per_tti>>1); - adc(r_re, - r_im, - 0, - slot_offset, - rx[NB_eNB_INST+UE_id][0], - frame_parms->nb_antennas_rx, - frame_parms->samples_per_tti>>1, - 12); - } else { - frame_parms = &PHY_vars_UE_g[0]->lte_frame_parms; - slot_offset = (nslot)*(frame_parms->samples_per_tti>>1); - adc(r_re, - r_im, - 0, - slot_offset, - rx[eNB_id][0], - frame_parms->nb_antennas_rx, - frame_parms->samples_per_tti>>1, - 12); - } - - - rx_pwr2 = signal_energy(rxdata[0]+slot_offset,frame_parms->samples_per_tti>>1); - // printf("[SIM][DL/UL] UE/eNB %d : rx_pwr (ADC out) %f dB (%d) for slot %d (subframe %d), writing to %p\n",UE_id, 10*log10((double)rx_pwr2),rx_pwr2,nslot,nslot>>1,rxdata); -} - -/* -void do_UL_sig_channel(u8 eNB_i,u8 UE_i,double **r_re0,double **r_im0,double **r_re,double **r_im,double **s_re,double **s_im,channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX],u16 next_slot,u8 abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms) { - - s32 **txdata,**rxdata; - - u8 UE_id=0,eNB_id=0,aa; - double tx_pwr, rx_pwr; - s32 rx_pwr2; - u32 i; - u32 slot_offset; - double nf = 0; //currently unused - - slot_offset = (next_slot)*(frame_parms->samples_per_tti>>1); - - multipath_channel(UE2eNB[UE_i][eNB_i],s_re,s_im,r_re0,r_im0, - frame_parms->samples_per_tti>>1,0); - - - rx_pwr = signal_energy_fp(r_re0,r_im0,frame_parms->nb_antennas_rx,frame_parms->samples_per_tti>>1,0); - - if (UE2eNB[UE_i][eNB_i]->first_run == 1) - UE2eNB[UE_i][eNB_i]->first_run = 0; - - - // RF model - rf_rx(r_re0, - r_im0, - NULL, - NULL, - 0, - frame_parms->nb_antennas_rx, - frame_parms->samples_per_tti>>1, - (UE_id==0) ? (1.0/7.68e6 * 1e9) : 1e9, // sampling time (ns) + set noise bandwidth to 0 for UE>0 (i.e. no noise except for first UE) - 0.0, // freq offset (Hz) (-20kHz..20kHz) - 0.0, // drift (Hz) NOT YET IMPLEMENTED - nf, // noise_figure NOT YET IMPLEMENTED - 150.00 - 66.227, // rx_gain (dB) (66.227 = 20*log10(pow2(11)) = gain from the adc that will be applied later) - 200, // IP3_dBm (dBm) - &UE2eNB[UE_i][eNB_i]->ip, // initial phase - 30.0e3, // pn_cutoff (kHz) - -500.0, // pn_amp (dBc) default: 50 - 0.0, // IQ imbalance (dB), - 0.0); // IQ phase imbalance (rad) - - - rx_pwr = signal_energy_fp(r_re,r_im,frame_parms->nb_antennas_rx,frame_parms->samples_per_tti>>1,0); - printf("[SIM][UL] rx_pwr (ADC in) %f dB for slot %d (subframe %d)\n",10*log10(rx_pwr),next_slot,next_slot>>1); - -} -*/ - -/* -void do_DL_sig_channel(u8 eNB_i,u8 UE_i,double **r_re0,double **r_im0,double **r_re,double **r_im,double **s_re,double **s_im,channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX], -node_desc_t *enb_data[NUMBER_OF_eNB_MAX],node_desc_t *ue_data[NUMBER_OF_UE_MAX], u16 next_slot,u8 abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms) { - s32 att_eNB_id=-1; - s32 **txdata,**rxdata; - - u8 eNB_id=0,UE_id=0; - double tx_pwr, rx_pwr; - s32 rx_pwr2; - u32 i,aa; - u32 slot_offset; - - - multipath_channel(eNB2UE[eNB_i][UE_i],s_re,s_im,r_re0,r_im0, - frame_parms->samples_per_tti>>1,0); - - rx_pwr = signal_energy_fp2(eNB2UE[eNB_i][UE_i]->ch[0],eNB2UE[eNB_i][UE_i]->channel_length)*eNB2UE[eNB_i][UE_i]->channel_length; - - - printf("[SIM][DL] Channel eNB %d => UE %d : tx_power %f dBm, path_loss %f dB\n", - eNB_i,UE_i, - enb_data[eNB_id]->tx_power_dBm, - eNB2UE[eNB_id][UE_id]->path_loss_dB); - printf("[SIM][DL] Channel eNB %d => UE %d : Channel gain %f dB (%f)\n",eNB_id,UE_id,10*log10(rx_pwr),rx_pwr); - - rx_pwr = signal_energy_fp(r_re0,r_im0,frame_parms->nb_antennas_rx,frame_parms->samples_per_tti>>1,0); - printf("[SIM][DL] UE %d : rx_pwr %f dB for slot %d (subframe %d)\n",UE_id,10*log10(rx_pwr),next_slot,next_slot>>1); - - if (eNB2UE[eNB_id][UE_id]->first_run == 1) - eNB2UE[eNB_id][UE_id]->first_run = 0; - - rf_rx(r_re0, - r_im0, - NULL, - NULL, - 0, - frame_parms->nb_antennas_rx, - frame_parms->samples_per_tti>>1, - 1e3/eNB2UE[eNB_i][UE_i]->BW, // sampling time (ns) - 0.0, // freq offset (Hz) (-20kHz..20kHz) - 0.0, // drift (Hz) NOT YET IMPLEMENTED - ue_data[UE_id]->rx_noise_level, // noise_figure NOT YET IMPLEMENTED - 110.00 - 66.227, // rx_gain (dB) (66.227 = 20*log10(pow2(11)) = gain from the adc that will be applied later) - 200, // IP3_dBm (dBm) - &eNB2UE[eNB_i][UE_i]->ip, // initial phase - 30.0e3, // pn_cutoff (kHz) - -500.0, // pn_amp (dBc) default: 50 - 0.0, // IQ imbalance (dB), - 0.0); // IQ phase imbalance (rad) - - rx_pwr = signal_energy_fp(r_re0,r_im0,frame_parms->nb_antennas_rx,frame_parms->samples_per_tti>>1,0); - printf("[SIM][DL] UE %d : ADC in (eNB %d) %f dB for slot %d (subframe %d)\n",UE_id,eNB_id,10*log10(rx_pwr),next_slot,next_slot>>1); - -} - -*/ - - -/* -void init_mmap_channel(int id,LTE_DL_FRAME_PARMS *frame_parms, double ***s_re,double ***s_im,double ***r_re,double ***r_im,double ***r_re0,double ***r_im0) { - - int i; - int fd[20]; - int result; - double *map; - unsigned int FILESIZE; - - FILESIZE=FRAME_LENGTH_COMPLEX_SAMPLES*(sizeof(double)); - - (*s_re) = malloc(2*sizeof(double*)); - (*s_im) = malloc(2*sizeof(double*)); - (*r_re) = malloc(2*sizeof(double*)); - (*r_im) = malloc(2*sizeof(double*)); - (*r_re0) = malloc(2*sizeof(double*)); - (*r_im0) = malloc(2*sizeof(double*)); - - char buffer[100]; - int j=0; - for (i=0;i<2;i++) { - - sprintf(buffer,"/tmp/s_re_%d_%d.bin",id,i); - fd[j] = open(buffer, O_RDWR | O_CREAT | O_TRUNC, (mode_t)0600); - result = lseek(fd[j], FILESIZE-1, SEEK_SET); - result = write(fd[j], "", 1); - (*s_re)[i] = mmap(0, FILESIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd[j], 0); - - j++; - - sprintf(buffer,"/tmp/s_im_%d_%d.bin",id,i); - fd[j] = open(buffer, O_RDWR | O_CREAT | O_TRUNC, (mode_t)0600); - result = lseek(fd[j], FILESIZE-1, SEEK_SET); - result = write(fd[j], "", 1); - (*s_im)[i] = mmap(0, FILESIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd[j], 0); - - j++; - - sprintf(buffer,"/tmp/r_re_%d_%d.bin",id,i); - fd[j] = open(buffer, O_RDWR | O_CREAT | O_TRUNC, (mode_t)0600); - result = lseek(fd[j], FILESIZE-1, SEEK_SET); - result = write(fd[j], "", 1); - (*r_re)[i] = mmap(0, FILESIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd[j], 0); - - j++; - - - sprintf(buffer,"/tmp/r_im_%d_%d.bin",id,i); - fd[j] = open(buffer, O_RDWR | O_CREAT | O_TRUNC, (mode_t)0600); - result = lseek(fd[j], FILESIZE-1, SEEK_SET); - result = write(fd[j], "", 1); - (*r_im)[i] = mmap(0, FILESIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd[j], 0); - - j++; - } - - for (i=0;i<2;i++) { - (*r_re0)[i] = malloc(FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - bzero((*r_re0)[i],FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - (*r_im0)[i] = malloc(FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - bzero((*r_im0)[i],FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - } - -} - -void init_mmap(int id,LTE_DL_FRAME_PARMS *frame_parms, double ***s_re,double ***s_im,double ***r_re,double ***r_im,double ***r_re0,double ***r_im0) { - - int i; - int fd[20]; - int result; - double *map; - unsigned int FILESIZE; - - FILESIZE=FRAME_LENGTH_COMPLEX_SAMPLES*(sizeof(double)); - - *s_re = malloc(2*sizeof(double*)); - *s_im = malloc(2*sizeof(double*)); - *r_re = malloc(2*sizeof(double*)); - *r_im = malloc(2*sizeof(double*)); - *r_re0 = malloc(2*sizeof(double*)); - *r_im0 = malloc(2*sizeof(double*)); - char buffer[100]; - int j=0; - for (i=0;i<2;i++) { - - sprintf(buffer,"/tmp/s_re_%d_%d.bin",id,i); - fd[j] = open(buffer, O_RDWR | O_CREAT | O_TRUNC, (mode_t)0600); - result = lseek(fd[j], FILESIZE-1, SEEK_SET); - result = write(fd[j], "", 1); - (*s_re)[i] = mmap(0, FILESIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd[j], 0); - - j++; - - sprintf(buffer,"/tmp/s_im_%d_%d.bin",id,i); - fd[j] = open(buffer, O_RDWR | O_CREAT | O_TRUNC, (mode_t)0600); - result = lseek(fd[j], FILESIZE-1, SEEK_SET); - result = write(fd[j], "", 1); - (*s_im)[i] = mmap(0, FILESIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd[j], 0); - - j++; - - sprintf(buffer,"/tmp/r_re_%d_%d.bin",id,i); - fd[j] = open(buffer, O_RDWR | O_CREAT | O_TRUNC, (mode_t)0600); - result = lseek(fd[j], FILESIZE-1, SEEK_SET); - result = write(fd[j], "", 1); - (*r_re)[i] = mmap(0, FILESIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd[j], 0); - - j++; - - sprintf(buffer,"/tmp/r_im_%d_%d.bin",id,i); - fd[j] = open(buffer, O_RDWR | O_CREAT | O_TRUNC, (mode_t)0600); - result = lseek(fd[j], FILESIZE-1, SEEK_SET); - result = write(fd[j], "", 1); - (*r_im)[i] = mmap(0, FILESIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd[j], 0); - - j++; - } - - for (i=0;i<2;i++) { - - (*r_re0)[i] = malloc(FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - bzero((*r_re0)[i],FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - (*r_im0)[i] = malloc(FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - bzero((*r_im0)[i],FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - } - - -} -*/ - diff --git a/targets/SIMU/PROC/channel_sim_proc.h b/targets/SIMU/PROC/channel_sim_proc.h deleted file mode 100644 index 1d5b53a189..0000000000 --- a/targets/SIMU/PROC/channel_sim_proc.h +++ /dev/null @@ -1,45 +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 - */ - -/* - * channel_sim_proc.h - * - */ - -#ifndef CHANNEL_SIM_PROC_H_ -#define CHANNEL_SIM_PROC_H_ - -void mmap_enb(int id,int **tx_data[3],int **rx_data[3],LTE_DL_FRAME_PARMS *frame_parms); - -void mmap_ue(int id,int ***tx_data,int ***rx_data,LTE_DL_FRAME_PARMS *frame_parms); - -void Clean_Param(double **r_re,double **r_im,LTE_DL_FRAME_PARMS *frame_parms); - -void do_DL_sig_channel_T(void *param); - -void do_UL_sig_channel_T(void *param); - -void init_rre(LTE_DL_FRAME_PARMS *frame_parms,double ***r_re0,double ***r_im0); - -void Channel_Out(lte_subframe_t direction,int eNB_id,int UE_id,double **r_re,double **r_im,double **r_re0,double **r_im0,LTE_DL_FRAME_PARMS *frame_parms); - -#endif /* CHANNEL_SIM_PROC_H_ */ - diff --git a/targets/SIMU/PROC/interface.h b/targets/SIMU/PROC/interface.h deleted file mode 100644 index 4c00d9d6f3..0000000000 --- a/targets/SIMU/PROC/interface.h +++ /dev/null @@ -1,87 +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 __INTERFACE_H__ -# define __INTERFACE_H__ - - -typedef struct { - void* pointer; -} memory_reference_t2; - - - -typedef struct { - memory_reference_t2 mem_ref; -} obj_ref_t2; - -typedef struct { - obj_ref_t2 *gm; -} HO; - - -typedef struct { - void* pointer; - int port; - int Exec_Msg_Flag; - int node_id; - int node_role ; - int next_slot; - int last_slot; - int frame; - int sub_frame; - int slot; - int Exec_FLAG; - int EResp_FLAG; - int ue_id; -} s_t; - -HO Instance[3]; - - -typedef struct { - int thread_id; - int eNB_id; - int UE_id; - double **s_re; - double **s_im; - double **r_re; - double **r_im; - double **r_re0; - double **r_im0; - struct channel_desc_t *eNB2UE; - struct channel_desc_t *UE2eNB; - struct node_desc_t *enb_data; - struct node_desc_t *ue_data; - int *next_slot; - int *abstraction_flag; - struct LTE_DL_FRAME_PARMS *frame_parms; - int **tx_data[3]; - int **rx_data[3]; -} ch_thread; - - -#define CHANNEL_PORT 37800 -#define eNB_PORT 38800 -#define UE_PORT 39800 -#define MAX_eNB 20 -#define MAX_UE 20 -#endif diff --git a/targets/SIMU/USER/.ue.nvram b/targets/SIMU/USER/.ue.nvram deleted file mode 100644 index 17469c87ad..0000000000 Binary files a/targets/SIMU/USER/.ue.nvram and /dev/null differ diff --git a/targets/SIMU/USER/.ue_emm.nvram b/targets/SIMU/USER/.ue_emm.nvram deleted file mode 100644 index e858ba8cce..0000000000 Binary files a/targets/SIMU/USER/.ue_emm.nvram and /dev/null differ diff --git a/targets/SIMU/USER/.usim.nvram b/targets/SIMU/USER/.usim.nvram deleted file mode 100644 index 4e9adcd0d3..0000000000 Binary files a/targets/SIMU/USER/.usim.nvram and /dev/null differ diff --git a/targets/SIMU/USER/Makefile b/targets/SIMU/USER/Makefile deleted file mode 100644 index ec5f5eb0cc..0000000000 --- a/targets/SIMU/USER/Makefile +++ /dev/null @@ -1,503 +0,0 @@ -# Include some shared directives -include $(OPENAIR_TARGETS)/Makerules - -default: oaisim - -include $(OPENAIR_TARGETS)/Makefile.common - -TOP_DIR = $(OPENAIR1_DIR) -OPENAIR1_TOP = $(OPENAIR1_DIR) -OPENAIR2_TOP = $(OPENAIR2_DIR) -OPENAIR3_TOP = $(OPENAIR3_DIR) -OPENAIR3 = $(OPENAIR3_DIR) - -ifeq ($(DEBUG),1) -CFLAGS += -g -ggdb -DDEBUG_PHY -DDEBUG_MEAS -CFLAGS += -DRRC_MSG_PRINT -CFLAGS += -DPDCP_MSG_PRINT -CFLAGS += -DTRACE_RLC_UM_PDU -CFLAGS += -DTRACE_RLC_AM_PDU -else -CFLAGS += -DTRACE_RLC_UM_PDU -CFLAGS += -DTRACE_RLC_AM_PDU -endif - -ifeq ($(MSG_PRINT),1) -CFLAGS += -DRRC_MSG_PRINT -CFLAGS += -DPDCP_MSG_PRINT -endif - - -CFLAGS += -Wpointer-sign -CFLAGS += -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TX=2 $(CPUFLAGS) -I/usr/include/X11 #-Wno-packed-bitfield-compat - -ASN1_MSG_INC = $(OPENAIR2_DIR)/RRC/LITE/MESSAGES - -CFLAGS += -DOPENAIR_LTE #-DOFDMA_ULSCH -DIFFT_FPGA -DIFFT_FPGA_UE -CFLAGS += -DMAC_CONTEXT=1 -DPHY_CONTEXT=1 #-DRLC_UM_TEST_TRAFFIC=1 -#CFLAGS += -DLLR8 -CFLAGS += -DPACKAGE_NAME='"oaisim"' - -ifndef OPENAIR2 -OPENAIR2=1 -endif - -ifdef DEBUG -DISABLE_XER_PRINT=0 -MSG_PRINT=1 -endif - -ifeq ($(LOCALIZATION), 1) -CFLAGS += -DLOCALIZATION -endif - -ifeq ($(LINUX_LIST), 1) -CFLAGS += -DLINUX_LIST -endif - -ifdef TRAFFIC_TM5 -CFLAGS += -DRLC_UM_TEST_TRAFFIC=1 #-DFULL_BUFFER=1 -endif - -# activate OCG and libxml only under linux -ifeq ($(linux),1) -CFLAGS += $(LIBXML2_CFLAGS) -L/usr/local/lib -I/usr/include/atlas -L/usr/X11R6/lib -OCG_FLAG =1 -CFLAGS += -DLINUX -endif - -ifdef SMBV -CFLAGS += -DSMBV -endif - -ifeq ($(XFORMS), 1) -CFLAGS += -DXFORMS -endif - -ifdef DB -# Check if libmysqlclient is installed and use it if found to store simulation data for postprocessing -ENABLE_DB = $(shell if [ `dpkg -l | grep libmysqlclient -c` = "0" ]; then echo "0" ; else echo "1" ; fi ) -ifeq ($(ENABLE_DB), 1) -CFLAGS +=-I/usr/include/mysql -L/usr/lib/mysql -DENABLE_DB_STATS -DB_LDFLAGS = -lmysqlclient -endif -endif - -ifdef PRINT_STATS -CFLAGS += -DPRINT_STATS -endif - -ifndef rrc_cellular -rrc_cellular = 0 -rrc_cellular_eNB = 0 -rrc_cellular_UE = 0 -else - ifeq ($(eNB_flag),1) - rrc_cellular_eNB=1 - endif - ifeq ($(UE_flag),1) - rrc_cellular_UE=1 - endif -endif - -ifdef LS -CFLAGS += -DLARGE_SCALE -endif - -# ln -sf EUTRA-RRC-Definitions-a20.asn EUTRA-RRC-Definitions.asn -# make cleanasn1 -#make all Rel10=1 - -ifdef CBA -CFLAGS += -DRel10 -CFLAGS += -DCBA -$(info "Rel10=1 CBA=1") - -else ifdef Rel10 -CFLAGS += -DRel10 -$(info "Rel10=1") -else # default is rel 8 -$(info "Rel8=1") -CFLAGS += -DRel8 -endif - -#CFLAGS += -DMAX_NUM_CCs=1 - -ifeq ($(RLC_STOP_ON_LOST_PDU), 1) -CFLAGS += -DRLC_STOP_ON_LOST_PDU -endif -ifeq ($(STOP_ON_IP_TRAFFIC_OVERLOAD), 1) -CFLAGS += -DSTOP_ON_IP_TRAFFIC_OVERLOAD -endif - - -ifeq ($(USE_3GPP_ADDR_AS_LINK_ADDR), 1) -CFLAGS += -DUSE_3GPP_ADDR_AS_LINK_ADDR -endif -endif - - - -ifeq ($(LINK_ENB_PDCP_TO_IP_DRIVER), 1) -CFLAGS += -DPDCP_USE_NETLINK -DLINUX -NAS_FLAG=1 -endif - -ifeq ($(LINK_ENB_PDCP_TO_GTPV1U), 1) -CFLAGS += -DLINK_ENB_PDCP_TO_GTPV1U -endif - -ifdef TEST_OMG -CFLAGS += -DTEST_OMG -#CFLAGS += -DDEBUG_OMG -endif -# after the execution, a profiling output "gmon.out" will be created, -#then we need to run "gprof ./oaisim > gmon.txt" in the same directory as "gmon.out" -# you could also use the script "grpof2dot.py gmon.txt" for visual diagrams -ifdef GPROF -CFLAGS += -pg -endif - -#require kernel patch for oai driver to enable address autoconfiguration (IPv6 only) -ifdef ADDCONF -CFLAGS+=-DADDRCONF -endif - -ifdef OAI_NW_DRIVER_TYPE_ETHERNET -CFLAGS+=-DOAI_NW_DRIVER_TYPE_ETHERNET -endif - -CFLAGS += -DENABLE_USE_CPU_EXECUTION_TIME -ifndef DISABLE_XER_PRINT -CFLAGS += -DXER_PRINT -endif - -ifdef SECU -ifeq ($(NETTLE_FOUND), 0) -$(warning "Nettle library >= 2.5 is not installed on your system, nettle-dev lib needed, continuing with security disabled") -SECU=0 -else -ifeq ($(OPENSSL_FOUND), 0) -$(warning "openssl library is not installed on your system, openssl lib needed, continuing with security disabled") -SECU=0 -else -CFLAGS += -DENABLE_SECURITY -LIBS += $(OPENSSL_LIBS) $(NETTLE_LIBS) -endif -endif -endif - -include $(OPENAIR1_DIR)/PHY/Makefile.inc -include $(OPENAIR1_DIR)/SCHED/Makefile.inc -include $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/Makefile.inc -include $(OPENAIR2_DIR)/LAYER2/Makefile.inc -include $(OPENAIR1_DIR)/SIMULATION/ETH_TRANSPORT/Makefile.inc -include $(OPENAIR2_DIR)/RRC/NAS/Makefile.inc -include $(OPENAIR2_DIR)/UTIL/Makefile.inc -include $(OPENAIR3_DIR)/RAL-LTE/Makefile.inc -include $(OPENAIR2_DIR)/ENB_APP/Makefile.inc - - -INCLUDES += -I$(TOP_DIR) -INCLUDES += $(L2_incl) -INCLUDES += $(ENB_APP_incl) -INCLUDES += $(UTIL_incl) -INCLUDES += $(UTILS_incl) -INCLUDES += -I$(ASN1_MSG_INC) -INCLUDES += -I$(COMMON_UTILS_DIR)/collection - -SIMULATION_OBJS = $(TOP_DIR)/SIMULATION/TOOLS/gauss.o -SIMULATION_OBJS += $(TOP_DIR)/SIMULATION/TOOLS/random_channel.o -SIMULATION_OBJS += $(TOP_DIR)/SIMULATION/TOOLS/rangen_double.o -SIMULATION_OBJS += $(TOP_DIR)/SIMULATION/TOOLS/taus.o -SIMULATION_OBJS += $(TOP_DIR)/SIMULATION/TOOLS/multipath_channel.o -SIMULATION_OBJS += $(TOP_DIR)/SIMULATION/TOOLS/abstraction.o -SIMULATION_OBJS += $(TOP_DIR)/SIMULATION/RF/rf.o -SIMULATION_OBJS += $(TOP_DIR)/SIMULATION/RF/adc.o -SIMULATION_OBJS += $(TOP_DIR)/SIMULATION/RF/dac.o - -ASN1_RRC_MSG_OBJS1=$(addprefix $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/, $(ASN1_MSG_OBJS)) - -OAISIM_OBJS_COMMON = $(OPENAIR_TARGETS)/SIMU/USER/channel_sim.o -OAISIM_OBJS_COMMON += $(OPENAIR_TARGETS)/SIMU/USER/init_lte.o -OAISIM_OBJS_COMMON += $(OPENAIR_TARGETS)/SIMU/USER/oaisim_config.o -OAISIM_OBJS_COMMON += $(OPENAIR_TARGETS)/SIMU/USER/sinr_sim.o -OAISIM_OBJS_COMMON += $(OPENAIR_TARGETS)/SIMU/USER/cor_SF_sim.o -OAISIM_OBJS_COMMON += $(OPENAIR_TARGETS)/SIMU/USER/oaisim_functions.o -OAISIM_OBJS_COMMON += $(OPENAIR_TARGETS)/SIMU/USER/event_handler.o - -OAISIM_OBJS = $(OPENAIR_TARGETS)/SIMU/USER/oaisim.o - -ifeq ($(XFORMS), 1) -TOOLS_OBJS += $(OPENAIR1_DIR)/PHY/TOOLS/lte_phy_scope.o -endif - -ifdef PAD -CFLAGS += -DPAD -endif - -OAISIM_PAD_OBJS = $(OPENAIR_TARGETS)/SIMU/USER/discrete_event_generator.o -OAISIM_PAD_OBJS += $(OPENAIR_TARGETS)/SIMU/USER/threadpool.o -OAISIM_PAD_OBJS += $(OPENAIR_TARGETS)/SIMU/USER/oaisim_pad.o -#deactivate the log offloading -ifndef LOG_THREAD -CFLAGS +=-DLOG_NO_THREAD -endif - -ifdef PROC -INT_OBJS += $(OPENAIR_TARGETS)/SIMU/PROC/channel_sim_proc.o -INT_OBJS += $(OPENAIR_TARGETS)/SIMU/PROC/Process.o -CFLAGS += -DPROC -endif - -CFLAGS += -DENABLE_VCD_FIFO -CFLAGS += -DENABLE_NEW_MULTICAST -ifdef NAS -CFLAGS += -DPDCP_USE_NETLINK_QUEUES -endif -# CFLAGS += -DENABLE_LOG_FIFO - -# Check if libpgm is installed and use it if found instead of the unreliable -# multicast -ifeq ($(PGM_FOUND), 1) -CFLAGS += $(PGM_CFLAGS) -LIBS += $(PGM_LIBS) -endif - -OBJ += $(PHY_OBJS) $(SIMULATION_OBJS) $(ETHERNET_TRANSPORT_OBJS) $(TOOLS_OBJS) $(SCHED_OBJS) $(STATS_OBJS) $(NAS_OBJS) -OBJ += $(INT_OBJS) $(UTIL_OBJ) $(UTILS_OBJS) $(OAISIM_OBJS_COMMON) $(ENB_APP_OBJS) -ifeq ($(OPENAIR2),1) -OBJ += $(L2_OBJS) -endif - -LFDS_OBJ_DIR = $(subst $(OPENAIR_DIR),$(OBJS_DIR),$(LFDS_DIR)) -LFDS_LIB = $(LFDS_OBJ_DIR)/bin/liblfds611.a -LIBS += $(LFDS_LIB) -SHARED_DEPENDENCIES += $(LFDS_LIB) - -all: oaisim - -pad: oaisim_pad - -userclean: cleanall oaisim - -objsdir: - @if [ ! -d $(OBJS_DIR) ]; then mkdir -p $(OBJS_DIR); fi - -printvars: - @echo rrc_cellular variable is $(rrc_cellular) - @echo EXTRA_CFLAGS = $(EXTRA_CFLAGS) - @echo OAI Config generator is $(OCG_FLAG) - @echo OAI NETLINK FLAG is $(NAS_FLAG) - @echo SSE3 proc is $(SSE3PROC) - @echo L2 objs are $(L2_OBJS) - @echo eNB_flag is $(eNB_flag) - @echo UE_flag is $(UE_flag) - @echo S1AP objs: $(S1AP_BUILT_OBJS) - @echo X2AP objs: $(X2AP_BUILT_OBJS) - @echo CFLAGS: $(CFLAGS) - @echo Enable PGM: $(PGM_FOUND) - -##UTIL_YAC_C = $(OPENAIR2_TOP)/UTIL/enb_parser.o -##$(UTIL_LEX_C) = $(subst $(OPENAIR_DIR), $(OBJS_DIR), $(OBJ) $(OAISIM_OBJS) $(ASN1_RRC_MSG_OBJS1)) - - -OAISIM_COMPILED_OBJECTS = $(subst $(OPENAIR_DIR), $(OBJS_DIR), $(OBJ) $(OAISIM_OBJS) $(ASN1_RRC_MSG_OBJS1)) - --include $(ITTI_MESSAGES_XML:.xml=.d) --include $(OAISIM_PAD_OBJS:.o=.d) --include $(OAISIM_COMPILED_OBJECTS:.o=.d) - -ifdef ENABLE_ITTI -$(OAISIM_COMPILED_OBJECTS): $(ITTI_MESSAGES_H) - -oaisim_pad.o: $(ITTI_MESSAGES_H) -endif - -$(OAISIM_COMPILED_OBJECTS): | objsdir - -.SECONDEXPANSION: -$(OAISIM_COMPILED_OBJECTS) $(OAISIM_PAD_OBJS): %.o : $$(subst $(OBJS_DIR), $(OPENAIR_DIR), $$*.c) - @echo Compiling $< - @if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi; - @$(CC) -c $(CFLAGS) $(EXTRA_CFLAGS) -DPHY_CONTEXT=1 $(INCLUDES) -o $@ $< - @$(CC) -MM $(CFLAGS) $(EXTRA_CFLAGS) -DPHY_CONTEXT=1 $(INCLUDES) $< > $*.d - @mv -f $*.d $*.d.tmp - @sed -e 's|.*:|$*.o:|' < $*.d.tmp > $*.d - @sed -e 's/.*://' -e 's/\\$$//' < $*.d.tmp | fmt -1 | \ - sed -e 's/^ *//' -e 's/$$/:/' >> $*.d - @rm -f $*.d.tmp - -$(LFDS_LIB): - @if [ ! -d $(LFDS_OBJ_DIR)/bin ]; then mkdir -p $(LFDS_OBJ_DIR)/bin; fi; - @if [ ! -d $(LFDS_OBJ_DIR)/obj ]; then mkdir -p $(LFDS_OBJ_DIR)/obj; fi; - $(MAKE) -C $(LFDS_DIR) -f makefile.linux OUTDIR=$(LFDS_OBJ_DIR) - -oaisim_pad: $(OBJ) $(OAISIM_PAD_OBJS) $(ASN1_RRC_MSG_OBJS1) - @echo "Linking oaisim_pad ..." - @$(MPICC) $(INCLUDES) $(S1AP_Incl) $(X2AP_Incl) -o oaisim_pad $(CFLAGS) $(EXTRA_CFLAGS) $(OBJ) $(OAISIM_PAD_OBJS) $(ASN1_RRC_MSG_OBJS1) \ - -lpthread -llapack_atlas -lforms -lrt -lconfig $(LIBS) $(DB_LDFLAGS) - -oaisim: $(OAISIM_COMPILED_OBJECTS) $(SHARED_DEPENDENCIES) - @echo "Linking oaisim ..." - @$(CC) $(INCLUDES) $(S1AP_Incl) $(X2AP_Incl) -o oaisim $(CFLAGS) $(EXTRA_CFLAGS) $(OAISIM_COMPILED_OBJECTS) \ - -lpthread -llapack_atlas -lforms -lrt -lconfig $(LIBS) $(DB_LDFLAGS) - -ifeq ($(rrc_cellular_eNB),1) - mv oaisim oaisim_eNB -endif -ifeq ($(rrc_cellular_UE),1) - mv oaisim oaisim_UE -endif - -oaisimCROWN: $(OBJ) $(ASN1_RRC_MSG_OBJS1) oaisimCROWN.c - @echo "Compiling oaisimCROWN.c ..." - @$(CC) oaisimCROWN.c $(INCLUDES) $(S1AP_Incl) $(X2AP_Incl) -o oaisimCROWN $(CFLAGS) $(EXTRA_CFLAGS) $(OBJ) $(ASN1_RRC_MSG_OBJS1) -lm -lblas -lpthread -llapack_atlas -lforms $(LIBXML2_LIBS) -lX11 -lXpm -lrt -lconfig - -oai_nw_drv: - (cd $(OPENAIR2_DIR) && $(MAKE) oai_nw_drv.ko) - (cp $(OPENAIR2_DIR)/NAS/DRIVER/LITE/oai_nw_drv.ko . ) -oai_nw_drv_clean: - (cd $(OPENAIR2_DIR)/NAS/DRIVER/LITE && $(MAKE) clean) -nasmesh_fix: - (cd $(OPENAIR2_DIR)/NETWORK_DRIVER/MESH/RB_TOOL && $(MAKE) clean && $(MAKE)) - (cd $(OPENAIR2_DIR) && $(MAKE) clean && $(MAKE) nasmesh_netlink_address_fix.ko) -nasmesh_fix_uninstall: - (sudo rmmod nasmesh.ko) -nasmesh_fix_install: - (sudo insmod $(OPENAIR2_DIR)/NETWORK_DRIVER/MESH/nasmesh.ko) -nasmesh_fix_reinstall: - (sudo rmmod nasmesh.ko) - (sudo insmod $(OPENAIR2_DIR)/NETWORK_DRIVER/MESH/nasmesh.ko) -nasmesh_nl: - (cd $(OPENAIR2_DIR)/NETWORK_RIVER/MESH/RB_TOOL && $(MAKE)) - (cd $(OPENAIR2_DIR) && $(MAKE) nasmesh_netlink.ko) - (sudo insmod $(OPENAIR2_DIR)/NETWORK_DRIVER/MESH/nasmesh.ko) -rb_tool: - (cd $(OPENAIR2_DIR)/NETWORK_DRIVER/MESH/RB_TOOL && $(MAKE)) - -nasmesh_install: - (sudo rmmod nasmesh) - (sudo insmod $(OPENAIR2_DIR)/NAS/DRIVER/MESH/nasmesh.ko) -nasmesh_clean: - (cd $(OPENAIR2_DIR) && $(MAKE) clean) -nas_sim_mt_cellular: - ( cd $(OPENAIR2_DIR)/NAS/SIMU_CELLULAR && make nasmt_sim CELLULAR=1 NO_RRM=1) - -nas_sim_rg_cellular: - ( cd $(OPENAIR2_DIR)/NAS/SIMU_CELLULAR && make nasrg_sim MASTER=1 CELLULAR=1 NO_RRM=1) - -rrm_std_cellular: - ( cd $(OPENAIR2_DIR)/NAS/SIMU_CELLULAR && make cell_rrm CELL_RRM=1 CELLULAR=1 NO_RRM=1) - -cleanall: common-cleanall clean cleanasn1 - -cleanalmostall: clean - rm -f $(ASN1_RRC_MSG_OBJS1) - -clean: common-clean - @$(RM_F_V) oaisim - @$(RM_F_V) oaisim_pad -# @$(RM_F_V) $(ITTI_MESSAGES_H) $(ITTI_MESSAGES_XML) $(ITTI_MESSAGES_XML:.xml=.d) - @$(RM_F_V) $(OAISIM_PAD_OBJS) - @$(RM_F_V) $(OAISIM_PAD_OBJS:.o=.d) - @$(RM_F_V) $(OAISIM_COMPILED_OBJECTS) - @$(RM_F_V) $(OAISIM_COMPILED_OBJECTS:.o=.d) - @$(RM_F_V) *.exe* - @$(RM_F_V) $(ASN1_MSG_INC)/asn1_msg.o - -cleanl1: - @$(RM_F_V) LOG_THREAD oaisim - @$(RM_F_V) $(PHY_OBJS) $(SCHED_OBJS) - @$(RM_F_V) *.o - @$(RM_F_V) *.exe - -cleanl2: - @$(RM_F_V) $(L2_OBJS) - @$(RM_F_V) $(ASN1_MSG_INC)/asn1_msg.o - -cleanasn1: - @$(RM_F_V) $(ASN1_RRC_MSG_OBJS1) - $(shell cd $(OPENAIR2_DIR)/RRC/LITE/MESSAGES ; rm -f $(ASN_MODULE_SOURCES) $(ASN_MODULE_HEADERS) *.o *.d) - @$(RM_F_V) $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/Makefile.am.sample - @$(RM_F_V) $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/Makefile.inc.generated - @$(RM_F_V) $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/asn1c/ASN1_files/.lock-rel* - -cleancell: - @$(RM_F_V) $(OPENAIR2_DIR)/RRC/CELLULAR/*.o - @$(RM_F_V) $(OPENAIR2_DIR)/RRC/CELLULAR/*.d - @$(RM_F_V) $(OPENAIR2_DIR)/RRC/L2_INTERFACE/*.o - @$(RM_F_V) $(OPENAIR2_DIR)/RRC/L2_INTERFACE/*.d - @$(RM_F_V) $(OPENAIR2_DIR)/NAS/SIMU_CELLULAR/*.o - @$(RM_F_V) $(OPENAIR2_DIR)/NAS/SIMU_CELLULAR/*.d - -cleanlfds: - $(MAKE) -C $(LFDS_DIR) -f makefile.linux clean - -cppcheck: - @echo "cppcheck oaisim ..." - cppcheck $(INCLUDES) ${OBJ:.o=.c} ${OAISIM_OBJS,.o=.c} ${ASN1_RRC_MSG_OBJS1,.o=.c} -print: - @echo "OBJ " $(OBJ) - @echo "OAISIM_OBJS " $(OAISIM_OBJS) - @echo "OAISIM_PAD_OBJS " $(OAISIM_PAD_OBJS) - @echo "OCG_FLAG are " $(OCG_FLAG) - @echo "CFLAGS are " $(CFLAGS) - @echo "EXTRA_CFLAGS are" $(EXTRA_CFLAGS) - @echo "COMMON_CFLAGS are" $(COMMON_CFLAGS) - @echo "L2 includes are" $(L2_incl) - @echo "INCLUDES are" $(INCLUDES) - @echo "S1AP Includes are" $(S1AP_Incl) - @echo "X2AP Includes are" $(X2AP_Incl) - @echo "TOP_DIR Include is" I$(TOP_DIR) - @echo "UTIL includes are" $(UTIL_incl) - @echo "UTILS includes are" $(UTILS_incl) - @echo "IS_REL8 is " $(IS_REL8) - @echo "IS_REL10 is " $(IS_REL10) - @echo "ENABLE_DB is " $(ENABLE_DB) - @echo "Libs are" $(LIBS) - @echo "NAS" $(NAS) - -showcflags: - @echo oaisim cflags: $(CFLAGS) - @echo oaisim includes: $(INCLUDES) - @if [ -d $(S1AP_DIR) ]; then $(MAKE) -C $(S1AP_DIR) -f Makefile.eNB showcflags; fi - @if [ -d $(X2AP_DIR) ]; then $(MAKE) -C $(X2AP_DIR) -f Makefile.inc showcflags; fi - -otg_all: otg_latency otg_gp - -# need to check if the file exists before calling otgplot -otg_latency: - export TITLE="Application OWD(ms)" - cp /tmp/otg_latency.dat /tmp/onewaydelay.dat - $(OPENAIR2_DIR)/UTIL/OTG/OTGplot "/tmp/otg_latency.dat" "[$(COL1):$(COL2)]" -otg_latency_bg: - export TITLE="Background OWD(ms)" - $(OPENAIR2_DIR)/UTIL/OTG/OTGplot "/tmp/otg_latency_bg.dat" "[$(COL1):$(COL2)]" -otg_gp: - export TITLE="Application Goodput(Kb/s)" - cp /tmp/otg_goodput.dat /tmp/goodput.dat - $(OPENAIR2_DIR)/UTIL/OTG/OTGplot "/tmp/goodput.dat" "[$(COL1):$(COL2)]" -otg_gp_bg: - export TITLE="Background Goodput(Kb/s)" - $(OPENAIR2_DIR)/UTIL/OTG/OTGplot "/tmp/otg_goodput_bg.dat" "[$(COL1):$(COL2)]" -otg_jitter: - export TITLE="Aplication Jitter(ms)" - $(OPENAIR2_DIR)/UTIL/OTG/OTGplot "/tmp/otg_jitter.dat" "[$(COL1):$(COL2)]" - -pexpect = $(shell if [ `dpkg -l | grep pexpect -c` = "0" ]; then echo "0" ; else echo "1" ; fi ) - -pre-ci: - @echo "Pre-commit check" - -ifeq ($(pexpect), 1) -ifndef PW - @echo "Usage: make pre-ci PW=mypassword" - @echo "Password is used to access the local host through ssh." - python $(OPENAIR_TARGETS)/TEST/OAI/test01.py -else - python $(OPENAIR_TARGETS)/TEST/OAI/test01.py -w $(PW) -endif -else - @echo "Python pexpect package is missing, please install" -endif diff --git a/targets/SIMU/USER/channel_sim.c b/targets/SIMU/USER/channel_sim.c deleted file mode 100644 index 3018dbe1fb..0000000000 --- a/targets/SIMU/USER/channel_sim.c +++ /dev/null @@ -1,618 +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 -#include -#include -#include - -#include "SIMULATION/TOOLS/sim.h" -#include "SIMULATION/RF/rf.h" -#include "PHY/types.h" -#include "PHY/defs_eNB.h" -#include "PHY/phy_extern.h" -#include "PHY/phy_extern_ue.h" - -#include "LAYER2/MAC/mac.h" -#include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log_if.h" -#include "UTIL/LOG/log_extern.h" -#include "RRC/LTE/rrc_extern.h" -#include "PHY_INTERFACE/phy_interface_extern.h" -#include "UTIL/OCG/OCG.h" -#include "UTIL/OPT/opt.h" // to test OPT - -#include "UTIL/FIFO/types.h" - -#ifdef XFORMS -#include "forms.h" -#include "phy_procedures_sim_form.h" -#endif - -#include "oaisim.h" - -#define RF -#define DEBUG_SIM -/* -#undef LOG_D -#define LOG_D(A,B,C...) printf(B,C) -*/ - -int number_rb_ul; -int first_rbUL ; - -extern Signal_buffers_t *signal_buffers_g; - - -double r_re_DL[NUMBER_OF_UE_MAX][2][30720]; -double r_im_DL[NUMBER_OF_UE_MAX][2][30720]; -double r_re_UL[NUMBER_OF_eNB_MAX][2][30720]; -double r_im_UL[NUMBER_OF_eNB_MAX][2][30720]; -int RU_output_mask[NUMBER_OF_UE_MAX]; -int UE_output_mask[NUMBER_OF_RU_MAX]; -pthread_mutex_t RU_output_mutex[NUMBER_OF_UE_MAX]; -pthread_mutex_t UE_output_mutex[NUMBER_OF_RU_MAX]; - -double ru_amp[NUMBER_OF_RU_MAX]; - -void do_DL_sig(channel_desc_t *RU2UE[NUMBER_OF_RU_MAX][NUMBER_OF_UE_MAX][MAX_NUM_CCs], - node_desc_t *enb_data[NUMBER_OF_RU_MAX], - node_desc_t *ue_data[NUMBER_OF_UE_MAX], - uint16_t subframe, - uint32_t offset, - uint32_t length, - uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *ue_frame_parms, - uint8_t UE_id, - int CC_id) -{ - - int32_t att_eNB_id=-1; - int32_t **txdata,**rxdata; - - uint32_t eNB_id,ru_id=0; - double tx_pwr; - double rx_pwr; - int32_t rx_pwr2; - uint32_t i,aa; - uint32_t sf_offset; - - double min_path_loss=-200; - uint8_t hold_channel=0; - uint8_t nb_antennas_rx = RU2UE[0][0][CC_id]->nb_rx; // number of rx antennas at UE - uint8_t nb_antennas_tx = RU2UE[0][0][CC_id]->nb_tx; // number of tx antennas at eNB - - double s_re0[30720]; - double s_re1[30720]; - double *s_re[2]; - double s_im0[30720]; - double s_im1[30720]; - double *s_im[2]; - double r_re00[30720]; - double r_re01[30720]; - double *r_re0[2]; - double r_im00[30720]; - double r_im01[30720]; - double *r_im0[2]; - LTE_DL_FRAME_PARMS *frame_parms; - - s_re[0] = s_re0; - s_im[0] = s_im0; - s_re[1] = s_re1; - s_im[1] = s_im1; - - r_re0[0] = r_re00; - r_im0[0] = r_im00; - r_re0[1] = r_re01; - r_im0[1] = r_im01; - - if (subframe==0) - hold_channel = 0; - else - hold_channel = 1; - - if (abstraction_flag != 0) { - //for (UE_id=0;UE_idframe_parms; - - random_channel(RU2UE[ru_id][UE_id][CC_id],abstraction_flag); - /* - for (i=0;inb_taps;i++) - printf("RU2UE[%d][%d]->a[0][%d] = (%f,%f)\n",eNB_id,UE_id,i,RU2UE[eNB_id][UE_id]->a[0][i].x,RU2UE[eNB_id][UE_id]->a[0][i].y); - */ - freq_channel(RU2UE[ru_id][UE_id][CC_id], frame_parms->N_RB_DL,frame_parms->N_RB_DL*12+1); - } - - // find out which eNB the UE is attached to - /* - for (eNB_id=0; eNB_idpdcch_vars[0][0]->crnti,RC.eNB[eNB_id][CC_id])>=0) { - // UE with UE_id is connected to eNb with eNB_id - att_eNB_id=eNB_id; - LOG_D(OCM,"A: UE attached to eNB (UE%d->eNB%d)\n",UE_id,eNB_id); - } - } - */ - // if UE is not attached yet, find assume its the eNB with the smallest pathloss - if (att_eNB_id<0) { - for (eNB_id=0; eNB_idRU_list[ru]->idx; - if (min_path_losspath_loss_dB) { - min_path_loss = RU2UE[ru_id][UE_id][CC_id]->path_loss_dB; - att_eNB_id=eNB_id; - LOG_D(OCM,"B: UE attached to eNB (UE%d->eNB%d)\n",UE_id,eNB_id); - } - } - } - } - - if (att_eNB_id<0) { - LOG_E(OCM,"Cannot find eNB for UE %d, return\n",UE_id); - return; //exit(-1); - } - -#ifdef DEBUG_SIM - rx_pwr = signal_energy_fp2(RU2UE[att_eNB_id][UE_id][CC_id]->ch[0], - RU2UE[att_eNB_id][UE_id][CC_id]->channel_length)*RU2UE[att_eNB_id][UE_id][CC_id]->channel_length; - LOG_D(OCM,"Channel (CCid %d) eNB %d => UE %d : tx_power %d dBm, path_loss %f dB\n", - CC_id,att_eNB_id,UE_id, - frame_parms->pdsch_config_common.referenceSignalPower, - RU2UE[att_eNB_id][UE_id][CC_id]->path_loss_dB); -#endif - - //dlsch_abstraction(PHY_vars_UE_g[UE_id]->sinr_dB, rb_alloc, 8); - // fill in perfect channel estimates - channel_desc_t *desc1 = RU2UE[att_eNB_id][UE_id][CC_id]; - int32_t **dl_channel_est = PHY_vars_UE_g[UE_id][CC_id]->common_vars.common_vars_rx_data_per_thread[subframe&0x1].dl_ch_estimates[0]; - // double scale = pow(10.0,(enb_data[att_eNB_id]->tx_power_dBm + RU2UE[att_eNB_id][UE_id]->path_loss_dB + (double) PHY_vars_UE_g[UE_id]->rx_total_gain_dB)/20.0); - double scale = pow(10.0,(frame_parms->pdsch_config_common.referenceSignalPower+RU2UE[att_eNB_id][UE_id][CC_id]->path_loss_dB + (double) PHY_vars_UE_g[UE_id][CC_id]->rx_total_gain_dB)/20.0); - LOG_D(OCM,"scale =%lf (%d dB)\n",scale,(int) (20*log10(scale))); - // freq_channel(desc1,frame_parms->N_RB_DL,nb_samples); - //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); - int count,count1,a_rx,a_tx; - - for(a_tx=0; a_txsymbols_per_tti/2;count++) - for (count=0; count<1; count++) { - for (count1=0; count1N_RB_DL*12; count1++) { - ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count1+(count*frame_parms->ofdm_symbol_size+LTE_CE_FILTER_LENGTH)*2]=(int16_t)(desc1->chF[a_rx+(a_tx*nb_antennas_rx)][count1].x*scale); - ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count1+1+(count*frame_parms->ofdm_symbol_size+LTE_CE_FILTER_LENGTH)*2]=(int16_t)(desc1->chF[a_rx+(a_tx*nb_antennas_rx)][count1].y*scale) ; - } - } - } - } - - // calculate the SNR for the attached eNB (this assumes eNB always uses PMI stored in eNB_UE_stats; to be improved) - init_snr(RU2UE[att_eNB_id][UE_id][CC_id], enb_data[att_eNB_id], ue_data[UE_id], PHY_vars_UE_g[UE_id][CC_id]->sinr_dB, &PHY_vars_UE_g[UE_id][CC_id]->N0, - PHY_vars_UE_g[UE_id][CC_id]->transmission_mode[att_eNB_id], RC.eNB[att_eNB_id][CC_id]->UE_stats[UE_id].DL_pmi_single, - RC.eNB[att_eNB_id][CC_id]->mu_mimo_mode[UE_id].dl_pow_off,RC.eNB[att_eNB_id][CC_id]->frame_parms.N_RB_DL); - - // calculate sinr here - for (eNB_id = 0; eNB_id < NB_eNB_INST; eNB_id++) { - if (att_eNB_id != eNB_id) { - calculate_sinr(RU2UE[eNB_id][UE_id][CC_id], enb_data[eNB_id], ue_data[UE_id], PHY_vars_UE_g[UE_id][CC_id]->sinr_dB, - RC.eNB[att_eNB_id][CC_id]->frame_parms.N_RB_DL); - } - } - } // hold channel - } - else { //abstraction_flag - - - pthread_mutex_lock(&RU_output_mutex[UE_id]); - - if (RU_output_mask[UE_id] == 0) { // This is the first eNodeB for this UE, clear the buffer - for (aa=0; aaframe_parms.samples_per_tti)*sizeof(double)); - memset((void*)r_im_DL[UE_id][aa],0,(RC.ru[0]->frame_parms.samples_per_tti)*sizeof(double)); - } - } - pthread_mutex_unlock(&RU_output_mutex[UE_id]); - - for (ru_id=0; ru_idcommon.txdata; - frame_parms = &RC.ru[ru_id]->frame_parms; - - sf_offset = (subframe*frame_parms->samples_per_tti) + offset; - LOG_D(EMU,">>>>>>>>>>>>>>>>>TXPATH: RU %d : DL_sig reading TX for subframe %d (sf_offset %d, length %d) from %p\n",ru_id,subframe,sf_offset,length,txdata[0]+sf_offset); - int length_meas = frame_parms->ofdm_symbol_size; - if (sf_offset+length <= frame_parms->samples_per_tti*10) { - - tx_pwr = dac_fixed_gain(s_re, - s_im, - txdata, - sf_offset, - nb_antennas_tx, - length, - sf_offset, - length_meas, - 14, - frame_parms->pdsch_config_common.referenceSignalPower, // dBm/RE - 0, - &ru_amp[ru_id], - frame_parms->N_RB_DL*12); - - } - else { - tx_pwr = dac_fixed_gain(s_re, - s_im, - txdata, - sf_offset, - nb_antennas_tx, - (frame_parms->samples_per_tti*10)-sf_offset, - sf_offset, - length_meas, - 14, - frame_parms->pdsch_config_common.referenceSignalPower, // dBm/RE - 0, - &ru_amp[ru_id], - frame_parms->N_RB_DL*12); - - tx_pwr = dac_fixed_gain(s_re, - s_im, - txdata, - sf_offset, - nb_antennas_tx, - length+sf_offset-(frame_parms->samples_per_tti*10), - sf_offset, - length_meas, - 14, - frame_parms->pdsch_config_common.referenceSignalPower, // dBm/RE - 0, - &ru_amp[ru_id], - frame_parms->N_RB_DL*12); - } -#ifdef DEBUG_SIM - LOG_D(PHY,"[SIM][DL] subframe %d: txp (time) %d dB\n", - subframe,dB_fixed(signal_energy(&txdata[0][sf_offset],length_meas))); - - LOG_D(OCM,"[SIM][DL] RU %d (CCid %d): tx_pwr %.1f dBm/RE (target %d dBm/RE), for subframe %d\n", - ru_id,CC_id, - 10*log10(tx_pwr), - frame_parms->pdsch_config_common.referenceSignalPower, - subframe); - -#endif - tx_pwr = signal_energy_fp(s_re,s_im,nb_antennas_tx, - lengthN_RB_DL); - - //RU2UE[eNB_id][UE_id]->path_loss_dB = 0; - multipath_channel(RU2UE[ru_id][UE_id][CC_id],s_re,s_im,r_re0,r_im0, - length,hold_channel); -#ifdef DEBUG_SIM - rx_pwr = signal_energy_fp2(RU2UE[ru_id][UE_id][CC_id]->ch[0], - RU2UE[ru_id][UE_id][CC_id]->channel_length)*RU2UE[ru_id][UE_id][CC_id]->channel_length; - LOG_D(OCM,"[SIM][DL] Channel RU %d => UE %d (CCid %d): Channel gain %f dB (%f)\n",ru_id,UE_id,CC_id,10*log10(rx_pwr),rx_pwr); -#endif - - -#ifdef DEBUG_SIM - - for (i=0; ichannel_length; i++) - LOG_D(OCM,"channel(%d,%d)[%d] : (%f,%f)\n",ru_id,UE_id,i,RU2UE[ru_id][UE_id][CC_id]->ch[0][i].x,RU2UE[ru_id][UE_id][CC_id]->ch[0][i].y); - -#endif - - LOG_D(OCM,"[SIM][DL] Channel RU %d => UE %d (CCid %d): tx_power %.1f dBm/RE, path_loss %1.f dB\n", - ru_id,UE_id,CC_id, - (double)frame_parms->pdsch_config_common.referenceSignalPower, - // enb_data[eNB_id]->tx_power_dBm, - RU2UE[ru_id][UE_id][CC_id]->path_loss_dB); - -#ifdef DEBUG_SIM - rx_pwr = signal_energy_fp(r_re0,r_im0,nb_antennas_rx, - lengthN_RB_DL); - LOG_D(OCM,"[SIM][DL] UE %d : rx_pwr %f dBm/RE (%f dBm RSSI,tx %f dB)for subframe %d (length %d)\n",UE_id, - 10*log10(rx_pwr), - 10*log10(rx_pwr*(double)frame_parms->N_RB_DL*12), - 10*log10(tx_pwr),subframe, - lengthsampling_rate*1e6)-174, - 10*log10(RU2UE[ru_id][UE_id][CC_id]->sampling_rate*1e6*12*frame_parms->N_RB_DL/(double)frame_parms->ofdm_symbol_size)-174, - subframe); -#endif - - if (RU2UE[ru_id][UE_id][CC_id]->first_run == 1) - RU2UE[ru_id][UE_id][CC_id]->first_run = 0; - - - // RF model -#ifdef DEBUG_SIM - LOG_D(OCM,"[SIM][DL] UE %d (CCid %d): rx_gain %d dB (-ADC %f) for subframe %d\n",UE_id,CC_id,PHY_vars_UE_g[UE_id][CC_id]->rx_total_gain_dB, - PHY_vars_UE_g[UE_id][CC_id]->rx_total_gain_dB-66.227,subframe); -#endif - - rf_rx_simple(r_re0, - r_im0, - nb_antennas_rx, - length, - 1e3/RU2UE[ru_id][UE_id][CC_id]->sampling_rate, // sampling time (ns) - (double)PHY_vars_UE_g[UE_id][CC_id]->rx_total_gain_dB - 66.227); // rx_gain (dB) (66.227 = 20*log10(pow2(11)) = gain from the adc that will be applied later) - -#ifdef DEBUG_SIM - rx_pwr = signal_energy_fp(r_re0,r_im0, - nb_antennas_rx, - lengthN_RB_DL); - LOG_D(OCM,"[SIM][DL] UE %d : ADC in (RU %d) %f dBm/RE for subframe %d\n", - UE_id,ru_id, - 10*log10(rx_pwr),subframe); -#endif - - - pthread_mutex_lock(&RU_output_mutex[UE_id]); - for (i=0; isamples_per_tti; i++) { - for (aa=0; aaN_RB_DL); - LOG_D(OCM,"[SIM][DL] UE %d : ADC in %f dBm/RE for subframe %d\n",UE_id,10*log10(rx_pwr),subframe); -#endif - - rxdata = PHY_vars_UE_g[UE_id][CC_id]->common_vars.rxdata; - sf_offset = (subframe*frame_parms->samples_per_tti)+offset; - - - adc(r_re_p, - r_im_p, - 0, - sf_offset, - rxdata, - nb_antennas_rx, - length, - 12); - -#ifdef DEBUG_SIM - rx_pwr2 = signal_energy(rxdata[0]+sf_offset,lengthN_RB_DL); - LOG_D(OCM,"[SIM][DL] UE %d : rx_pwr (ADC out) %f dB/RE (%d) for subframe %d, writing to %p, length %d\n",UE_id, 10*log10((double)rx_pwr2),rx_pwr2,subframe,rxdata,lengthN_RB_DL) ,subframe); -#else - UNUSED_VARIABLE(rx_pwr2); - UNUSED_VARIABLE(tx_pwr); - UNUSED_VARIABLE(rx_pwr); -#endif - - } // RU_output_mask - pthread_mutex_unlock(&RU_output_mutex[UE_id]); - } // ru_id - - } - -} - - -void do_UL_sig(channel_desc_t *UE2RU[NUMBER_OF_UE_MAX][NUMBER_OF_RU_MAX][MAX_NUM_CCs], - node_desc_t *enb_data[NUMBER_OF_RU_MAX],node_desc_t *ue_data[NUMBER_OF_UE_MAX], - uint16_t subframe,uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms, - uint32_t frame,int ru_id,uint8_t CC_id) -{ - - int32_t **txdata,**rxdata; - uint8_t UE_id=0; - - uint8_t nb_antennas_rx = UE2RU[0][0][CC_id]->nb_rx; // number of rx antennas at eNB - uint8_t nb_antennas_tx = UE2RU[0][0][CC_id]->nb_tx; // number of tx antennas at UE - - double tx_pwr, rx_pwr; - int32_t rx_pwr2; - uint32_t i,aa; - uint32_t sf_offset; - - uint8_t hold_channel=0; - - double s_re0[30720]; - double s_re1[30720]; - double *s_re[2]; - double s_im0[30720]; - double s_im1[30720]; - double *s_im[2]; - double r_re00[30720]; - double r_re01[30720]; - double *r_re0[2]; - double r_im00[30720]; - double r_im01[30720]; - double *r_im0[2]; - - s_re[0] = s_re0; - s_im[0] = s_im0; - s_re[1] = s_re1; - s_im[1] = s_im1; - - r_re0[0] = r_re00; - r_im0[0] = r_im00; - r_re0[1] = r_re01; - r_im0[1] = r_im01; - - if (abstraction_flag!=0) { - } else { //without abstraction - - pthread_mutex_lock(&UE_output_mutex[ru_id]); - // Clear RX signal for eNB = eNB_id - for (i=0; isamples_per_tti; i++) { - for (aa=0; aacommon_vars.txdata; - AssertFatal(txdata != NULL,"txdata is null\n"); - sf_offset = subframe*frame_parms->samples_per_tti; - if (((double)PHY_vars_UE_g[UE_id][CC_id]->tx_power_dBm[subframe] + - 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", - 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); - } else { - tx_pwr = dac_fixed_gain((double**)s_re, - (double**)s_im, - txdata, - sf_offset, - nb_antennas_tx, - frame_parms->samples_per_tti, - sf_offset, - 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", - 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); - - - multipath_channel(UE2RU[UE_id][ru_id][CC_id],s_re,s_im,r_re0,r_im0, - frame_parms->samples_per_tti,hold_channel); - - - rx_pwr = signal_energy_fp2(UE2RU[UE_id][ru_id][CC_id]->ch[0], - UE2RU[UE_id][ru_id][CC_id]->channel_length)*UE2RU[UE_id][ru_id][CC_id]->channel_length; - - LOG_D(OCM,"[SIM][UL] subframe %d Channel UE %d => RU %d : %f dB (hold %d,length %d, PL %f)\n",subframe,UE_id,ru_id,10*log10(rx_pwr), - hold_channel,UE2RU[UE_id][ru_id][CC_id]->channel_length, - UE2RU[UE_id][ru_id][CC_id]->path_loss_dB); - - rx_pwr = signal_energy_fp(r_re0,r_im0,nb_antennas_rx,frame_parms->samples_per_tti,0); - LOG_D(OCM,"[SIM][UL] RU %d (%d/%d rx antennas) : rx_pwr %f dBm (tx_pwr - PL %f) for subframe %d, sptti %d\n", - ru_id,nb_antennas_rx,UE2RU[UE_id][ru_id][CC_id]->nb_rx,10*log10(rx_pwr),10*log10(tx_pwr*PHY_vars_UE_g[UE_id][CC_id]->tx_total_RE[subframe])+UE2RU[UE_id][ru_id][CC_id]->path_loss_dB,subframe,frame_parms->samples_per_tti); - /* - if (abs(10*log10(rx_pwr)-10*log10(tx_pwr*PHY_vars_UE_g[UE_id][CC_id]->tx_total_RE[subframe])-UE2RU[UE_id][ru_id][CC_id]->path_loss_dB)>3) { - write_output("txsig_re.m","s_re",s_re[0],frame_parms->samples_per_tti,1,7); - write_output("txsig_im.m","s_im",s_im[0],frame_parms->samples_per_tti,1,7); - write_output("rxsig_re.m","r_re",r_re0[0],frame_parms->samples_per_tti,1,7); - write_output("rxsig_im.m","r_im",r_im0[0],frame_parms->samples_per_tti,1,7); - exit(-1); - }*/ - - if (UE2RU[UE_id][ru_id][CC_id]->first_run == 1) - UE2RU[UE_id][ru_id][CC_id]->first_run = 0; - - - pthread_mutex_lock(&UE_output_mutex[ru_id]); - for (aa=0; aasamples_per_tti; i++) { - r_re_UL[ru_id][aa][i]+=r_re0[aa][i]; - r_im_UL[ru_id][aa][i]+=r_im0[aa][i]; - } - } - pthread_mutex_unlock(&UE_output_mutex[ru_id]); - } - } //UE_id - - double *r_re_p[2] = {r_re_UL[ru_id][0],r_re_UL[ru_id][1]}; - double *r_im_p[2] = {r_im_UL[ru_id][0],r_im_UL[ru_id][1]}; - - rx_pwr = signal_energy_fp(r_re_p,r_im_p,nb_antennas_rx,frame_parms->samples_per_tti,0); - LOG_D(OCM,"[SIM][UL] RU %d (%d/%d rx antennas) : rx_pwr %f dBm (before RF) for subframe %d, gain %f\n", - ru_id,nb_antennas_rx,nb_antennas_rx,10*log10(rx_pwr),subframe, - (double)RC.ru[ru_id]->max_rxgain-(double)RC.ru[ru_id]->att_rx - 66.227); - rf_rx_simple(r_re_p, - r_im_p, - nb_antennas_rx, - frame_parms->samples_per_tti, - 1e3/UE2RU[0][ru_id][CC_id]->sampling_rate, // sampling time (ns) - (double)RC.ru[ru_id]->max_rxgain-(double)RC.ru[ru_id]->att_rx - 66.227); // rx_gain (dB) (66.227 = 20*log10(pow2(11)) = gain from the adc that will be applied later) - - //#ifdef DEBUG_SIM - rx_pwr = signal_energy_fp(r_re_p,r_im_p,nb_antennas_rx,frame_parms->samples_per_tti,0);//*(double)frame_parms->ofdm_symbol_size/(12.0*frame_parms->N_RB_DL; - LOG_D(OCM,"[SIM][UL] rx_pwr (ADC in) %f dB for subframe %d (rx_gain %f)\n",10*log10(rx_pwr),subframe, - (double)RC.ru[ru_id]->max_rxgain-(double)RC.ru[ru_id]->att_rx); - //#endif - - rxdata = RC.ru[ru_id]->common.rxdata; - sf_offset = subframe*frame_parms->samples_per_tti; - - - adc(r_re_p, - r_im_p, - 0, - sf_offset, - 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); -#else - UNUSED_VARIABLE(tx_pwr); - UNUSED_VARIABLE(rx_pwr); - UNUSED_VARIABLE(rx_pwr2); -#endif - - } // abstraction_flag==0 - -} - - -void init_channel_vars(LTE_DL_FRAME_PARMS *frame_parms, double ***s_re,double ***s_im,double ***r_re,double ***r_im,double ***r_re0,double ***r_im0) -{ - - int i; - - memset(RU_output_mask,0,sizeof(int)*NUMBER_OF_UE_MAX); - for (i=0;i -#include -// #include "UTIL/LOG/log.h" -#include "event_handler.h" - -//extern frame_t frame; -//End_Of_Sim_Event end_event; //Could later be a list of condition_events (if the end condition is more complicated) - -Event_List_t event_list; - -void add_event(Event_t event) -{ - - Event_elt_t * counter = event_list.head; - Event_elt_t * previous = counter; - Event_elt_t * elt = malloc(sizeof(Event_elt_t)); - - while (counter != NULL) { - if ((counter->event).frame > event.frame) break; - //else if ((counter->event).next_slot > event.next_slot) break; - else { - previous = counter; - counter = counter->next; - } - } - - elt->event = event; - - //printf("%" PRIu8 "testestest \n", *((uint8_t *) event.value)); - if (event_list.head != NULL) - event_list_add_element(elt, previous, &event_list); - else - event_list_add_head(elt, &event_list); - -} - -void schedule(Operation_Type_t op, Event_Type_t type, int frame, char * key, void * value, int ue, int lcid) -{ - Event_t event; - event.frame = frame; - - if (key == NULL) { //Global model update - event.key = NULL; - } else { //Update of a single parameter - event.key = malloc (sizeof(char) * (strlen(key)+1)); - strcpy(event.key, key); - } - - event.value = value; - //printf("%" PRIu8 "testestest \n",*((uint8_t *)value)); - event.type = type; - event.optype = op; - event.lcid = lcid; - event.ue = ue; - add_event(event); -} - -void schedule_delayed(Operation_Type_t op, Event_Type_t type, char * key, void* value, char * date, int ue, int lcid) -{ - printf("Delayed schedule"); - printf("date %s\n", date); - // first get the time from the system - struct tm *pdh; - time_t intps; - intps=time(NULL); - pdh = localtime(&intps); - char *date_cpy = malloc (sizeof (char) * 256); - strncpy( date_cpy, date, 256 ); - date_cpy[255] = 0; // terminate string - // second count the frame to reach the time - char *heure = NULL; - int heure_int; - int minute_int; - int heure_diff; - int minute_diff; - int ms_diff; - int frame; - - - char *minute = NULL; - heure = strtok(date_cpy,"h"); - //heure = strchr(date,'h'); - printf("hour char : %s", heure); - - minute = strchr(date,'h'); - printf("minute char : %s", minute+1); - - free( date_cpy ); - date_cpy = 0; - - heure_int = atoi(heure); - - minute_int = atoi(minute+1); - heure_diff = heure_int - pdh->tm_hour; - minute_diff = minute_int - pdh->tm_min; - ms_diff = heure_diff*3600*1000 + minute_diff*60*1000; - frame = ms_diff/10; - - /*char stTemp[2]; - int valeur_a_en_entier; - - sprintf(stTemp,"%c",a); - valeur_a_en_entier = atoi(stTemp);*/ - // third schedule with the classic function - printf("schedule_frame %d\n",frame); - printf("test pdh hr : %d\n", pdh->tm_hour); - printf("test heure_diff : %d\n", heure_diff); - printf("test minute_diff : %d\n", minute_diff); - - if(frame >= 0) { - schedule(op,type,frame,key,value,lcid,ue); - } -} - -/* - * this function can reschedule events in the future to build a desired (more dynamic) scenario - * TODO: make sure that OCG OAI_Emulation is decoupled with the local vars - * - * For ET_MAC parameters are first set in the OAI_emulation (OCG) structure and then - * duplicated in the eNB_mac_inst structure - * - * If you want to modifiy a parameter for all UEs, put -1 in the lcid and the ue field when you call - * the schedule function - */ -void schedule_events() -{ - - /* - * Step 1: vars needed for future changes - */ - - // overall config associated with OAI_ET - // OAI_Emulation * oai_frame_1000; - - // specific config - /* - * associated with SYS_ET - */ - //Environment_System_Config * system_frame_200; - /* - * associated with TOPO_ET - */ - //Topology_Config *topology_frame_10; - /* - * associated with APP_ET - */ - //Application_Config *application_frame_20; - /* - * associated with EMU_ET - */ - //Emulation_Config * emulation_frame_100; - uint8_t a; - - Mac_config* mac_config; - Mac_config* mac_config2; - Mac_config* mac_config3; - Mac_config* mac_config4; - Mac_config* mac_config5; - int i=0; - - mac_config = NULL; - mac_config2 = NULL; - mac_config3 = NULL; - mac_config4 = NULL; - mac_config5 = NULL; - mac_config = malloc(sizeof(Mac_config)); - mac_config2= malloc(sizeof(Mac_config)); - mac_config3= malloc(sizeof(Mac_config)); - mac_config4= malloc(sizeof(Mac_config)); - mac_config5= malloc(sizeof(Mac_config)); - - a = 5; - - //uint16_t *priority[11];//={1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2}; - - - //int tab[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; - Application_Config* application_config; - application_config = malloc(sizeof(Application_Config)); - - for(i=0; icustomized_traffic.aggregation_level[i]=i; - } - - mac_config->DCI_aggregation_min = a; - mac_config->DLSCH_dci_size_bits = a; - - /* - * Step 2: set the desired future changes in the vars - */ - // i.e. optionally provide an XML file and update OCG vars - - //mob_frame_10 -> ... - //application_frame_30 -> ... - - /* - * Step 3: schedule the execution of changes - */ - - // general OAI dynamic configuration - - //schedule(OAI_ET, 1000, NULL, oai_frame_1000); - //schedule(SYS_ET, 200, NULL, system_frame_200); - //schedule(READ, TOPO_ET, 10, NULL, ""); - //schedule(APP_ET, 20, NULL, application_frame_20); - //schedule(EMU_ET, 100, NULL,emulation_frame_100); - - // protocol dynamic configuration - schedule(READ, MAC_ET, 115, NULL, "",0,0); - //schedule(READ, MAC_ET, 400, NULL, ""); - //schedule(READ, MAC_ET, 500, NULL, ""); - //schedule(WRITE, MAC_ET, 100, NULL, ""); - //schedule(READ, TOPO_ET,110,NULL,"",0,0); - //double b = (double) 45; - //schedule(READ, APP_ET,111,NULL,"",0,0); - //schedule(READ, SYS_ET,112,NULL,"",0,0); - //schedule(READ, EMU_ET,113,NULL,"",-1,-1); - - //schedule(WRITE, MAC_ET, 122, "DCI_aggregation_min", mac_config); - //schedule(WRITE, MAC_ET, 123, "max_allowed_rbs", mac_config); - //schedule(WRITE, MAC_ET, 125, "max_mcs", mac_config); - int j=0; - - for(i=0; ievent; - - if (event.frame == frame) { - //printf("%" PRIu8 "testestest \n", *((uint8_t *) event.value)); - switch (event.type) { - case OAI_ET: - update_oai_model(event.key, event.value); - user_defined_event = event_list_remove_head(&event_list); - break; - - case SYS_ET: - update_sys_model(event); - user_defined_event = event_list_remove_head(&event_list); - break; - - case TOPO_ET: - update_topo_model(event); //implement it with assigning the new values to that of oai_emulation & second thing is to ensure mob model is always read from oai_emulation - user_defined_event = event_list_remove_head(&event_list); - break; - - case APP_ET: - update_app_model(event); - user_defined_event = event_list_remove_head(&event_list); - break; - - case EMU_ET: - update_emu_model(event); - user_defined_event = event_list_remove_head(&event_list); - break; - - case MAC_ET: - update_mac(event); - user_defined_event = event_list_remove_head(&event_list); - break; - - default : - break; - } - } else { - break; - } - } - -} - - -void update_mac(Event_t event) -{ - LOG_I(EMU,"A NEW MAC MODEL\n"); - int i = 0; - UE_list_t *UE_list = 0; - int enb_module_id=0; - int cc_id =0; - eNB_MAC_INST *eNB_mac_inst = get_eNB_mac_inst(enb_module_id); - OAI_Emulation *oai_emulation = get_OAI_emulation(); - - if(event.optype == READ) { - - printf("eNB_stats\n\n\n"); - - if(event.key==NULL) { - - LOG_I(EMU,"num_dlactive_UEs :"); - printf("%" PRIu16 "\n",eNB_mac_inst->eNB_stats[cc_id].num_dlactive_UEs); - LOG_I(EMU,"available_prbs :"); - printf("%" PRIu16 "\n",eNB_mac_inst->eNB_stats[cc_id].available_prbs); - LOG_I(EMU,"total_available_prbs :"); - printf("%" PRIu32 "\n", eNB_mac_inst->eNB_stats[cc_id].total_available_prbs); - LOG_I(EMU,"available_ncces :"); - printf("%" PRIu16 "\n",eNB_mac_inst->eNB_stats[cc_id].available_ncces); - LOG_I(EMU,"dlsch_bitrate :"); - printf("%" PRIu32 "\n",eNB_mac_inst->eNB_stats[cc_id].dlsch_bitrate); - LOG_I(EMU,"dlsch_bytes_tx :"); - printf("%" PRIu32 "\n",eNB_mac_inst->eNB_stats[cc_id].dlsch_bytes_tx); - LOG_I(EMU,"dlsch_pdus_tx :"); - printf("%" PRIu32 "\n",eNB_mac_inst->eNB_stats[cc_id].dlsch_pdus_tx); - LOG_I(EMU,"total_dlsch_bitrate :"); - printf("%" PRIu32 "\n",eNB_mac_inst->eNB_stats[cc_id].total_dlsch_bitrate); - LOG_I(EMU,"total_dlsch_bytes_tx :"); - printf("%" PRIu32 "\n",eNB_mac_inst->eNB_stats[cc_id].total_dlsch_bytes_tx); - LOG_I(EMU,"total_dlsch_pdus_tx :"); - printf("%" PRIu32 "\n",eNB_mac_inst->eNB_stats[cc_id].total_dlsch_pdus_tx); - LOG_I(EMU,"ulsch_bitrate :"); - printf("%" PRIu32 "\n",eNB_mac_inst->eNB_stats[cc_id].ulsch_bitrate); - LOG_I(EMU,"ulsch_bytes_rx :"); - printf("%" PRIu32 "\n",eNB_mac_inst->eNB_stats[cc_id].ulsch_bytes_rx); - LOG_I(EMU,"ulsch_pdus_rx :"); - printf("%" PRIu64 "\n",eNB_mac_inst->eNB_stats[cc_id].ulsch_pdus_rx); - } else if(!strcmp((char *) event.key, "num_dlactive_UEs")) { - LOG_I(EMU,"num_dlactive_UEs :"); - printf("%" PRIu16 "\n",eNB_mac_inst->eNB_stats[cc_id].num_dlactive_UEs); - } else if(!strcmp((char *) event.key, "available_prbs")) { - LOG_I(EMU,"available_prbs :"); - printf("%" PRIu16 "\n",eNB_mac_inst->eNB_stats[cc_id].available_prbs); - } else if(!strcmp((char *) event.key, "total_available_prbs")) { - LOG_I(EMU,"total_available_prbs :"); - printf("%" PRIu32 "\n", eNB_mac_inst->eNB_stats[cc_id].total_available_prbs); - } else if(!strcmp((char *) event.key, "available_ncces")) { - LOG_I(EMU,"available_ncces :"); - printf("%" PRIu16 "\n",eNB_mac_inst->eNB_stats[cc_id].available_ncces); - } else if(!strcmp((char *) event.key, "dlsch_bitrate")) { - LOG_I(EMU,"dlsch_bitrate :"); - printf("%" PRIu32 "\n",eNB_mac_inst->eNB_stats[cc_id].dlsch_bitrate); - } else if(!strcmp((char *) event.key, "dlsch_bytes_tx")) { - LOG_I(EMU,"dlsch_bytes_tx :"); - printf("%" PRIu32 "\n",eNB_mac_inst->eNB_stats[cc_id].dlsch_bytes_tx); - } else if(!strcmp((char *) event.key, "dlsch_pdus_tx")) { - LOG_I(EMU,"dlsch_pdus_tx :"); - printf("%" PRIu32 "\n",eNB_mac_inst->eNB_stats[cc_id].dlsch_pdus_tx); - } else if(!strcmp((char *) event.key, "total_dlsch_bitrate")) { - LOG_I(EMU,"total_dlsch_bitrate :"); - printf("%" PRIu32 "\n",eNB_mac_inst->eNB_stats[cc_id].total_dlsch_bitrate); - } else if(!strcmp((char *) event.key, "total_dlsch_bytes_tx")) { - LOG_I(EMU,"total_dlsch_bytes_tx :"); - printf("%" PRIu32 "\n",eNB_mac_inst->eNB_stats[cc_id].total_dlsch_bytes_tx); - } else if(!strcmp((char *) event.key, "total_dlsch_pdus_tx")) { - LOG_I(EMU,"total_dlsch_pdus_tx :"); - printf("%" PRIu32 "\n",eNB_mac_inst->eNB_stats[cc_id].total_dlsch_pdus_tx); - } else if(!strcmp((char *) event.key, "ulsch_bitrate")) { - LOG_I(EMU,"ulsch_bitrate :"); - printf("%" PRIu32 "\n",eNB_mac_inst->eNB_stats[cc_id].ulsch_bitrate); - } else if(!strcmp((char *) event.key, "ulsch_bytes_rx")) { - LOG_I(EMU,"ulsch_bytes_rx :"); - printf("%" PRIu32 "\n",eNB_mac_inst->eNB_stats[cc_id].ulsch_bytes_rx); - } else if(!strcmp((char *) event.key, "ulsch_pdus_rx")) { - LOG_I(EMU,"ulsch_pdus_rx :"); - printf("%" PRIu64 "\n",eNB_mac_inst->eNB_stats[cc_id].ulsch_pdus_rx); - } - } else if(event.optype == WRITE) { - LOG_I(EMU,"WRITE OPERATION \n"); - - - if(event.key==NULL && event.value!=NULL) { - - if((Mac_config *) event.value !=NULL && validate_mac(event)) { - - Mac_config* mac_config; - mac_config = (Mac_config *) event.value; - LOG_I(EMU,"update complete mac params \n"); - - if(event.ue == -1 && event.lcid == -1) { - UE_list = &eNB_mac_inst->UE_list; - - for(i=UE_list->head; i>=0; i=UE_list->next[i]) { - /* - if(&mac_config[i].DCI_aggregation_min) { - LOG_I(EMU,"update dci aggregation min\n"); - oai_emulation->mac_config[i].DCI_aggregation_min= mac_config[i].DCI_aggregation_min; - - UE_list->UE_template[0][i].DCI_aggregation_min = oai_emulation->mac_config[i].DCI_aggregation_min; - LOG_I(EMU,"DCI_aggregation_min UE %d: \n",i); - LOG_I(EMU,"%" PRIu8,UE_list->UE_template[0][i].DCI_aggregation_min); - } - - if(&mac_config[i].DLSCH_dci_size_bits !=NULL) { - oai_emulation->mac_config[i].DLSCH_dci_size_bits= mac_config[i].DLSCH_dci_size_bits; - UE_list->UE_template[0][i].DLSCH_dci_size_bits = oai_emulation->mac_config[i].DLSCH_dci_size_bits; - LOG_I(EMU,"DLSCH_dci_size_bits UE %d: \n",i); - LOG_I(EMU,"%" PRIu8,UE_list->UE_template[0][i].DLSCH_dci_size_bits); - } - */ - - if(mac_config[i].priority !=NULL) { - LOG_I(EMU,"update priority \n"); - int j; - for(j=0; jmac_config[i].priority[j]= mac_config[i].priority[j]; - UE_list->UE_sched_ctrl[i].priority[j] = oai_emulation->mac_config[i].priority[j]; - LOG_I(EMU,"priority UE %d LCID %d:",i,j); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[i].priority[j]); - } - } - } - - if(&mac_config[i].ul_bandwidth !=NULL) { - - int j=0; - - for(j=0; jmac_config[i].ul_bandwidth[j]= mac_config[i].ul_bandwidth[j]; - UE_list->UE_sched_ctrl[i].ul_bandwidth[j] = oai_emulation->mac_config[i].ul_bandwidth[j]; - LOG_I(EMU,"ul_bandwidth UE %d LCID %d:", i, j); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[i].ul_bandwidth[j]); - } - } - - if(&mac_config[i].dl_bandwidth !=NULL) { - int j=0; - - for(j=0; jmac_config[i].dl_bandwidth[j]= mac_config[i].dl_bandwidth[j]; - UE_list->UE_sched_ctrl[i].dl_bandwidth[j] = oai_emulation->mac_config[i].dl_bandwidth[j]; - LOG_I(EMU,"ul_bandwidth UE %d LCID %d:", i, j); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[i].dl_bandwidth[j]); - } - } - - if(&mac_config[i].ue_AggregatedMaximumBitrateDL !=NULL) { - oai_emulation->mac_config[i].ue_AggregatedMaximumBitrateDL= mac_config[i].ue_AggregatedMaximumBitrateDL; - UE_list->UE_sched_ctrl[i].ue_AggregatedMaximumBitrateDL = oai_emulation->mac_config[i].ue_AggregatedMaximumBitrateDL; - LOG_I(EMU,"ue_AggregatedMaximumBitrateDL UE %d:",i ); - LOG_I(EMU,"%" PRIu64 "\n",UE_list->UE_sched_ctrl[i].ue_AggregatedMaximumBitrateDL); - } - - if(&mac_config[i].ue_AggregatedMaximumBitrateUL !=NULL) { - oai_emulation->mac_config[i].ue_AggregatedMaximumBitrateUL= mac_config[i].ue_AggregatedMaximumBitrateUL; - UE_list->UE_sched_ctrl[i].ue_AggregatedMaximumBitrateUL = oai_emulation->mac_config[i].ue_AggregatedMaximumBitrateUL; - LOG_I(EMU,"ue_AggregatedMaximumBitrateUL UE %d:",i); - LOG_I(EMU,"%" PRIu64 "\n",UE_list->UE_sched_ctrl[i].ue_AggregatedMaximumBitrateUL); - } - - if(&mac_config[i].cqiSchedInterval !=NULL) { - oai_emulation->mac_config[i].cqiSchedInterval= mac_config[i].cqiSchedInterval; - UE_list->UE_sched_ctrl[i].cqiSchedInterval = oai_emulation->mac_config[i].cqiSchedInterval; - LOG_I(EMU,"cqiSchedInterval UE %d:",i); - LOG_I(EMU,"%" PRIu16 "\n",UE_list->UE_sched_ctrl[i].cqiSchedInterval); - } - - if(&mac_config[i].mac_ContentionResolutionTimer !=NULL) { - oai_emulation->mac_config[i].mac_ContentionResolutionTimer= mac_config[i].mac_ContentionResolutionTimer; - UE_list->UE_sched_ctrl[i].mac_ContentionResolutionTimer = oai_emulation->mac_config[i].mac_ContentionResolutionTimer; - LOG_I(EMU,"mac_ContentionResolutionTimer UE %d:", i); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[i].mac_ContentionResolutionTimer); - } - - if(mac_config->max_allowed_rbs !=NULL) { - int j=0; - - for(j=0; jmac_config[i].max_allowed_rbs[j]= mac_config[i].max_allowed_rbs[j]; - UE_list->UE_sched_ctrl[i].max_rbs_allowed_slice[j][0] = oai_emulation->mac_config[i].max_allowed_rbs[j]; - LOG_I(EMU,"max_allowed_rbs UE %d LCID %d:",i,j); - LOG_I(EMU,"%" PRIu16 "\n",UE_list->UE_sched_ctrl[i].max_rbs_allowed_slice[j][0]); - } - } - - if(mac_config[i].max_mcs !=NULL) { - int j=0; - - for(j=0; jmac_config[i].max_mcs[j]= mac_config[i].max_mcs[j]; - UE_list->UE_sched_ctrl[i].max_mcs[j] = oai_emulation->mac_config[i].max_mcs[j]; - LOG_I(EMU,"max_mcs UE %d LCID %d:",i,j); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[i].max_mcs[j]); - } - - } - } - } else { - Mac_config* mac_config;// = malloc(sizeof(Mac_config)*16); - mac_config = (Mac_config *) event.value; - LOG_I(EMU,"update complete mac params \n"); - i = event.ue; - int j = event.lcid; - /* - if(&mac_config[i].DCI_aggregation_min) { - LOG_I(EMU,"update dci aggregation min\n"); - oai_emulation->mac_config[i].DCI_aggregation_min= mac_config[i].DCI_aggregation_min; - // duplication dans le ue template, vérifier la validité avant - UE_list->UE_template[0][i].DCI_aggregation_min = oai_emulation->mac_config[i].DCI_aggregation_min; - LOG_I(EMU,"DCI_aggregation_min UE %d: \n",i); - LOG_I(EMU,"%" PRIu8,UE_list->UE_template[0][i].DCI_aggregation_min); - } - - if(&mac_config[i].DLSCH_dci_size_bits !=NULL) { - oai_emulation->mac_config[i].DLSCH_dci_size_bits= mac_config[i].DLSCH_dci_size_bits; - UE_list->UE_template[0][i].DLSCH_dci_size_bits = oai_emulation->mac_config[i].DLSCH_dci_size_bits; - LOG_I(EMU,"DLSCH_dci_size_bits UE %d: \n",i); - LOG_I(EMU,"%" PRIu8,UE_list->UE_template[0][i].DLSCH_dci_size_bits); - } - */ - if(mac_config[i].priority !=NULL) { - LOG_I(EMU,"update priority \n"); - - - if(&mac_config[i].priority[j]!=NULL) { - oai_emulation->mac_config[i].priority[j]= mac_config[i].priority[j]; - UE_list->UE_sched_ctrl[i].priority[j] = oai_emulation->mac_config[i].priority[j]; - LOG_I(EMU,"priority UE %d LCID %d:",i,j); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[i].priority[j]); - } - - } - - if(&mac_config[i].ul_bandwidth !=NULL) { - // faire boucle par ue puis par lcid - - - - oai_emulation->mac_config[i].ul_bandwidth[j]= mac_config[i].ul_bandwidth[j]; - UE_list->UE_sched_ctrl[i].ul_bandwidth[j] = oai_emulation->mac_config[i].ul_bandwidth[j]; - LOG_I(EMU,"ul_bandwidth UE %d LCID %d:", i, j); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[i].ul_bandwidth[j]); - - } - - if(&mac_config[i].dl_bandwidth !=NULL) { - oai_emulation->mac_config[i].dl_bandwidth[j]= mac_config[i].dl_bandwidth[j]; - UE_list->UE_sched_ctrl[i].dl_bandwidth[j] = oai_emulation->mac_config[i].dl_bandwidth[j]; - LOG_I(EMU,"ul_bandwidth UE %d LCID %d:", i, j); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[i].dl_bandwidth[j]); - - } - - if(&mac_config[i].min_ul_bandwidth !=NULL) { - // faire boucle par ue puis par lcid - oai_emulation->mac_config[i].min_ul_bandwidth[j]= mac_config[i].min_ul_bandwidth[j]; - UE_list->UE_sched_ctrl[i].min_ul_bandwidth[j] = oai_emulation->mac_config[i].min_ul_bandwidth[j]; - LOG_I(EMU,"min_ul_bandwidth UE %d LCID %d:", i, j); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[i].min_ul_bandwidth[j]); - - } - - if(&mac_config[i].min_dl_bandwidth !=NULL) { - oai_emulation->mac_config[i].min_dl_bandwidth[j]= mac_config[i].min_dl_bandwidth[j]; - UE_list->UE_sched_ctrl[i].min_dl_bandwidth[j] = oai_emulation->mac_config[i].min_dl_bandwidth[j]; - LOG_I(EMU,"min_dl_bandwidth UE %d LCID %d:", i, j); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[i].min_dl_bandwidth[j]); - - } - - if(&mac_config[i].ue_AggregatedMaximumBitrateDL !=NULL) { - oai_emulation->mac_config[i].ue_AggregatedMaximumBitrateDL= mac_config[i].ue_AggregatedMaximumBitrateDL; - UE_list->UE_sched_ctrl[i].ue_AggregatedMaximumBitrateDL = oai_emulation->mac_config[i].ue_AggregatedMaximumBitrateDL; - LOG_I(EMU,"ue_AggregatedMaximumBitrateDL UE %d:",i ); - LOG_I(EMU,"%" PRIu64 "\n",UE_list->UE_sched_ctrl[i].ue_AggregatedMaximumBitrateDL); - } - - if(&mac_config[i].ue_AggregatedMaximumBitrateUL !=NULL) { - oai_emulation->mac_config[i].ue_AggregatedMaximumBitrateUL= mac_config[i].ue_AggregatedMaximumBitrateUL; - UE_list->UE_sched_ctrl[i].ue_AggregatedMaximumBitrateUL = oai_emulation->mac_config[i].ue_AggregatedMaximumBitrateUL; - LOG_I(EMU,"ue_AggregatedMaximumBitrateUL UE %d:",i); - LOG_I(EMU,"%" PRIu64 "\n",UE_list->UE_sched_ctrl[i].ue_AggregatedMaximumBitrateUL); - } - - if(&mac_config[i].cqiSchedInterval !=NULL) { - oai_emulation->mac_config[i].cqiSchedInterval= mac_config[i].cqiSchedInterval; - UE_list->UE_sched_ctrl[i].cqiSchedInterval = oai_emulation->mac_config[i].cqiSchedInterval; - LOG_I(EMU,"cqiSchedInterval UE %d:",i); - LOG_I(EMU,"%" PRIu16 "\n",UE_list->UE_sched_ctrl[i].cqiSchedInterval); - } - - if(&mac_config[i].mac_ContentionResolutionTimer !=NULL) { - oai_emulation->mac_config[i].mac_ContentionResolutionTimer= mac_config[i].mac_ContentionResolutionTimer; - UE_list->UE_sched_ctrl[i].mac_ContentionResolutionTimer = oai_emulation->mac_config[i].mac_ContentionResolutionTimer; - LOG_I(EMU,"mac_ContentionResolutionTimer UE %d:", i); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[i].mac_ContentionResolutionTimer); - } - - if(mac_config->max_allowed_rbs !=NULL) { - - oai_emulation->mac_config[i].max_allowed_rbs[j]= mac_config[i].max_allowed_rbs[j]; - UE_list->UE_sched_ctrl[i].max_rbs_allowed_slice[j][0] = oai_emulation->mac_config[i].max_allowed_rbs[j]; - LOG_I(EMU,"max_allowed_rbs UE %d LCID %d:",i,j); - LOG_I(EMU,"%" PRIu16 "\n",UE_list->UE_sched_ctrl[i].max_rbs_allowed_slice[j][0]); - - } - - if(mac_config[i].max_mcs !=NULL) { - oai_emulation->mac_config[i].max_mcs[j]= mac_config[i].max_mcs[j]; - UE_list->UE_sched_ctrl[i].max_mcs[j] = oai_emulation->mac_config[i].max_mcs[j]; - LOG_I(EMU,"max_mcs UE %d LCID %d:",i,j); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[i].max_mcs[j]); - - } - } - } - } else if(!strcmp((char *) event.key, "priority") && event.value!=NULL && validate_mac(event)) { - Mac_config* mac_config;// = malloc(sizeof(Mac_config)*16); - mac_config = (Mac_config *) event.value; - int j=0; - LOG_I(EMU,"priority update \n"); - if(event.ue == -1) { - for(i=0; imac_config[i].priority[j]= mac_config[i].priority[j]; - UE_list->UE_sched_ctrl[i].priority[j] = oai_emulation->mac_config[i].priority[j]; - LOG_I(EMU,"priority UE %d LCID %d:",i,j); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[i].priority[j]); - } - } - } - } else { - oai_emulation->mac_config[event.ue].priority[event.lcid]= mac_config[event.ue].priority[event.lcid]; - UE_list->UE_sched_ctrl[event.ue].priority[event.lcid] = oai_emulation->mac_config[event.ue].priority[event.lcid]; - LOG_I(EMU,"priority UE %d LCID %d:",i,j); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[event.ue].priority[event.lcid]); - } - } else if(!strcmp((char *) event.key, "DCI_aggregation_min") && event.value!=NULL && validate_mac(event)) { - //Mac_config* mac_config;// = malloc(sizeof(Mac_config)*16); - //mac_config = (Mac_config *) event.value; - - LOG_I(EMU,"DCI_aggregation_min update \n"); - - if(event.ue == -1) { - UE_list = &eNB_mac_inst->UE_list; - /* - for(i=UE_list->head; i>=0; i=UE_list->next[i]) { - oai_emulation->mac_config[i].DCI_aggregation_min=mac_config[i].DCI_aggregation_min; - UE_list->UE_template[0][i].DCI_aggregation_min = oai_emulation->mac_config[i].DCI_aggregation_min; - LOG_I(EMU,"DCI_aggregation_min UE %d : \n", i); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_template[0][i].DCI_aggregation_min); - }*/ - } else { - /* oai_emulation->mac_config[event.ue].DCI_aggregation_min=mac_config[event.ue].DCI_aggregation_min; - UE_list->UE_template[0][event.ue].DCI_aggregation_min = oai_emulation->mac_config[event.ue].DCI_aggregation_min; - LOG_I(EMU,"DCI_aggregation_min UE %d : \n", event.ue); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_template[0][event.ue].DCI_aggregation_min);*/ - } - } else if(!strcmp((char *) event.key, "DLSCH_dci_size_bits") && event.value!=NULL && validate_mac(event)) { - //Mac_config* mac_config;// = malloc(sizeof(Mac_config)*16); - //mac_config = (Mac_config *) event.value; - - - LOG_I(EMU,"DLSCH_dci_size_bits update \n"); - - if(event.ue == -1) { - UE_list = &eNB_mac_inst->UE_list; - /* - for(i=UE_list->head; i>=0; i=UE_list->next[i]) { - oai_emulation->mac_config[i].DLSCH_dci_size_bits=mac_config[i].DLSCH_dci_size_bits; - UE_list->UE_template[0][i].DLSCH_dci_size_bits = oai_emulation->mac_config[i].DLSCH_dci_size_bits; - LOG_I(EMU,"DLSCH_dci_size_bits UE %d: \n", i); - LOG_I(EMU,"%" PRIu8,UE_list->UE_template[0][i].DLSCH_dci_size_bits); - }*/ - } else { - /* oai_emulation->mac_config[event.ue].DLSCH_dci_size_bits=mac_config[event.ue].DLSCH_dci_size_bits; - UE_list->UE_template[0][event.ue].DLSCH_dci_size_bits = oai_emulation->mac_config[event.ue].DLSCH_dci_size_bits; - LOG_I(EMU,"DLSCH_dci_size_bits UE %d: \n", event.ue); - LOG_I(EMU,"%" PRIu8,UE_list->UE_template[0][event.ue].DLSCH_dci_size_bits);*/ - } - - } else if(!strcmp((char *) event.key, "ul_bandwidth") && event.value!=NULL) { - - - Mac_config* mac_config;// = malloc(sizeof(Mac_config)*16); - mac_config = (Mac_config *) event.value; - int j=0; - - if(event.ue == -1 && event.lcid == -1) { - UE_list = &eNB_mac_inst->UE_list; - - for(i=UE_list->head; i>=0; i=UE_list->next[i]) { - - - for(j=0; jmac_config[i].ul_bandwidth[j]= mac_config[i].ul_bandwidth[j]; - UE_list->UE_sched_ctrl[i].ul_bandwidth[j] = oai_emulation->mac_config[i].ul_bandwidth[j]; - LOG_I(EMU,"ul_bandwidth UE %d LCID %d:",i,j); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[i].ul_bandwidth[j]); - } - } - - } - } else { - oai_emulation->mac_config[event.ue].ul_bandwidth[event.lcid]= mac_config[event.ue].ul_bandwidth[event.lcid]; - UE_list->UE_sched_ctrl[event.ue].ul_bandwidth[event.lcid] = oai_emulation->mac_config[event.ue].ul_bandwidth[event.lcid]; - LOG_I(EMU,"ul_bandwidth UE %d LCID %d:",event.ue, event.lcid); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[event.ue].ul_bandwidth[event.lcid]); - } - - } else if(!strcmp((char *) event.key, "dl_bandwidth") && event.value!=NULL && validate_mac(event)) { - - Mac_config* mac_config;// = malloc(sizeof(Mac_config)*16); - mac_config = (Mac_config *) event.value; - int j=0; - - if(event.ue == -1 && event.lcid == -1) { - UE_list = &eNB_mac_inst->UE_list; - - for(i=UE_list->head; i>=0; i=UE_list->next[i]) { - if(event.value + i !=NULL) { - - for(j=0; jmac_config[i].dl_bandwidth[j]= mac_config[i].dl_bandwidth[j]; - UE_list->UE_sched_ctrl[i].dl_bandwidth[j] = oai_emulation->mac_config[i].dl_bandwidth[j]; - LOG_I(EMU,"dl_bandwidth UE %d LCID %d:",i,j); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[i].dl_bandwidth[j]); - } - } - } - } - } else { - oai_emulation->mac_config[event.ue].dl_bandwidth[event.lcid]= mac_config[event.ue].dl_bandwidth[event.lcid]; - UE_list->UE_sched_ctrl[event.ue].dl_bandwidth[event.lcid] = oai_emulation->mac_config[event.ue].dl_bandwidth[event.lcid]; - LOG_I(EMU,"dl_bandwidth UE %d LCID %d:",event.ue, event.lcid); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[event.ue].dl_bandwidth[event.lcid]); - } - } else if(!strcmp((char *) event.key, "min_ul_bandwidth") && event.value!=NULL) { - - - Mac_config* mac_config;// = malloc(sizeof(Mac_config)*16); - mac_config = (Mac_config *) event.value; - int j=0; - - if(event.ue == -1 && event.lcid == -1) { - UE_list = &eNB_mac_inst->UE_list; - - for(i=UE_list->head; i>=0; i=UE_list->next[i]) { - - - for(j=0; jmac_config[i].min_ul_bandwidth[j]= mac_config[i].min_ul_bandwidth[j]; - UE_list->UE_sched_ctrl[i].min_ul_bandwidth[j] = oai_emulation->mac_config[i].min_ul_bandwidth[j]; - LOG_I(EMU,"min_ul_bandwidth UE %d LCID %d:",i,j); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[i].min_ul_bandwidth[j]); - } - } - - } - } else { - oai_emulation->mac_config[event.ue].min_ul_bandwidth[event.lcid]= mac_config[event.ue].min_ul_bandwidth[event.lcid]; - UE_list->UE_sched_ctrl[event.ue].min_ul_bandwidth[event.lcid] = oai_emulation->mac_config[event.ue].min_ul_bandwidth[event.lcid]; - LOG_I(EMU,"min_ul_bandwidth UE %d LCID %d:",event.ue, event.lcid); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[event.ue].min_ul_bandwidth[event.lcid]); - } - - } else if(!strcmp((char *) event.key, "min_dl_bandwidth") && event.value!=NULL && validate_mac(event)) { - - Mac_config* mac_config;// = malloc(sizeof(Mac_config)*16); - mac_config = (Mac_config *) event.value; - int j=0; - - if(event.ue == -1 && event.lcid == -1) { - UE_list = &eNB_mac_inst->UE_list; - - for(i=UE_list->head; i>=0; i=UE_list->next[i]) { - if(event.value + i !=NULL) { - - for(j=0; jmac_config[i].min_dl_bandwidth[j]= mac_config[i].min_dl_bandwidth[j]; - UE_list->UE_sched_ctrl[i].min_dl_bandwidth[j] = oai_emulation->mac_config[i].min_dl_bandwidth[j]; - LOG_I(EMU,"min_dl_bandwidth UE %d LCID %d:",i,j); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[i].min_dl_bandwidth[j]); - } - } - } - } - } else { - oai_emulation->mac_config[event.ue].min_dl_bandwidth[event.lcid]= mac_config[event.ue].min_dl_bandwidth[event.lcid]; - UE_list->UE_sched_ctrl[event.ue].min_dl_bandwidth[event.lcid] = oai_emulation->mac_config[event.ue].min_dl_bandwidth[event.lcid]; - LOG_I(EMU,"min_dl_bandwidth UE %d LCID %d:",event.ue, event.lcid); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[event.ue].min_dl_bandwidth[event.lcid]); - } - } else if(!strcmp((char *) event.key, "ue_AggregatedMaximumBitrateDL") && event.value!=NULL && validate_mac(event)) { - Mac_config* mac_config;// = malloc(sizeof(Mac_config)*16); - mac_config = (Mac_config *) event.value; - - LOG_I(EMU,"ue_AggregatedMaximumBitrateDL update \n"); - - if(event.ue == -1) { - UE_list = &eNB_mac_inst->UE_list; - - for(i=UE_list->head; i>=0; i=UE_list->next[i]) { - oai_emulation->mac_config[i].ue_AggregatedMaximumBitrateDL= mac_config[i].ue_AggregatedMaximumBitrateDL; - UE_list->UE_sched_ctrl[i].ue_AggregatedMaximumBitrateDL = oai_emulation->mac_config[i].ue_AggregatedMaximumBitrateDL; - LOG_I(EMU,"ue_AggregatedMaximumBitrateDL UE %d:\n",event.ue); - LOG_I(EMU,"%" PRIu64 "\n",UE_list->UE_sched_ctrl[i].ue_AggregatedMaximumBitrateDL); - } - } else { - oai_emulation->mac_config[event.ue].ue_AggregatedMaximumBitrateDL= mac_config[event.ue].ue_AggregatedMaximumBitrateDL; - UE_list->UE_sched_ctrl[event.ue].ue_AggregatedMaximumBitrateDL = oai_emulation->mac_config[event.ue].ue_AggregatedMaximumBitrateDL; - LOG_I(EMU,"ue_AggregatedMaximumBitrateDL UE %d:\n",event.ue); - LOG_I(EMU,"%" PRIu64 "\n",UE_list->UE_sched_ctrl[event.ue].ue_AggregatedMaximumBitrateDL); - } - - } else if(!strcmp((char *) event.key, "ue_AggregatedMaximumBitrateUL") && event.value!=NULL && validate_mac(event)) { - - Mac_config* mac_config;// = malloc(sizeof(Mac_config)*16); - mac_config = (Mac_config *) event.value; - - LOG_I(EMU,"ue_AggregatedMaximumBitrateUL update \n"); - - if(event.ue == -1) { - UE_list = &eNB_mac_inst->UE_list; - - for(i=UE_list->head; i>=0; i=UE_list->next[i]) { - oai_emulation->mac_config[i].ue_AggregatedMaximumBitrateUL= mac_config[i].ue_AggregatedMaximumBitrateUL; - UE_list->UE_sched_ctrl[i].ue_AggregatedMaximumBitrateUL = oai_emulation->mac_config[i].ue_AggregatedMaximumBitrateUL; - LOG_I(EMU,"ue_AggregatedMaximumBitrateUL UE %d:\n",i); - LOG_I(EMU,"%" PRIu64 "\n",UE_list->UE_sched_ctrl[i].ue_AggregatedMaximumBitrateUL); - } - } else { - oai_emulation->mac_config[event.ue].ue_AggregatedMaximumBitrateUL= mac_config[event.ue].ue_AggregatedMaximumBitrateUL; - UE_list->UE_sched_ctrl[event.ue].ue_AggregatedMaximumBitrateUL = oai_emulation->mac_config[event.ue].ue_AggregatedMaximumBitrateUL; - LOG_I(EMU,"ue_AggregatedMaximumBitrateUL UE %d:\n",event.ue); - LOG_I(EMU,"%" PRIu64 "\n",UE_list->UE_sched_ctrl[event.ue].ue_AggregatedMaximumBitrateUL); - } - - } else if(!strcmp((char *) event.key, "cqiSchedInterval") && event.value!=NULL && validate_mac(event)) { - Mac_config* mac_config;// = malloc(sizeof(Mac_config)*16); - mac_config = (Mac_config *) event.value; - - LOG_I(EMU,"cqiSchedInterval update \n"); - - if(event.ue == -1) { - UE_list = &eNB_mac_inst->UE_list; - - for(i=UE_list->head; i>=0; i=UE_list->next[i]) { - oai_emulation->mac_config[i].cqiSchedInterval= mac_config[i].cqiSchedInterval; - UE_list->UE_sched_ctrl[i].cqiSchedInterval = oai_emulation->mac_config[i].cqiSchedInterval; - LOG_I(EMU,"cqiSchedInterval UE %d:\n", i); - LOG_I(EMU,"%" PRIu16 "\n",UE_list->UE_sched_ctrl[i].cqiSchedInterval); - } - } else { - oai_emulation->mac_config[event.ue].cqiSchedInterval= mac_config[event.ue].cqiSchedInterval; - UE_list->UE_sched_ctrl[event.ue].cqiSchedInterval = oai_emulation->mac_config[event.ue].cqiSchedInterval; - LOG_I(EMU,"cqiSchedInterval UE %d:\n", event.ue); - LOG_I(EMU,"%" PRIu16 "\n",UE_list->UE_sched_ctrl[event.ue].cqiSchedInterval); - } - } else if(!strcmp((char *) event.key, "mac_ContentionResolutionTimer") && event.value!=NULL && validate_mac(event)) { - Mac_config* mac_config;// = malloc(sizeof(Mac_config)*16); - mac_config = (Mac_config *) event.value; - LOG_I(EMU,"mac_ContentionResolutionTimer update \n"); - - if(event.ue == -1) { - UE_list = &eNB_mac_inst->UE_list; - - for(i=UE_list->head; i>=0; i=UE_list->next[i]) { - oai_emulation->mac_config[i].mac_ContentionResolutionTimer= mac_config[i].mac_ContentionResolutionTimer; - UE_list->UE_sched_ctrl[i].mac_ContentionResolutionTimer = oai_emulation->mac_config[i].mac_ContentionResolutionTimer; - LOG_I(EMU,"mac_ContentionResolutionTimer UE %d:\n", i); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[i].mac_ContentionResolutionTimer); - } - } else { - oai_emulation->mac_config[event.ue].mac_ContentionResolutionTimer= mac_config[event.ue].mac_ContentionResolutionTimer; - UE_list->UE_sched_ctrl[event.ue].mac_ContentionResolutionTimer = oai_emulation->mac_config[event.ue].mac_ContentionResolutionTimer; - LOG_I(EMU,"mac_ContentionResolutionTimer UE %d:\n", event.ue); - LOG_I(EMU,"%" PRIu8 "\n",UE_list->UE_sched_ctrl[event.ue].mac_ContentionResolutionTimer); - } - } else if(!strcmp((char *) event.key, "max_allowed_rbs") && event.value!=NULL && validate_mac(event)) { - - - Mac_config* mac_config;// = malloc(sizeof(Mac_config)*16); - mac_config = (Mac_config *) event.value; - int j=0; - - if(event.ue == -1 && event.lcid == -1) { - UE_list = &eNB_mac_inst->UE_list; - - for(i=UE_list->head; i>=0; i=UE_list->next[i]) { - if(event.value + i !=NULL) { - - for(j=0; jmac_config[i].max_allowed_rbs[j]= mac_config[i].max_allowed_rbs[j]; - UE_list->UE_sched_ctrl[i].max_rbs_allowed_slice[j][0] = oai_emulation->mac_config[i].max_allowed_rbs[j]; - LOG_I(EMU,"max_allowed_rbs UE %d LCID %d:",i,j); - LOG_I(EMU,"%" PRIu16 "\n",UE_list->UE_sched_ctrl[i].max_rbs_allowed_slice[j][0]); - } - } - } - } - } else { - oai_emulation->mac_config[event.ue].max_allowed_rbs[event.lcid]= mac_config[event.ue].max_allowed_rbs[event.lcid]; - UE_list->UE_sched_ctrl[event.ue].max_rbs_allowed_slice[event.lcid][0] = oai_emulation->mac_config[event.ue].max_allowed_rbs[event.lcid]; - LOG_I(EMU,"max_allowed_rbs UE %d LCID %d:",event.ue,event.lcid); - LOG_I(EMU,"%" PRIu16 "\n",UE_list->UE_sched_ctrl[event.ue].max_rbs_allowed_slice[event.lcid][0]); - } - - } else if(!strcmp((char *) event.key, "max_mcs") && event.value!=NULL && validate_mac(event)) { - - Mac_config* mac_config;// = malloc(sizeof(Mac_config)*16); - mac_config = (Mac_config *) event.value; - int j=0; - - if(event.ue == -1 && event.lcid == -1) { - UE_list = &eNB_mac_inst->UE_list; - - for(i=UE_list->head; i>=0; i=UE_list->next[i]) { - - for(j=0; jmac_config[i].max_mcs[j]= mac_config[i].max_mcs[j]; - UE_list->UE_sched_ctrl[i].max_mcs[j] = oai_emulation->mac_config[i].max_mcs[j]; - LOG_I(EMU,"max_mcs UE %d LCID %d:",i,j); - LOG_I(EMU,"%" PRIu16 "\n",UE_list->UE_sched_ctrl[i].max_mcs[j]); - } - } - - } - } else { - oai_emulation->mac_config[event.ue].max_mcs[event.lcid]= mac_config[event.ue].max_mcs[event.lcid]; - UE_list->UE_sched_ctrl[event.ue].max_mcs[event.lcid] = oai_emulation->mac_config[event.ue].max_mcs[event.lcid]; - LOG_I(EMU,"max_mcs UE %d LCID %d:",event.ue,event.lcid); - LOG_I(EMU,"%" PRIu16 "\n",UE_list->UE_sched_ctrl[event.ue].max_mcs[event.lcid]); - } - } - } - - -} - -void update_oai_model(char * key, void * value) -{ - -} - -void update_sys_model(Event_t event) -{ - - - printf("\n\n\nA NEW SYS MODEL\n\n\n"); - OAI_Emulation *oai_emulation; - oai_emulation = get_OAI_emulation(); - int i=0; - - if(event.optype == READ) { - if(event.key == NULL) { - LOG_I(EMU,"wall_penetration_loss_dB %G\n",oai_emulation->environment_system_config.wall_penetration_loss_dB); - LOG_I(EMU,"system_bandwidth_MB %G\n",oai_emulation->environment_system_config.system_bandwidth_MB); - LOG_I(EMU,"system_frequency_GHz %G\n",oai_emulation->environment_system_config.system_frequency_GHz); - - //Fading - LOG_I(EMU,"fading.large_scale.selected_option %s\n",oai_emulation->environment_system_config.fading.large_scale.selected_option); - LOG_I(EMU,"fading.large_scale.free_space %d\n",oai_emulation->environment_system_config.fading.large_scale.free_space); - LOG_I(EMU,"fading.large_scale.urban %d\n",oai_emulation->environment_system_config.fading.large_scale.urban); - LOG_I(EMU,"fading.large_scale.rural %d\n",oai_emulation->environment_system_config.fading.large_scale.rural); - - LOG_I(EMU,"fading.small_scale.selected_option %s\n",oai_emulation->environment_system_config.fading.small_scale.selected_option); - LOG_I(EMU,"fading.small_scale.SCM_A %d\n",oai_emulation->environment_system_config.fading.small_scale.SCM_A); - LOG_I(EMU,"fading.small_scale.SCM_B %d\n",oai_emulation->environment_system_config.fading.small_scale.SCM_B); - LOG_I(EMU,"fading.small_scale.SCM_C %d\n",oai_emulation->environment_system_config.fading.small_scale.SCM_C); - LOG_I(EMU,"fading.small_scale.SCM_D %d\n",oai_emulation->environment_system_config.fading.small_scale.SCM_D); - LOG_I(EMU,"fading.small_scale.rayleigh_8tap %d\n",oai_emulation->environment_system_config.fading.small_scale.rayleigh_8tap); - LOG_I(EMU,"fading.small_scale.EPA %d\n",oai_emulation->environment_system_config.fading.small_scale.EPA); - LOG_I(EMU,"fading.small_scale.EVA %d\n",oai_emulation->environment_system_config.fading.small_scale.EVA); - LOG_I(EMU,"fading.small_scale.ETU %d\n",oai_emulation->environment_system_config.fading.small_scale.ETU); - - LOG_I(EMU,"shadowing.decorrelation_distance_m %G\n",oai_emulation->environment_system_config.fading.shadowing.decorrelation_distance_m); - LOG_I(EMU,"shadowing.variance_dB %G\n",oai_emulation->environment_system_config.fading.shadowing.variance_dB); - LOG_I(EMU,"shadowing.inter_site_correlation %G\n",oai_emulation->environment_system_config.fading.shadowing.inter_site_correlation); - - LOG_I(EMU,"free_space_model_parameters.pathloss_exponent %G\n",oai_emulation->environment_system_config.fading.free_space_model_parameters.pathloss_exponent); - LOG_I(EMU,"free_space_model_parameters.pathloss_0_dB %G\n",oai_emulation->environment_system_config.fading.free_space_model_parameters.pathloss_0_dB); - - LOG_I(EMU,"ricean_8tap.rice_factor_dB %d\n",oai_emulation->environment_system_config.fading.ricean_8tap.rice_factor_dB); - - //Antenna - LOG_I(EMU,"antenna.eNB_antenna.number_of_sectors %d\n",oai_emulation->environment_system_config.antenna.eNB_antenna.number_of_sectors); - LOG_I(EMU,"antenna.eNB_antenna.beam_width_dB %G\n",oai_emulation->environment_system_config.antenna.eNB_antenna.beam_width_dB); - LOG_I(EMU,"antenna.eNB_antenna.antenna_gain_dBi %G\n",oai_emulation->environment_system_config.antenna.eNB_antenna.antenna_gain_dBi); - LOG_I(EMU,"antenna.eNB_antenna.tx_power_dBm %G\n",oai_emulation->environment_system_config.antenna.eNB_antenna.tx_power_dBm); - LOG_I(EMU,"antenna.eNB_antenna.rx_noise_level_dB %G\n",oai_emulation->environment_system_config.antenna.eNB_antenna.rx_noise_level_dB); - - for (i = 0; i<3; i++) { - LOG_I(EMU,"antenna.eNB_antenna.alpha_rad %d %G\n",i,oai_emulation->environment_system_config.antenna.eNB_antenna.alpha_rad[i]); - } - - for (i = 0; i<3; i++) { - LOG_I(EMU,"antenna.eNB_antenna.antenna_orientation_degree %d %G\n",i,oai_emulation->environment_system_config.antenna.eNB_antenna.antenna_orientation_degree[i]); - } - - LOG_I(EMU,"antenna.UE_antenna.antenna_gain_dBi %G\n",oai_emulation->environment_system_config.antenna.UE_antenna.antenna_gain_dBi); - LOG_I(EMU,"antenna.UE_antenna.tx_power_dBm %G\n",oai_emulation->environment_system_config.antenna.UE_antenna.tx_power_dBm); - LOG_I(EMU,"antenna.UE_antenna.rx_noise_level_dB %G\n",oai_emulation->environment_system_config.antenna.UE_antenna.rx_noise_level_dB); - } else if(!strcmp((char *) event.key, "wall_penetration_loss_dB")) { - LOG_I(EMU,"wall_penetration_loss_dB %G\n",oai_emulation->environment_system_config.wall_penetration_loss_dB); - } else if(!strcmp((char *) event.key, "system_bandwidth_MB")) { - LOG_I(EMU,"system_bandwidth_MB %G\n",oai_emulation->environment_system_config.system_bandwidth_MB); - } else if(!strcmp((char *) event.key, "system_frequency_GHz")) { - LOG_I(EMU,"system_frequency_GHz %G\n",oai_emulation->environment_system_config.system_frequency_GHz); - } else if(!strcmp((char *) event.key, "fading.large_scale.selected_option")) { - LOG_I(EMU,"fading.large_scale.selected_option %s\n",oai_emulation->environment_system_config.fading.large_scale.selected_option); - } else if(!strcmp((char *) event.key, "fading.large_scale.free_space")) { - LOG_I(EMU,"fading.large_scale.free_space %d\n",oai_emulation->environment_system_config.fading.large_scale.free_space); - } else if(!strcmp((char *) event.key, "fading.large_scale.urban")) { - LOG_I(EMU,"fading.large_scale.urban %d\n",oai_emulation->environment_system_config.fading.large_scale.urban); - } else if(!strcmp((char *) event.key, "fading.large_scale.rural")) { - LOG_I(EMU,"fading.large_scale.rural %d\n",oai_emulation->environment_system_config.fading.large_scale.rural); - } else if(!strcmp((char *) event.key, "fading.small_scale.selected_option")) { - LOG_I(EMU,"fading.small_scale.selected_option %s\n",oai_emulation->environment_system_config.fading.small_scale.selected_option); - } else if(!strcmp((char *) event.key, "fading.small_scale.SCM_A")) { - LOG_I(EMU,"fading.small_scale.SCM_A %d\n",oai_emulation->environment_system_config.fading.small_scale.SCM_A); - } else if(!strcmp((char *) event.key, "fading.small_scale.SCM_B")) { - LOG_I(EMU,"fading.small_scale.SCM_B %d\n",oai_emulation->environment_system_config.fading.small_scale.SCM_B); - } else if(!strcmp((char *) event.key, "fading.small_scale.SCM_C")) { - LOG_I(EMU,"fading.small_scale.SCM_C %d\n",oai_emulation->environment_system_config.fading.small_scale.SCM_C); - } else if(!strcmp((char *) event.key, "fading.small_scale.SCM_D")) { - LOG_I(EMU,"fading.small_scale.SCM_D %d\n",oai_emulation->environment_system_config.fading.small_scale.SCM_D); - } else if(!strcmp((char *) event.key, "fading.small_scale.rayleigh_8tap")) { - LOG_I(EMU,"fading.small_scale.rayleigh_8tap %d\n",oai_emulation->environment_system_config.fading.small_scale.rayleigh_8tap); - } else if(!strcmp((char *) event.key, "fading.small_scale.EPA")) { - LOG_I(EMU,"fading.small_scale.EPA %d\n",oai_emulation->environment_system_config.fading.small_scale.EPA); - } else if(!strcmp((char *) event.key, "fading.small_scale.EVA")) { - LOG_I(EMU,"fading.small_scale.EVA %d\n",oai_emulation->environment_system_config.fading.small_scale.EVA); - } else if(!strcmp((char *) event.key, "fading.small_scale.ETU")) { - LOG_I(EMU,"fading.small_scale.ETU %d\n",oai_emulation->environment_system_config.fading.small_scale.ETU); - } else if(!strcmp((char *) event.key, "shadowing.decorrelation_distance_m")) { - LOG_I(EMU,"shadowing.decorrelation_distance_m %G\n",oai_emulation->environment_system_config.fading.shadowing.decorrelation_distance_m); - } else if(!strcmp((char *) event.key, "shadowing.variance_dB")) { - LOG_I(EMU,"shadowing.variance_dB %G\n",oai_emulation->environment_system_config.fading.shadowing.variance_dB); - } else if(!strcmp((char *) event.key, "shadowing.inter_site_correlation")) { - LOG_I(EMU,"shadowing.inter_site_correlation %G\n",oai_emulation->environment_system_config.fading.shadowing.inter_site_correlation); - } else if(!strcmp((char *) event.key, "free_space_model_parameters.pathloss_exponent")) { - LOG_I(EMU,"free_space_model_parameters.pathloss_exponent %G\n",oai_emulation->environment_system_config.fading.free_space_model_parameters.pathloss_exponent); - } else if(!strcmp((char *) event.key, "free_space_model_parameters.pathloss_0_dB")) { - LOG_I(EMU,"free_space_model_parameters.pathloss_0_dB %G\n",oai_emulation->environment_system_config.fading.free_space_model_parameters.pathloss_0_dB); - } else if(!strcmp((char *) event.key, "ricean_8tap.rice_factor_dB")) { - LOG_I(EMU,"ricean_8tap.rice_factor_dB %d\n",oai_emulation->environment_system_config.fading.ricean_8tap.rice_factor_dB); - } else if(!strcmp((char *) event.key, "antenna.eNB_antenna.number_of_sectors")) { - LOG_I(EMU,"antenna.eNB_antenna.number_of_sectors %d\n",oai_emulation->environment_system_config.antenna.eNB_antenna.number_of_sectors); - } else if(!strcmp((char *) event.key, "antenna.eNB_antenna.beam_width_dB")) { - LOG_I(EMU,"antenna.eNB_antenna.beam_width_dB %G\n",oai_emulation->environment_system_config.antenna.eNB_antenna.beam_width_dB); - } else if(!strcmp((char *) event.key, "antenna.eNB_antenna.antenna_gain_dBi")) { - LOG_I(EMU,"antenna.eNB_antenna.antenna_gain_dBi %G\n",oai_emulation->environment_system_config.antenna.eNB_antenna.antenna_gain_dBi); - } else if(!strcmp((char *) event.key, "antenna.eNB_antenna.tx_power_dBm")) { - LOG_I(EMU,"antenna.eNB_antenna.tx_power_dBm %G\n",oai_emulation->environment_system_config.antenna.eNB_antenna.tx_power_dBm); - } else if(!strcmp((char *) event.key, "antenna.eNB_antenna.rx_noise_level_dB")) { - LOG_I(EMU,"antenna.eNB_antenna.rx_noise_level_dB %G\n",oai_emulation->environment_system_config.antenna.eNB_antenna.rx_noise_level_dB); - } else if(!strcmp((char *) event.key, "antenna.eNB_antenna.alpha_rad")) { - for (i = 0; i<3; i++) { - LOG_I(EMU,"antenna.eNB_antenna.alpha_rad %d %G\n",i,oai_emulation->environment_system_config.antenna.eNB_antenna.alpha_rad[i]); - } - } else if(!strcmp((char *) event.key, "antenna.eNB_antenna.antenna_orientation_degree")) { - for (i = 0; i<3; i++) { - LOG_I(EMU,"antenna.eNB_antenna.antenna_orientation_degree %d %G\n",i,oai_emulation->environment_system_config.antenna.eNB_antenna.antenna_orientation_degree[i]); - } - } else if(!strcmp((char *) event.key, "antenna.UE_antenna.antenna_gain_dBi")) { - LOG_I(EMU,"antenna.UE_antenna.antenna_gain_dBi %G\n",oai_emulation->environment_system_config.antenna.UE_antenna.antenna_gain_dBi); - } else if(!strcmp((char *) event.key, "antenna.UE_antenna.tx_power_dBm")) { - LOG_I(EMU,"antenna.UE_antenna.tx_power_dBm %G\n",oai_emulation->environment_system_config.antenna.UE_antenna.tx_power_dBm); - } else if(!strcmp((char *) event.key, "antenna.UE_antenna.rx_noise_level_dB")) { - LOG_I(EMU,"antenna.UE_antenna.rx_noise_level_dB %G\n",oai_emulation->environment_system_config.antenna.UE_antenna.rx_noise_level_dB); - } - } else if(event.optype == WRITE) { - if(event.key == NULL && event.value!=NULL) { - Environment_System_Config* new_env_config = (Environment_System_Config *) event.value; - oai_emulation->environment_system_config.wall_penetration_loss_dB = new_env_config->wall_penetration_loss_dB; - oai_emulation->environment_system_config.system_bandwidth_MB = new_env_config->system_bandwidth_MB; - oai_emulation->environment_system_config.system_frequency_GHz = new_env_config->system_frequency_GHz; - - //Fading - sprintf(oai_emulation->environment_system_config.fading.large_scale.selected_option,"%s",new_env_config->fading.large_scale.selected_option); - oai_emulation->environment_system_config.fading.large_scale.free_space = new_env_config->fading.large_scale.free_space; - oai_emulation->environment_system_config.fading.large_scale.urban = new_env_config->fading.large_scale.urban; - oai_emulation->environment_system_config.fading.large_scale.rural = new_env_config->fading.large_scale.rural; - - sprintf(oai_emulation->environment_system_config.fading.small_scale.selected_option,"%s",new_env_config->fading.small_scale.selected_option); - oai_emulation->environment_system_config.fading.small_scale.SCM_A = new_env_config->fading.small_scale.SCM_A; - oai_emulation->environment_system_config.fading.small_scale.SCM_B = new_env_config->fading.small_scale.SCM_B; - oai_emulation->environment_system_config.fading.small_scale.SCM_C = new_env_config->fading.small_scale.SCM_C; - oai_emulation->environment_system_config.fading.small_scale.SCM_D = new_env_config->fading.small_scale.SCM_D; - oai_emulation->environment_system_config.fading.small_scale.rayleigh_8tap = new_env_config->fading.small_scale.rayleigh_8tap; - oai_emulation->environment_system_config.fading.small_scale.EPA = new_env_config->fading.small_scale.EPA; - oai_emulation->environment_system_config.fading.small_scale.EVA = new_env_config->fading.small_scale.EVA; - oai_emulation->environment_system_config.fading.small_scale.ETU = new_env_config->fading.small_scale.ETU; - - oai_emulation->environment_system_config.fading.shadowing.decorrelation_distance_m = new_env_config->fading.shadowing.decorrelation_distance_m; - oai_emulation->environment_system_config.fading.shadowing.variance_dB = new_env_config->fading.shadowing.variance_dB; - oai_emulation->environment_system_config.fading.shadowing.inter_site_correlation = new_env_config->fading.shadowing.inter_site_correlation; - - oai_emulation->environment_system_config.fading.free_space_model_parameters.pathloss_exponent = new_env_config->fading.free_space_model_parameters.pathloss_exponent; - oai_emulation->environment_system_config.fading.free_space_model_parameters.pathloss_0_dB = new_env_config->fading.free_space_model_parameters.pathloss_0_dB; - - oai_emulation->environment_system_config.fading.ricean_8tap.rice_factor_dB = new_env_config->fading.ricean_8tap.rice_factor_dB; - - //Antenna - oai_emulation->environment_system_config.antenna.eNB_antenna.number_of_sectors = new_env_config->antenna.eNB_antenna.number_of_sectors; - oai_emulation->environment_system_config.antenna.eNB_antenna.beam_width_dB = new_env_config->antenna.eNB_antenna.beam_width_dB; - oai_emulation->environment_system_config.antenna.eNB_antenna.antenna_gain_dBi = new_env_config->antenna.eNB_antenna.antenna_gain_dBi; - oai_emulation->environment_system_config.antenna.eNB_antenna.tx_power_dBm = new_env_config->antenna.eNB_antenna.tx_power_dBm; - oai_emulation->environment_system_config.antenna.eNB_antenna.rx_noise_level_dB = new_env_config->antenna.eNB_antenna.rx_noise_level_dB; - - for (i = 0; i<3; i++) { - oai_emulation->environment_system_config.antenna.eNB_antenna.alpha_rad[i] = new_env_config->antenna.eNB_antenna.alpha_rad[i]; - } - - for (i = 0; i<3; i++) { - oai_emulation->environment_system_config.antenna.eNB_antenna.antenna_orientation_degree[i] = new_env_config->antenna.eNB_antenna.antenna_orientation_degree[i]; - } - - oai_emulation->environment_system_config.antenna.UE_antenna.antenna_gain_dBi = new_env_config->antenna.UE_antenna.antenna_gain_dBi; - oai_emulation->environment_system_config.antenna.UE_antenna.tx_power_dBm = new_env_config->antenna.UE_antenna.tx_power_dBm; - oai_emulation->environment_system_config.antenna.UE_antenna.rx_noise_level_dB = new_env_config->antenna.UE_antenna.rx_noise_level_dB; - } - } -} - -void update_topo_model(Event_t event) -{ - - printf("\n\n\nA NEW MOB MODEL\n\n\n"); - OAI_Emulation *oai_emulation; - oai_emulation = get_OAI_emulation(); - - if(event.optype == READ) { - if(event.key == NULL) { - //read all values - LOG_I(EMU,"UE Mobility type %s\n",oai_emulation->topology_config.mobility.UE_mobility.UE_mobility_type.selected_option); - LOG_I(EMU,"eNB Mobility type %s\n",oai_emulation->topology_config.mobility.eNB_mobility.eNB_mobility_type.selected_option); - LOG_I(EMU,"grid_trip_type %s\n",oai_emulation->topology_config.mobility.UE_mobility.grid_walk.grid_trip_type.selected_option); - LOG_I(EMU,"UE_moving_dynamics_min_speed_mps %G\n",oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.min_speed_mps); - LOG_I(EMU,"UE_moving_dynamics_min_sleep_ms %G\n",oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.min_sleep_ms); - LOG_I(EMU,"UE_moving_dynamics_max_sleep_ms %G\n",oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.max_sleep_ms); - LOG_I(EMU,"UE_moving_dynamics_max_speed_mps %G\n",oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.max_speed_mps); - LOG_I(EMU,"UE_moving_dynamics_min_journey_time_ms %G\n",oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.min_journey_time_ms); - LOG_I(EMU,"UE_moving_dynamics_max_journey_time_ms %G\n",oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.max_journey_time_ms); - LOG_I(EMU,"grid_map_horizontal_grid %d\n",oai_emulation->topology_config.mobility.UE_mobility.grid_walk.grid_map.horizontal_grid); - LOG_I(EMU,"grid_map_vertical_grid %d\n",oai_emulation->topology_config.mobility.UE_mobility.grid_walk.grid_map.vertical_grid); - LOG_I(EMU,"UE_initial_distribution_selected_option %s\n",oai_emulation->topology_config.mobility.UE_mobility.UE_initial_distribution.selected_option); - LOG_I(EMU,"random_UE_distribution_number_of_nodes %d\n",oai_emulation->topology_config.mobility.UE_mobility.random_UE_distribution.number_of_nodes); - LOG_I(EMU,"concentrated_UE_distribution_number_of_nodes %d\n",oai_emulation->topology_config.mobility.UE_mobility.concentrated_UE_distribution.number_of_nodes); - LOG_I(EMU,"random_grid_number_of_nodes %d\n",oai_emulation->topology_config.mobility.UE_mobility.grid_UE_distribution.random_grid.number_of_nodes); - LOG_I(EMU,"border_grid_number_of_nodes %d\n",oai_emulation->topology_config.mobility.UE_mobility.grid_UE_distribution.border_grid.number_of_nodes); - LOG_I(EMU,"eNB_initial_distribution_selected_option %s\n",oai_emulation->topology_config.mobility.eNB_mobility.eNB_initial_distribution.selected_option); - LOG_I(EMU,"random_eNB_distribution_number_of_cells %d\n",oai_emulation->topology_config.mobility.eNB_mobility.random_eNB_distribution.number_of_cells); - LOG_I(EMU,"hexagonal_eNB_distribution_number_of_cells %d\n",oai_emulation->topology_config.mobility.eNB_mobility.hexagonal_eNB_distribution.number_of_cells); - - LOG_I(EMU,"hexagonal_eNB_distribution_inter_eNB_distance_km %G\n",oai_emulation->topology_config.mobility.eNB_mobility.hexagonal_eNB_distribution.inter_eNB_distance_km); - LOG_I(EMU,"grid_eNB_distribution_number_of_grid_x %d\n",oai_emulation->topology_config.mobility.eNB_mobility.grid_eNB_distribution.number_of_grid_x); - LOG_I(EMU,"grid_eNB_distribution_number_of_grid_y %d\n",oai_emulation->topology_config.mobility.eNB_mobility.grid_eNB_distribution.number_of_grid_y); - - LOG_I(EMU,"trace_config_trace_mobility_file %s\n",oai_emulation->topology_config.mobility.eNB_mobility.trace_config.trace_mobility_file); - LOG_I(EMU,"trace_config_trace_mobility_file %s\n",oai_emulation->topology_config.mobility.UE_mobility.trace_config.trace_mobility_file); - LOG_I(EMU,"sumo_config_command %s\n",oai_emulation->topology_config.mobility.UE_mobility.sumo_config.command); - LOG_I(EMU,"sumo_config_file %s\n",oai_emulation->topology_config.mobility.UE_mobility.sumo_config.file); - - LOG_I(EMU,"sumo_config_start %d\n",oai_emulation->topology_config.mobility.UE_mobility.sumo_config.start); - LOG_I(EMU,"sumo_config_end %d\n",oai_emulation->topology_config.mobility.UE_mobility.sumo_config.end); - LOG_I(EMU,"sumo_config_step %d\n",oai_emulation->topology_config.mobility.UE_mobility.sumo_config.step); // 1000ms - LOG_I(EMU,"sumo_config_hport %d\n",oai_emulation->topology_config.mobility.UE_mobility.sumo_config.hport); - } else if(!strcmp((char *) event.key, "UE_mobility_type")) { - LOG_I(EMU,"UE Mobility type %s\n",oai_emulation->topology_config.mobility.UE_mobility.UE_mobility_type.selected_option); - } else if(!strcmp((char *) event.key, "eNB_mobility_type")) { - LOG_I(EMU,"eNB Mobility type %s\n",oai_emulation->topology_config.mobility.eNB_mobility.eNB_mobility_type.selected_option); - } else if(!strcmp((char *) event.key, "grid_trip_type")) { - LOG_I(EMU,"grid_trip_type %s\n",oai_emulation->topology_config.mobility.UE_mobility.grid_walk.grid_trip_type.selected_option); - } else if(!strcmp((char *) event.key, "UE_moving_dynamics_min_speed_mps")) { - LOG_I(EMU,"UE_moving_dynamics_min_speed_mps %G\n",oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.min_speed_mps); - } else if(!strcmp((char *) event.key, "UE_moving_dynamics_min_sleep_ms")) { - LOG_I(EMU,"UE_moving_dynamics_min_sleep_ms %G\n",oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.min_sleep_ms); - } else if(!strcmp((char *) event.key, "UE_moving_dynamics_max_sleep_ms")) { - LOG_I(EMU,"UE_moving_dynamics_max_sleep_ms %G\n",oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.max_sleep_ms); - } else if(!strcmp((char *) event.key, "UE_moving_dynamics_max_speed_mps")) { - LOG_I(EMU,"UE_moving_dynamics_max_speed_mps %G\n",oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.max_speed_mps); - } else if(!strcmp((char *) event.key, "UE_moving_dynamics_min_journey_time_ms")) { - LOG_I(EMU,"UE_moving_dynamics_min_journey_time_ms %G\n",oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.min_journey_time_ms); - } else if(!strcmp((char *) event.key, "UE_moving_dynamics_max_journey_time_ms")) { - LOG_I(EMU,"UE_moving_dynamics_max_journey_time_ms %G\n",oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.max_journey_time_ms); - } else if(!strcmp((char *) event.key, "grid_map_horizontal_grid")) { - LOG_I(EMU,"grid_map_horizontal_grid %d\n",oai_emulation->topology_config.mobility.UE_mobility.grid_walk.grid_map.horizontal_grid); - } else if(!strcmp((char *) event.key, "grid_map_vertical_grid")) { - LOG_I(EMU,"grid_map_vertical_grid %d\n",oai_emulation->topology_config.mobility.UE_mobility.grid_walk.grid_map.vertical_grid); - } else if(!strcmp((char *) event.key, "UE_initial_distribution_selected_option")) { - LOG_I(EMU,"UE_initial_distribution_selected_option %s\n",oai_emulation->topology_config.mobility.UE_mobility.UE_initial_distribution.selected_option); - } else if(!strcmp((char *) event.key, "random_UE_distribution_number_of_nodes")) { - LOG_I(EMU,"random_UE_distribution_number_of_nodes %d\n",oai_emulation->topology_config.mobility.UE_mobility.random_UE_distribution.number_of_nodes); - } else if(!strcmp((char *) event.key, "concentrated_UE_distribution_number_of_nodes")) { - LOG_I(EMU,"concentrated_UE_distribution_number_of_nodes %d\n",oai_emulation->topology_config.mobility.UE_mobility.concentrated_UE_distribution.number_of_nodes); - } else if(!strcmp((char *) event.key, "random_grid_number_of_nodes")) { - LOG_I(EMU,"random_grid_number_of_nodes %d\n",oai_emulation->topology_config.mobility.UE_mobility.grid_UE_distribution.random_grid.number_of_nodes); - } else if(!strcmp((char *) event.key, "order_grid_number_of_nodes")) { - LOG_I(EMU,"border_grid_number_of_nodes %d\n",oai_emulation->topology_config.mobility.UE_mobility.grid_UE_distribution.border_grid.number_of_nodes); - } else if(!strcmp((char *) event.key, "eNB_initial_distribution_selected_option")) { - LOG_I(EMU,"eNB_initial_distribution_selected_option %s\n",oai_emulation->topology_config.mobility.eNB_mobility.eNB_initial_distribution.selected_option); - } else if(!strcmp((char *) event.key, "random_eNB_distribution_number_of_cells")) { - LOG_I(EMU,"random_eNB_distribution_number_of_cells %d\n",oai_emulation->topology_config.mobility.eNB_mobility.random_eNB_distribution.number_of_cells); - } else if(!strcmp((char *) event.key, "hexagonal_eNB_distribution_number_of_cells")) { - LOG_I(EMU,"hexagonal_eNB_distribution_number_of_cells %d\n",oai_emulation->topology_config.mobility.eNB_mobility.hexagonal_eNB_distribution.number_of_cells); - } else if(!strcmp((char *) event.key, "hexagonal_eNB_distribution_inter_eNB_distance_km")) { - LOG_I(EMU,"hexagonal_eNB_distribution_inter_eNB_distance_km %G\n",oai_emulation->topology_config.mobility.eNB_mobility.hexagonal_eNB_distribution.inter_eNB_distance_km); - } else if(!strcmp((char *) event.key, "grid_eNB_distribution_number_of_grid_x")) { - LOG_I(EMU,"grid_eNB_distribution_number_of_grid_x %d\n",oai_emulation->topology_config.mobility.eNB_mobility.grid_eNB_distribution.number_of_grid_x); - } else if(!strcmp((char *) event.key, "grid_eNB_distribution_number_of_grid_y")) { - LOG_I(EMU,"grid_eNB_distribution_number_of_grid_y %d\n",oai_emulation->topology_config.mobility.eNB_mobility.grid_eNB_distribution.number_of_grid_y); - } else if(!strcmp((char *) event.key, "eNB_mobility_trace_config_trace_mobility_file")) { - LOG_I(EMU,"eNB_trace_config_trace_mobility_file %s\n",oai_emulation->topology_config.mobility.eNB_mobility.trace_config.trace_mobility_file); - } else if(!strcmp((char *) event.key, "UE_mobility_trace_config_trace_mobility_file")) { - LOG_I(EMU,"UE_trace_config_trace_mobility_file %s\n",oai_emulation->topology_config.mobility.UE_mobility.trace_config.trace_mobility_file); - } else if(!strcmp((char *) event.key, "sumo_config_command")) { - LOG_I(EMU,"sumo_config_command %s\n",oai_emulation->topology_config.mobility.UE_mobility.sumo_config.command); - } else if(!strcmp((char *) event.key, "sumo_config_file")) { - LOG_I(EMU,"sumo_config_file %s\n",oai_emulation->topology_config.mobility.UE_mobility.sumo_config.file); - } else if(!strcmp((char *) event.key, "sumo_config_start")) { - LOG_I(EMU,"sumo_config_start %d\n",oai_emulation->topology_config.mobility.UE_mobility.sumo_config.start); - } else if(!strcmp((char *) event.key, "sumo_config_end")) { - LOG_I(EMU,"sumo_config_end %d\n",oai_emulation->topology_config.mobility.UE_mobility.sumo_config.end); - } else if(!strcmp((char *) event.key, "sumo_config_step")) { - LOG_I(EMU,"sumo_config_step %d\n",oai_emulation->topology_config.mobility.UE_mobility.sumo_config.step); // 1000ms - } else if(!strcmp((char *) event.key, "sumo_config_hport")) { - LOG_I(EMU,"sumo_config_hport %d\n",oai_emulation->topology_config.mobility.UE_mobility.sumo_config.hport); - } - } else if(event.optype == WRITE && event.value !=NULL) { - Mobility * new_mobility_model = (Mobility *) event.value; - - if(event.key == NULL) { - //global model update - - sprintf(oai_emulation->topology_config.mobility.UE_mobility.UE_mobility_type.selected_option, "%s", new_mobility_model->UE_mobility.UE_mobility_type.selected_option); - oai_emulation->topology_config.mobility.UE_mobility.grid_walk.grid_map.horizontal_grid = new_mobility_model->UE_mobility.grid_walk.grid_map.horizontal_grid; - oai_emulation->topology_config.mobility.UE_mobility.grid_walk.grid_map.vertical_grid = new_mobility_model->UE_mobility.grid_walk.grid_map.vertical_grid; - sprintf(oai_emulation->topology_config.mobility.UE_mobility.grid_walk.grid_trip_type.selected_option, "%s", new_mobility_model->UE_mobility.grid_walk.grid_trip_type.selected_option); - sprintf(oai_emulation->topology_config.mobility.UE_mobility.UE_initial_distribution.selected_option, "%s", new_mobility_model->UE_mobility.UE_initial_distribution.selected_option); - oai_emulation->topology_config.mobility.UE_mobility.random_UE_distribution.number_of_nodes = new_mobility_model->UE_mobility.random_UE_distribution.number_of_nodes; - oai_emulation->topology_config.mobility.UE_mobility.concentrated_UE_distribution.number_of_nodes = new_mobility_model->UE_mobility.concentrated_UE_distribution.number_of_nodes; - oai_emulation->topology_config.mobility.UE_mobility.grid_UE_distribution.random_grid.number_of_nodes = new_mobility_model->UE_mobility.grid_UE_distribution.random_grid.number_of_nodes; - oai_emulation->topology_config.mobility.UE_mobility.grid_UE_distribution.border_grid.number_of_nodes = new_mobility_model->UE_mobility.grid_UE_distribution.border_grid.number_of_nodes; - oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.min_speed_mps = new_mobility_model->UE_mobility.UE_moving_dynamics.min_speed_mps; - oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.max_speed_mps = new_mobility_model->UE_mobility.UE_moving_dynamics.max_speed_mps; - oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.min_sleep_ms = new_mobility_model->UE_mobility.UE_moving_dynamics.min_sleep_ms; - oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.max_sleep_ms = new_mobility_model->UE_mobility.UE_moving_dynamics.max_sleep_ms; - oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.min_journey_time_ms = new_mobility_model->UE_mobility.UE_moving_dynamics.min_journey_time_ms; - oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.max_journey_time_ms = new_mobility_model->UE_mobility.UE_moving_dynamics.max_journey_time_ms; - sprintf(oai_emulation->topology_config.mobility.eNB_mobility.eNB_mobility_type.selected_option, "%s", new_mobility_model->eNB_mobility.eNB_mobility_type.selected_option); - sprintf(oai_emulation->topology_config.mobility.eNB_mobility.eNB_initial_distribution.selected_option, "%s", new_mobility_model->eNB_mobility.eNB_initial_distribution.selected_option); - oai_emulation->topology_config.mobility.eNB_mobility.random_eNB_distribution.number_of_cells = new_mobility_model->eNB_mobility.random_eNB_distribution.number_of_cells; - oai_emulation->topology_config.mobility.eNB_mobility.hexagonal_eNB_distribution.number_of_cells = new_mobility_model->eNB_mobility.hexagonal_eNB_distribution.number_of_cells; - oai_emulation->topology_config.mobility.eNB_mobility.hexagonal_eNB_distribution.inter_eNB_distance_km = new_mobility_model->eNB_mobility.hexagonal_eNB_distribution.inter_eNB_distance_km; - oai_emulation->topology_config.mobility.eNB_mobility.grid_eNB_distribution.number_of_grid_x = new_mobility_model->eNB_mobility.grid_eNB_distribution.number_of_grid_x; - oai_emulation->topology_config.mobility.eNB_mobility.grid_eNB_distribution.number_of_grid_y = new_mobility_model->eNB_mobility.grid_eNB_distribution.number_of_grid_y; - - sprintf(oai_emulation->topology_config.mobility.eNB_mobility.trace_config.trace_mobility_file,"static_1enb.tr"); - sprintf(oai_emulation->topology_config.mobility.UE_mobility.trace_config.trace_mobility_file,"static_2ues.tr"); - sprintf(oai_emulation->topology_config.mobility.UE_mobility.sumo_config.command,"sumo"); - sprintf(oai_emulation->topology_config.mobility.UE_mobility.sumo_config.file,"%s/UTIL/OMG/SUMO/SCENARIOS/scen.sumo.cfg",getenv("OPENAIR2_DIR")); - sprintf(oai_emulation->topology_config.mobility.UE_mobility.sumo_config.hip,"127.0.1.1"); - - oai_emulation->topology_config.mobility.UE_mobility.sumo_config.start = new_mobility_model->UE_mobility.sumo_config.start; - oai_emulation->topology_config.mobility.UE_mobility.sumo_config.end = new_mobility_model->UE_mobility.sumo_config.end; - oai_emulation->topology_config.mobility.UE_mobility.sumo_config.step = new_mobility_model->UE_mobility.sumo_config.step; // 1000ms - oai_emulation->topology_config.mobility.UE_mobility.sumo_config.hport = new_mobility_model->UE_mobility.sumo_config.hport; - } else { - // event.key is not NULL - if(!strcmp((char *) event.key, "UE_mobility_type")) { - sprintf(oai_emulation->topology_config.mobility.UE_mobility.UE_mobility_type.selected_option, "%s", new_mobility_model->UE_mobility.UE_mobility_type.selected_option); - - } else if(!strcmp((char *) event.key, "eNB_mobility_type")) { - sprintf(oai_emulation->topology_config.mobility.eNB_mobility.eNB_mobility_type.selected_option, "%s", new_mobility_model->eNB_mobility.eNB_mobility_type.selected_option); - } else if(!strcmp((char *) event.key, "grid_trip_type")) { - sprintf(oai_emulation->topology_config.mobility.UE_mobility.grid_walk.grid_trip_type.selected_option, "%s", new_mobility_model->UE_mobility.grid_walk.grid_trip_type.selected_option); - } else if(!strcmp((char *) event.key, "UE_moving_dynamics_min_speed_mps")) { - oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.min_speed_mps = new_mobility_model->UE_mobility.UE_moving_dynamics.min_speed_mps; - } else if(!strcmp((char *) event.key, "UE_moving_dynamics_min_sleep_ms")) { - oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.min_sleep_ms = new_mobility_model->UE_mobility.UE_moving_dynamics.min_sleep_ms; - } else if(!strcmp((char *) event.key, "UE_moving_dynamics_max_sleep_ms")) { - oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.max_sleep_ms = new_mobility_model->UE_mobility.UE_moving_dynamics.max_sleep_ms; - } else if(!strcmp((char *) event.key, "UE_moving_dynamics_max_speed_mps")) { - oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.max_speed_mps = new_mobility_model->UE_mobility.UE_moving_dynamics.max_speed_mps; - } else if(!strcmp((char *) event.key, "UE_moving_dynamics_min_journey_time_ms")) { - oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.min_journey_time_ms = new_mobility_model->UE_mobility.UE_moving_dynamics.min_journey_time_ms; - } else if(!strcmp((char *) event.key, "UE_moving_dynamics_max_journey_time_ms")) { - oai_emulation->topology_config.mobility.UE_mobility.UE_moving_dynamics.max_journey_time_ms = new_mobility_model->UE_mobility.UE_moving_dynamics.max_journey_time_ms; - } else if(!strcmp((char *) event.key, "grid_map_horizontal_grid")) { - oai_emulation->topology_config.mobility.UE_mobility.grid_walk.grid_map.horizontal_grid = new_mobility_model->UE_mobility.grid_walk.grid_map.horizontal_grid; - } else if(!strcmp((char *) event.key, "grid_map_vertical_grid")) { - oai_emulation->topology_config.mobility.UE_mobility.grid_walk.grid_map.vertical_grid = new_mobility_model->UE_mobility.grid_walk.grid_map.vertical_grid; - } else if(!strcmp((char *) event.key, "UE_initial_distribution_selected_option")) { - sprintf(oai_emulation->topology_config.mobility.UE_mobility.UE_initial_distribution.selected_option, "%s", new_mobility_model->UE_mobility.UE_initial_distribution.selected_option); - } else if(!strcmp((char *) event.key, "random_UE_distribution_number_of_nodes")) { - oai_emulation->topology_config.mobility.UE_mobility.random_UE_distribution.number_of_nodes = new_mobility_model->UE_mobility.random_UE_distribution.number_of_nodes; - } else if(!strcmp((char *) event.key, "concentrated_UE_distribution_number_of_nodes")) { - oai_emulation->topology_config.mobility.UE_mobility.concentrated_UE_distribution.number_of_nodes = new_mobility_model->UE_mobility.concentrated_UE_distribution.number_of_nodes; - } else if(!strcmp((char *) event.key, "random_grid_number_of_nodes")) { - oai_emulation->topology_config.mobility.UE_mobility.grid_UE_distribution.random_grid.number_of_nodes = new_mobility_model->UE_mobility.grid_UE_distribution.random_grid.number_of_nodes; - } else if(!strcmp((char *) event.key, "border_grid_number_of_nodes")) { - oai_emulation->topology_config.mobility.UE_mobility.grid_UE_distribution.border_grid.number_of_nodes = new_mobility_model->UE_mobility.grid_UE_distribution.border_grid.number_of_nodes; - } else if(!strcmp((char *) event.key, "eNB_initial_distribution_selected_option")) { - sprintf(oai_emulation->topology_config.mobility.eNB_mobility.eNB_initial_distribution.selected_option, "%s", new_mobility_model->eNB_mobility.eNB_initial_distribution.selected_option); - } else if(!strcmp((char *) event.key, "random_eNB_distribution_number_of_cells")) { - oai_emulation->topology_config.mobility.eNB_mobility.random_eNB_distribution.number_of_cells = new_mobility_model->eNB_mobility.random_eNB_distribution.number_of_cells; - } else if(!strcmp((char *) event.key, "hexagonal_eNB_distribution_number_of_cells")) { - oai_emulation->topology_config.mobility.eNB_mobility.hexagonal_eNB_distribution.number_of_cells = new_mobility_model->eNB_mobility.hexagonal_eNB_distribution.number_of_cells; - } else if(!strcmp((char *) event.key, "hexagonal_eNB_distribution_inter_eNB_distance_km")) { - oai_emulation->topology_config.mobility.eNB_mobility.hexagonal_eNB_distribution.inter_eNB_distance_km = new_mobility_model->eNB_mobility.hexagonal_eNB_distribution.inter_eNB_distance_km; - } else if(!strcmp((char *) event.key, "grid_eNB_distribution_number_of_grid_x")) { - oai_emulation->topology_config.mobility.eNB_mobility.grid_eNB_distribution.number_of_grid_x = new_mobility_model->eNB_mobility.grid_eNB_distribution.number_of_grid_x; - } else if(!strcmp((char *) event.key, "grid_eNB_distribution_number_of_grid_y")) { - oai_emulation->topology_config.mobility.eNB_mobility.grid_eNB_distribution.number_of_grid_y = new_mobility_model->eNB_mobility.grid_eNB_distribution.number_of_grid_y; - } else if(!strcmp((char *) event.key, "eNB_mobility_trace_config_trace_mobility_file")) { - sprintf(oai_emulation->topology_config.mobility.eNB_mobility.trace_config.trace_mobility_file,"static_1enb.tr"); - } else if(!strcmp((char *) event.key, "UE_mobility_trace_config_trace_mobility_file")) { - sprintf(oai_emulation->topology_config.mobility.UE_mobility.trace_config.trace_mobility_file,"static_2ues.tr"); - } else if(!strcmp((char *) event.key, "sumo_config_command")) { - sprintf(oai_emulation->topology_config.mobility.UE_mobility.sumo_config.command,"sumo"); - } else if(!strcmp((char *) event.key, "sumo_config_file")) { - snprintf( oai_emulation->topology_config.mobility.UE_mobility.sumo_config.file, 256, "%s/UTIL/OMG/SUMO/SCENARIOS/scen.sumo.cfg", getenv("OPENAIR2_DIR") ); - } else if(!strcmp((char *) event.key, "sumo_config_start")) { - oai_emulation->topology_config.mobility.UE_mobility.sumo_config.start = new_mobility_model->UE_mobility.sumo_config.start; - } else if(!strcmp((char *) event.key, "sumo_config_end")) { - oai_emulation->topology_config.mobility.UE_mobility.sumo_config.end = new_mobility_model->UE_mobility.sumo_config.end; - } else if(!strcmp((char *) event.key, "sumo_config_step")) { - oai_emulation->topology_config.mobility.UE_mobility.sumo_config.step = new_mobility_model->UE_mobility.sumo_config.step; - } else if(!strcmp((char *) event.key, "sumo_config_hport")) { - oai_emulation->topology_config.mobility.UE_mobility.sumo_config.hport = new_mobility_model->UE_mobility.sumo_config.hport; - } else if(!strcmp((char *) event.key, "sumo_config.hip")) { - sprintf(oai_emulation->topology_config.mobility.UE_mobility.sumo_config.hip,"127.0.1.1"); - } - } - - } - -} - -void update_app_model(Event_t event) -{ - - - printf("\n\n\nA NEW APP MODEL\n\n\n"); - OAI_Emulation *oai_emulation; - oai_emulation = get_OAI_emulation(); - int i=0; - - if(event.optype == READ) { - if(event.key == NULL) { - //print all values - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"predefined_traffic.source_id %d: %s\n",i,oai_emulation->application_config.predefined_traffic.source_id[i]); - LOG_I(EMU,"predefined_traffic.background %d %s\n",i,oai_emulation->application_config.predefined_traffic.background[i]); - LOG_I(EMU,"predefined_traffic.aggregation_level %d %d\n",i,oai_emulation->application_config.predefined_traffic.aggregation_level[i]); - - if(oai_emulation->application_config.predefined_traffic.destination_id[i]!=NULL) - LOG_I(EMU,"predefined_traffic.destination_id %d %s\n",i,oai_emulation->application_config.predefined_traffic.destination_id[i]); - - if(oai_emulation->application_config.customized_traffic.source_id[i]!=NULL) - LOG_I(EMU,"customized_traffic.source_id %d %s\n",i,oai_emulation->application_config.customized_traffic.source_id[i]); - - if(oai_emulation->application_config.customized_traffic.destination_id[i]!=NULL) - LOG_I(EMU,"customized_traffic.destination_id %d %s\n",i,oai_emulation->application_config.customized_traffic.destination_id[i]); - - if(oai_emulation->application_config.customized_traffic.transport_protocol[i]!=NULL) - LOG_I(EMU,"customized_traffic.transport_protocol %d %s\n",i,oai_emulation->application_config.customized_traffic.transport_protocol[i]); - - if(oai_emulation->application_config.customized_traffic.background[i]!=NULL) - LOG_I(EMU,"customized_traffic.background %d %s\n",i,oai_emulation->application_config.customized_traffic.background[i]); - - if(oai_emulation->application_config.customized_traffic.ip_version[i]!=NULL) - LOG_I(EMU,"customized_traffic.ip_version %d %s\n",i,oai_emulation->application_config.customized_traffic.ip_version[i]); - - LOG_I(EMU,"customized_traffic.aggregation_level %d %d\n",i,oai_emulation->application_config.customized_traffic.aggregation_level[i]); - - if(oai_emulation->application_config.customized_traffic.idt_dist[i]!=NULL) - LOG_I(EMU,"customized_traffic.idt_dist %d %s\n",i,oai_emulation->application_config.customized_traffic.idt_dist[i]); - - LOG_I(EMU,"customized_traffic.idt_min_ms %d %d\n",i,oai_emulation->application_config.customized_traffic.idt_min_ms[i]); - LOG_I(EMU,"customized_traffic.idt_max_ms %d %d\n",i,oai_emulation->application_config.customized_traffic.idt_max_ms[i]); - LOG_I(EMU,"customized_traffic.idt_standard_deviation %d %G\n",i,oai_emulation->application_config.customized_traffic.idt_standard_deviation[i]); - LOG_I(EMU,"customized_traffic.idt_lambda %d %G\n",i,oai_emulation->application_config.customized_traffic.idt_lambda[i]); - LOG_I(EMU,"customized_traffic.size_dist %d %s\n",i,oai_emulation->application_config.customized_traffic.size_dist[i]); - LOG_I(EMU,"customized_traffic.size_min_byte %d %d\n",i,oai_emulation->application_config.customized_traffic.size_min_byte[i]);// - LOG_I(EMU,"customized_traffic.size_max_byte %d %d\n",i,oai_emulation->application_config.customized_traffic.size_max_byte[i]);// - LOG_I(EMU,"customized_traffic.size_standard_deviation %d %G\n",i,oai_emulation->application_config.customized_traffic.size_standard_deviation[i]);// - LOG_I(EMU,"customized_traffic.size_lambda %d %G\n",i,oai_emulation->application_config.customized_traffic.size_lambda[i]); - LOG_I(EMU,"ustomized_traffic.stream %d %d\n",i,oai_emulation->application_config.customized_traffic.stream[i]); - LOG_I(EMU,"customized_traffic.destination_port %d %d\n",i,oai_emulation->application_config.customized_traffic.destination_port[i]); - LOG_I(EMU,"customized_traffic.prob_off_pu %d %G\n",i,oai_emulation->application_config.customized_traffic.prob_off_pu[i]); - LOG_I(EMU,"customized_traffic.prob_off_ed %d %G\n",i,oai_emulation->application_config.customized_traffic.prob_off_ed[i]); - LOG_I(EMU,"customized_traffic.prob_off_pe %d %G\n",i,oai_emulation->application_config.customized_traffic.prob_off_pe[i]); - LOG_I(EMU,"customized_traffic.prob_pu_ed %d %G\n",i,oai_emulation->application_config.customized_traffic.prob_pu_ed[i]);// - LOG_I(EMU,"customized_traffic.prob_pu_pe %d %G\n",i,oai_emulation->application_config.customized_traffic.prob_pu_pe[i]); - LOG_I(EMU,"customized_traffic.prob_ed_pe %d %G\n",i,oai_emulation->application_config.customized_traffic.prob_ed_pe[i]); - LOG_I(EMU,"customized_traffic.prob_ed_pu %d %G\n",i,oai_emulation->application_config.customized_traffic.prob_ed_pu[i]); - LOG_I(EMU,"customized_traffic.holding_time_off_ed %d %d\n",i,oai_emulation->application_config.customized_traffic.holding_time_off_ed[i]); - LOG_I(EMU,"customized_traffic.holding_time_off_pu %d %d\n",i,oai_emulation->application_config.customized_traffic.holding_time_off_pu[i]); - LOG_I(EMU,"customized_traffic.holding_time_off_pe %d %d\n",i,oai_emulation->application_config.customized_traffic.holding_time_off_pe[i]); - LOG_I(EMU,"customized_traffic.holding_time_pe_off %d %d\n",i,oai_emulation->application_config.customized_traffic.holding_time_pe_off[i]); - LOG_I(EMU,"customized_traffic.pu_size_pkts %d %d\n",i,oai_emulation->application_config.customized_traffic.pu_size_pkts[i]); - LOG_I(EMU,"customized_traffic.ed_size_pkts %d %d\n",i,oai_emulation->application_config.customized_traffic.ed_size_pkts[i]); - - } - } else if(!strcmp((char *) event.key, "predefined_traffic.source_id")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"predefined_traffic.source_id %d: %s\n",i,oai_emulation->application_config.predefined_traffic.source_id[i]); - } - } else if(!strcmp((char *) event.key, "predefined_traffic.background")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"predefined_traffic.background %d %s\n",i,oai_emulation->application_config.predefined_traffic.background[i]); - } - } else if(!strcmp((char *) event.key, "predefined_traffic.aggregation_level")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"predefined_traffic.aggregation_level %d %d\n",i,oai_emulation->application_config.predefined_traffic.aggregation_level[i]); - } - } else if(!strcmp((char *) event.key, "predefined_traffic.destination_id")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - if(oai_emulation->application_config.predefined_traffic.destination_id[i]!=NULL) - LOG_I(EMU,"predefined_traffic.destination_id %d %s\n",i,oai_emulation->application_config.predefined_traffic.destination_id[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.source_id")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - if(oai_emulation->application_config.customized_traffic.source_id[i]!=NULL) - LOG_I(EMU,"customized_traffic.source_id %d %s\n",i,oai_emulation->application_config.customized_traffic.source_id[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.destination_id")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - if(oai_emulation->application_config.customized_traffic.destination_id[i]!=NULL) - LOG_I(EMU,"customized_traffic.destination_id %d %s\n",i,oai_emulation->application_config.customized_traffic.destination_id[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.transport_protocol")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - if(oai_emulation->application_config.customized_traffic.transport_protocol[i]!=NULL) - LOG_I(EMU,"customized_traffic.transport_protocol %d %s\n",i,oai_emulation->application_config.customized_traffic.transport_protocol[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.background")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - if(oai_emulation->application_config.customized_traffic.background[i]!=NULL) - LOG_I(EMU,"customized_traffic.background %d %s\n",i,oai_emulation->application_config.customized_traffic.background[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.ip_version")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - if(oai_emulation->application_config.customized_traffic.ip_version[i]!=NULL) - LOG_I(EMU,"customized_traffic.ip_version %d %s\n",i,oai_emulation->application_config.customized_traffic.ip_version[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.aggregation_level")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.aggregation_level %d %d\n",i,oai_emulation->application_config.customized_traffic.aggregation_level[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.idt_dist")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - if(oai_emulation->application_config.customized_traffic.idt_dist[i]!=NULL) - LOG_I(EMU,"customized_traffic.idt_dist %d %s\n",i,oai_emulation->application_config.customized_traffic.idt_dist[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.idt_min_ms")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.idt_min_ms %d %d\n",i,oai_emulation->application_config.customized_traffic.idt_min_ms[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.idt_max_ms")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.idt_max_ms %d %d\n",i,oai_emulation->application_config.customized_traffic.idt_max_ms[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.idt_standard_deviation")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.idt_standard_deviation %d %G\n",i,oai_emulation->application_config.customized_traffic.idt_standard_deviation[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.idt_lambda")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.idt_lambda %d %G\n",i,oai_emulation->application_config.customized_traffic.idt_lambda[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.size_dist")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.size_dist %d %s\n",i,oai_emulation->application_config.customized_traffic.size_dist[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.size_min_byte")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.size_min_byte %d %d\n",i,oai_emulation->application_config.customized_traffic.size_min_byte[i]);// - } - } else if(!strcmp((char *) event.key, "customized_traffic.size_min_byte")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.size_min_byte %d %d\n",i,oai_emulation->application_config.customized_traffic.size_min_byte[i]);// - } - } else if(!strcmp((char *) event.key, "customized_traffic.size_max_byte")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.size_max_byte %d %d\n",i,oai_emulation->application_config.customized_traffic.size_max_byte[i]);// - } - } else if(!strcmp((char *) event.key, "customized_traffic.size_standard_deviation")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.size_standard_deviation %d %G\n",i,oai_emulation->application_config.customized_traffic.size_standard_deviation[i]);// - } - } else if(!strcmp((char *) event.key, "customized_traffic.size_lambda")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.size_lambda %d %G\n",i,oai_emulation->application_config.customized_traffic.size_lambda[i]); - } - } else if(!strcmp((char *) event.key, "ustomized_traffic.stream")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"ustomized_traffic.stream %d %d\n",i,oai_emulation->application_config.customized_traffic.stream[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.destination_port")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.destination_port %d %d\n",i,oai_emulation->application_config.customized_traffic.destination_port[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.prob_off_pu")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.prob_off_pu %d %G\n",i,oai_emulation->application_config.customized_traffic.prob_off_pu[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.prob_off_ed")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.prob_off_ed %d %G\n",i,oai_emulation->application_config.customized_traffic.prob_off_ed[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.prob_off_pe")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.prob_off_pe %d %G\n",i,oai_emulation->application_config.customized_traffic.prob_off_pe[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.prob_pu_ed")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.prob_pu_ed %d %G\n",i,oai_emulation->application_config.customized_traffic.prob_pu_ed[i]);// - } - } else if(!strcmp((char *) event.key, "customized_traffic.prob_pu_pe")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.prob_pu_pe %d %G\n",i,oai_emulation->application_config.customized_traffic.prob_pu_pe[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.prob_ed_pe")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.prob_ed_pe %d %G\n",i,oai_emulation->application_config.customized_traffic.prob_ed_pe[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.prob_ed_pu")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.prob_ed_pu %d %G\n",i,oai_emulation->application_config.customized_traffic.prob_ed_pu[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.holding_time_off_ed")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.holding_time_off_ed %d %d\n",i,oai_emulation->application_config.customized_traffic.holding_time_off_ed[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.holding_time_off_pu")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.holding_time_off_pu %d %d\n",i,oai_emulation->application_config.customized_traffic.holding_time_off_pu[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.holding_time_off_pe")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.holding_time_off_pe %d %d\n",i,oai_emulation->application_config.customized_traffic.holding_time_off_pe[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.holding_time_pe_off")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.holding_time_pe_off %d %d\n",i,oai_emulation->application_config.customized_traffic.holding_time_pe_off[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.pu_size_pkts")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.pu_size_pkts %d %d\n",i,oai_emulation->application_config.customized_traffic.pu_size_pkts[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.ed_size_pkts")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - LOG_I(EMU,"customized_traffic.ed_size_pkts %d %d\n",i,oai_emulation->application_config.customized_traffic.ed_size_pkts[i]); - } - } - } else if(event.optype == WRITE && event.value!=NULL) { - Application_Config * new_app_config = (Application_Config *) event.value; - - if(event.key == NULL) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - sprintf(oai_emulation->application_config.predefined_traffic.source_id[i],"%s",new_app_config->predefined_traffic.source_id[i]); - // LOG_I(EMU,"predefined_traffic.application_type %d: %s\n",i,oai_emulation->application_config.predefined_traffic.application_type[i]); - sprintf(oai_emulation->application_config.predefined_traffic.background[i],"%s",new_app_config->predefined_traffic.background[i]); - oai_emulation->application_config.predefined_traffic.aggregation_level[i] = new_app_config->predefined_traffic.aggregation_level[i]; - - if(oai_emulation->application_config.predefined_traffic.destination_id[i]!=NULL) - sprintf(oai_emulation->application_config.predefined_traffic.destination_id[i],"%s",new_app_config->predefined_traffic.destination_id[i]); - - if(oai_emulation->application_config.customized_traffic.source_id[i]!=NULL) - sprintf(oai_emulation->application_config.customized_traffic.source_id[i],"%s",new_app_config->customized_traffic.source_id[i]); - - if(oai_emulation->application_config.customized_traffic.destination_id[i]!=NULL) - sprintf(oai_emulation->application_config.customized_traffic.destination_id[i],"%s",new_app_config->customized_traffic.destination_id[i]); - - if(oai_emulation->application_config.customized_traffic.transport_protocol[i]!=NULL) - sprintf(oai_emulation->application_config.customized_traffic.transport_protocol[i],"%s",new_app_config->customized_traffic.transport_protocol[i]); - - if(oai_emulation->application_config.customized_traffic.background[i]!=NULL) - sprintf(oai_emulation->application_config.customized_traffic.background[i],"%s",new_app_config->customized_traffic.background[i]); - - if(oai_emulation->application_config.customized_traffic.ip_version[i]!=NULL) - sprintf(oai_emulation->application_config.customized_traffic.ip_version[i],"%s",new_app_config->customized_traffic.ip_version[i]); - - oai_emulation->application_config.customized_traffic.aggregation_level[i] = new_app_config->customized_traffic.aggregation_level[i]; - - if(oai_emulation->application_config.customized_traffic.idt_dist[i]!=NULL) - sprintf(oai_emulation->application_config.customized_traffic.idt_dist[i],"%s",new_app_config->customized_traffic.idt_dist[i]); - - oai_emulation->application_config.customized_traffic.idt_min_ms[i] = new_app_config->customized_traffic.idt_min_ms[i]; - oai_emulation->application_config.customized_traffic.idt_max_ms[i] = new_app_config->customized_traffic.idt_max_ms[i]; - oai_emulation->application_config.customized_traffic.idt_standard_deviation[i] = new_app_config->customized_traffic.idt_standard_deviation[i]; - oai_emulation->application_config.customized_traffic.idt_lambda[i] = new_app_config->customized_traffic.idt_lambda[i]; - sprintf(oai_emulation->application_config.customized_traffic.size_dist[i],"%s",new_app_config->customized_traffic.size_dist[i]); - oai_emulation->application_config.customized_traffic.size_min_byte[i] = new_app_config->customized_traffic.size_min_byte[i];// - oai_emulation->application_config.customized_traffic.size_max_byte[i] = new_app_config->customized_traffic.size_max_byte[i];// - oai_emulation->application_config.customized_traffic.size_standard_deviation[i] = new_app_config->customized_traffic.size_standard_deviation[i];// - oai_emulation->application_config.customized_traffic.size_lambda[i] = new_app_config->customized_traffic.size_lambda[i]; - oai_emulation->application_config.customized_traffic.stream[i] = new_app_config->customized_traffic.stream[i]; - oai_emulation->application_config.customized_traffic.destination_port[i] = new_app_config->customized_traffic.destination_port[i]; - oai_emulation->application_config.customized_traffic.prob_off_pu[i] = new_app_config->customized_traffic.prob_off_pu[i]; - oai_emulation->application_config.customized_traffic.prob_off_ed[i] = new_app_config->customized_traffic.prob_off_ed[i]; - oai_emulation->application_config.customized_traffic.prob_off_pe[i] = new_app_config->customized_traffic.prob_off_pe[i]; - oai_emulation->application_config.customized_traffic.prob_pu_ed[i] = new_app_config->customized_traffic.prob_pu_ed[i];// - oai_emulation->application_config.customized_traffic.prob_pu_pe[i] = new_app_config->customized_traffic.prob_pu_pe[i]; - oai_emulation->application_config.customized_traffic.prob_ed_pe[i] = new_app_config->customized_traffic.prob_ed_pe[i]; - oai_emulation->application_config.customized_traffic.prob_ed_pu[i] = new_app_config->customized_traffic.prob_ed_pu[i]; - oai_emulation->application_config.customized_traffic.holding_time_off_ed[i] = new_app_config->customized_traffic.holding_time_off_ed[i]; - oai_emulation->application_config.customized_traffic.holding_time_off_pu[i] = new_app_config->customized_traffic.holding_time_off_pu[i]; - oai_emulation->application_config.customized_traffic.holding_time_off_pe[i] = new_app_config->customized_traffic.holding_time_off_pe[i]; - oai_emulation->application_config.customized_traffic.holding_time_pe_off[i] = new_app_config->customized_traffic.holding_time_pe_off[i]; - oai_emulation->application_config.customized_traffic.pu_size_pkts[i] = new_app_config->customized_traffic.pu_size_pkts[i]; - oai_emulation->application_config.customized_traffic.ed_size_pkts[i] = new_app_config->customized_traffic.ed_size_pkts[i]; - - } - - } else if(!strcmp((char *) event.key, "predefined_traffic.source_id")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - sprintf(oai_emulation->application_config.predefined_traffic.source_id[i],"%s",new_app_config->predefined_traffic.source_id[i]); - } - } else if(!strcmp((char *) event.key, "predefined_traffic.background")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - sprintf(oai_emulation->application_config.predefined_traffic.background[i],"%s",new_app_config->predefined_traffic.background[i]); - } - } else if(!strcmp((char *) event.key, "predefined_traffic.aggregation_level")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.predefined_traffic.aggregation_level[i] = new_app_config->predefined_traffic.aggregation_level[i]; - } - } else if(!strcmp((char *) event.key, "predefined_traffic.destination_id")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - if(oai_emulation->application_config.predefined_traffic.destination_id[i]!=NULL) - sprintf(oai_emulation->application_config.predefined_traffic.destination_id[i],"%s",new_app_config->predefined_traffic.destination_id[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.source_id")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - if(oai_emulation->application_config.customized_traffic.source_id[i]!=NULL) - sprintf(oai_emulation->application_config.customized_traffic.source_id[i],"%s",new_app_config->customized_traffic.source_id[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.destination_id")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - if(oai_emulation->application_config.customized_traffic.destination_id[i]!=NULL) - sprintf(oai_emulation->application_config.customized_traffic.destination_id[i],"%s",new_app_config->customized_traffic.destination_id[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.transport_protocol")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - if(oai_emulation->application_config.customized_traffic.transport_protocol[i]!=NULL) - sprintf(oai_emulation->application_config.customized_traffic.transport_protocol[i],"%s",new_app_config->customized_traffic.transport_protocol[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.background")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - if(oai_emulation->application_config.customized_traffic.background[i]!=NULL) - sprintf(oai_emulation->application_config.customized_traffic.background[i],"%s",new_app_config->customized_traffic.background[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.ip_version")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - if(oai_emulation->application_config.customized_traffic.ip_version[i]!=NULL) - sprintf(oai_emulation->application_config.customized_traffic.ip_version[i],"%s",*((char **) event.value)); - } - } else if(!strcmp((char *) event.key, "customized_traffic.aggregation_level")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.aggregation_level[i] = new_app_config->customized_traffic.aggregation_level[i]; - } - } else if(!strcmp((char *) event.key, "customized_traffic.idt_dist")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - if(oai_emulation->application_config.customized_traffic.idt_dist[i]!=NULL) - sprintf(oai_emulation->application_config.customized_traffic.idt_dist[i],"%s",new_app_config->customized_traffic.idt_dist[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.idt_min_ms")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.idt_min_ms[i] = new_app_config->customized_traffic.idt_min_ms[i]; - } - } else if(!strcmp((char *) event.key, "customized_traffic.idt_max_ms")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.idt_max_ms[i] = new_app_config->customized_traffic.idt_max_ms[i]; - } - } else if(!strcmp((char *) event.key, "customized_traffic.idt_standard_deviation")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.idt_standard_deviation[i] = new_app_config->customized_traffic.idt_standard_deviation[i]; - } - } else if(!strcmp((char *) event.key, "customized_traffic.idt_lambda")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.idt_lambda[i] = new_app_config->customized_traffic.idt_lambda[i]; - } - } else if(!strcmp((char *) event.key, "customized_traffic.size_dist")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - sprintf(oai_emulation->application_config.customized_traffic.size_dist[i],"%s",new_app_config->customized_traffic.size_dist[i]); - } - } else if(!strcmp((char *) event.key, "customized_traffic.size_min_byte")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.size_min_byte[i] = new_app_config->customized_traffic.size_min_byte[i];// - } - } else if(!strcmp((char *) event.key, "customized_traffic.size_max_byte")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.size_max_byte[i] = new_app_config->customized_traffic.size_max_byte[i];// - } - } else if(!strcmp((char *) event.key, "customized_traffic.size_standard_deviation")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.size_standard_deviation[i] = new_app_config->customized_traffic.size_standard_deviation[i]; - } - } else if(!strcmp((char *) event.key, "customized_traffic.size_lambda")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.size_lambda[i] = new_app_config->customized_traffic.size_lambda[i]; - } - } else if(!strcmp((char *) event.key, "ustomized_traffic.stream")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.stream[i] = new_app_config->customized_traffic.stream[i]; - } - } else if(!strcmp((char *) event.key, "customized_traffic.destination_port")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.destination_port[i] = new_app_config->customized_traffic.destination_port[i]; - } - } else if(!strcmp((char *) event.key, "customized_traffic.prob_off_pu")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.prob_off_pu[i] = new_app_config->customized_traffic.prob_off_pu[i]; - } - } else if(!strcmp((char *) event.key, "customized_traffic.prob_off_ed")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.prob_off_ed[i] = new_app_config->customized_traffic.prob_off_ed[i]; - } - } else if(!strcmp((char *) event.key, "customized_traffic.prob_off_pe")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.prob_off_pe[i] = new_app_config->customized_traffic.prob_off_pe[i]; - } - } else if(!strcmp((char *) event.key, "customized_traffic.prob_pu_ed")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.prob_pu_ed[i] = new_app_config->customized_traffic.prob_pu_ed[i];// - } - } else if(!strcmp((char *) event.key, "customized_traffic.prob_pu_pe")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.prob_pu_pe[i] = new_app_config->customized_traffic.prob_pu_pe[i]; - } - } else if(!strcmp((char *) event.key, "customized_traffic.prob_ed_pe")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.prob_ed_pe[i] = new_app_config->customized_traffic.prob_ed_pe[i]; - } - } else if(!strcmp((char *) event.key, "customized_traffic.prob_ed_pu")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.prob_ed_pu[i] = new_app_config->customized_traffic.prob_ed_pu[i]; - } - } else if(!strcmp((char *) event.key, "customized_traffic.holding_time_off_ed")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.holding_time_off_ed[i] = new_app_config->customized_traffic.holding_time_off_ed[i]; - } - } else if(!strcmp((char *) event.key, "customized_traffic.holding_time_off_pu")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.holding_time_off_pu[i] = new_app_config->customized_traffic.holding_time_off_pu[i]; - } - } else if(!strcmp((char *) event.key, "customized_traffic.holding_time_off_pe")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.holding_time_off_pe[i] = new_app_config->customized_traffic.holding_time_off_pe[i]; - } - } else if(!strcmp((char *) event.key, "customized_traffic.holding_time_pe_off")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.holding_time_pe_off[i] = new_app_config->customized_traffic.holding_time_pe_off[i]; - } - } else if(!strcmp((char *) event.key, "customized_traffic.pu_size_pkts")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.pu_size_pkts[i] = new_app_config->customized_traffic.pu_size_pkts[i]; - } - } else if(!strcmp((char *) event.key, "customized_traffic.ed_size_pkts")) { - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation->application_config.customized_traffic.ed_size_pkts[i] = new_app_config->customized_traffic.ed_size_pkts[i]; - } - } - - } -} - -void update_emu_model(Event_t event) -{ - // Emulation_Config emulation_config; /*!< \brief Emulation configuration */ - - - printf("\n\n\nA NEW EMU MODEL\n\n\n"); - OAI_Emulation *oai_emulation; - oai_emulation = get_OAI_emulation(); - - if(event.optype == READ) { - if(event.key == NULL) { - LOG_I(EMU,"emulation_time_ms %G\n",oai_emulation->emulation_config.emulation_time_ms); - LOG_I(EMU,"curve %s\n",oai_emulation->emulation_config.curve); - LOG_I(EMU,"brackground_stats %s\n",oai_emulation->emulation_config.background_stats); - - //performance metrics - LOG_I(EMU,"performance_metrics.throughput %s\n",oai_emulation->emulation_config.performance_metrics.throughput); - LOG_I(EMU,"performance_metrics.latency %s\n",oai_emulation->emulation_config.performance_metrics.latency); - LOG_I(EMU,"performance_metrics.loss_rate %s\n",oai_emulation->emulation_config.performance_metrics.loss_rate); - LOG_I(EMU,"performance_metrics.owd_radio_access %s\n",oai_emulation->emulation_config.performance_metrics.owd_radio_access); - LOG_I(EMU,"performance_metrics.signalling_overhead %d\n",oai_emulation->emulation_config.performance_metrics.signalling_overhead); - - //Layer - LOG_I(EMU,"layer.phy %d\n",oai_emulation->emulation_config.layer.phy); - LOG_I(EMU,"layer.mac %d\n",oai_emulation->emulation_config.layer.mac); - LOG_I(EMU,"layer.rlc %d\n",oai_emulation->emulation_config.layer.rlc); - LOG_I(EMU,"layer.rrc %d\n",oai_emulation->emulation_config.layer.rrc); - LOG_I(EMU,"layer.pdcp %d\n",oai_emulation->emulation_config.layer.pdcp); - LOG_I(EMU,"layer.omg %d\n",oai_emulation->emulation_config.layer.omg); - LOG_I(EMU,"layer.emu %d\n",oai_emulation->emulation_config.layer.emu); - LOG_I(EMU,"layer.otg %d\n",oai_emulation->emulation_config.layer.otg); - - //Log_emu - LOG_I(EMU,"log_emu.level %s\n",oai_emulation->emulation_config.log_emu.level); - LOG_I(EMU,"log_emu.verbosity %s\n",oai_emulation->emulation_config.log_emu.verbosity); - LOG_I(EMU,"log_emu.interval %d\n",oai_emulation->emulation_config.log_emu.interval); - - //Packet_trace - LOG_I(EMU,"packet_trace.enabled %d\n",oai_emulation->emulation_config.packet_trace.enabled); - LOG_I(EMU,"packet_trace.start_time %u\n",oai_emulation->emulation_config.packet_trace.start_time); - LOG_I(EMU,"packet_trace.end_time %u\n",oai_emulation->emulation_config.packet_trace.end_time); - - //Seed - LOG_I(EMU,"seed.value %d\n",oai_emulation->emulation_config.seed.value); - - } else if (!strcmp((char *) event.key, "emulation_time_ms")) { - LOG_I(EMU,"emulation_time_ms %G\n",oai_emulation->emulation_config.emulation_time_ms); - } else if (!strcmp((char *) event.key, "curve")) { - LOG_I(EMU,"curve %s\n",oai_emulation->emulation_config.curve); - } else if (!strcmp((char *) event.key, "brackground_stats")) { - LOG_I(EMU,"brackground_stats %s\n",oai_emulation->emulation_config.background_stats); - } else if (!strcmp((char *) event.key, "performance_metrics.throughput")) { - LOG_I(EMU,"performance_metrics.throughput %s\n",oai_emulation->emulation_config.performance_metrics.throughput); - } else if (!strcmp((char *) event.key, "performance_metrics.latency")) { - LOG_I(EMU,"performance_metrics.latency %s\n",oai_emulation->emulation_config.performance_metrics.latency); - } else if (!strcmp((char *) event.key, "performance_metrics.loss_rate")) { - LOG_I(EMU,"performance_metrics.loss_rate %s\n",oai_emulation->emulation_config.performance_metrics.loss_rate); - } else if (!strcmp((char *) event.key, "performance_metrics.owd_radio_access")) { - LOG_I(EMU,"performance_metrics.owd_radio_access %s\n",oai_emulation->emulation_config.performance_metrics.owd_radio_access); - } else if (!strcmp((char *) event.key, "performance_metrics.signalling_overhead")) { - LOG_I(EMU,"performance_metrics.signalling_overhead %d\n",oai_emulation->emulation_config.performance_metrics.signalling_overhead); - } else if (!strcmp((char *) event.key, "layer.phy")) { - LOG_I(EMU,"layer.phy %d\n",oai_emulation->emulation_config.layer.phy); - } else if (!strcmp((char *) event.key, "layer.mac")) { - LOG_I(EMU,"layer.mac %d\n",oai_emulation->emulation_config.layer.mac); - } else if (!strcmp((char *) event.key, "layer.rlc")) { - LOG_I(EMU,"layer.rlc %d\n",oai_emulation->emulation_config.layer.rlc); - } else if (!strcmp((char *) event.key, "layer.rrc")) { - LOG_I(EMU,"layer.rrc %d\n",oai_emulation->emulation_config.layer.rrc); - } else if (!strcmp((char *) event.key, "layer.pdcp")) { - LOG_I(EMU,"layer.pdcp %d\n",oai_emulation->emulation_config.layer.pdcp); - } else if (!strcmp((char *) event.key, "layer.omg")) { - LOG_I(EMU,"layer.omg %d\n",oai_emulation->emulation_config.layer.omg); - } else if (!strcmp((char *) event.key, "layer.emu")) { - LOG_I(EMU,"layer.emu %d\n",oai_emulation->emulation_config.layer.emu); - } else if (!strcmp((char *) event.key, "layer.otg")) { - LOG_I(EMU,"layer.otg %d\n",oai_emulation->emulation_config.layer.otg); - } else if (!strcmp((char *) event.key, "log_emu.level")) { - LOG_I(EMU,"log_emu.level %s\n",oai_emulation->emulation_config.log_emu.level); - } else if (!strcmp((char *) event.key, "log_emu.verbosity")) { - LOG_I(EMU,"log_emu.verbosity %s\n",oai_emulation->emulation_config.log_emu.verbosity); - } else if (!strcmp((char *) event.key, "log_emu.interval")) { - LOG_I(EMU,"log_emu.interval %d\n",oai_emulation->emulation_config.log_emu.interval); - } else if (!strcmp((char *) event.key, "packet_trace.enabled")) { - LOG_I(EMU,"packet_trace.enabled %d\n",oai_emulation->emulation_config.packet_trace.enabled); - } else if (!strcmp((char *) event.key, "packet_trace.start_time")) { - LOG_I(EMU,"packet_trace.start_time %u\n",oai_emulation->emulation_config.packet_trace.start_time); - } else if (!strcmp((char *) event.key, "packet_trace.end_time")) { - LOG_I(EMU,"packet_trace.end_time %u\n",oai_emulation->emulation_config.packet_trace.end_time); - } else if (!strcmp((char *) event.key, "customized_traffic_ed_size_pkts")) { - LOG_I(EMU,"seed.value %d\n",oai_emulation->emulation_config.seed.value); - } - } else if(event.optype == WRITE && event.value!=NULL) { - Emulation_Config * new_emu_config = (Emulation_Config *) event.value; - - if(event.key==NULL) { - //update all parameters - - oai_emulation->emulation_config.emulation_time_ms = new_emu_config->emulation_time_ms; - sprintf(oai_emulation->emulation_config.curve,"%s",new_emu_config->curve); - sprintf(oai_emulation->emulation_config.background_stats,"%s",new_emu_config->background_stats); - - //performance metrics - sprintf(oai_emulation->emulation_config.performance_metrics.throughput,"%s",new_emu_config->performance_metrics.throughput); - sprintf(oai_emulation->emulation_config.performance_metrics.latency,"%s",new_emu_config->performance_metrics.latency); - sprintf(oai_emulation->emulation_config.performance_metrics.loss_rate,"%s",new_emu_config->performance_metrics.loss_rate); - sprintf(oai_emulation->emulation_config.performance_metrics.owd_radio_access,"%s",new_emu_config->performance_metrics.owd_radio_access); - oai_emulation->emulation_config.performance_metrics.signalling_overhead = new_emu_config->performance_metrics.signalling_overhead; - - //Layer - oai_emulation->emulation_config.layer.phy = new_emu_config->layer.phy; - oai_emulation->emulation_config.layer.mac = new_emu_config->layer.mac; - oai_emulation->emulation_config.layer.rlc = new_emu_config->layer.rlc; - oai_emulation->emulation_config.layer.rrc = new_emu_config->layer.rrc; - oai_emulation->emulation_config.layer.pdcp = new_emu_config->layer.pdcp; - oai_emulation->emulation_config.layer.omg = new_emu_config->layer.omg; - oai_emulation->emulation_config.layer.emu = new_emu_config->layer.emu; - oai_emulation->emulation_config.layer.otg = new_emu_config->layer.otg; - - //Log_emu - sprintf(oai_emulation->emulation_config.log_emu.level,"%s",new_emu_config->log_emu.level); - sprintf(oai_emulation->emulation_config.log_emu.verbosity,"%s",new_emu_config->log_emu.verbosity); - oai_emulation->emulation_config.log_emu.interval = new_emu_config->log_emu.interval; - - //Packet_trace - oai_emulation->emulation_config.packet_trace.enabled = new_emu_config->packet_trace.enabled ; - oai_emulation->emulation_config.packet_trace.start_time = new_emu_config->packet_trace.start_time; - oai_emulation->emulation_config.packet_trace.end_time = new_emu_config->packet_trace.end_time; - - //Seed - oai_emulation->emulation_config.seed.value = new_emu_config->packet_trace.end_time; - } else if(event.key != NULL) { - - if (!strcmp((char *) event.key, "emulation_time_ms")) { - oai_emulation->emulation_config.emulation_time_ms = new_emu_config->emulation_time_ms; - } else if (!strcmp((char *) event.key, "curve")) { - sprintf(oai_emulation->emulation_config.curve,"%s",new_emu_config->curve); - } else if (!strcmp((char *) event.key, "brackground_stats")) { - sprintf(oai_emulation->emulation_config.background_stats,"%s",new_emu_config->background_stats); - } else if (!strcmp((char *) event.key, "performance_metrics.throughput")) { - sprintf(oai_emulation->emulation_config.performance_metrics.throughput,"%s",new_emu_config->performance_metrics.throughput); - } else if (!strcmp((char *) event.key, "performance_metrics.latency")) { - sprintf(oai_emulation->emulation_config.performance_metrics.latency,"%s",new_emu_config->performance_metrics.latency); - } else if (!strcmp((char *) event.key, "performance_metrics.loss_rate")) { - sprintf(oai_emulation->emulation_config.performance_metrics.loss_rate,"%s",new_emu_config->performance_metrics.loss_rate); - } else if (!strcmp((char *) event.key, "performance_metrics.owd_radio_access")) { - sprintf(oai_emulation->emulation_config.performance_metrics.owd_radio_access,"%s",new_emu_config->performance_metrics.owd_radio_access); - } else if (!strcmp((char *) event.key, "performance_metrics.signalling_overhead")) { - oai_emulation->emulation_config.performance_metrics.signalling_overhead = new_emu_config->performance_metrics.signalling_overhead; - } else if (!strcmp((char *) event.key, "layer.phy")) { - oai_emulation->emulation_config.layer.phy = new_emu_config->layer.phy; - } else if (!strcmp((char *) event.key, "layer.mac")) { - oai_emulation->emulation_config.layer.mac = new_emu_config->layer.mac; - } else if (!strcmp((char *) event.key, "layer.rlc")) { - oai_emulation->emulation_config.layer.rlc = new_emu_config->layer.rlc; - } else if (!strcmp((char *) event.key, "layer.rrc")) { - oai_emulation->emulation_config.layer.rrc = new_emu_config->layer.rrc; - } else if (!strcmp((char *) event.key, "layer.pdcp")) { - oai_emulation->emulation_config.layer.pdcp = new_emu_config->layer.pdcp; - } else if (!strcmp((char *) event.key, "layer.omg")) { - oai_emulation->emulation_config.layer.omg = new_emu_config->layer.omg; - } else if (!strcmp((char *) event.key, "layer.emu")) { - oai_emulation->emulation_config.layer.emu = new_emu_config->layer.emu; - } else if (!strcmp((char *) event.key, "layer.otg")) { - oai_emulation->emulation_config.layer.otg = new_emu_config->layer.otg; - } else if (!strcmp((char *) event.key, "log_emu.level")) { - sprintf(oai_emulation->emulation_config.log_emu.level,"%s",new_emu_config->log_emu.level); - } else if (!strcmp((char *) event.key, "log_emu.verbosity")) { - sprintf(oai_emulation->emulation_config.log_emu.verbosity,"%s",new_emu_config->log_emu.verbosity); - } else if (!strcmp((char *) event.key, "log_emu.interval")) { - oai_emulation->emulation_config.log_emu.interval = new_emu_config->log_emu.interval; - } else if (!strcmp((char *) event.key, "packet_trace.enabled")) { - oai_emulation->emulation_config.packet_trace.enabled = new_emu_config->packet_trace.enabled ; - } else if (!strcmp((char *) event.key, "packet_trace.start_time")) { - oai_emulation->emulation_config.packet_trace.start_time = new_emu_config->packet_trace.start_time; - } else if (!strcmp((char *) event.key, "packet_trace.end_time")) { - oai_emulation->emulation_config.packet_trace.end_time = new_emu_config->packet_trace.end_time; - } else if (!strcmp((char *) event.key, "customized_traffic_ed_size_pkts")) { - oai_emulation->emulation_config.seed.value = new_emu_config->packet_trace.end_time; - } - } - } - -} - - -int validate_mac(Event_t event) -{ - int i=0; - - if(event.key ==NULL && event.value!=NULL) { - Mac_config* mac_config;// = malloc(sizeof(Mac_config)*16); - mac_config = (Mac_config *) event.value; - - if(event.ue == -1 && event.lcid == -1) { - for(i=0; i0 && mac_config[i].ue_AggregatedMaximumBitrateDL<10000000000)) - return 0; - } - - if(&mac_config[i].ue_AggregatedMaximumBitrateUL !=NULL) { - if(!(mac_config[i].ue_AggregatedMaximumBitrateUL>0 && mac_config[i].ue_AggregatedMaximumBitrateUL<10000000000)) - return 0; - } - - if(&mac_config[i].cqiSchedInterval !=NULL ) { - if(!(mac_config[i].cqiSchedInterval==1 || mac_config[i].cqiSchedInterval==2 || mac_config[i].cqiSchedInterval==5 || mac_config[i].cqiSchedInterval==10 || mac_config[i].cqiSchedInterval==20 - || mac_config[i].cqiSchedInterval==32 || mac_config[i].cqiSchedInterval==40 || mac_config[i].cqiSchedInterval==64 || mac_config[i].cqiSchedInterval==80 || mac_config[i].cqiSchedInterval==128 - || mac_config[i].cqiSchedInterval==160)) - return 0; - } - - if(&mac_config[i].mac_ContentionResolutionTimer !=NULL) { - if(!(mac_config[i].mac_ContentionResolutionTimer==8 || mac_config[i].mac_ContentionResolutionTimer==16 || mac_config[i].mac_ContentionResolutionTimer==24 - || mac_config[i].mac_ContentionResolutionTimer==32 || mac_config[i].mac_ContentionResolutionTimer==40 || mac_config[i].mac_ContentionResolutionTimer==48 - || mac_config[i].mac_ContentionResolutionTimer==56 || mac_config[i].mac_ContentionResolutionTimer==64)) - return 0; - } - - if(mac_config->max_allowed_rbs !=NULL) { - int j=0; - - for(j=0; j=0 && mac_config[i].max_mcs[j]<=27)) - return 0; - } - - } - } - } - } - - if(event.key==NULL && event.value!=NULL && event.ue!=-1 && event.lcid!=-1) { - //check one param - - Mac_config* mac_config;// = malloc(sizeof(Mac_config)*16); - mac_config = (Mac_config *) event.value; - - i = event.ue; - int j = event.lcid; - - if(&mac_config[i].DCI_aggregation_min) { - if(mac_config[i].DCI_aggregation_min<=0) { - return 0; - } - - } - - if(&mac_config[i].DLSCH_dci_size_bits !=NULL) { - if(mac_config[i].DLSCH_dci_size_bits <=0) { - return 0; - } - } - - if(mac_config[i].priority !=NULL) { - if(&mac_config[i].priority[j]!=NULL) { - if(mac_config[i].priority[j]<=0) { - return 0; - } - } - - } - - if(&mac_config[i].ul_bandwidth !=NULL) { - - if(!(mac_config[i].ul_bandwidth[j]==6 || mac_config[i].ul_bandwidth[j]==15 || mac_config[i].ul_bandwidth[j]==25 || mac_config[i].ul_bandwidth[j]==50 || mac_config[i].ul_bandwidth[j]==75 - || mac_config[i].ul_bandwidth[j]==100)) - return 0; - - } - - if(&mac_config[i].dl_bandwidth !=NULL) { - - if(!(mac_config[i].dl_bandwidth[j]==6 || mac_config[i].dl_bandwidth[j]==15 || mac_config[i].dl_bandwidth[j]==25 || mac_config[i].dl_bandwidth[j]==50 || mac_config[i].dl_bandwidth[j]==75 - || mac_config[i].dl_bandwidth[j]==100)) - return 0; - - } - - if(&mac_config[i].min_ul_bandwidth !=NULL) { - - if(!(mac_config[i].min_ul_bandwidth[j]==6 || mac_config[i].min_ul_bandwidth[j]==15 || mac_config[i].min_ul_bandwidth[j]==25 || mac_config[i].min_ul_bandwidth[j]==50 - || mac_config[i].min_ul_bandwidth[j]==75 || mac_config[i].min_ul_bandwidth[j]==100)) - return 0; - - } - - if(&mac_config[i].min_dl_bandwidth !=NULL) { - - if(!(mac_config[i].min_dl_bandwidth[j]==6 || mac_config[i].min_dl_bandwidth[j]==15 || mac_config[i].min_dl_bandwidth[j]==25 || mac_config[i].min_dl_bandwidth[j]==50 - || mac_config[i].min_dl_bandwidth[j]==75 || mac_config[i].min_dl_bandwidth[j]==100)) - return 0; - - } - - if(&mac_config[i].ue_AggregatedMaximumBitrateDL !=NULL) { - if(!(mac_config[i].ue_AggregatedMaximumBitrateDL>0 && mac_config[i].ue_AggregatedMaximumBitrateDL<10000000000)) - return 0; - } - - if(&mac_config[i].ue_AggregatedMaximumBitrateUL !=NULL) { - if(!(mac_config[i].ue_AggregatedMaximumBitrateUL>0 && mac_config[i].ue_AggregatedMaximumBitrateUL<10000000000)) - return 0; - } - - if(&mac_config[i].cqiSchedInterval !=NULL) { - if(!(mac_config[i].cqiSchedInterval==1 || mac_config[i].cqiSchedInterval==2 || mac_config[i].cqiSchedInterval==5 || mac_config[i].cqiSchedInterval==10 || mac_config[i].cqiSchedInterval==20 - || mac_config[i].cqiSchedInterval==32 || mac_config[i].cqiSchedInterval==40 || mac_config[i].cqiSchedInterval==64 || mac_config[i].cqiSchedInterval==80 || mac_config[i].cqiSchedInterval==128 - || mac_config[i].cqiSchedInterval==160)) - return 0; - } - - if(&mac_config[i].mac_ContentionResolutionTimer !=NULL) { - if(!(mac_config[i].mac_ContentionResolutionTimer==8 || mac_config[i].mac_ContentionResolutionTimer==16 || mac_config[i].mac_ContentionResolutionTimer==24 - || mac_config[i].mac_ContentionResolutionTimer==32 || mac_config[i].mac_ContentionResolutionTimer==40 || mac_config[i].mac_ContentionResolutionTimer==48 - || mac_config[i].mac_ContentionResolutionTimer==56 || mac_config[i].mac_ContentionResolutionTimer==64)) - return 0; - - } - - if(mac_config->max_allowed_rbs !=NULL) { - - if(mac_config[i].max_allowed_rbs[j]<=0) - return 0; - - } - - if(mac_config[i].max_mcs !=NULL) { - if(!(mac_config[i].max_mcs[j]>=0 && mac_config[i].max_mcs[j]<=27)) - return 0; - } - - - } - - if(event.key!=NULL && event.value!=NULL) { - //printf("check one param"); - if(!strcmp((char *) event.key, "priority") && event.value!=NULL) { - Mac_config* mac_config;// = malloc(sizeof(Mac_config)*16); - mac_config = (Mac_config *) event.value; - int j=0; - - if(event.ue == -1 && event.lcid ==-1) { - for(i=0; i0 && mac_config[i].ue_AggregatedMaximumBitrateDL<10000000000)) - return 0; - } - } else { - i = event.ue; - - if(!(mac_config[i].ue_AggregatedMaximumBitrateDL>0 && mac_config[i].ue_AggregatedMaximumBitrateDL<10000000000)) - return 0; - } - - } else if(!strcmp((char *) event.key, "ue_AggregatedMaximumBitrateUL") && event.value!=NULL) { - - Mac_config* mac_config;// = malloc(sizeof(Mac_config)*16); - mac_config = (Mac_config *) event.value; - - - - if(event.ue == -1) { - for(i=0; i0 && mac_config[i].ue_AggregatedMaximumBitrateUL<10000000000)) - return 0; - } - } else { - i = event.ue; - - if(!(mac_config[i].ue_AggregatedMaximumBitrateUL>0 && mac_config[i].ue_AggregatedMaximumBitrateUL<10000000000)) - return 0; - } - - } else if(!strcmp((char *) event.key, "cqiSchedInterval") && event.value!=NULL) { - Mac_config* mac_config;// = malloc(sizeof(Mac_config)*16); - mac_config = (Mac_config *) event.value; - - if(event.ue == -1) { - for(i=0; i=0 && mac_config[i].max_mcs[j]<=27)) - return 0; - - } - } - - } - } else { - i = event.ue; - j = event.lcid; - - if(!(mac_config[i].max_mcs[j]>=0 && mac_config[i].max_mcs[j]<=27)) - return 0; - - } - } - - } - - return 1; - - -} - diff --git a/targets/SIMU/USER/event_handler.h b/targets/SIMU/USER/event_handler.h deleted file mode 100644 index d6579fd411..0000000000 --- a/targets/SIMU/USER/event_handler.h +++ /dev/null @@ -1,65 +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 event_handler.h -* \brief primitives to handle event acting on oai -* \author Navid Nikaein and Mohamed Said MOSLI BOUKSIAA, -* \date 2014 -* \version 0.5 -* @ingroup _oai -*/ - -#include "oaisim.h" -#include "UTIL/FIFO/pad_list.h" - - - -void add_event(Event_t event); - -void schedule(Operation_Type_t op, Event_Type_t type, int frame, char * key, void* value, int ue, int lcid); - -void schedule_delayed(Operation_Type_t op, Event_Type_t type, char * key, void* value, char * time, int ue, int lcid); - -void schedule_events(void); - -void execute_events(frame_t frame); - - -void update_oai_model(char * key, void * value); - -void update_sys_model(Event_t event); - -void update_topo_model(Event_t event); - -void update_app_model(Event_t event); - -void update_emu_model(Event_t event); - -void update_mac(Event_t event); - -int validate_mac(Event_t event); - - -/* -void schedule_end_of_simulation(End_Of_Sim_Event_Type type, int value); - -int end_of_simulation(); -*/ diff --git a/targets/SIMU/USER/files/MI_16qam.csv b/targets/SIMU/USER/files/MI_16qam.csv deleted file mode 100644 index 3cdbecc270..0000000000 --- a/targets/SIMU/USER/files/MI_16qam.csv +++ /dev/null @@ -1,3 +0,0 @@ --20,-19.8,-19.6,-19.4,-19.2,-19,-18.8,-18.6,-18.4,-18.2,-18,-17.8,-17.6,-17.4,-17.2,-17,-16.8,-16.6,-16.4,-16.2,-16,-15.8,-15.6,-15.4,-15.2,-15,-14.8,-14.6,-14.4,-14.2,-14,-13.8,-13.6,-13.4,-13.2,-13,-12.8,-12.6,-12.4,-12.2,-12,-11.8,-11.6,-11.4,-11.2,-11,-10.8,-10.6,-10.4,-10.2,-10,-9.8,-9.6,-9.4,-9.2,-9,-8.8,-8.6,-8.4,-8.2,-8,-7.8,-7.6,-7.4,-7.2,-7,-6.8,-6.6,-6.4,-6.2,-6,-5.8,-5.6,-5.4,-5.2,-5,-4.8,-4.6,-4.4,-4.2,-4,-3.8,-3.6,-3.4,-3.2,-3,-2.8,-2.6,-2.4,-2.2,-2,-1.8,-1.6,-1.4,-1.2,-1,-0.8,-0.6,-0.4,-0.2,0,0.2,0.4,0.6,0.8,1,1.2,1.4,1.6,1.8,2,2.2,2.4,2.6,2.8,3,3.2,3.4,3.6,3.8,4,4.2,4.4,4.6,4.8,5,5.2,5.4,5.6,5.8,6,6.2,6.4,6.6,6.8,7,7.2,7.4,7.6,7.8,8,8.2,8.4,8.6,8.8,9,9.2,9.4,9.6,9.8,10,10.2,10.4,10.6,10.8,11,11.2,11.4,11.6,11.8,12,12.2,12.4,12.6,12.8,13,13.2,13.4,13.6,13.8,14,14.2,14.4,14.6,14.8,15,15.2,15.4,15.6,15.8,16,16.2,16.4,16.6,16.8,17,17.2,17.4,17.6,17.8,18,18.2,18.4,18.6,18.8,19,19.2 -0.014138,0.014992,0.015845,0.016699,0.017553,0.018407,0.01923,0.020054,0.020878,0.021701,0.022525,0.02368,0.024834,0.025989,0.027144,0.028299,0.029822,0.031346,0.03287,0.034393,0.035917,0.03769,0.039464,0.041237,0.043011,0.044784,0.047124,0.049465,0.051806,0.054146,0.056487,0.059209,0.061931,0.064654,0.067376,0.070098,0.073673,0.077247,0.080822,0.084396,0.087971,0.092295,0.09662,0.10094,0.10527,0.10959,0.11501,0.12043,0.12585,0.13127,0.13669,0.14362,0.15054,0.15747,0.1644,0.17133,0.17954,0.18776,0.19598,0.2042,0.21241,0.2223,0.23219,0.24208,0.25197,0.26186,0.27399,0.28613,0.29827,0.31041,0.32255,0.33706,0.35158,0.36609,0.38061,0.39513,0.41234,0.42955,0.44676,0.46397,0.48118,0.50187,0.52256,0.54325,0.56394,0.58463,0.60797,0.63131,0.65465,0.678,0.70134,0.72903,0.75673,0.78442,0.81212,0.83981,0.86994,0.90007,0.9302,0.96033,0.99047,1.0241,1.0577,1.0914,1.125,1.1587,1.1954,1.2321,1.2688,1.3054,1.3421,1.3818,1.4214,1.4611,1.5007,1.5404,1.5828,1.6253,1.6678,1.7102,1.7527,1.7968,1.8408,1.8849,1.929,1.9731,2.0189,2.0647,2.1105,2.1563,2.2022,2.2501,2.298,2.346,2.3939,2.4418,2.4901,2.5384,2.5867,2.6349,2.6832,2.7321,2.7811,2.83,2.8789,2.9279,2.9751,3.0224,3.0697,3.117,3.1643,3.2083,3.2524,3.2964,3.3404,3.3844,3.4235,3.4626,3.5017,3.5407,3.5798,3.6112,3.6426,3.674,3.7054,3.7368,3.7602,3.7835,3.8068,3.8302,3.8535,3.8685,3.8836,3.8986,3.9137,3.9288,3.9372,3.9456,3.954,3.9624,3.9708,3.9747,3.9786,3.9825,3.9864,3.9903,3.9918,3.9932,3.9947,3.9961,3.9975,3.9979,3.9983,3.9987,3.9991,3.9995,4 -0.0035344,0.0037479,0.0039613,0.0041748,0.0043882,0.0046017,0.0048076,0.0050135,0.0052194,0.0054254,0.0056313,0.0059199,0.0062086,0.0064973,0.006786,0.0070746,0.0074556,0.0078365,0.0082174,0.0085983,0.0089792,0.0094226,0.0098659,0.010309,0.010753,0.011196,0.011781,0.012366,0.012951,0.013537,0.014122,0.014802,0.015483,0.016163,0.016844,0.017525,0.018418,0.019312,0.020205,0.021099,0.021993,0.023074,0.024155,0.025236,0.026317,0.027398,0.028753,0.030108,0.031463,0.032818,0.034173,0.035904,0.037636,0.039368,0.0411,0.042831,0.044886,0.04694,0.048994,0.051049,0.053103,0.055575,0.058047,0.06052,0.062992,0.065464,0.068498,0.071533,0.074568,0.077602,0.080637,0.084266,0.087895,0.091524,0.095153,0.098782,0.10308,0.10739,0.11169,0.11599,0.12029,0.12547,0.13064,0.13581,0.14098,0.14616,0.15199,0.15783,0.16366,0.1695,0.17533,0.18226,0.18918,0.19611,0.20303,0.20995,0.21749,0.22502,0.23255,0.24008,0.24762,0.25603,0.26444,0.27285,0.28126,0.28967,0.29884,0.30801,0.31719,0.32636,0.33554,0.34545,0.35536,0.36527,0.37518,0.3851,0.39571,0.40632,0.41694,0.42755,0.43817,0.44919,0.46021,0.47123,0.48226,0.49328,0.50473,0.51618,0.52763,0.53909,0.55054,0.56252,0.57451,0.58649,0.59847,0.61046,0.62253,0.6346,0.64667,0.65874,0.67081,0.68304,0.69527,0.7075,0.71973,0.73196,0.74379,0.75561,0.76743,0.77925,0.79108,0.80208,0.81309,0.8241,0.8351,0.84611,0.85588,0.86565,0.87541,0.88518,0.89495,0.9028,0.91065,0.9185,0.92635,0.93421,0.94004,0.94587,0.95171,0.95754,0.96337,0.96714,0.9709,0.97466,0.97843,0.98219,0.98429,0.98639,0.9885,0.9906,0.9927,0.99368,0.99465,0.99563,0.99661,0.99758,0.99794,0.9983,0.99866,0.99902,0.99938,0.99948,0.99958,0.99968,0.99978,0.99988,1 diff --git a/targets/SIMU/USER/files/MI_16qam.txt b/targets/SIMU/USER/files/MI_16qam.txt deleted file mode 100644 index 5671a89426..0000000000 --- a/targets/SIMU/USER/files/MI_16qam.txt +++ /dev/null @@ -1,3 +0,0 @@ --20;-19.8;-19.6;-19.4;-19.2;-19;-18.8;-18.6;-18.4;-18.2;-18;-17.8;-17.6;-17.4;-17.2;-17;-16.8;-16.6;-16.4;-16.2;-16;-15.8;-15.6;-15.4;-15.2;-15;-14.8;-14.6;-14.4;-14.2;-14;-13.8;-13.6;-13.4;-13.2;-13;-12.8;-12.6;-12.4;-12.2;-12;-11.8;-11.6;-11.4;-11.2;-11;-10.8;-10.6;-10.4;-10.2;-10;-9.8;-9.6;-9.4;-9.2;-9;-8.8;-8.6;-8.4;-8.2;-8;-7.8;-7.6;-7.4;-7.2;-7;-6.8;-6.6;-6.4;-6.2;-6;-5.8;-5.6;-5.4;-5.2;-5;-4.8;-4.6;-4.4;-4.2;-4;-3.8;-3.6;-3.4;-3.2;-3;-2.8;-2.6;-2.4;-2.2;-2;-1.8;-1.6;-1.4;-1.2;-1;-0.8;-0.6;-0.4;-0.2;0;0.2;0.4;0.6;0.8;1;1.2;1.4;1.6;1.8;2;2.2;2.4;2.6;2.8;3;3.2;3.4;3.6;3.8;4;4.2;4.4;4.6;4.8;5;5.2;5.4;5.6;5.8;6;6.2;6.4;6.6;6.8;7;7.2;7.4;7.6;7.8;8;8.2;8.4;8.6;8.8;9;9.2;9.4;9.6;9.8;10;10.2;10.4;10.6;10.8;11;11.2;11.4;11.6;11.8;12;12.2;12.4;12.6;12.8;13;13.2;13.4;13.6;13.8;14;14.2;14.4;14.6;14.8;15;15.2;15.4;15.6;15.8;16;16.2;16.4;16.6;16.8;17;17.2;17.4;17.6;17.8;18;18.2;18.4;18.6;18.8;19;19.2 -0.014138;0.014992;0.015845;0.016699;0.017553;0.018407;0.01923;0.020054;0.020878;0.021701;0.022525;0.02368;0.024834;0.025989;0.027144;0.028299;0.029822;0.031346;0.03287;0.034393;0.035917;0.03769;0.039464;0.041237;0.043011;0.044784;0.047124;0.049465;0.051806;0.054146;0.056487;0.059209;0.061931;0.064654;0.067376;0.070098;0.073673;0.077247;0.080822;0.084396;0.087971;0.092295;0.09662;0.10094;0.10527;0.10959;0.11501;0.12043;0.12585;0.13127;0.13669;0.14362;0.15054;0.15747;0.1644;0.17133;0.17954;0.18776;0.19598;0.2042;0.21241;0.2223;0.23219;0.24208;0.25197;0.26186;0.27399;0.28613;0.29827;0.31041;0.32255;0.33706;0.35158;0.36609;0.38061;0.39513;0.41234;0.42955;0.44676;0.46397;0.48118;0.50187;0.52256;0.54325;0.56394;0.58463;0.60797;0.63131;0.65465;0.678;0.70134;0.72903;0.75673;0.78442;0.81212;0.83981;0.86994;0.90007;0.9302;0.96033;0.99047;1.0241;1.0577;1.0914;1.125;1.1587;1.1954;1.2321;1.2688;1.3054;1.3421;1.3818;1.4214;1.4611;1.5007;1.5404;1.5828;1.6253;1.6678;1.7102;1.7527;1.7968;1.8408;1.8849;1.929;1.9731;2.0189;2.0647;2.1105;2.1563;2.2022;2.2501;2.298;2.346;2.3939;2.4418;2.4901;2.5384;2.5867;2.6349;2.6832;2.7321;2.7811;2.83;2.8789;2.9279;2.9751;3.0224;3.0697;3.117;3.1643;3.2083;3.2524;3.2964;3.3404;3.3844;3.4235;3.4626;3.5017;3.5407;3.5798;3.6112;3.6426;3.674;3.7054;3.7368;3.7602;3.7835;3.8068;3.8302;3.8535;3.8685;3.8836;3.8986;3.9137;3.9288;3.9372;3.9456;3.954;3.9624;3.9708;3.9747;3.9786;3.9825;3.9864;3.9903;3.9918;3.9932;3.9947;3.9961;3.9975;3.9979;3.9983;3.9987;3.9991;3.9995;4 -0.0035344;0.0037479;0.0039613;0.0041748;0.0043882;0.0046017;0.0048076;0.0050135;0.0052194;0.0054254;0.0056313;0.0059199;0.0062086;0.0064973;0.006786;0.0070746;0.0074556;0.0078365;0.0082174;0.0085983;0.0089792;0.0094226;0.0098659;0.010309;0.010753;0.011196;0.011781;0.012366;0.012951;0.013537;0.014122;0.014802;0.015483;0.016163;0.016844;0.017525;0.018418;0.019312;0.020205;0.021099;0.021993;0.023074;0.024155;0.025236;0.026317;0.027398;0.028753;0.030108;0.031463;0.032818;0.034173;0.035904;0.037636;0.039368;0.0411;0.042831;0.044886;0.04694;0.048994;0.051049;0.053103;0.055575;0.058047;0.06052;0.062992;0.065464;0.068498;0.071533;0.074568;0.077602;0.080637;0.084266;0.087895;0.091524;0.095153;0.098782;0.10308;0.10739;0.11169;0.11599;0.12029;0.12547;0.13064;0.13581;0.14098;0.14616;0.15199;0.15783;0.16366;0.1695;0.17533;0.18226;0.18918;0.19611;0.20303;0.20995;0.21749;0.22502;0.23255;0.24008;0.24762;0.25603;0.26444;0.27285;0.28126;0.28967;0.29884;0.30801;0.31719;0.32636;0.33554;0.34545;0.35536;0.36527;0.37518;0.3851;0.39571;0.40632;0.41694;0.42755;0.43817;0.44919;0.46021;0.47123;0.48226;0.49328;0.50473;0.51618;0.52763;0.53909;0.55054;0.56252;0.57451;0.58649;0.59847;0.61046;0.62253;0.6346;0.64667;0.65874;0.67081;0.68304;0.69527;0.7075;0.71973;0.73196;0.74379;0.75561;0.76743;0.77925;0.79108;0.80208;0.81309;0.8241;0.8351;0.84611;0.85588;0.86565;0.87541;0.88518;0.89495;0.9028;0.91065;0.9185;0.92635;0.93421;0.94004;0.94587;0.95171;0.95754;0.96337;0.96714;0.9709;0.97466;0.97843;0.98219;0.98429;0.98639;0.9885;0.9906;0.9927;0.99368;0.99465;0.99563;0.99661;0.99758;0.99794;0.9983;0.99866;0.99902;0.99938;0.99948;0.99958;0.99968;0.99978;0.99988;1 diff --git a/targets/SIMU/USER/files/MI_4qam.csv b/targets/SIMU/USER/files/MI_4qam.csv deleted file mode 100644 index a2f43a0bbd..0000000000 --- a/targets/SIMU/USER/files/MI_4qam.csv +++ /dev/null @@ -1,3 +0,0 @@ --20,-19.8,-19.6,-19.4,-19.2,-19,-18.8,-18.6,-18.4,-18.2,-18,-17.8,-17.6,-17.4,-17.2,-17,-16.8,-16.6,-16.4,-16.2,-16,-15.8,-15.6,-15.4,-15.2,-15,-14.8,-14.6,-14.4,-14.2,-14,-13.8,-13.6,-13.4,-13.2,-13,-12.8,-12.6,-12.4,-12.2,-12,-11.8,-11.6,-11.4,-11.2,-11,-10.8,-10.6,-10.4,-10.2,-10,-9.8,-9.6,-9.4,-9.2,-9,-8.8,-8.6,-8.4,-8.2,-8,-7.8,-7.6,-7.4,-7.2,-7,-6.8,-6.6,-6.4,-6.2,-6,-5.8,-5.6,-5.4,-5.2,-5,-4.8,-4.6,-4.4,-4.2,-4,-3.8,-3.6,-3.4,-3.2,-3,-2.8,-2.6,-2.4,-2.2,-2,-1.8,-1.6,-1.4,-1.2,-1,-0.8,-0.6,-0.4,-0.2,0,0.2,0.4,0.6,0.8,1,1.2,1.4,1.6,1.8,2,2.2,2.4,2.6,2.8,3,3.2,3.4,3.6,3.8,4,4.2,4.4,4.6,4.8,5,5.2,5.4,5.6,5.8,6,6.2,6.4,6.6,6.8,7,7.2,7.4,7.6,7.8,8,8.2,8.4,8.6,8.8,9,9.2,9.4,9.6,9.8,10,10.2,10.4,10.6,10.8,11,11.2,11.4,11.6,11.8,12,12.2 -0.014938,0.015535,0.016131,0.016727,0.017324,0.01792,0.018791,0.019662,0.020533,0.021404,0.022276,0.023689,0.025102,0.026515,0.027928,0.029341,0.030588,0.031835,0.033082,0.034329,0.035575,0.03748,0.039384,0.041289,0.043193,0.045098,0.047475,0.049853,0.05223,0.054607,0.056985,0.059606,0.062228,0.06485,0.067472,0.070094,0.07367,0.077247,0.080824,0.0844,0.087977,0.092384,0.096792,0.1012,0.10561,0.11001,0.11567,0.12133,0.12699,0.13265,0.13831,0.14512,0.15193,0.15874,0.16555,0.17236,0.18045,0.18854,0.19663,0.20472,0.21282,0.22319,0.23357,0.24395,0.25433,0.26471,0.27602,0.28733,0.29863,0.30994,0.32125,0.33583,0.35041,0.36499,0.37957,0.39415,0.4114,0.42865,0.4459,0.46315,0.4804,0.50048,0.52055,0.54063,0.5607,0.58078,0.60421,0.62764,0.65107,0.6745,0.69793,0.72389,0.74984,0.7758,0.80176,0.82771,0.85656,0.88541,0.91425,0.9431,0.97194,1.0031,1.0343,1.0655,1.0967,1.1279,1.1592,1.1905,1.2218,1.2531,1.2845,1.3156,1.3467,1.3778,1.4089,1.44,1.4699,1.4999,1.5298,1.5598,1.5897,1.6156,1.6414,1.6672,1.6931,1.7189,1.7397,1.7606,1.7814,1.8022,1.823,1.839,1.8549,1.8708,1.8868,1.9027,1.9124,1.922,1.9317,1.9414,1.9511,1.9569,1.9628,1.9687,1.9745,1.9804,1.9831,1.9857,1.9884,1.991,1.9937,1.9947,1.9957,1.9967,1.9977,1.9986,1.9989,1.9991,1.9993,1.9996,1.9998,2 -0.0074691,0.0077673,0.0080654,0.0083636,0.0086618,0.00896,0.0093955,0.0098311,0.010267,0.010702,0.011138,0.011844,0.012551,0.013257,0.013964,0.014671,0.015294,0.015917,0.016541,0.017164,0.017788,0.01874,0.019692,0.020644,0.021597,0.022549,0.023738,0.024926,0.026115,0.027304,0.028492,0.029803,0.031114,0.032425,0.033736,0.035047,0.036835,0.038623,0.040412,0.0422,0.043988,0.046192,0.048396,0.050599,0.052803,0.055007,0.057836,0.060666,0.063496,0.066325,0.069155,0.07256,0.075965,0.07937,0.082775,0.08618,0.090225,0.094271,0.098317,0.10236,0.10641,0.1116,0.11679,0.12198,0.12717,0.13235,0.13801,0.14366,0.14932,0.15497,0.16063,0.16792,0.17521,0.1825,0.18979,0.19708,0.2057,0.21433,0.22295,0.23158,0.2402,0.25024,0.26028,0.27031,0.28035,0.29039,0.3021,0.31382,0.32553,0.33725,0.34897,0.36194,0.37492,0.3879,0.40088,0.41386,0.42828,0.4427,0.45713,0.47155,0.48597,0.50156,0.51715,0.53275,0.54834,0.56393,0.57959,0.59525,0.61091,0.62657,0.64223,0.65779,0.67334,0.68889,0.70445,0.72,0.73497,0.74994,0.76492,0.77989,0.79486,0.80778,0.8207,0.83362,0.84654,0.85946,0.86987,0.88029,0.8907,0.90111,0.91152,0.91948,0.92745,0.93542,0.94338,0.95135,0.95619,0.96102,0.96586,0.9707,0.97554,0.97847,0.9814,0.98433,0.98727,0.9902,0.99153,0.99286,0.99419,0.99552,0.99685,0.99735,0.99784,0.99834,0.99883,0.99932,0.99944,0.99956,0.99967,0.99979,0.9999,1 diff --git a/targets/SIMU/USER/files/MI_4qam.txt b/targets/SIMU/USER/files/MI_4qam.txt deleted file mode 100644 index ba1b46094a..0000000000 --- a/targets/SIMU/USER/files/MI_4qam.txt +++ /dev/null @@ -1,3 +0,0 @@ --20;-19.8;-19.6;-19.4;-19.2;-19;-18.8;-18.6;-18.4;-18.2;-18;-17.8;-17.6;-17.4;-17.2;-17;-16.8;-16.6;-16.4;-16.2;-16;-15.8;-15.6;-15.4;-15.2;-15;-14.8;-14.6;-14.4;-14.2;-14;-13.8;-13.6;-13.4;-13.2;-13;-12.8;-12.6;-12.4;-12.2;-12;-11.8;-11.6;-11.4;-11.2;-11;-10.8;-10.6;-10.4;-10.2;-10;-9.8;-9.6;-9.4;-9.2;-9;-8.8;-8.6;-8.4;-8.2;-8;-7.8;-7.6;-7.4;-7.2;-7;-6.8;-6.6;-6.4;-6.2;-6;-5.8;-5.6;-5.4;-5.2;-5;-4.8;-4.6;-4.4;-4.2;-4;-3.8;-3.6;-3.4;-3.2;-3;-2.8;-2.6;-2.4;-2.2;-2;-1.8;-1.6;-1.4;-1.2;-1;-0.8;-0.6;-0.4;-0.2;0;0.2;0.4;0.6;0.8;1;1.2;1.4;1.6;1.8;2;2.2;2.4;2.6;2.8;3;3.2;3.4;3.6;3.8;4;4.2;4.4;4.6;4.8;5;5.2;5.4;5.6;5.8;6;6.2;6.4;6.6;6.8;7;7.2;7.4;7.6;7.8;8;8.2;8.4;8.6;8.8;9;9.2;9.4;9.6;9.8;10;10.2;10.4;10.6;10.8;11;11.2;11.4;11.6;11.8;12;12.2 -0.014938;0.015535;0.016131;0.016727;0.017324;0.01792;0.018791;0.019662;0.020533;0.021404;0.022276;0.023689;0.025102;0.026515;0.027928;0.029341;0.030588;0.031835;0.033082;0.034329;0.035575;0.03748;0.039384;0.041289;0.043193;0.045098;0.047475;0.049853;0.05223;0.054607;0.056985;0.059606;0.062228;0.06485;0.067472;0.070094;0.07367;0.077247;0.080824;0.0844;0.087977;0.092384;0.096792;0.1012;0.10561;0.11001;0.11567;0.12133;0.12699;0.13265;0.13831;0.14512;0.15193;0.15874;0.16555;0.17236;0.18045;0.18854;0.19663;0.20472;0.21282;0.22319;0.23357;0.24395;0.25433;0.26471;0.27602;0.28733;0.29863;0.30994;0.32125;0.33583;0.35041;0.36499;0.37957;0.39415;0.4114;0.42865;0.4459;0.46315;0.4804;0.50048;0.52055;0.54063;0.5607;0.58078;0.60421;0.62764;0.65107;0.6745;0.69793;0.72389;0.74984;0.7758;0.80176;0.82771;0.85656;0.88541;0.91425;0.9431;0.97194;1.0031;1.0343;1.0655;1.0967;1.1279;1.1592;1.1905;1.2218;1.2531;1.2845;1.3156;1.3467;1.3778;1.4089;1.44;1.4699;1.4999;1.5298;1.5598;1.5897;1.6156;1.6414;1.6672;1.6931;1.7189;1.7397;1.7606;1.7814;1.8022;1.823;1.839;1.8549;1.8708;1.8868;1.9027;1.9124;1.922;1.9317;1.9414;1.9511;1.9569;1.9628;1.9687;1.9745;1.9804;1.9831;1.9857;1.9884;1.991;1.9937;1.9947;1.9957;1.9967;1.9977;1.9986;1.9989;1.9991;1.9993;1.9996;1.9998;2 -0.0074691;0.0077673;0.0080654;0.0083636;0.0086618;0.00896;0.0093955;0.0098311;0.010267;0.010702;0.011138;0.011844;0.012551;0.013257;0.013964;0.014671;0.015294;0.015917;0.016541;0.017164;0.017788;0.01874;0.019692;0.020644;0.021597;0.022549;0.023738;0.024926;0.026115;0.027304;0.028492;0.029803;0.031114;0.032425;0.033736;0.035047;0.036835;0.038623;0.040412;0.0422;0.043988;0.046192;0.048396;0.050599;0.052803;0.055007;0.057836;0.060666;0.063496;0.066325;0.069155;0.07256;0.075965;0.07937;0.082775;0.08618;0.090225;0.094271;0.098317;0.10236;0.10641;0.1116;0.11679;0.12198;0.12717;0.13235;0.13801;0.14366;0.14932;0.15497;0.16063;0.16792;0.17521;0.1825;0.18979;0.19708;0.2057;0.21433;0.22295;0.23158;0.2402;0.25024;0.26028;0.27031;0.28035;0.29039;0.3021;0.31382;0.32553;0.33725;0.34897;0.36194;0.37492;0.3879;0.40088;0.41386;0.42828;0.4427;0.45713;0.47155;0.48597;0.50156;0.51715;0.53275;0.54834;0.56393;0.57959;0.59525;0.61091;0.62657;0.64223;0.65779;0.67334;0.68889;0.70445;0.72;0.73497;0.74994;0.76492;0.77989;0.79486;0.80778;0.8207;0.83362;0.84654;0.85946;0.86987;0.88029;0.8907;0.90111;0.91152;0.91948;0.92745;0.93542;0.94338;0.95135;0.95619;0.96102;0.96586;0.9707;0.97554;0.97847;0.9814;0.98433;0.98727;0.9902;0.99153;0.99286;0.99419;0.99552;0.99685;0.99735;0.99784;0.99834;0.99883;0.99932;0.99944;0.99956;0.99967;0.99979;0.9999;1 diff --git a/targets/SIMU/USER/files/MI_64qam.csv b/targets/SIMU/USER/files/MI_64qam.csv deleted file mode 100644 index d24cd371d3..0000000000 --- a/targets/SIMU/USER/files/MI_64qam.csv +++ /dev/null @@ -1,3 +0,0 @@ --20,-19.8,-19.6,-19.4,-19.2,-19,-18.8,-18.6,-18.4,-18.2,-18,-17.8,-17.6,-17.4,-17.2,-17,-16.8,-16.6,-16.4,-16.2,-16,-15.8,-15.6,-15.4,-15.2,-15,-14.8,-14.6,-14.4,-14.2,-14,-13.8,-13.6,-13.4,-13.2,-13,-12.8,-12.6,-12.4,-12.2,-12,-11.8,-11.6,-11.4,-11.2,-11,-10.8,-10.6,-10.4,-10.2,-10,-9.8,-9.6,-9.4,-9.2,-9,-8.8,-8.6,-8.4,-8.2,-8,-7.8,-7.6,-7.4,-7.2,-7,-6.8,-6.6,-6.4,-6.2,-6,-5.8,-5.6,-5.4,-5.2,-5,-4.8,-4.6,-4.4,-4.2,-4,-3.8,-3.6,-3.4,-3.2,-3,-2.8,-2.6,-2.4,-2.2,-2,-1.8,-1.6,-1.4,-1.2,-1,-0.8,-0.6,-0.4,-0.2,0,0.2,0.4,0.6,0.8,1,1.2,1.4,1.6,1.8,2,2.2,2.4,2.6,2.8,3,3.2,3.4,3.6,3.8,4,4.2,4.4,4.6,4.8,5,5.2,5.4,5.6,5.8,6,6.2,6.4,6.6,6.8,7,7.2,7.4,7.6,7.8,8,8.2,8.4,8.6,8.8,9,9.2,9.4,9.6,9.8,10,10.2,10.4,10.6,10.8,11,11.2,11.4,11.6,11.8,12,12.2,12.4,12.6,12.8,13,13.2,13.4,13.6,13.8,14,14.2,14.4,14.6,14.8,15,15.2,15.4,15.6,15.8,16,16.2,16.4,16.6,16.8,17,17.2,17.4,17.6,17.8,18,18.2,18.4,18.6,18.8,19,19.2,19.4,19.6,19.8,20,20.2,20.4,20.6,20.8,21,21.2,21.4,21.6,21.8,22,22.2,22.4,22.6,22.8,23,23.2,23.4,23.6,23.8,24,24.2,24.4,24.6,24.8,25,25.2 -0.014329,0.015063,0.015797,0.016531,0.017266,0.018,0.01893,0.01986,0.020791,0.021721,0.022651,0.023849,0.025047,0.026245,0.027443,0.028642,0.03008,0.031518,0.032957,0.034395,0.035834,0.037611,0.039388,0.041166,0.042943,0.04472,0.046979,0.049237,0.051496,0.053755,0.056013,0.058941,0.061869,0.064797,0.067725,0.070653,0.074193,0.077734,0.081274,0.084814,0.088355,0.092706,0.097057,0.10141,0.10576,0.11011,0.11555,0.121,0.12644,0.13188,0.13733,0.14408,0.15084,0.1576,0.16435,0.17111,0.17937,0.18763,0.19589,0.20415,0.21241,0.22245,0.23248,0.24252,0.25256,0.2626,0.27469,0.28678,0.29888,0.31097,0.32306,0.33766,0.35225,0.36685,0.38144,0.39604,0.41344,0.43084,0.44824,0.46564,0.48304,0.50338,0.52372,0.54407,0.56441,0.58475,0.60833,0.63192,0.6555,0.67908,0.70266,0.73007,0.75747,0.78488,0.81228,0.83969,0.86999,0.9003,0.9306,0.96091,0.99121,1.0254,1.0595,1.0937,1.1279,1.162,1.1993,1.2365,1.2737,1.3109,1.3482,1.3887,1.4293,1.4699,1.5104,1.551,1.5939,1.6368,1.6797,1.7226,1.7655,1.8112,1.8568,1.9025,1.9482,1.9938,2.041,2.0882,2.1353,2.1825,2.2296,2.2795,2.3293,2.3791,2.4289,2.4788,2.53,2.5813,2.6326,2.6839,2.7351,2.7877,2.8403,2.8929,2.9455,2.9981,3.0522,3.1063,3.1604,3.2145,3.2686,3.3237,3.3788,3.4339,3.489,3.5441,3.6003,3.6564,3.7125,3.7686,3.8247,3.8815,3.9384,3.9952,4.052,4.1089,4.1662,4.2235,4.2808,4.3381,4.3954,4.4527,4.5099,4.5671,4.6244,4.6816,4.7375,4.7934,4.8492,4.9051,4.961,5.0138,5.0666,5.1195,5.1723,5.2251,5.2722,5.3192,5.3662,5.4132,5.4603,5.4992,5.538,5.5769,5.6158,5.6547,5.684,5.7134,5.7427,5.772,5.8013,5.821,5.8408,5.8605,5.8803,5.9,5.9114,5.9229,5.9343,5.9458,5.9572,5.9628,5.9684,5.974,5.9796,5.9852,5.9874,5.9895,5.9917,5.9938,5.996,5.9967,5.9973,5.998,5.9986,5.9993,6 -0.0023882,0.0025106,0.0026329,0.0027552,0.0028776,0.0029999,0.003155,0.00331,0.0034651,0.0036202,0.0037752,0.0039749,0.0041746,0.0043742,0.0045739,0.0047736,0.0050133,0.0052531,0.0054928,0.0057325,0.0059723,0.0062685,0.0065647,0.0068609,0.0071571,0.0074534,0.0078298,0.0082062,0.0085827,0.0089591,0.0093356,0.0098236,0.010312,0.0108,0.011288,0.011776,0.012366,0.012956,0.013546,0.014136,0.014726,0.015451,0.016176,0.016901,0.017627,0.018352,0.019259,0.020166,0.021073,0.02198,0.022888,0.024014,0.02514,0.026266,0.027392,0.028519,0.029895,0.031272,0.032648,0.034025,0.035401,0.037074,0.038747,0.04042,0.042094,0.043767,0.045782,0.047797,0.049813,0.051828,0.053844,0.056276,0.058709,0.061141,0.063574,0.066006,0.068906,0.071806,0.074706,0.077606,0.080506,0.083897,0.087287,0.090678,0.094068,0.097458,0.10139,0.10532,0.10925,0.11318,0.11711,0.12168,0.12625,0.13081,0.13538,0.13995,0.145,0.15005,0.1551,0.16015,0.1652,0.1709,0.17659,0.18228,0.18798,0.19367,0.19988,0.20608,0.21229,0.21849,0.22469,0.23146,0.23822,0.24498,0.25174,0.2585,0.26565,0.2728,0.27995,0.2871,0.29425,0.30186,0.30947,0.31708,0.32469,0.3323,0.34016,0.34803,0.35589,0.36375,0.37161,0.37991,0.38822,0.39652,0.40482,0.41313,0.42167,0.43022,0.43876,0.44731,0.45586,0.46462,0.47338,0.48215,0.49091,0.49968,0.50869,0.51771,0.52673,0.53575,0.54476,0.55395,0.56313,0.57232,0.58151,0.59069,0.60004,0.6094,0.61875,0.6281,0.63745,0.64692,0.6564,0.66587,0.67534,0.68481,0.69437,0.70392,0.71347,0.72302,0.73257,0.74211,0.75165,0.76119,0.77073,0.78026,0.78958,0.79889,0.80821,0.81752,0.82683,0.83564,0.84444,0.85325,0.86205,0.87085,0.87869,0.88653,0.89437,0.90221,0.91004,0.91653,0.92301,0.92949,0.93597,0.94245,0.94734,0.95223,0.95711,0.962,0.96688,0.97017,0.97346,0.97675,0.98004,0.98333,0.98524,0.98715,0.98906,0.99096,0.99287,0.9938,0.99474,0.99567,0.9966,0.99754,0.9979,0.99826,0.99862,0.99897,0.99933,0.99944,0.99955,0.99966,0.99977,0.99988,1 diff --git a/targets/SIMU/USER/files/MI_64qam.txt b/targets/SIMU/USER/files/MI_64qam.txt deleted file mode 100644 index 9b6365eea0..0000000000 --- a/targets/SIMU/USER/files/MI_64qam.txt +++ /dev/null @@ -1,3 +0,0 @@ --20;-19.8;-19.6;-19.4;-19.2;-19;-18.8;-18.6;-18.4;-18.2;-18;-17.8;-17.6;-17.4;-17.2;-17;-16.8;-16.6;-16.4;-16.2;-16;-15.8;-15.6;-15.4;-15.2;-15;-14.8;-14.6;-14.4;-14.2;-14;-13.8;-13.6;-13.4;-13.2;-13;-12.8;-12.6;-12.4;-12.2;-12;-11.8;-11.6;-11.4;-11.2;-11;-10.8;-10.6;-10.4;-10.2;-10;-9.8;-9.6;-9.4;-9.2;-9;-8.8;-8.6;-8.4;-8.2;-8;-7.8;-7.6;-7.4;-7.2;-7;-6.8;-6.6;-6.4;-6.2;-6;-5.8;-5.6;-5.4;-5.2;-5;-4.8;-4.6;-4.4;-4.2;-4;-3.8;-3.6;-3.4;-3.2;-3;-2.8;-2.6;-2.4;-2.2;-2;-1.8;-1.6;-1.4;-1.2;-1;-0.8;-0.6;-0.4;-0.2;0;0.2;0.4;0.6;0.8;1;1.2;1.4;1.6;1.8;2;2.2;2.4;2.6;2.8;3;3.2;3.4;3.6;3.8;4;4.2;4.4;4.6;4.8;5;5.2;5.4;5.6;5.8;6;6.2;6.4;6.6;6.8;7;7.2;7.4;7.6;7.8;8;8.2;8.4;8.6;8.8;9;9.2;9.4;9.6;9.8;10;10.2;10.4;10.6;10.8;11;11.2;11.4;11.6;11.8;12;12.2;12.4;12.6;12.8;13;13.2;13.4;13.6;13.8;14;14.2;14.4;14.6;14.8;15;15.2;15.4;15.6;15.8;16;16.2;16.4;16.6;16.8;17;17.2;17.4;17.6;17.8;18;18.2;18.4;18.6;18.8;19;19.2;19.4;19.6;19.8;20;20.2;20.4;20.6;20.8;21;21.2;21.4;21.6;21.8;22;22.2;22.4;22.6;22.8;23;23.2;23.4;23.6;23.8;24;24.2;24.4;24.6;24.8;25;25.2 -0.014329;0.015063;0.015797;0.016531;0.017266;0.018;0.01893;0.01986;0.020791;0.021721;0.022651;0.023849;0.025047;0.026245;0.027443;0.028642;0.03008;0.031518;0.032957;0.034395;0.035834;0.037611;0.039388;0.041166;0.042943;0.04472;0.046979;0.049237;0.051496;0.053755;0.056013;0.058941;0.061869;0.064797;0.067725;0.070653;0.074193;0.077734;0.081274;0.084814;0.088355;0.092706;0.097057;0.10141;0.10576;0.11011;0.11555;0.121;0.12644;0.13188;0.13733;0.14408;0.15084;0.1576;0.16435;0.17111;0.17937;0.18763;0.19589;0.20415;0.21241;0.22245;0.23248;0.24252;0.25256;0.2626;0.27469;0.28678;0.29888;0.31097;0.32306;0.33766;0.35225;0.36685;0.38144;0.39604;0.41344;0.43084;0.44824;0.46564;0.48304;0.50338;0.52372;0.54407;0.56441;0.58475;0.60833;0.63192;0.6555;0.67908;0.70266;0.73007;0.75747;0.78488;0.81228;0.83969;0.86999;0.9003;0.9306;0.96091;0.99121;1.0254;1.0595;1.0937;1.1279;1.162;1.1993;1.2365;1.2737;1.3109;1.3482;1.3887;1.4293;1.4699;1.5104;1.551;1.5939;1.6368;1.6797;1.7226;1.7655;1.8112;1.8568;1.9025;1.9482;1.9938;2.041;2.0882;2.1353;2.1825;2.2296;2.2795;2.3293;2.3791;2.4289;2.4788;2.53;2.5813;2.6326;2.6839;2.7351;2.7877;2.8403;2.8929;2.9455;2.9981;3.0522;3.1063;3.1604;3.2145;3.2686;3.3237;3.3788;3.4339;3.489;3.5441;3.6003;3.6564;3.7125;3.7686;3.8247;3.8815;3.9384;3.9952;4.052;4.1089;4.1662;4.2235;4.2808;4.3381;4.3954;4.4527;4.5099;4.5671;4.6244;4.6816;4.7375;4.7934;4.8492;4.9051;4.961;5.0138;5.0666;5.1195;5.1723;5.2251;5.2722;5.3192;5.3662;5.4132;5.4603;5.4992;5.538;5.5769;5.6158;5.6547;5.684;5.7134;5.7427;5.772;5.8013;5.821;5.8408;5.8605;5.8803;5.9;5.9114;5.9229;5.9343;5.9458;5.9572;5.9628;5.9684;5.974;5.9796;5.9852;5.9874;5.9895;5.9917;5.9938;5.996;5.9967;5.9973;5.998;5.9986;5.9993;6 -0.0023882;0.0025106;0.0026329;0.0027552;0.0028776;0.0029999;0.003155;0.00331;0.0034651;0.0036202;0.0037752;0.0039749;0.0041746;0.0043742;0.0045739;0.0047736;0.0050133;0.0052531;0.0054928;0.0057325;0.0059723;0.0062685;0.0065647;0.0068609;0.0071571;0.0074534;0.0078298;0.0082062;0.0085827;0.0089591;0.0093356;0.0098236;0.010312;0.0108;0.011288;0.011776;0.012366;0.012956;0.013546;0.014136;0.014726;0.015451;0.016176;0.016901;0.017627;0.018352;0.019259;0.020166;0.021073;0.02198;0.022888;0.024014;0.02514;0.026266;0.027392;0.028519;0.029895;0.031272;0.032648;0.034025;0.035401;0.037074;0.038747;0.04042;0.042094;0.043767;0.045782;0.047797;0.049813;0.051828;0.053844;0.056276;0.058709;0.061141;0.063574;0.066006;0.068906;0.071806;0.074706;0.077606;0.080506;0.083897;0.087287;0.090678;0.094068;0.097458;0.10139;0.10532;0.10925;0.11318;0.11711;0.12168;0.12625;0.13081;0.13538;0.13995;0.145;0.15005;0.1551;0.16015;0.1652;0.1709;0.17659;0.18228;0.18798;0.19367;0.19988;0.20608;0.21229;0.21849;0.22469;0.23146;0.23822;0.24498;0.25174;0.2585;0.26565;0.2728;0.27995;0.2871;0.29425;0.30186;0.30947;0.31708;0.32469;0.3323;0.34016;0.34803;0.35589;0.36375;0.37161;0.37991;0.38822;0.39652;0.40482;0.41313;0.42167;0.43022;0.43876;0.44731;0.45586;0.46462;0.47338;0.48215;0.49091;0.49968;0.50869;0.51771;0.52673;0.53575;0.54476;0.55395;0.56313;0.57232;0.58151;0.59069;0.60004;0.6094;0.61875;0.6281;0.63745;0.64692;0.6564;0.66587;0.67534;0.68481;0.69437;0.70392;0.71347;0.72302;0.73257;0.74211;0.75165;0.76119;0.77073;0.78026;0.78958;0.79889;0.80821;0.81752;0.82683;0.83564;0.84444;0.85325;0.86205;0.87085;0.87869;0.88653;0.89437;0.90221;0.91004;0.91653;0.92301;0.92949;0.93597;0.94245;0.94734;0.95223;0.95711;0.962;0.96688;0.97017;0.97346;0.97675;0.98004;0.98333;0.98524;0.98715;0.98906;0.99096;0.99287;0.9938;0.99474;0.99567;0.9966;0.99754;0.9979;0.99826;0.99862;0.99897;0.99933;0.99944;0.99955;0.99966;0.99977;0.99988;1 diff --git a/targets/SIMU/USER/init_lte.c b/targets/SIMU/USER/init_lte.c deleted file mode 100644 index 13b9026640..0000000000 --- a/targets/SIMU/USER/init_lte.c +++ /dev/null @@ -1,278 +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 -#include -#include -#include -#include - -#include "init_lte.h" - -#include "PHY/phy_extern.h" - -#include "LAYER2/MAC/mac.h" -#include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log_if.h" -#include "PHY_INTERFACE/phy_interface.h" - - -/* -PHY_VARS_eNB* init_lte_eNB(LTE_DL_FRAME_PARMS *frame_parms, - uint8_t eNB_id, - uint8_t Nid_cell, - node_function_t node_function, - uint8_t abstraction_flag) -{ - - int i,j; - PHY_VARS_eNB* PHY_vars_eNB = malloc(sizeof(PHY_VARS_eNB)); - memset(PHY_vars_eNB,0,sizeof(PHY_VARS_eNB)); - PHY_vars_eNB->Mod_id=eNB_id; - memcpy(&(PHY_vars_eNB->frame_parms), frame_parms, sizeof(LTE_DL_FRAME_PARMS)); - PHY_vars_eNB->frame_parms.Nid_cell = ((Nid_cell/3)*3)+((eNB_id+Nid_cell)%3); - PHY_vars_eNB->frame_parms.nushift = PHY_vars_eNB->frame_parms.Nid_cell%6; - phy_init_lte_eNB(PHY_vars_eNB,0,abstraction_flag); - - LOG_I(PHY,"init eNB: Node Function %d\n",node_function); - LOG_I(PHY,"init eNB: Nid_cell %d\n", frame_parms->Nid_cell); - LOG_I(PHY,"init eNB: frame_type %d,tdd_config %d\n", frame_parms->frame_type,frame_parms->tdd_config); - LOG_I(PHY,"init eNB: number of ue max %d number of enb max %d number of harq pid max %d\n", - NUMBER_OF_UE_MAX, NUMBER_OF_eNB_MAX, NUMBER_OF_HARQ_PID_MAX); - LOG_I(PHY,"init eNB: N_RB_DL %d\n", frame_parms->N_RB_DL); - LOG_I(PHY,"init eNB: prach_config_index %d\n", frame_parms->prach_config_common.prach_ConfigInfo.prach_ConfigIndex); - - if (node_function >= NGFI_RRU_IF5) - // For RRU, don't allocate DLSCH/ULSCH Transport channel buffers - return (PHY_vars_eNB); - - - for (i=0; idlsch[i][j] = new_eNB_dlsch(1,8,NSOFT,frame_parms->N_RB_DL,abstraction_flag,frame_parms); - if (!PHY_vars_eNB->dlsch[i][j]) { - LOG_E(PHY,"Can't get eNB dlsch structures for UE %d \n", i); - exit(-1); - } else { - LOG_D(PHY,"dlsch[%d][%d] => %p\n",i,j,PHY_vars_eNB->dlsch[i][j]); - PHY_vars_eNB->dlsch[i][j]->rnti=0; - } - } - - - LOG_I(PHY,"Allocating Transport Channel Buffer for ULSCH, UE %d\n",i); - PHY_vars_eNB->ulsch[1+i] = new_eNB_ulsch(MAX_TURBO_ITERATIONS,frame_parms->N_RB_UL, abstraction_flag); - - if (!PHY_vars_eNB->ulsch[1+i]) { - LOG_E(PHY,"Can't get eNB ulsch structures\n"); - exit(-1); - } - - // this is the transmission mode for the signalling channels - // this will be overwritten with the real transmission mode by the RRC once the UE is connected - PHY_vars_eNB->transmission_mode[i] = frame_parms->nb_antenna_ports_eNB==1 ? 1 : 2; -#ifdef LOCALIZATION - PHY_vars_eNB->ulsch[1+i]->aggregation_period_ms = 5000; // 5000 milliseconds // could be given as an argument (TBD)) - struct timeval ts; - gettimeofday(&ts, NULL); - PHY_vars_eNB->ulsch[1+i]->reference_timestamp_ms = ts.tv_sec * 1000 + ts.tv_usec / 1000; - int j; - - for (j=0; j<10; j++) { - initialize(&PHY_vars_eNB->ulsch[1+i]->loc_rss_list[j]); - initialize(&PHY_vars_eNB->ulsch[1+i]->loc_rssi_list[j]); - initialize(&PHY_vars_eNB->ulsch[1+i]->loc_subcarrier_rss_list[j]); - initialize(&PHY_vars_eNB->ulsch[1+i]->loc_timing_advance_list[j]); - initialize(&PHY_vars_eNB->ulsch[1+i]->loc_timing_update_list[j]); - } - - initialize(&PHY_vars_eNB->ulsch[1+i]->tot_loc_rss_list); - initialize(&PHY_vars_eNB->ulsch[1+i]->tot_loc_rssi_list); - initialize(&PHY_vars_eNB->ulsch[1+i]->tot_loc_subcarrier_rss_list); - initialize(&PHY_vars_eNB->ulsch[1+i]->tot_loc_timing_advance_list); - initialize(&PHY_vars_eNB->ulsch[1+i]->tot_loc_timing_update_list); -#endif - } - - // ULSCH for RA - PHY_vars_eNB->ulsch[0] = new_eNB_ulsch(MAX_TURBO_ITERATIONS, frame_parms->N_RB_UL, abstraction_flag); - - if (!PHY_vars_eNB->ulsch[0]) { - LOG_E(PHY,"Can't get eNB ulsch structures\n"); - exit(-1); - } - PHY_vars_eNB->dlsch_SI = new_eNB_dlsch(1,8,NSOFT,frame_parms->N_RB_DL, abstraction_flag, frame_parms); - LOG_D(PHY,"eNB %d : SI %p\n",eNB_id,PHY_vars_eNB->dlsch_SI); - PHY_vars_eNB->dlsch_ra = new_eNB_dlsch(1,8,NSOFT,frame_parms->N_RB_DL, abstraction_flag, frame_parms); - LOG_D(PHY,"eNB %d : RA %p\n",eNB_id,PHY_vars_eNB->dlsch_ra); - PHY_vars_eNB->dlsch_MCH = new_eNB_dlsch(1,8,NSOFT,frame_parms->N_RB_DL, 0, frame_parms); - LOG_D(PHY,"eNB %d : MCH %p\n",eNB_id,PHY_vars_eNB->dlsch_MCH); - - - PHY_vars_eNB->rx_total_gain_dB=130; - - for(i=0; imu_mimo_mode[i].dl_pow_off = 2; - - PHY_vars_eNB->check_for_total_transmissions = 0; - - PHY_vars_eNB->check_for_MUMIMO_transmissions = 0; - - PHY_vars_eNB->FULL_MUMIMO_transmissions = 0; - - PHY_vars_eNB->check_for_SUMIMO_transmissions = 0; - - PHY_vars_eNB->frame_parms.pucch_config_common.deltaPUCCH_Shift = 1; - - return (PHY_vars_eNB); -} -*/ - - -/* - -PHY_VARS_RN* init_lte_RN(LTE_DL_FRAME_PARMS *frame_parms, - uint8_t RN_id, - uint8_t eMBMS_active_state) -{ - - int i; - PHY_VARS_RN* PHY_vars_RN = malloc(sizeof(PHY_VARS_RN)); - memset(PHY_vars_RN,0,sizeof(PHY_VARS_RN)); - PHY_vars_RN->Mod_id=RN_id; - - if (eMBMS_active_state == multicast_relay) { - for (i=0; i < 10 ; i++) { // num SF in a frame - PHY_vars_RN->dlsch_rn_MCH[i] = new_ue_dlsch(1,1,NSOFT,MAX_TURBO_ITERATIONS_MBSFN,frame_parms->N_RB_DL, 0); - LOG_D(PHY,"eNB %d : MCH[%d] %p\n",RN_id,i,PHY_vars_RN->dlsch_rn_MCH[i]); - } - } else { - PHY_vars_RN->dlsch_rn_MCH[0] = new_ue_dlsch(1,1,NSOFT,MAX_TURBO_ITERATIONS,frame_parms->N_RB_DL, 0); - LOG_D(PHY,"eNB %d : MCH[0] %p\n",RN_id,PHY_vars_RN->dlsch_rn_MCH[0]); - } - - return (PHY_vars_RN); -} - -void init_lte_vars(LTE_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs], - uint8_t frame_type, - uint8_t tdd_config, - uint8_t tdd_config_S, - uint8_t extended_prefix_flag, - uint8_t N_RB_DL, - uint16_t Nid_cell, - uint8_t cooperation_flag, - uint8_t nb_antenna_ports, - uint8_t abstraction_flag, - int nb_antennas_rx, - int nb_antennas_tx, - int nb_antennas_rx_ue, - uint8_t eMBMS_active_state) -{ - - uint8_t eNB_id,UE_id,CC_id; - int i; - - - mac_xface = malloc(sizeof(MAC_xface)); - - memset(mac_xface, 0, sizeof(MAC_xface)); - - LOG_I(PHY,"init lte parms: Nid_cell %d, Frame type %d, N_RB_DL %d\n",Nid_cell,frame_type,N_RB_DL); - - for (CC_id=0; CC_idframe_type = frame_type; - (frame_parms[CC_id])->tdd_config = tdd_config; - (frame_parms[CC_id])->tdd_config_S = tdd_config_S; - (frame_parms[CC_id])->N_RB_DL = N_RB_DL; - (frame_parms[CC_id])->N_RB_UL = (frame_parms[CC_id])->N_RB_DL; - (frame_parms[CC_id])->phich_config_common.phich_resource = oneSixth; - (frame_parms[CC_id])->phich_config_common.phich_duration = normal; - (frame_parms[CC_id])->Ncp = extended_prefix_flag; - (frame_parms[CC_id])->Ncp_UL = extended_prefix_flag; - (frame_parms[CC_id])->Nid_cell = Nid_cell; - (frame_parms[CC_id])->nushift = (Nid_cell%6); - (frame_parms[CC_id])->nb_antennas_tx = nb_antennas_tx; - (frame_parms[CC_id])->nb_antennas_rx = nb_antennas_rx; - (frame_parms[CC_id])->nb_antenna_ports_eNB = nb_antenna_ports; - (frame_parms[CC_id])->mode1_flag = (frame_parms[CC_id])->nb_antenna_ports_eNB==1 ? 1 : 0; - - init_frame_parms(frame_parms[CC_id],1); - - (frame_parms[CC_id])->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift = 0;//n_DMRS1 set to 0 - (frame_parms[CC_id])->pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled = 1; - (frame_parms[CC_id])->pusch_config_common.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled = 0; - (frame_parms[CC_id])->pusch_config_common.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH = 0; - init_ul_hopping(frame_parms[CC_id]); - } - - - // phy_init_top(frame_parms[0]); - - phy_init_lte_top(frame_parms[0]); - - RC.nb_inst = NB_eNB_INST; - RC.nb_CC = (int *)malloc(MAX_NUM_CCs*sizeof(int)); - RC.nb_RU = NB_RU; - for (i=0;iMod_id=eNB_id; - RC.eNB[eNB_id][CC_id]->CC_id=CC_id; - } - } - - - PHY_vars_UE_g = (PHY_VARS_UE***)malloc(NB_UE_INST*sizeof(PHY_VARS_UE**)); - - for (UE_id=0; UE_idnb_antennas_tx = 1; - (frame_parms[CC_id])->nb_antennas_rx = nb_antennas_rx_ue; - PHY_vars_UE_g[UE_id][CC_id] = init_lte_UE(frame_parms[CC_id], UE_id,abstraction_flag); - PHY_vars_UE_g[UE_id][CC_id]->Mod_id=UE_id; - PHY_vars_UE_g[UE_id][CC_id]->CC_id=CC_id; - } - } - -// if (NB_RN_INST > 0) { -// PHY_vars_RN_g = malloc(NB_RN_INST*sizeof(PHY_VARS_RN*)); - -// for (RN_id=0; RN_id -#include -#include -#include -#include -#include -#include -#include -#include - -#include "event_handler.h" -#include "SIMULATION/RF/rf.h" -#include "PHY/types.h" -#include "PHY/defs_eNB.h" -#include "PHY/defs_UE.h" -#include "PHY/LTE_TRANSPORT/transport_proto.h" -#include "PHY/LTE_UE_TRANSPORT/transport_proto_ue.h" -#include "PHY/phy_vars.h" -#include "PHY/phy_vars_ue.h" -#include "SCHED/sched_common_vars.h" - -#include "LAYER2/MAC/mac.h" -#include "LAYER2/MAC/mac_proto.h" -#include "LAYER2/MAC/mac_vars.h" -#include "pdcp.h" -#include "RRC/LTE/rrc_vars.h" -#include "RRC/NAS/nas_config.h" - -#include "system.h" - - -#include "PHY/TOOLS/lte_phy_scope.h" - - -#ifdef SMBV -// Rohde&Schwarz SMBV100A vector signal generator -#include "PHY/TOOLS/smbv.h" -char smbv_fname[] = "smbv_config_file.smbv"; -unsigned short smbv_nframes = 4; // how many frames to configure 1,..,4 -unsigned short config_frames[4] = {2,9,11,13}; -unsigned char smbv_frame_cnt = 0; -uint8_t config_smbv = 0; -char smbv_ip[16]; -#endif - -#include "flexran_agent.h" - - -#include "oaisim_functions.h" - -#include "oaisim.h" -#include "oaisim_config.h" -#include "UTIL/OCG/OCG_extern.h" -#include "cor_SF_sim.h" -#include "UTIL/OMG/omg_constants.h" -#include "UTIL/FIFO/pad_list.h" -#include "enb_app.h" - -#include "../PROC/interface.h" -#include "../PROC/channel_sim_proc.h" -#include "../PROC/Tsync.h" -#include "../PROC/Process.h" - -#include "UTIL/LOG/vcd_signal_dumper.h" -#include "UTIL/OTG/otg_kpi.h" -#include "assertions.h" - -#if defined(ENABLE_ITTI) -# include "intertask_interface.h" -# include "create_tasks.h" -# include "intertask_interface_init.h" -#endif - -#include "T.h" - -/* - DCI0_5MHz_TDD0_t UL_alloc_pdu; - DCI1A_5MHz_TDD_1_6_t CCCH_alloc_pdu; - DCI2_5MHz_2A_L10PRB_TDD_t DLSCH_alloc_pdu1; - DCI2_5MHz_2A_M10PRB_TDD_t DLSCH_alloc_pdu2; -*/ - -#define UL_RB_ALLOC computeRIV(lte_frame_parms->N_RB_UL,0,24) -#define CCCH_RB_ALLOC computeRIV(lte_frame_parms->N_RB_UL,0,3) -#define RA_RB_ALLOC computeRIV(lte_frame_parms->N_RB_UL,0,3) -#define DLSCH_RB_ALLOC 0x1fff - -#define DECOR_DIST 100 -#define SF_VAR 10 - -//constant for OAISIM soft realtime calibration -//#define SF_DEVIATION_OFFSET_NS 100000 /*= 0.1ms : should be as a number of UE */ -//#define SLEEP_STEP_US 100 /* = 0.01ms could be adaptive, should be as a number of UE */ -//#define K 2 /* averaging coefficient */ -//#define TARGET_SF_TIME_NS 1000000 /* 1ms = 1000000 ns */ - -uint8_t usim_test = 0; - -frame_t frame = 0; -char stats_buffer[16384]; -channel_desc_t *RU2UE[NUMBER_OF_RU_MAX][NUMBER_OF_UE_MAX][MAX_NUM_CCs]; -channel_desc_t *UE2RU[NUMBER_OF_UE_MAX][NUMBER_OF_RU_MAX][MAX_NUM_CCs]; -//Added for PHY abstraction -node_desc_t *enb_data[NUMBER_OF_RU_MAX]; -node_desc_t *ue_data[NUMBER_OF_UE_MAX]; - -pthread_cond_t sync_cond; -pthread_mutex_t sync_mutex; -int sync_var=-1; - -pthread_mutex_t subframe_mutex; -int subframe_ru_mask=0,subframe_UE_mask=0; - -openair0_config_t openair0_cfg[MAX_CARDS]; -uint32_t downlink_frequency[MAX_NUM_CCs][4]; -int32_t uplink_frequency_offset[MAX_NUM_CCs][4]; -openair0_rf_map rf_map[MAX_NUM_CCs]; - -#if defined(ENABLE_ITTI) -volatile int start_eNB = 0; -volatile int start_UE = 0; -#endif -volatile int oai_exit = 0; - - -//int32_t **rxdata; -//int32_t **txdata; - -uint16_t sf_ahead=4; -uint8_t nfapi_mode = 0; - -// Added for PHY abstraction -extern node_list* ue_node_list; -extern node_list* enb_node_list; -extern int pdcp_period, omg_period; - -extern double **s_re, **s_im, **r_re, **r_im, **r_re0, **r_im0; -int map1, map2; -extern double **ShaF; -double snr_dB, sinr_dB, snr_direction; //,sinr_direction; -extern double snr_step; -extern uint8_t set_sinr; -extern uint8_t ue_connection_test; -extern uint8_t set_seed; -extern uint8_t target_dl_mcs; -extern uint8_t target_ul_mcs; -extern uint8_t abstraction_flag; -extern uint8_t ethernet_flag; -extern uint16_t Nid_cell; - - -double cpuf; -#include "threads_t.h" -threads_t threads= {-1,-1,-1,-1,-1,-1,-1}; - -//#ifdef XFORMS -int otg_enabled; -int xforms=0; -//#endif - -time_stats_t oaisim_stats; -time_stats_t oaisim_stats_f; -time_stats_t dl_chan_stats; -time_stats_t ul_chan_stats; - -int emulate_rf = 0; -int numerology = 0; -int codingw = 0; -int fepw = 0; - -// this should reflect the channel models in openair1/SIMULATION/TOOLS/defs.h -mapping small_scale_names[] = { - { "custom", custom }, { "SCM_A", SCM_A }, - { "SCM_B", SCM_B }, { "SCM_C", SCM_C }, - { "SCM_D", SCM_D }, { "EPA", EPA }, - { "EVA", EVA }, { "ETU", ETU }, - { "MBSFN", MBSFN }, { "Rayleigh8", Rayleigh8 }, - { "Rayleigh1", Rayleigh1 }, { "Rayleigh1_800", Rayleigh1_800 }, - { "Rayleigh1_corr", Rayleigh1_corr }, { "Rayleigh1_anticorr", Rayleigh1_anticorr }, - { "Rice8", Rice8 }, { "Rice1", Rice1 }, { "Rice1_corr", Rice1_corr }, - { "Rice1_anticorr", Rice1_anticorr }, { "AWGN", AWGN }, { NULL,-1 } -}; -#if !defined(ENABLE_ITTI) -static void * -sigh (void *arg); -#endif -void -oai_shutdown (void); - -void reset_opp_meas_oaisim (void); - -void wait_eNBs(void) -{ - return; -} - -void -help (void) -{ - printf ("Usage: oaisim -h -a -F -C tdd_config -K [log_file] -V [vcd_file] -R N_RB_DL -e -x transmission_mode -m target_dl_mcs -r(ate_adaptation) -n n_frames -s snr_dB -k ricean_factor -t max_delay -f forgetting factor -A channel_model -z cooperation_flag -u nb_local_ue -U UE mobility -b nb_local_enb -B eNB_mobility -M ethernet_flag -p nb_master -g multicast_group -l log_level -c ocg_enable -T traffic model -D multicast network device\n"); - - printf ("-h provides this help message!\n"); - printf ("-a Activates PHY abstraction mode\n"); - printf ("-A set the multipath channel simulation, options are: SCM_A, SCM_B, SCM_C, SCM_D, EPA, EVA, ETU, Rayleigh8, Rayleigh1, Rayleigh1_corr,Rayleigh1_anticorr, Rice8,, Rice1, AWGN \n"); - printf ("-b Set the number of local eNB\n"); - printf ("-B Set the mobility model for eNB, options are: STATIC, RWP, RWALK, \n"); - printf ("-c [1,2,3,4] Activate the config generator (OCG) to process the scenario descriptor, or give the scenario manually: -c template_1.xml \n"); - printf ("-C [0-6] Sets TDD configuration\n"); - printf ("-e Activates extended prefix mode\n"); - printf ("-E Random number generator seed\n"); - printf ("-f Set the forgetting factor for time-variation\n"); - printf ("-F Activates FDD transmission (TDD is default)\n"); - printf ("-g Set multicast group ID (0,1,2,3) - valid if M is set\n"); - printf ("-G Enable background traffic \n"); - printf ("-H Enable handover operation (default disabled) \n"); - printf ("-I Enable CLI interface (to connect use telnet localhost 1352)\n"); - printf ("-k Set the Ricean factor (linear)\n"); - printf ("-K [log_file] Enable ITTI logging into log_file\n"); - printf ("-l Set the global log level (8:trace, 7:debug, 6:info, 4:warn, 3:error) \n"); - printf ("-L [0-1] 0 to disable new link adaptation, 1 to enable new link adapatation\n"); - printf ("-m Gives a fixed DL mcs for eNB scheduler\n"); - printf ("-M Set the machine ID for Ethernet-based emulation\n"); - printf ("-n Set the number of frames for the simulation. 0 for no limit\n"); - printf ("-O [enb_conf_file] eNB configuration file name\n"); - printf ("-p Set the total number of machine in emulation - valid if M is set\n"); - printf ("-P [trace type] Enable protocol analyzer. Possible values for OPT:\n"); - printf (" - wireshark: Enable tracing of layers above PHY using an UDP socket\n"); - printf (" - pcap: Enable tracing of layers above PHY to a pcap file\n"); - printf (" - tshark: Not implemented yet\n"); - printf ("-q Enable Openair performance profiler \n"); - printf ("-Q Activate and set the MBMS service: 0 : not used (default eMBMS disabled), 1: eMBMS and RRC Connection enabled, 2: eMBMS relaying and RRC Connection enabled, 3: eMBMS enabled, RRC Connection disabled, 4: eMBMS relaying enabled, RRC Connection disabled\n"); - printf ("-R [6,15,25,50,75,100] Sets N_RB_DL\n"); - printf ("-r Activates rate adaptation (DL for now)\n"); - printf ("-s snr_dB set a fixed (average) SNR, this deactivates the openair channel model generator (OCM)\n"); - printf ("-S snir_dB set a fixed (average) SNIR, this deactivates the openair channel model generator (OCM)\n"); - printf ("-t Gives a fixed UL mcs for eNB scheduler\n"); - printf ("-T activate the traffic generator. Valide options are m2m,scbr,mcbr,bcbr,auto_pilot,bicycle_race,open_arena,team_fortress,m2m_traffic,auto_pilot_l,auto_pilot_m,auto_pilot_h,auto_pilot_e,virtual_game_l,virtual_game_m,virtual_game_h,virtual_game_f,alarm_humidity,alarm_smoke,alarm_temperature,openarena_dl,openarena_ul,voip_g711,voip_g729,video_vbr_10mbps,video_vbr_4mbps,video_vbr_2mbp,video_vbr_768kbps,video_vbr_384kbps,video_vbr_192kpbs,background_users\n"); - printf ("-u Set the number of local UE\n"); - printf ("-U Set the mobility model for UE, options are: STATIC, RWP, RWALK\n"); - printf ("-V [vcd_file] Enable VCD dump into vcd_file\n"); - printf ("-w number of CBA groups, if not specified or zero, CBA is inactive\n"); -#ifdef SMBV - printf ("-W IP address to connect to Rohde&Schwarz SMBV100A and configure SMBV from config file. -W0 uses default IP 192.168.12.201\n"); -#else - printf ("-W [Rohde&Schwarz SMBV100A functions disabled. Recompile with SMBV=1]\n"); -#endif - printf ("-x deprecated. Set the transmission mode in config file!\n"); - printf ("-y Set the number of receive antennas at the UE (1 or 2)\n"); - printf ("-Y Set the global log verbosity (none, low, medium, high, full) \n"); - printf ("-z Set the cooperation flag (0 for no cooperation, 1 for delay diversity and 2 for distributed alamouti\n"); - printf ("-Z Reserved\n"); - printf ("--xforms Activate the grapical scope\n"); - -#if T_TRACER - printf ("--T_port [port] use given port\n"); - printf ("--T_nowait don't wait for tracer, start immediately\n"); - printf ("--T_dont_fork to ease debugging with gdb\n"); -#endif -} - -pthread_t log_thread; - -void -log_thread_init (void) -{ - //create log_list - //log_list_init(&log_list); -#ifndef LOG_NO_THREAD - - log_shutdown = 0; - - if ((pthread_mutex_init (&log_lock, NULL) != 0) - || (pthread_cond_init (&log_notify, NULL) != 0)) { - return; - } - - if (pthread_create (&log_thread, NULL, log_thread_function, (void*) NULL) - != 0) { - log_thread_finalize (); - return; - } - -#endif - -} - -//Call it after the last LOG call -int -log_thread_finalize (void) -{ - int err = 0; - -#ifndef LOG_NO_THREAD - - if (pthread_mutex_lock (&log_lock) != 0) { - return -1; - } - - log_shutdown = 1; - - /* Wake up LOG thread */ - if ((pthread_cond_broadcast (&log_notify) != 0) - || (pthread_mutex_unlock (&log_lock) != 0)) { - err = -1; - } - - if (pthread_join (log_thread, NULL) != 0) { - err = -1; - } - - if (pthread_mutex_unlock (&log_lock) != 0) { - err = -1; - } - - if (!err) { - //log_list_free(&log_list); - pthread_mutex_lock (&log_lock); - pthread_mutex_destroy (&log_lock); - pthread_cond_destroy (&log_notify); - } - -#endif - - return err; -} - -#if defined(ENABLE_ITTI) -static void set_cli_start(module_id_t module_idP, uint8_t start) -{ - if (module_idP < NB_eNB_INST) { - oai_emulation.info.cli_start_enb[module_idP] = start; - } else { - oai_emulation.info.cli_start_ue[module_idP - NB_eNB_INST] = start; - } -} -#endif - -#ifdef OPENAIR2 -int omv_write(int pfd, node_list* enb_node_list, node_list* ue_node_list, Data_Flow_Unit omv_data) -{ - module_id_t i; - omv_data.end = 0; - - //omv_data.total_num_nodes = NB_UE_INST + NB_eNB_INST; - for (i = 0; i < NB_eNB_INST; i++) { - if (enb_node_list != NULL) { - omv_data.geo[i].x = (enb_node_list->node->x_pos < 0.0) ? 0.0 : enb_node_list->node->x_pos; - omv_data.geo[i].y = (enb_node_list->node->y_pos < 0.0) ? 0.0 : enb_node_list->node->y_pos; - omv_data.geo[i].z = 1.0; - omv_data.geo[i].mobility_type = oai_emulation.info.omg_model_enb; - omv_data.geo[i].node_type = 0; //eNB - enb_node_list = enb_node_list->next; - omv_data.geo[i].Neighbors = 0; -/* - for (j = NB_RU; j < NB_UE_INST + NB_RU; j++) { - if (is_UE_active (i, j - NB_RU) == 1) { - omv_data.geo[i].Neighbor[omv_data.geo[i].Neighbors] = j; - omv_data.geo[i].Neighbors++; - LOG_D( - OMG, - "[RU %d][UE %d] is_UE_active(i,j) %d geo (x%d, y%d) num neighbors %d\n", i, j-NB_RU, is_UE_active(i,j-NB_RU), omv_data.geo[i].x, omv_data.geo[i].y, omv_data.geo[i].Neighbors); - } - } -*/ - } - } - - for (i = NB_RU; i < NB_UE_INST + NB_RU; i++) { - if (ue_node_list != NULL) { - omv_data.geo[i].x = (ue_node_list->node->x_pos < 0.0) ? 0.0 : ue_node_list->node->x_pos; - omv_data.geo[i].y = (ue_node_list->node->y_pos < 0.0) ? 0.0 : ue_node_list->node->y_pos; - omv_data.geo[i].z = 1.0; - omv_data.geo[i].mobility_type = oai_emulation.info.omg_model_ue; - omv_data.geo[i].node_type = 1; //UE - //trial - omv_data.geo[i].state = 1; - omv_data.geo[i].rnti = 88; - omv_data.geo[i].connected_eNB = 0; - omv_data.geo[i].RSRP = 66; - omv_data.geo[i].RSRQ = 55; - omv_data.geo[i].Pathloss = 44; - omv_data.geo[i].RSSI[0] = 33; - omv_data.geo[i].RSSI[1] = 22; - - if ((sizeof(omv_data.geo[0].RSSI) / sizeof(omv_data.geo[0].RSSI[0])) > 2) { - omv_data.geo[i].RSSI[2] = 11; - } - - ue_node_list = ue_node_list->next; - omv_data.geo[i].Neighbors = 0; -/* - for (j = 0; j < NB_RU; j++) { - if (is_UE_active (j, i - NB_RU) == 1) { - omv_data.geo[i].Neighbor[omv_data.geo[i].Neighbors] = j; - omv_data.geo[i].Neighbors++; - LOG_D( - OMG, - "[UE %d][RU %d] is_UE_active %d geo (x%d, y%d) num neighbors %d\n", i-NB_RU, j, is_UE_active(j,i-NB_RU), omv_data.geo[i].x, omv_data.geo[i].y, omv_data.geo[i].Neighbors); - } - } -*/ - } - } - - LOG_E(OMG, "pfd %d \n", pfd); - - if (write (pfd, &omv_data, sizeof(struct Data_Flow_Unit)) == -1) - perror ("write omv failed"); - - return 1; -} - -void omv_end(int pfd, Data_Flow_Unit omv_data) -{ - omv_data.end = 1; - - if (write (pfd, &omv_data, sizeof(struct Data_Flow_Unit)) == -1) - perror ("write omv failed"); -} -#endif - -#ifdef OPENAIR2 -int pfd[2]; // fd for omv : fixme: this could be a local var -#endif - -#ifdef OPENAIR2 -static Data_Flow_Unit omv_data; -#endif //ALU -static module_id_t UE_inst = 0; -static module_id_t eNB_inst = 0; -static module_id_t ru_id; - -Packet_OTG_List_t *otg_pdcp_buffer; - -typedef enum l2l1_task_state_e { - L2L1_WAITTING, L2L1_RUNNING, L2L1_TERMINATED, -} l2l1_task_state_t; - -l2l1_task_state_t l2l1_state = L2L1_WAITTING; - -extern openair0_timestamp current_ru_rx_timestamp[NUMBER_OF_RU_MAX][MAX_NUM_CCs]; -extern openair0_timestamp current_UE_rx_timestamp[NUMBER_OF_UE_MAX][MAX_NUM_CCs]; -extern openair0_timestamp last_eNB_rx_timestamp[NUMBER_OF_eNB_MAX][MAX_NUM_CCs]; -extern openair0_timestamp last_UE_rx_timestamp[NUMBER_OF_UE_MAX][MAX_NUM_CCs]; - -/*------------------------------------------------------------------------------*/ -void * -l2l1_task (void *args_p) -{ - - int CC_id; - - // Framing variables - int32_t sf; - - //char fname[64], vname[64]; - - //#ifdef XFORMS - // current status is that every UE has a DL scope for a SINGLE eNB (eNB_id=0) - // at eNB 0, an UL scope for every UE - FD_lte_phy_scope_ue *form_ue[MAX_NUM_CCs][NUMBER_OF_UE_MAX]; - FD_lte_phy_scope_enb *form_enb[NUMBER_OF_UE_MAX]; - char title[255]; - char xname[32] = "oaisim"; - int xargc = 1; - char *xargv[1]; - //#endif - -#undef PRINT_STATS /* this undef is to avoid gcc warnings */ -#define PRINT_STATS -#ifdef PRINT_STATS - //int len; - FILE *UE_stats[NUMBER_OF_UE_MAX]; - FILE *UE_stats_th[NUMBER_OF_UE_MAX]; - FILE *eNB_stats[NUMBER_OF_eNB_MAX]; - FILE *eNB_avg_thr; - FILE *eNB_l2_stats; - char UE_stats_filename[255]; - char eNB_stats_filename[255]; - char UE_stats_th_filename[255]; - char eNB_stats_th_filename[255]; -#endif - - - if (xforms==1) { - xargv[0] = xname; - fl_initialize (&xargc, xargv, NULL, 0, 0); - eNB_inst = 0; - for (UE_inst = 0; UE_inst < NB_UE_INST; UE_inst++) { - for (CC_id=0;CC_idlte_phy_scope_ue, FL_PLACE_HOTSPOT, FL_FULLBORDER, title); - - if (PHY_vars_UE_g[UE_inst][CC_id]->use_ia_receiver == 1) { - fl_set_button(form_ue[CC_id][UE_inst]->button_0,1); - fl_set_object_label(form_ue[CC_id][UE_inst]->button_0, "IA Receiver ON"); - fl_set_object_color(form_ue[CC_id][UE_inst]->button_0, FL_GREEN, FL_GREEN); - } - - } - } - } - - -#ifdef PRINT_STATS - - for (UE_inst=0; UE_inst 0) && - (oai_emulation.info.node_function[0] < NGFI_RAU_IF4p5)) { - /* Wait for the initialize message */ - do { - if (message_p != NULL) { - result = itti_free (ITTI_MSG_ORIGIN_ID(message_p), message_p); - AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result); - } - - itti_receive_msg (TASK_L2L1, &message_p); - msg_name = ITTI_MSG_NAME (message_p); - LOG_I(EMU, "TASK_L2L1 received %s in state L2L1_WAITTING\n", msg_name); - - switch (ITTI_MSG_ID(message_p)) { - case INITIALIZE_MESSAGE: - l2l1_state = L2L1_RUNNING; - start_eNB = 1; - break; - - case ACTIVATE_MESSAGE: - set_cli_start(ITTI_MSG_INSTANCE (message_p), 1); - break; - - case DEACTIVATE_MESSAGE: - set_cli_start(ITTI_MSG_INSTANCE (message_p), 0); - break; - - case TERMINATE_MESSAGE: - l2l1_state = L2L1_TERMINATED; - break; - - default: - LOG_E(EMU, "Received unexpected message %s\n", ITTI_MSG_NAME(message_p)); - break; - } - } while (l2l1_state == L2L1_WAITTING); - - result = itti_free (ITTI_MSG_ORIGIN_ID(message_p), message_p); - AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result); - } - -#endif - - - - start_meas (&oaisim_stats); - - for (frame = 0; - (l2l1_state != L2L1_TERMINATED) && - ((oai_emulation.info.n_frames_flag == 0) || - (frame < oai_emulation.info.n_frames)); - frame++) { - -#if defined(ENABLE_ITTI) - - do { - // Checks if a message has been sent to L2L1 task - itti_poll_msg (TASK_L2L1, &message_p); - - if (message_p != NULL) { - msg_name = ITTI_MSG_NAME (message_p); - LOG_I(EMU, "TASK_L2L1 received %s\n", msg_name); - - switch (ITTI_MSG_ID(message_p)) { - case ACTIVATE_MESSAGE: - set_cli_start(ITTI_MSG_INSTANCE (message_p), 1); - break; - - case DEACTIVATE_MESSAGE: - set_cli_start(ITTI_MSG_INSTANCE (message_p), 0); - break; - - case TERMINATE_MESSAGE: - l2l1_state = L2L1_TERMINATED; - break; - - case MESSAGE_TEST: - break; - - default: - LOG_E(EMU, "Received unexpected message %s\n", ITTI_MSG_NAME(message_p)); - break; - } - - result = itti_free (ITTI_MSG_ORIGIN_ID(message_p), message_p); - AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result); - } - } while(message_p != NULL); - -#endif - - //Run the aperiodic user-defined events - if (oai_emulation.info.oeh_enabled == 1) - execute_events (frame); - - if (ue_connection_test == 1) { - if ((frame % 20) == 0) { - snr_dB += snr_direction; - sinr_dB -= snr_direction; - } - - if (snr_dB == -20) { - snr_direction = snr_step; - } else if (snr_dB == 20) { - snr_direction = -snr_step; - } - } - - oai_emulation.info.frame = frame; - //oai_emulation.info.time_ms += 1; - oai_emulation.info.time_s += 0.01; // emu time in s, each frame lasts for 10 ms // JNote: TODO check the coherency of the time and frame (I corrected it to 10 (instead of 0.01) - - //update_omg (frame); // frequency is defined in the omg_global params configurable by the user - //update_omg_ocm (); - -#ifdef OPENAIR2 - - // check if pipe is still open - if ((oai_emulation.info.omv_enabled == 1)) { - omv_write (pfd[1], enb_node_list, ue_node_list, omv_data); - } - -#endif - - - - for (sf = 0; sf < 10; sf++) { - LOG_D(EMU,"************************* Subframe %d\n",sf); - start_meas (&oaisim_stats_f); - - wait_for_slot_isr (); - -#if defined(ENABLE_ITTI) - itti_update_lte_time(frame % MAX_FRAME_NUMBER, sf<<1); -#endif - - oai_emulation.info.time_ms = frame * 10 + sf; - -#ifdef PROC - - if(Channel_Flag==1) - Channel_Func(s_re2,s_im2,r_re2,r_im2,r_re02,r_im02,r_re0_d,r_im0_d,r_re0_u,r_im0_u,RU2UE,UE2RU,enb_data,ue_data,abstraction_flag,frame_parms,sf<<1); - - if(Channel_Flag==0) -#endif - { // SUBFRAME INNER PART -#if defined(ENABLE_ITTI) - log_set_instance_type (LOG_INSTANCE_ENB); -#endif - - - CC_id=0; - int all_done=0; - while (all_done==0) { - - pthread_mutex_lock(&subframe_mutex); - int subframe_ru_mask_local = (subframe_select(&RC.ru[0]->frame_parms,(sf+4)%10)!=SF_UL) ? subframe_ru_mask : ((1<frame_parms.frame_type == FDD || subframe_select(&RC.ru[0]->frame_parms,(sf+4)%10)!=SF_DL) ? subframe_UE_mask : ((1<frame_parms.samples_per_tti; - LOG_D(EMU,"RU %d/%d: TS %"PRIi64"\n",ru_id,CC_id,current_ru_rx_timestamp[ru_id][CC_id]); - } - for (UE_inst = 0; UE_instframe_parms.samples_per_tti; - LOG_D(EMU,"UE %d/%d: TS %"PRIi64"\n",UE_inst,CC_id,current_UE_rx_timestamp[UE_inst][CC_id]); - } - - for (eNB_inst = oai_emulation.info.first_enb_local; - (eNB_inst - < (oai_emulation.info.first_enb_local - + oai_emulation.info.nb_enb_local)); - eNB_inst++) { - if (oai_emulation.info.cli_start_enb[eNB_inst] != 0) { - - /* - LOG_D(EMU, - "PHY procedures eNB %d for frame %d, subframe %d TDD %d/%d Nid_cell %d\n", - eNB_inst, - frame % MAX_FRAME_NUMBER, - sf, - PHY_vars_eNB_g[eNB_inst][0]->frame_parms.frame_type, - PHY_vars_eNB_g[eNB_inst][0]->frame_parms.tdd_config, - PHY_vars_eNB_g[eNB_inst][0]->frame_parms.Nid_cell); - - */ -#ifdef PRINT_STATS - - if((sf==9) && frame%10==0) - if(eNB_avg_thr) - fprintf(eNB_avg_thr,"%d %d\n",RC.eNB[eNB_inst][0]->proc.proc_rxtx[sf&1].frame_tx, - (RC.eNB[eNB_inst][0]->total_system_throughput)/((RC.eNB[eNB_inst][0]->proc.proc_rxtx[sf&1].frame_tx+1)*10)); - /* - if (eNB_stats[eNB_inst]) { - len = dump_eNB_stats(RC.eNB[eNB_inst][0], stats_buffer, 0); - rewind (eNB_stats[eNB_inst]); - fwrite (stats_buffer, 1, len, eNB_stats[eNB_inst]); - fflush(eNB_stats[eNB_inst]); - } -#ifdef OPENAIR2 - if (eNB_l2_stats) { - len = dump_eNB_l2_stats (stats_buffer, 0); - rewind (eNB_l2_stats); - fwrite (stats_buffer, 1, len, eNB_l2_stats); - fflush(eNB_l2_stats); - } - -#endif -*/ -#endif - } - }// eNB_inst loop - - -#if defined(ENABLE_ITTI) - log_set_instance_type (LOG_INSTANCE_UE); -#endif - - - if ((sf == 0) && ((frame % MAX_FRAME_NUMBER) == 0) && (abstraction_flag == 0) - && (oai_emulation.info.n_frames == 1)) { - - write_output ("dlchan0.m", - "dlch0", - &(PHY_vars_UE_g[0][0]->common_vars.common_vars_rx_data_per_thread[0].dl_ch_estimates[0][0][0]), - (6 - * (PHY_vars_UE_g[0][0]->frame_parms.ofdm_symbol_size)), - 1, 1); - write_output ("dlchan1.m", - "dlch1", - &(PHY_vars_UE_g[0][0]->common_vars.common_vars_rx_data_per_thread[0].dl_ch_estimates[1][0][0]), - (6 - * (PHY_vars_UE_g[0][0]->frame_parms.ofdm_symbol_size)), - 1, 1); - write_output ("dlchan2.m", - "dlch2", - &(PHY_vars_UE_g[0][0]->common_vars.common_vars_rx_data_per_thread[0].dl_ch_estimates[2][0][0]), - (6 - * (PHY_vars_UE_g[0][0]->frame_parms.ofdm_symbol_size)), - 1, 1); - write_output ("pbch_rxF_comp0.m", - "pbch_comp0", - PHY_vars_UE_g[0][0]->pbch_vars[0]->rxdataF_comp[0], - 6 * 12 * 4, 1, 1); - write_output ("pbch_rxF_llr.m", "pbch_llr", - PHY_vars_UE_g[0][0]->pbch_vars[0]->llr, - (PHY_vars_UE_g[0][0]->frame_parms.Ncp == 0) ? 1920 : 1728, 1, - 4); - } - - stop_meas (&oaisim_stats_f); - } // SUBFRAME INNER PART - - - } - //update_ocm (); - /* - if ((frame >= 10) && (frame <= 11) && (abstraction_flag == 0) -#ifdef PROC - &&(Channel_Flag==0) -#endif - ) { - sprintf (fname, "UEtxsig%d.m", frame % MAX_FRAME_NUMBER); - sprintf (vname, "txs%d", frame % MAX_FRAME_NUMBER); - write_output (fname, - vname, - PHY_vars_UE_g[0][0]->common_vars.txdata[0], - PHY_vars_UE_g[0][0]->frame_parms.samples_per_tti - * 10, - 1, 1); - sprintf (fname, "eNBtxsig%d.m", frame % MAX_FRAME_NUMBER); - sprintf (vname, "txs%d", frame % MAX_FRAME_NUMBER); - write_output (fname, - vname, - PHY_vars_eNB_g[0][0]->common_vars.txdata[0][0], - PHY_vars_UE_g[0][0]->frame_parms.samples_per_tti - * 10, - 1, 1); - sprintf (fname, "eNBtxsigF%d.m", frame % MAX_FRAME_NUMBER); - sprintf (vname, "txsF%d", frame % MAX_FRAME_NUMBER); - write_output (fname, - vname, - PHY_vars_eNB_g[0][0]->common_vars.txdataF[0][0], - PHY_vars_eNB_g[0][0]->frame_parms.symbols_per_tti - * PHY_vars_eNB_g[0][0]->frame_parms.ofdm_symbol_size, - 1, 1); - sprintf (fname, "UErxsig%d.m", frame % MAX_FRAME_NUMBER); - sprintf (vname, "rxs%d", frame % MAX_FRAME_NUMBER); - write_output (fname, - vname, - PHY_vars_UE_g[0][0]->common_vars.rxdata[0], - PHY_vars_UE_g[0][0]->frame_parms.samples_per_tti - * 10, - 1, 1); - sprintf (fname, "eNBrxsig%d.m", frame % MAX_FRAME_NUMBER); - sprintf (vname, "rxs%d", frame % MAX_FRAME_NUMBER); - write_output (fname, - vname, - PHY_vars_eNB_g[0][0]->common_vars.rxdata[0][0], - PHY_vars_UE_g[0][0]->frame_parms.samples_per_tti - * 10, - 1, 1); - } - */ - - //#ifdef XFORMS - if (xforms==1) { - eNB_inst = 0; - - for (UE_inst = 0; UE_inst < NB_UE_INST; UE_inst++) { - for (CC_id=0;CC_id0) { - pthread_cond_wait(&RC.ru_cond,&RC.ru_mutex); - } - - // copy frame parameters from RU to UEs - for (i=0;iframe_parms.N_RB_DL = RC.ru[0]->frame_parms.N_RB_DL; - PHY_vars_UE_g[i][0]->frame_parms.N_RB_UL = RC.ru[0]->frame_parms.N_RB_UL; - PHY_vars_UE_g[i][0]->frame_parms.nb_antennas_tx = 1; - PHY_vars_UE_g[i][0]->frame_parms.nb_antennas_rx = 1; - // set initially to 2, it will be revised after initial synchronization - PHY_vars_UE_g[i][0]->frame_parms.nb_antenna_ports_eNB = 2; - PHY_vars_UE_g[i][0]->frame_parms.tdd_config = 1; - PHY_vars_UE_g[i][0]->frame_parms.dl_CarrierFreq = RC.ru[0]->frame_parms.dl_CarrierFreq; - PHY_vars_UE_g[i][0]->frame_parms.ul_CarrierFreq = RC.ru[0]->frame_parms.ul_CarrierFreq; - PHY_vars_UE_g[i][0]->frame_parms.eutra_band = RC.ru[0]->frame_parms.eutra_band; - LOG_I(PHY,"Initializing UE %d frame parameters from RU information: N_RB_DL %d, p %d, dl_Carrierfreq %u, ul_CarrierFreq %u, eutra_band %d\n", - i, - PHY_vars_UE_g[i][0]->frame_parms.N_RB_DL, - PHY_vars_UE_g[i][0]->frame_parms.nb_antenna_ports_eNB, - PHY_vars_UE_g[i][0]->frame_parms.dl_CarrierFreq, - PHY_vars_UE_g[i][0]->frame_parms.ul_CarrierFreq, - PHY_vars_UE_g[i][0]->frame_parms.eutra_band); - - current_UE_rx_timestamp[i][0] = RC.ru[0]->frame_parms.samples_per_tti + RC.ru[0]->frame_parms.ofdm_symbol_size + RC.ru[0]->frame_parms.nb_prefix_samples0; - - } - - - - - for (ru_id=0;ru_idframe_parms.samples_per_tti; - - printf("RUs are ready, let's go\n"); -} - -void init_UE(int,int,int,int); -void init_RU(const char*); - -void set_UE_defaults(int nb_ue) { - - for (int UE_id = 0;UE_idpdcch_vars[i][0]->dciFormat = 0; - PHY_vars_UE_g[UE_id][CC_id]->pdcch_vars[i][0]->agregationLevel = 0xFF; - } - PHY_vars_UE_g[UE_id][CC_id]->current_dlsch_cqi[0] = 10; - PHY_vars_UE_g[UE_id][CC_id]->tx_power_max_dBm = 23; - } - } -} - - -static void print_current_directory(void) -{ - char dir[8192]; /* arbitrary size (should be big enough) */ - if (getcwd(dir, 8192) == NULL) - printf("ERROR getting working directory\n"); - else - printf("working directory: %s\n", dir); -} - -void init_devices(void); - -int main (int argc, char **argv) -{ - - clock_t t; - - print_current_directory(); - - start_background_system(); - -#ifdef SMBV - // Rohde&Schwarz SMBV100A vector signal generator - strcpy(smbv_ip,DEFAULT_SMBV_IP); -#endif - -#ifdef PROC - int node_id; - int port,Process_Flag=0,wgt,Channel_Flag=0,temp; -#endif - - //default parameters - oai_emulation.info.n_frames = MAX_FRAME_NUMBER; //1024; //10; - oai_emulation.info.n_frames_flag = 0; //fixme - snr_dB = 30; - NB_UE_INST = 1; - - //Default values if not changed by the user in get_simulation_options(); - pdcp_period = 1; - omg_period = 1; - //Clean ip rule table - for(int i =0; i>>>>>>>>>>>>>>>>>>>>>>>>>> OAIEMU initialization done <<<<<<<<<<<<<<<<<<<<<<<<<<\n\n"); - -#ifndef PACKAGE_VERSION -# define PACKAGE_VERSION "UNKNOWN-EXPERIMENTAL" -#endif - LOG_I(EMU, "Version: %s\n", PACKAGE_VERSION); - -#if defined(ENABLE_ITTI) - - // Handle signals until all tasks are terminated - itti_wait_tasks_end(); - -#else - - if (oai_emulation.info.nb_enb_local > 0) { - eNB_app_task (NULL); // do nothing for the moment - } - - l2l1_task (NULL); -#endif - t = clock () - t; - LOG_I(EMU, "Duration of the simulation: %f seconds\n", - ((float) t) / CLOCKS_PER_SEC); - - LOG_N(EMU, - ">>>>>>>>>>>>>>>>>>>>>>>>>>> OAIEMU Ending <<<<<<<<<<<<<<<<<<<<<<<<<<\n\n"); - - raise (SIGINT); - // oai_shutdown (); - - return (0); -} - -void -reset_opp_meas_oaisim (void) -{ - uint8_t eNB_id = 0, UE_id = 0; - - reset_meas (&oaisim_stats); - reset_meas (&oaisim_stats_f); // frame - - // init time stats here (including channel) - reset_meas (&dl_chan_stats); - reset_meas (&ul_chan_stats); - - for (UE_id = 0; UE_id < NB_UE_INST; UE_id++) { - reset_meas (&PHY_vars_UE_g[UE_id][0]->phy_proc[0]); - reset_meas (&PHY_vars_UE_g[UE_id][0]->phy_proc[1]); - reset_meas (&PHY_vars_UE_g[UE_id][0]->phy_proc_rx[0]); - reset_meas (&PHY_vars_UE_g[UE_id][0]->phy_proc_rx[1]); - reset_meas (&PHY_vars_UE_g[UE_id][0]->phy_proc_tx); - - // reset_meas (&PHY_vars_UE_g[UE_id][0]->ofdm_demod_stats); - reset_meas (&PHY_vars_UE_g[UE_id][0]->rx_dft_stats); - reset_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_channel_estimation_stats); - reset_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_freq_offset_estimation_stats); - reset_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_decoding_stats[0]); - reset_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_decoding_stats[1]); - reset_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_rate_unmatching_stats); - reset_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_turbo_decoding_stats); - reset_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_deinterleaving_stats); - reset_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_llr_stats); - reset_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_unscrambling_stats); - - reset_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_tc_init_stats); - reset_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_tc_alpha_stats); - reset_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_tc_beta_stats); - reset_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_tc_gamma_stats); - reset_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_tc_ext_stats); - reset_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_tc_intl1_stats); - reset_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_tc_intl2_stats); - - reset_meas (&PHY_vars_UE_g[UE_id][0]->tx_prach); - - reset_meas (&PHY_vars_UE_g[UE_id][0]->ofdm_mod_stats); - reset_meas (&PHY_vars_UE_g[UE_id][0]->ulsch_encoding_stats); - reset_meas (&PHY_vars_UE_g[UE_id][0]->ulsch_modulation_stats); - reset_meas (&PHY_vars_UE_g[UE_id][0]->ulsch_segmentation_stats); - reset_meas (&PHY_vars_UE_g[UE_id][0]->ulsch_rate_matching_stats); - reset_meas (&PHY_vars_UE_g[UE_id][0]->ulsch_turbo_encoding_stats); - reset_meas (&PHY_vars_UE_g[UE_id][0]->ulsch_interleaving_stats); - reset_meas (&PHY_vars_UE_g[UE_id][0]->ulsch_multiplexing_stats); - - - /* - * L2 functions - */ - - // UE MAC - reset_meas (&UE_mac_inst[UE_id].ue_scheduler); // total - reset_meas (&UE_mac_inst[UE_id].tx_ulsch_sdu); // inlcude rlc_data_req + mac header gen - reset_meas (&UE_mac_inst[UE_id].rx_dlsch_sdu); // include mac_rrc_data_ind or mac_rlc_status_ind+mac_rlc_data_ind and mac header parser - reset_meas (&UE_mac_inst[UE_id].ue_query_mch); - reset_meas (&UE_mac_inst[UE_id].rx_mch_sdu); // include rld_data_ind+ parse mch header - reset_meas (&UE_mac_inst[UE_id].rx_si); // include rlc_data_ind + mac header parser - - reset_meas (&UE_pdcp_stats[UE_id].pdcp_run); - reset_meas (&UE_pdcp_stats[UE_id].data_req); - reset_meas (&UE_pdcp_stats[UE_id].data_ind); - reset_meas (&UE_pdcp_stats[UE_id].apply_security); - reset_meas (&UE_pdcp_stats[UE_id].validate_security); - reset_meas (&UE_pdcp_stats[UE_id].pdcp_ip); - reset_meas (&UE_pdcp_stats[UE_id].ip_pdcp); - - - } - - for (eNB_id = 0; eNB_id < NB_eNB_INST; eNB_id++) { - - for (UE_id = 0; UE_id < NB_UE_INST; UE_id++) { - reset_meas (&RU2UE[eNB_id][UE_id][0]->random_channel); - reset_meas (&RU2UE[eNB_id][UE_id][0]->interp_time); - reset_meas (&RU2UE[eNB_id][UE_id][0]->interp_freq); - reset_meas (&RU2UE[eNB_id][UE_id][0]->convolution); - reset_meas (&UE2RU[UE_id][eNB_id][0]->random_channel); - reset_meas (&UE2RU[UE_id][eNB_id][0]->interp_time); - reset_meas (&UE2RU[UE_id][eNB_id][0]->interp_freq); - reset_meas (&UE2RU[UE_id][eNB_id][0]->convolution); - } - - reset_meas (&RC.eNB[eNB_id][0]->phy_proc); - reset_meas (&RC.eNB[eNB_id][0]->phy_proc_rx); - reset_meas (&RC.eNB[eNB_id][0]->phy_proc_tx); - reset_meas (&RC.eNB[eNB_id][0]->rx_prach); - - reset_meas (&RC.eNB[eNB_id][0]->ofdm_mod_stats); - reset_meas (&RC.eNB[eNB_id][0]->dlsch_encoding_stats); - reset_meas (&RC.eNB[eNB_id][0]->dlsch_modulation_stats); - reset_meas (&RC.eNB[eNB_id][0]->dlsch_scrambling_stats); - reset_meas (&RC.eNB[eNB_id][0]->dlsch_rate_matching_stats); - reset_meas (&RC.eNB[eNB_id][0]->dlsch_turbo_encoding_stats); - reset_meas (&RC.eNB[eNB_id][0]->dlsch_interleaving_stats); - - // reset_meas (&RC.eNB[eNB_id][0]->ofdm_demod_stats); - //reset_meas(&RC.eNB[eNB_id]->rx_dft_stats); - //reset_meas(&RC.eNB[eNB_id]->ulsch_channel_estimation_stats); - //reset_meas(&RC.eNB[eNB_id]->ulsch_freq_offset_estimation_stats); - reset_meas (&RC.eNB[eNB_id][0]->ulsch_decoding_stats); - reset_meas (&RC.eNB[eNB_id][0]->ulsch_demodulation_stats); - reset_meas (&RC.eNB[eNB_id][0]->ulsch_rate_unmatching_stats); - reset_meas (&RC.eNB[eNB_id][0]->ulsch_turbo_decoding_stats); - reset_meas (&RC.eNB[eNB_id][0]->ulsch_deinterleaving_stats); - reset_meas (&RC.eNB[eNB_id][0]->ulsch_demultiplexing_stats); - reset_meas (&RC.eNB[eNB_id][0]->ulsch_llr_stats); - reset_meas (&RC.eNB[eNB_id][0]->ulsch_tc_init_stats); - reset_meas (&RC.eNB[eNB_id][0]->ulsch_tc_alpha_stats); - reset_meas (&RC.eNB[eNB_id][0]->ulsch_tc_beta_stats); - reset_meas (&RC.eNB[eNB_id][0]->ulsch_tc_gamma_stats); - reset_meas (&RC.eNB[eNB_id][0]->ulsch_tc_ext_stats); - reset_meas (&RC.eNB[eNB_id][0]->ulsch_tc_intl1_stats); - reset_meas (&RC.eNB[eNB_id][0]->ulsch_tc_intl2_stats); -#ifdef LOCALIZATION - reset_meas(&RC.eNB[eNB_id][0]->localization_stats); -#endif - - /* - * L2 functions - */ - // eNB MAC - reset_meas (&RC.mac[eNB_id]->eNB_scheduler); // total - reset_meas (&RC.mac[eNB_id]->schedule_si); // only schedule + tx - reset_meas (&RC.mac[eNB_id]->schedule_ra); // only ra - reset_meas (&RC.mac[eNB_id]->schedule_ulsch); // onlu ulsch - reset_meas (&RC.mac[eNB_id]->fill_DLSCH_dci); // only dci - reset_meas (&RC.mac[eNB_id]->schedule_dlsch_preprocessor); // include rlc_data_req + MAC header gen - reset_meas (&RC.mac[eNB_id]->schedule_dlsch); // include rlc_data_req + MAC header gen + pre-processor - reset_meas (&RC.mac[eNB_id]->schedule_mch); // only embms - reset_meas (&RC.mac[eNB_id]->rx_ulsch_sdu); // include rlc_data_ind + mac header parser - - reset_meas (&eNB_pdcp_stats[eNB_id].pdcp_run); - reset_meas (&eNB_pdcp_stats[eNB_id].data_req); - reset_meas (&eNB_pdcp_stats[eNB_id].data_ind); - reset_meas (&eNB_pdcp_stats[eNB_id].apply_security); - reset_meas (&eNB_pdcp_stats[eNB_id].validate_security); - reset_meas (&eNB_pdcp_stats[eNB_id].pdcp_ip); - reset_meas (&eNB_pdcp_stats[eNB_id].ip_pdcp); - - } -} - -void -print_opp_meas_oaisim (void) -{ - - uint8_t eNB_id = 0, UE_id = 0; - - print_meas (&oaisim_stats, "[OAI][total_exec_time]", &oaisim_stats, - &oaisim_stats); - print_meas (&oaisim_stats_f, "[OAI][SF_exec_time]", &oaisim_stats, - &oaisim_stats_f); - - print_meas (&dl_chan_stats, "[DL][chan_stats]", &oaisim_stats, - &oaisim_stats_f); - print_meas (&ul_chan_stats, "[UL][chan_stats]", &oaisim_stats, - &oaisim_stats_f); - - for (UE_id = 0; UE_id < NB_UE_INST; UE_id++) { - for (ru_id = 0; ru_id < NB_RU; ru_id++) { - print_meas (&RU2UE[ru_id][UE_id][0]->random_channel, - "[DL][random_channel]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RU2UE[ru_id][UE_id][0]->interp_time, - "[DL][interp_time]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RU2UE[ru_id][UE_id][0]->interp_freq, - "[DL][interp_freq]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RU2UE[ru_id][UE_id][0]->convolution, - "[DL][convolution]", &oaisim_stats, &oaisim_stats_f); - - print_meas (&UE2RU[UE_id][ru_id][0]->random_channel, - "[UL][random_channel]", &oaisim_stats, &oaisim_stats_f); - print_meas (&UE2RU[UE_id][ru_id][0]->interp_time, - "[UL][interp_time]", &oaisim_stats, &oaisim_stats_f); - print_meas (&UE2RU[UE_id][ru_id][0]->interp_freq, - "[UL][interp_freq]", &oaisim_stats, &oaisim_stats_f); - print_meas (&UE2RU[UE_id][ru_id][0]->convolution, - "[UL][convolution]", &oaisim_stats, &oaisim_stats_f); - } - } - - for (UE_id = 0; UE_id < NB_UE_INST; UE_id++) { - print_meas (&PHY_vars_UE_g[UE_id][0]->phy_proc[0], "[UE][total_phy_proc[0]]", - &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->phy_proc[1], "[UE][total_phy_proc[1]]", - &oaisim_stats, &oaisim_stats_f); - - - print_meas (&PHY_vars_UE_g[UE_id][0]->phy_proc_rx[0], - "[UE][total_phy_proc_rx[0]]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->phy_proc_rx[1], - "[UE][total_phy_proc_rx[1]]", &oaisim_stats, &oaisim_stats_f); - // print_meas (&PHY_vars_UE_g[UE_id][0]->ofdm_demod_stats, - // "[UE][ofdm_demod]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->rx_dft_stats, "[UE][rx_dft]", - &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_channel_estimation_stats, - "[UE][channel_est]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_freq_offset_estimation_stats, - "[UE][freq_offset]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_llr_stats, "[UE][llr]", - &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_unscrambling_stats, - "[UE][unscrambling]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_decoding_stats[0], - "[UE][decoding[0]]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_decoding_stats[1], - "[UE][decoding[1]]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_rate_unmatching_stats, - "[UE][rate_unmatching]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_deinterleaving_stats, - "[UE][deinterleaving]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_turbo_decoding_stats, - "[UE][turbo_decoding]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_tc_init_stats, - "[UE][ |_tc_init]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_tc_alpha_stats, - "[UE][ |_tc_alpha]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_tc_beta_stats, - "[UE][ |_tc_beta]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_tc_gamma_stats, - "[UE][ |_tc_gamma]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_tc_ext_stats, - "[UE][ |_tc_ext]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_tc_intl1_stats, - "[UE][ |_tc_intl1]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->dlsch_tc_intl2_stats, - "[UE][ |_tc_intl2]", &oaisim_stats, &oaisim_stats_f); - - print_meas (&PHY_vars_UE_g[UE_id][0]->phy_proc_tx, - "[UE][total_phy_proc_tx]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->ofdm_mod_stats, "[UE][ofdm_mod]", - &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->ulsch_modulation_stats, - "[UE][modulation]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->ulsch_encoding_stats, - "[UE][encoding]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->ulsch_segmentation_stats, - "[UE][segmentation]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->ulsch_rate_matching_stats, - "[UE][rate_matching]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->ulsch_turbo_encoding_stats, - "[UE][turbo_encoding]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->ulsch_interleaving_stats, - "[UE][interleaving]", &oaisim_stats, &oaisim_stats_f); - print_meas (&PHY_vars_UE_g[UE_id][0]->ulsch_multiplexing_stats, - "[UE][multiplexing]", &oaisim_stats, &oaisim_stats_f); - - } - - for (eNB_id = 0; eNB_id < NB_eNB_INST; eNB_id++) { - print_meas (&RC.eNB[eNB_id][0]->phy_proc, - "[eNB][total_phy_proc]", &oaisim_stats, &oaisim_stats_f); - - print_meas (&RC.eNB[eNB_id][0]->phy_proc_tx, - "[eNB][total_phy_proc_tx]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.eNB[eNB_id][0]->ofdm_mod_stats, - "[eNB][ofdm_mod]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.eNB[eNB_id][0]->dlsch_modulation_stats, - "[eNB][modulation]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.eNB[eNB_id][0]->dlsch_scrambling_stats, - "[eNB][scrambling]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.eNB[eNB_id][0]->dlsch_encoding_stats, - "[eNB][encoding]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.eNB[eNB_id][0]->dlsch_interleaving_stats, - "[eNB][|_interleaving]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.eNB[eNB_id][0]->dlsch_rate_matching_stats, - "[eNB][|_rate_matching]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.eNB[eNB_id][0]->dlsch_turbo_encoding_stats, - "[eNB][|_turbo_encoding]", &oaisim_stats, &oaisim_stats_f); - - print_meas (&RC.eNB[eNB_id][0]->phy_proc_rx, - "[eNB][total_phy_proc_rx]", &oaisim_stats, &oaisim_stats_f); - // print_meas (&RC.eNB[eNB_id][0]->ofdm_demod_stats, - // "[eNB][ofdm_demod]", &oaisim_stats, &oaisim_stats_f); - //print_meas(&RC.eNB[eNB_id][0]->ulsch_channel_estimation_stats,"[eNB][channel_est]"); - //print_meas(&RC.eNB[eNB_id][0]->ulsch_freq_offset_estimation_stats,"[eNB][freq_offset]"); - //print_meas(&RC.eNB[eNB_id][0]->rx_dft_stats,"[eNB][rx_dft]"); - print_meas (&RC.eNB[eNB_id][0]->ulsch_demodulation_stats, - "[eNB][demodulation]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.eNB[eNB_id][0]->ulsch_decoding_stats, - "[eNB][decoding]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.eNB[eNB_id][0]->ulsch_deinterleaving_stats, - "[eNB][|_deinterleaving]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.eNB[eNB_id][0]->ulsch_demultiplexing_stats, - "[eNB][|_demultiplexing]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.eNB[eNB_id][0]->ulsch_rate_unmatching_stats, - "[eNB][|_rate_unmatching]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.eNB[eNB_id][0]->ulsch_turbo_decoding_stats, - "[eNB][|_turbo_decoding]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.eNB[eNB_id][0]->ulsch_tc_init_stats, - "[eNB][ |_tc_init]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.eNB[eNB_id][0]->ulsch_tc_alpha_stats, - "[eNB][ |_tc_alpha]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.eNB[eNB_id][0]->ulsch_tc_beta_stats, - "[eNB][ |_tc_beta]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.eNB[eNB_id][0]->ulsch_tc_gamma_stats, - "[eNB][ |_tc_gamma]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.eNB[eNB_id][0]->ulsch_tc_ext_stats, - "[eNB][ |_tc_ext]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.eNB[eNB_id][0]->ulsch_tc_intl1_stats, - "[eNB][ |_tc_intl1]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.eNB[eNB_id][0]->ulsch_tc_intl2_stats, - "[eNB][ |_tc_intl2]", &oaisim_stats, &oaisim_stats_f); - - print_meas (&RC.eNB[eNB_id][0]->rx_prach, "[eNB][rx_prach]", - &oaisim_stats, &oaisim_stats_f); - -#ifdef LOCALIZATION - print_meas(&RC.eNB[eNB_id][0]->localization_stats, "[eNB][LOCALIZATION]",&oaisim_stats,&oaisim_stats_f); -#endif - } - - for (UE_id = 0; UE_id < NB_UE_INST; UE_id++) { - - print_meas (&UE_mac_inst[UE_id].ue_scheduler, "[UE][mac_scheduler]", - &oaisim_stats, &oaisim_stats_f); - print_meas (&UE_mac_inst[UE_id].tx_ulsch_sdu, "[UE][tx_ulsch_sdu]", - &oaisim_stats, &oaisim_stats_f); - print_meas (&UE_mac_inst[UE_id].rx_dlsch_sdu, "[UE][rx_dlsch_sdu]", - &oaisim_stats, &oaisim_stats_f); - print_meas (&UE_mac_inst[UE_id].ue_query_mch, "[UE][query_MCH]", - &oaisim_stats, &oaisim_stats_f); - print_meas (&UE_mac_inst[UE_id].rx_mch_sdu, "[UE][rx_mch_sdu]", - &oaisim_stats, &oaisim_stats_f); - print_meas (&UE_mac_inst[UE_id].rx_si, "[UE][rx_si]", &oaisim_stats, - &oaisim_stats_f); - - print_meas (&UE_pdcp_stats[UE_id].pdcp_run, "[UE][total_pdcp_run]", - &oaisim_stats, &oaisim_stats_f); - print_meas (&UE_pdcp_stats[UE_id].data_req, "[UE][DL][pdcp_data_req]", - &oaisim_stats, &oaisim_stats_f); - print_meas (&UE_pdcp_stats[UE_id].data_ind, "[UE][UL][pdcp_data_ind]", - &oaisim_stats, &oaisim_stats_f); - - print_meas (&UE_pdcp_stats[UE_id].apply_security, - "[UE][DL][apply_security]", &oaisim_stats, &oaisim_stats_f); - print_meas (&UE_pdcp_stats[UE_id].validate_security, - "[UE][UL][validate_security]", &oaisim_stats, - &oaisim_stats_f); - print_meas (&UE_pdcp_stats[UE_id].ip_pdcp, "[UE][DL][ip_pdcp]", - &oaisim_stats, &oaisim_stats_f); - print_meas (&UE_pdcp_stats[UE_id].pdcp_ip, "[UE][UL][pdcp_ip]", - &oaisim_stats, &oaisim_stats_f); - - } - - for (eNB_id = 0; eNB_id < NB_eNB_INST; eNB_id++) { - - print_meas (&RC.mac[eNB_id]->eNB_scheduler, "[eNB][mac_scheduler]", - &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.mac[eNB_id]->schedule_si, "[eNB][DL][SI]", - &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.mac[eNB_id]->schedule_ra, "[eNB][DL][RA]", - &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.mac[eNB_id]->fill_DLSCH_dci, - "[eNB][DL/UL][fill_DCI]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.mac[eNB_id]->schedule_dlsch_preprocessor, - "[eNB][DL][preprocessor]", &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.mac[eNB_id]->schedule_dlsch, - "[eNB][DL][schedule_tx_dlsch]", &oaisim_stats, - &oaisim_stats_f); - print_meas (&RC.mac[eNB_id]->schedule_mch, "[eNB][DL][mch]", - &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.mac[eNB_id]->schedule_ulsch, "[eNB][UL][ULSCH]", - &oaisim_stats, &oaisim_stats_f); - print_meas (&RC.mac[eNB_id]->rx_ulsch_sdu, - "[eNB][UL][rx_ulsch_sdu]", &oaisim_stats, &oaisim_stats_f); - - print_meas (&eNB_pdcp_stats[eNB_id].pdcp_run, "[eNB][pdcp_run]", - &oaisim_stats, &oaisim_stats_f); - print_meas (&eNB_pdcp_stats[eNB_id].data_req, - "[eNB][DL][pdcp_data_req]", &oaisim_stats, &oaisim_stats_f); - print_meas (&eNB_pdcp_stats[eNB_id].data_ind, - "[eNB][UL][pdcp_data_ind]", &oaisim_stats, &oaisim_stats_f); - - print_meas (&eNB_pdcp_stats[eNB_id].apply_security, - "[eNB][DL][apply_security]", &oaisim_stats, - &oaisim_stats_f); - print_meas (&eNB_pdcp_stats[eNB_id].validate_security, - "[eNB][UL][validate_security]", &oaisim_stats, - &oaisim_stats_f); - print_meas (&eNB_pdcp_stats[eNB_id].ip_pdcp, "[eNB][DL][ip_pdcp]", - &oaisim_stats, &oaisim_stats_f); - print_meas (&eNB_pdcp_stats[eNB_id].pdcp_ip, "[eNB][UL][pdcp_ip]", - &oaisim_stats, &oaisim_stats_f); - - } - -} - -#if !defined(ENABLE_ITTI) -static void * -sigh (void *arg) -{ - - int signum; - sigset_t sigcatch; - sigemptyset (&sigcatch); - sigaddset (&sigcatch, SIGHUP); - sigaddset (&sigcatch, SIGINT); - sigaddset (&sigcatch, SIGTERM); - sigaddset (&sigcatch, SIGQUIT); - - for (;;) { - sigwait (&sigcatch, &signum); - - //sigwait(&sigblock, &signum); - switch (signum) { - case SIGHUP: - case SIGINT: - case SIGTERM: - case SIGQUIT: - fprintf (stderr, "received signal %d \n", signum); - // no need for mutx: when ITTI not used, this variable is only accessed by this function - l2l1_state = L2L1_TERMINATED; - break; - - default: - fprintf (stderr, "Unexpected signal %d \n", signum); - exit (-1); - break; - } - } - - pthread_exit (NULL); -} -#endif /* !defined(ENABLE_ITTI) */ - -void -oai_shutdown (void) -{ - static int done = 0; - - if (done) - return; - - free (otg_pdcp_buffer); - otg_pdcp_buffer = 0; - -#ifdef SMBV - - // Rohde&Schwarz SMBV100A vector signal generator - if (config_smbv) { - smbv_send_config (smbv_fname,smbv_ip); - } - -#endif - - if (oai_emulation.info.opp_enabled == 1) - print_opp_meas_oaisim (); - - -#ifdef PROC - - if (abstraction_flag == 0 && Channel_Flag==0 && Process_Flag==0) -#else - if (abstraction_flag == 0) -#endif - { - /* - #ifdef IFFT_FPGA - free(txdataF2[0]); - free(txdataF2[1]); - free(txdataF2); - free(txdata[0]); - free(txdata[1]); - free(txdata); - #endif - */ - /* - for (int i = 0; i < 2; i++) { - free (s_re[i]); - free (s_im[i]); - free (r_re[i]); - free (r_im[i]); - } - - free (s_re); - free (s_im); - free (r_re); - free (r_im); - s_re = 0; - s_im = 0; - r_re = 0; - r_im = 0;*/ - - lte_sync_time_free (); - } - - // added for PHY abstraction - if (oai_emulation.info.ocm_enabled == 1) { - for (eNB_inst = 0; eNB_inst < NUMBER_OF_eNB_MAX; eNB_inst++) { - free (enb_data[eNB_inst]); - enb_data[eNB_inst] = 0; - } - - for (UE_inst = 0; UE_inst < NUMBER_OF_UE_MAX; UE_inst++) { - free (ue_data[UE_inst]); - ue_data[UE_inst] = 0; - } - } //End of PHY abstraction changes - - - if ((oai_emulation.info.ocm_enabled == 1) && (ethernet_flag == 0) - && (ShaF != NULL)) { - destroyMat (ShaF, map1, map2); - ShaF = 0; - } - - if (opt_enabled == 1) - terminate_opt (); - - for (int i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) - if (oai_emulation.info.oai_ifup[i] == 1) { - char interfaceName[8]; - snprintf (interfaceName, sizeof(interfaceName), "oai%d", i); - bringInterfaceUp (interfaceName, 0); - } - - log_thread_finalize (); - logClean (); - VCD_SIGNAL_DUMPER_CLOSE (); - - done = 1; // prevent next invokation of this function - - LOG_N(EMU, - ">>>>>>>>>>>>>>>>>>>>>>>>>>> OAIEMU shutdown <<<<<<<<<<<<<<<<<<<<<<<<<<\n\n"); -} - -eNB_MAC_INST* -get_eNB_mac_inst (module_id_t module_idP) -{ - return (RC.mac[module_idP]); -} - -OAI_Emulation* -get_OAI_emulation () -{ - return &oai_emulation; -} - - -// dummy function declarations - -void *rrc_enb_task(void *args_p) -{ - return NULL; -} - diff --git a/targets/SIMU/USER/oaisim.h b/targets/SIMU/USER/oaisim.h deleted file mode 100644 index 1ddc093983..0000000000 --- a/targets/SIMU/USER/oaisim.h +++ /dev/null @@ -1,92 +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 -#include -#include -#include - -#include "SIMULATION/TOOLS/sim.h" -#include "SIMULATION/RF/rf.h" -#include "PHY/types.h" -#include "PHY/defs_eNB.h" -#include "PHY/defs_UE.h" -#include "oaisim_config.h" -#include "init_lte.h" - -#ifdef OPENAIR2 -#include "LAYER2/MAC/mac.h" -#include "UTIL/OMV/structures.h" -#endif - -eNB_MAC_INST* get_eNB_mac_inst(module_id_t module_idP); -OAI_Emulation* get_OAI_emulation(void); -void init_channel_vars(LTE_DL_FRAME_PARMS *frame_parms, double ***s_re,double ***s_im,double ***r_re,double ***r_im,double ***r_re0,double ***r_im0); - -void do_UL_sig(channel_desc_t *UE2RU[NUMBER_OF_UE_MAX][NUMBER_OF_RU_MAX][MAX_NUM_CCs], - node_desc_t *enb_data[NUMBER_OF_RU_MAX],node_desc_t *ue_data[NUMBER_OF_UE_MAX], - uint16_t subframe,uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms, - uint32_t frame,int eNB_id,uint8_t CC_id); - -void do_DL_sig(channel_desc_t *RU2UE[NUMBER_OF_RU_MAX][NUMBER_OF_UE_MAX][MAX_NUM_CCs], - node_desc_t *enb_data[NUMBER_OF_RU_MAX], - node_desc_t *ue_data[NUMBER_OF_UE_MAX], - uint16_t subframe, - uint32_t offset, - uint32_t length, - uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms,uint8_t UE_id,int CC_id); - -void init_ue(node_desc_t *ue_data, UE_Antenna ue_ant);//Abstraction changes -void init_enb(node_desc_t *enb_data, eNB_Antenna enb_ant);//Abstraction changes -void extract_position(node_list* input_node_list, node_desc_t**, int nb_nodes);//Abstraction changes -void get_beta_map(void);//Abstraction changes -void get_MIESM_param(void); - -void init_snr(channel_desc_t *, node_desc_t *, node_desc_t *, double*, double*, uint8_t, uint16_t, uint8_t, uint16_t);//Abstraction changes -void init_snr_up(channel_desc_t *, node_desc_t *, node_desc_t *, double*, double*, uint16_t, uint16_t);//Abstraction changes -void calculate_sinr(channel_desc_t *, node_desc_t *, node_desc_t *, double *sinr_dB, uint16_t);//Abstraction changes -void get_beta_map(void); -int dlsch_abstraction_EESM(double* sinr_dB, uint32_t rb_alloc[4], uint8_t mcs, uint8_t); //temporary testing for PHY abstraction -int dlsch_abstraction_MIESM(double* sinr_dB,uint8_t TM, uint32_t rb_alloc[4], uint8_t mcs,uint8_t); -int ulsch_abstraction_MIESM(double* sinr_dB,uint8_t TM, uint8_t mcs,uint16_t nb_rb, uint16_t first_rb); -int ulsch_abstraction(double* sinr_dB,uint8_t TM, uint8_t mcs,uint16_t nb_rb, uint16_t first_rb); - -void calc_path_loss(node_desc_t* node_tx, node_desc_t* node_rx, channel_desc_t *ch_desc, Environment_System_Config env_desc, double **SF); - -void do_OFDM_mod(int32_t **txdataF, int32_t **txdata, frame_t frame, uint16_t next_slot, LTE_DL_FRAME_PARMS *frame_parms); - -void reset_opp_meas(void); -void print_opp_meas(void); - -#ifdef OPENAIR2 -int omv_write (int pfd, node_list* enb_node_list, node_list* ue_node_list, Data_Flow_Unit omv_data); -void omv_end (int pfd, Data_Flow_Unit omv_data); -#endif - - - - - - - - diff --git a/targets/SIMU/USER/oaisim_config.c b/targets/SIMU/USER/oaisim_config.c deleted file mode 100644 index 17ed9ff571..0000000000 --- a/targets/SIMU/USER/oaisim_config.c +++ /dev/null @@ -1,1349 +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 oaisim_config.c -* \brief Configuration of oaisim -* \author Navid Nikaein -* \date 2013-2015 -* \version 1.0 -* \company Eurecom -* \email: openair_tech@eurecom.fr -* \note -* \warning -*/ - -#include -#include -#include -#include -#include -#include - -#include "oaisim_config.h" -#include "OCG.h" -#include "OCG_extern.h" -#include "UTIL/OMG/omg.h" -#include "UTIL/OMG/grid.h" -#include "UTIL/OTG/otg_tx.h" -#include "UTIL/OTG/otg.h" -#include "UTIL/OTG/otg_externs.h" -#include "oml.h" -#include "msc.h" -#if ENABLE_RAL -#include "lteRALenb.h" -#include "lteRALue.h" -#endif - -#if defined(ENABLE_ITTI) -# include "intertask_interface_init.h" -#endif - - -mapping omg_model_names[] = { - {"STATIC", STATIC}, - {"RWP", RWP}, - {"RWALK", RWALK}, - {"TRACE", TRACE}, - {"SUMO", SUMO}, - {"STEADY_RWP", STEADY_RWP}, - {"MAX_NUM_MOB_TYPES", MAX_NUM_MOB_TYPES}, - {NULL, -1} -}; -// subtypes for RWP in grid map -mapping omg_rwp_names[] = { - {"MIN_RWP_TYPES", MIN_RWP_TYPES}, - {"RESTRICTED_RWP",RESTIRICTED_RWP}, - {"CONNECTED_DOMAIN", CONNECTED_DOMAIN}, - {"MAX_RWP_TYPES", MAX_RWP_TYPES}, - {NULL, -1} -}; - -void ocg_config_proto(void); - -void init_oai_emulation(void) -{ - - int i; - int CC_id; - - oai_emulation.environment_system_config.fading.large_scale.selected_option = "free_space"; - oai_emulation.environment_system_config.fading.free_space_model_parameters.pathloss_exponent = 3.00; - oai_emulation.environment_system_config.fading.free_space_model_parameters.pathloss_0_dB = -100; - oai_emulation.environment_system_config.fading.small_scale.selected_option = "AWGN"; - oai_emulation.environment_system_config.fading.ricean_8tap.rice_factor_dB = 0; - oai_emulation.environment_system_config.fading.shadowing.decorrelation_distance_m = 0; - oai_emulation.environment_system_config.fading.shadowing.variance_dB = 0; - oai_emulation.environment_system_config.fading.shadowing.inter_site_correlation = 0; - oai_emulation.environment_system_config.antenna.eNB_antenna.number_of_sectors = 1; - oai_emulation.environment_system_config.antenna.eNB_antenna.beam_width_dB = 1.13; - oai_emulation.environment_system_config.antenna.eNB_antenna.alpha_rad[0] = 0; - oai_emulation.environment_system_config.antenna.eNB_antenna.alpha_rad[1] = 0; - oai_emulation.environment_system_config.antenna.eNB_antenna.alpha_rad[2] = 0; - oai_emulation.environment_system_config.antenna.eNB_antenna.antenna_gain_dBi = 0; - oai_emulation.environment_system_config.antenna.eNB_antenna.tx_power_dBm = 15; - oai_emulation.environment_system_config.antenna.eNB_antenna.rx_noise_level_dB = 0; - oai_emulation.environment_system_config.antenna.eNB_antenna.antenna_orientation_degree[0] = 0; - oai_emulation.environment_system_config.antenna.eNB_antenna.antenna_orientation_degree[1] = 0; - oai_emulation.environment_system_config.antenna.eNB_antenna.antenna_orientation_degree[2] = 0; - oai_emulation.environment_system_config.antenna.UE_antenna.antenna_gain_dBi = 0; - oai_emulation.environment_system_config.antenna.UE_antenna.tx_power_dBm = 20; - oai_emulation.environment_system_config.antenna.UE_antenna.rx_noise_level_dB = 0; // noise figure - oai_emulation.environment_system_config.wall_penetration_loss_dB = 5; - oai_emulation.environment_system_config.system_bandwidth_MB = 7.68; - oai_emulation.environment_system_config.system_frequency_GHz = 1.9; - - oai_emulation.topology_config.area.x_m = 1000; - oai_emulation.topology_config.area.y_m = 1000; - oai_emulation.topology_config.network_type.selected_option = "homogeneous"; - oai_emulation.topology_config.cell_type.selected_option = "macrocell"; - oai_emulation.topology_config.relay.number_of_relays = 0; - oai_emulation.topology_config.mobility.UE_mobility.UE_mobility_type.selected_option = "STATIC"; - oai_emulation.topology_config.mobility.UE_mobility.grid_walk.grid_map.selected_option="MAX_RWP_TYPES"; - //oai_emulation.topology_config.mobility.UE_mobility.grid_walk.grid_map.horizontal_grid = 1; - //oai_emulation.topology_config.mobility.UE_mobility.grid_walk.grid_map.vertical_grid = 1; - oai_emulation.topology_config.mobility.UE_mobility.grid_walk.grid_trip_type.selected_option = "random_destination"; - oai_emulation.topology_config.mobility.UE_mobility.UE_initial_distribution.selected_option = "random"; - oai_emulation.topology_config.mobility.UE_mobility.random_UE_distribution.number_of_nodes = 1; - oai_emulation.topology_config.mobility.UE_mobility.concentrated_UE_distribution.number_of_nodes = 1; - oai_emulation.topology_config.mobility.UE_mobility.grid_UE_distribution.random_grid.number_of_nodes = 1; - oai_emulation.topology_config.mobility.UE_mobility.grid_UE_distribution.border_grid.number_of_nodes = 1; - oai_emulation.topology_config.mobility.UE_mobility.UE_moving_dynamics.min_speed_mps = 0.1; - oai_emulation.topology_config.mobility.UE_mobility.UE_moving_dynamics.max_speed_mps = 20.0; - oai_emulation.topology_config.mobility.UE_mobility.UE_moving_dynamics.min_sleep_ms = 0.1; - oai_emulation.topology_config.mobility.UE_mobility.UE_moving_dynamics.max_sleep_ms = 5.0; - oai_emulation.topology_config.mobility.UE_mobility.UE_moving_dynamics.min_journey_time_ms = 0.1; - oai_emulation.topology_config.mobility.UE_mobility.UE_moving_dynamics.max_journey_time_ms = 10.0; - oai_emulation.topology_config.mobility.eNB_mobility.eNB_mobility_type.selected_option = "STATIC"; - oai_emulation.topology_config.mobility.eNB_mobility.eNB_initial_distribution.selected_option = "random"; - oai_emulation.topology_config.mobility.eNB_mobility.fixed_eNB_distribution.pos_x = 1; - oai_emulation.topology_config.mobility.eNB_mobility.fixed_eNB_distribution.pos_y = 1; - oai_emulation.topology_config.mobility.eNB_mobility.random_eNB_distribution.number_of_cells = 1; - oai_emulation.topology_config.mobility.eNB_mobility.hexagonal_eNB_distribution.number_of_cells = 1; - oai_emulation.topology_config.mobility.eNB_mobility.hexagonal_eNB_distribution.inter_eNB_distance_km = 1; - oai_emulation.topology_config.mobility.eNB_mobility.grid_eNB_distribution.number_of_grid_x = 1; - oai_emulation.topology_config.mobility.eNB_mobility.grid_eNB_distribution.number_of_grid_y = 1; - oai_emulation.topology_config.mobility.eNB_mobility.trace_config.trace_mobility_file = (char*) malloc(256); - sprintf(oai_emulation.topology_config.mobility.eNB_mobility.trace_config.trace_mobility_file,"static_1enb.tr"); - oai_emulation.topology_config.mobility.UE_mobility.trace_config.trace_mobility_file = (char*) malloc(256); - sprintf(oai_emulation.topology_config.mobility.UE_mobility.trace_config.trace_mobility_file,"static_2ues.tr"); - oai_emulation.topology_config.mobility.UE_mobility.sumo_config.command = (char*) malloc(20); - sprintf(oai_emulation.topology_config.mobility.UE_mobility.sumo_config.command,"sumo"); - oai_emulation.topology_config.mobility.UE_mobility.sumo_config.file = (char*) malloc(256); - snprintf( oai_emulation.topology_config.mobility.UE_mobility.sumo_config.file, 256, "%s/UTIL/OMG/SUMO/SCENARIOS/scen.sumo.cfg", getenv("OPENAIR2_DIR") ); - oai_emulation.topology_config.mobility.UE_mobility.sumo_config.start=0; - oai_emulation.topology_config.mobility.UE_mobility.sumo_config.end=0; - oai_emulation.topology_config.mobility.UE_mobility.sumo_config.step=1; // 1000ms - oai_emulation.topology_config.mobility.UE_mobility.sumo_config.hip = (char*) malloc(40); - sprintf(oai_emulation.topology_config.mobility.UE_mobility.sumo_config.hip,"127.0.1.1"); - oai_emulation.topology_config.mobility.UE_mobility.sumo_config.hport = 8883; - - oai_emulation.application_config.packet_gen_type = "substract_string"; - - for (i = 0; i < NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX; i++) { - oai_emulation.application_config.predefined_traffic.source_id[i] = "1:10"; - oai_emulation.application_config.predefined_traffic.application_type[i] = "no_predefined_traffic"; - oai_emulation.application_config.predefined_traffic.background[i] = "disable"; - oai_emulation.application_config.predefined_traffic.aggregation_level[i] = 1; - oai_emulation.application_config.predefined_traffic.flow_start[i] = 0; - oai_emulation.application_config.predefined_traffic.flow_duration[i] = 1000;//uniform_dist((i+1)*100,0xffff); - - oai_emulation.application_config.predefined_traffic.destination_id[i] = 0; - - oai_emulation.application_config.customized_traffic.source_id[i] = "1"; - oai_emulation.application_config.customized_traffic.destination_id[i] = "2"; - oai_emulation.application_config.customized_traffic.transport_protocol[i] = "udp"; - oai_emulation.application_config.customized_traffic.background[i] = "disable"; - oai_emulation.application_config.customized_traffic.m2m[i] = "disable"; - oai_emulation.application_config.customized_traffic.ip_version[i] = "ipv4"; - oai_emulation.application_config.customized_traffic.aggregation_level[i] = 1; - oai_emulation.application_config.customized_traffic.flow_start[i] = 0;// (i+1)*30; - oai_emulation.application_config.customized_traffic.flow_duration[i] = 1000;// uniform_dist((i+1)*100,0xffff); - oai_emulation.application_config.customized_traffic.idt_dist[i] = "uniform"; - oai_emulation.application_config.customized_traffic.idt_min_ms[i] = 100; - oai_emulation.application_config.customized_traffic.idt_max_ms[i] = 1000; - oai_emulation.application_config.customized_traffic.idt_standard_deviation[i] = 1; - oai_emulation.application_config.customized_traffic.idt_lambda[i] = 1; - oai_emulation.application_config.customized_traffic.size_dist[i] = "uniform"; - oai_emulation.application_config.customized_traffic.size_min_byte[i] = 200; - oai_emulation.application_config.customized_traffic.size_max_byte[i] = 500; - oai_emulation.application_config.customized_traffic.size_standard_deviation[i] = 1; - oai_emulation.application_config.customized_traffic.size_lambda[i] = 1; - oai_emulation.application_config.customized_traffic.stream[i] = 1; - oai_emulation.application_config.customized_traffic.destination_port[i] = 8080; - oai_emulation.application_config.customized_traffic.prob_off_pu[i]= 0; - oai_emulation.application_config.customized_traffic.prob_off_ed[i]= 0; - oai_emulation.application_config.customized_traffic.prob_off_pe[i]= 0; - oai_emulation.application_config.customized_traffic.prob_pu_ed[i]= 0; - oai_emulation.application_config.customized_traffic.prob_pu_pe[i]= 0; - oai_emulation.application_config.customized_traffic.prob_ed_pe[i]= 0; - oai_emulation.application_config.customized_traffic.prob_ed_pu[i]= 0; - oai_emulation.application_config.customized_traffic.holding_time_off_ed[i]= 0; - oai_emulation.application_config.customized_traffic.holding_time_off_pu[i]= 0; - oai_emulation.application_config.customized_traffic.holding_time_off_pe[i]= 0; - oai_emulation.application_config.customized_traffic.holding_time_pe_off[i]= 0; - oai_emulation.application_config.customized_traffic.pu_size_pkts[i]= 0; - oai_emulation.application_config.customized_traffic.ed_size_pkts[i]= 0; - } - - /* protocol config */ - oai_emulation.protocol_config.eNB_mac_config.num_groups=1; - - - oai_emulation.emulation_config.emulation_time_ms = 0; - oai_emulation.emulation_config.curve = "disable"; - oai_emulation.emulation_config.background_stats = "disable"; - oai_emulation.emulation_config.performance_metrics.throughput = "disable"; - oai_emulation.emulation_config.performance_metrics.latency ="disable"; - oai_emulation.emulation_config.performance_metrics.loss_rate ="disable"; - oai_emulation.emulation_config.performance_metrics.owd_radio_access = "disable"; - oai_emulation.emulation_config.layer.phy = 0; - oai_emulation.emulation_config.layer.mac = 0; - oai_emulation.emulation_config.layer.rlc = 0; - oai_emulation.emulation_config.layer.pdcp = 0; - oai_emulation.emulation_config.layer.rrc = 0; - oai_emulation.emulation_config.layer.omg = 0; - oai_emulation.emulation_config.layer.otg = 0; - oai_emulation.emulation_config.layer.emu = 1; - - oai_emulation.emulation_config.log_emu.level = "debug"; - oai_emulation.emulation_config.log_emu.verbosity = "low"; - oai_emulation.emulation_config.log_emu.interval = 1; - oai_emulation.emulation_config.packet_trace.enabled = 0; - oai_emulation.emulation_config.seed.value = 0; // 0 means randomly generated by OAI - - oai_emulation.info.ocg_ok = 0; - - - // phy related params : - oai_emulation.info.n_frames=MAX_FRAME_NUMBER; // number of frames simulated by default - oai_emulation.info.n_frames_flag=0; // if set, then let the emulation goes to infinity - - //status - oai_emulation.info.is_primary_master=0; - oai_emulation.info.master_list=0; - oai_emulation.info.nb_ue_remote=0; - oai_emulation.info.nb_enb_remote=0; - oai_emulation.info.nb_rn_remote=0; - oai_emulation.info.first_ue_local=0; - oai_emulation.info.first_enb_local=0; - oai_emulation.info.first_rn_local=0; - oai_emulation.info.master_id=0; - oai_emulation.info.nb_ue_local= 1;//default 1 UE - oai_emulation.info.nb_enb_local= 0;//default 0 eNB (to be loaded from config) - oai_emulation.info.nb_ru_local= 0;//default 0 ru (to be loaded from config) - oai_emulation.info.nb_rn_local= 0;//default 0 RN : currently only applicable for eMBMS - oai_emulation.info.ethernet_flag=0; - oai_emulation.info.ocm_enabled=1;// flag ? - oai_emulation.info.ocg_enabled=0;// flag c - oai_emulation.info.otg_enabled=0;// flag T - oai_emulation.info.opt_enabled=0; // P flag - oai_emulation.info.opt_mode=-1; // arg for P flag - oai_emulation.info.cli_enabled=0;// I flag - oai_emulation.info.omv_enabled =0; // v flag - oai_emulation.info.vcd_enabled=0; - oai_emulation.info.opp_enabled=0; - oai_emulation.info.oeh_enabled=0; - - oai_emulation.info.cba_group_active=0; - oai_emulation.info.cba_backoff=30; - oai_emulation.info.eMBMS_active_state=0; - oai_emulation.info.handover_active=0; - oai_emulation.info.omg_model_enb=STATIC; //default to static mobility model - oai_emulation.info.omg_model_rn=STATIC; //default to static mobility model - oai_emulation.info.omg_model_ue=STATIC; //default to static mobility model - oai_emulation.info.omg_rwp_type = RESTIRICTED_RWP; - oai_emulation.info.omg_model_ue_current=STATIC; //default to static mobility model - oai_emulation.info.otg_traffic="no_predefined_traffic"; - oai_emulation.info.otg_bg_traffic_enabled = 0; // G flag - oai_emulation.info.max_predefined_traffic_config_index = 0; - oai_emulation.info.max_customized_traffic_config_index = 0; - oai_emulation.info.frame = 0; // frame counter of emulation - oai_emulation.info.time_s = 0; // time of emulation - oai_emulation.info.time_ms = 0; // time of emulation - oai_emulation.info.seed = time(NULL); // time-based random seed , , included in ocg report - - oai_emulation.info.cli_num_enb= NUMBER_OF_eNB_MAX; - oai_emulation.info.cli_num_ue= NUMBER_OF_UE_MAX; - - oai_emulation.info.slot_isr = 0; - oai_emulation.info.slot_sfd = -1; - - //for (i=0; i < oai_emulation.info.cli_num_enb; i++) - for (i=0; i < NUMBER_OF_eNB_MAX; i++) - oai_emulation.info.cli_start_enb[i]=1; - - // for (i=0; i < oai_emulation.info.cli_num_ue; i++) - for (i=0; i < NUMBER_OF_UE_MAX; i++) - oai_emulation.info.cli_start_ue[i]=1; - - for (i=0; i < NUMBER_OF_eNB_MAX+NUMBER_OF_UE_MAX; i++) - oai_emulation.info.oai_ifup[i]=0; - - oai_emulation.info.nb_master =0; - oai_emulation.info.ethernet_id =0; - oai_emulation.info.multicast_group =0; - oai_emulation.info.multicast_ifname=NULL; - oai_emulation.info.g_log_level = LOG_INFO; - oai_emulation.info.g_log_verbosity = 0x15; - oai_emulation.info.g_log_verbosity_option = "medium"; - - for (CC_id=0; CC_idlog_component[OTG].filelog=1; - g_log->log_component[OTG_LATENCY].filelog=1; - g_log->log_component[OTG_OWD].filelog = 1;*/ - ocg_config_app(); // packet generator - } - - // add a var to control this, and pass this var to OMG - set_component_filelog(OMG); - LOG_I(OMG,"setting OMG file log \n"); - -} - -int olg_config(void) -{ - int comp; - int ocg_log_level = map_str_to_int(log_level_names, oai_emulation.emulation_config.log_emu.level); - int ocg_log_verbosity = map_str_to_int(log_verbosity_names, oai_emulation.emulation_config.log_emu.verbosity); - // fix me: - oai_emulation.info.g_log_level = ((oai_emulation.info.ocg_enabled == 1) && (ocg_log_level != -1)) ? ocg_log_level : oai_emulation.info.g_log_level; - oai_emulation.info.g_log_verbosity = (((oai_emulation.info.ocg_enabled == 1) && (ocg_log_verbosity != -1)) ? ocg_log_verbosity : - map_str_to_int(log_verbosity_names, oai_emulation.info.g_log_verbosity_option)); - set_glog(oai_emulation.info.g_log_level, oai_emulation.info.g_log_verbosity ); //g_glog - - // component, log level, log interval - for (comp = PHY; comp < MAX_LOG_COMPONENTS ; comp++) - set_comp_log(comp, - oai_emulation.info.g_log_level, - oai_emulation.info.g_log_verbosity, - oai_emulation.emulation_config.log_emu.interval); - - LOG_I(EMU, "OCG log level %d, oai log level%d \n ",ocg_log_level, oai_emulation.info.g_log_level); - LOG_N(EMU,"global log level is set to (%s,%d) with vebosity (%s, 0x%x) and frequency %d\n", - map_int_to_str (log_level_names, oai_emulation.info.g_log_level), - oai_emulation.info.g_log_level, - map_int_to_str (log_verbosity_names,oai_emulation.info.g_log_verbosity), - oai_emulation.info.g_log_verbosity, - oai_emulation.emulation_config.log_emu.interval ); - - - /* - // if perf eval then reset the otg log level - set_comp_log(PHY, LOG_EMERG, 0x15,1); - set_comp_log(EMU, LOG_EMERG, 0x15,1); - set_comp_log(OCG, LOG_EMERG, 0x15,1); - set_comp_log(OCM, LOG_EMERG, 0x15,1); - set_comp_log(OTG, LOG_EMERG, 0x15,1); - set_comp_log(MAC, LOG_EMERG, 0x15,1); - set_comp_log(OMG, LOG_EMERG, 0x15,1); - set_comp_log(OPT, LOG_EMERG, 0x15,1); - set_comp_log(PDCP, LOG_DEBUG, LOG_MED,1); - set_comp_log(RLC, LOG_DEBUG, LOG_MED,1); - set_comp_log(RRC, LOG_DEBUG, LOG_MED,1); - */ -#if defined(ENABLE_USE_MME) - set_comp_log(UDP_, LOG_DEBUG, LOG_MED,1); - set_comp_log(GTPU, LOG_DEBUG, LOG_MED,1); - set_comp_log(SPGW, LOG_DEBUG, LOG_MED,1); - set_comp_log(S1AP, LOG_DEBUG, LOG_MED,1); - set_comp_log(SCTP, LOG_DEBUG, LOG_MED,1); -#endif - -#if ENABLE_RAL - set_comp_log(RAL_ENB, LOG_TRACE, LOG_MED,1); - set_comp_log(RAL_UE, LOG_TRACE, LOG_MED,1); - set_log(RAL_ENB, LOG_DEBUG, 1); - set_log(RAL_UE, LOG_DEBUG, 1); -#endif - - - //set_log(OCG, LOG_DEBUG, 1); - //set_log(EMU, LOG_INFO, 20); - set_log(MAC, LOG_DEBUG, 1); - set_log(RLC, LOG_TRACE, 1); - //set_log(PHY, LOG_DEBUG, 1); - set_log(PDCP, LOG_TRACE, 1); - set_log(RRC, LOG_DEBUG, 1); - //set_log(OCM, LOG_INFO, 20); - //set_log(OTG, LOG_INFO, 1); - set_comp_log(OCG, LOG_ERR, 0x15,1); - set_comp_log(EMU, LOG_DEBUG, 0x15,20); - set_comp_log(MAC, LOG_TRACE, 0x15,1); - set_comp_log(RLC, LOG_TRACE, 0x15,1); - set_comp_log(PHY, LOG_TRACE, 0x15, 1); - set_comp_log(PDCP, LOG_DEBUG, 0x15,1); - set_comp_log(RRC, LOG_DEBUG, 0x15,1); - set_comp_log(OCM, LOG_DEBUG, 0x15,20); - set_comp_log(OTG, LOG_DEBUG, 0x15,1); - set_comp_log(OMG, LOG_NOTICE, 0x15,1); - set_comp_log(OPT, LOG_ERR, 0x15,1); - - - // set_comp_log(MAC, LOG_TRACE, LOG_FULL,1); - return 1; -} - -int ocg_config_env(void) -{ - // int func related to channel desc from oaisim.c could be moved here - int CC_id; - - if (oai_emulation.info.ocg_enabled) { - for (CC_id=0; CC_id 6) || (oai_emulation.info.tdd_config[CC_id] < 0)) { - LOG_E(EMU,"TDD config %d out of range, set it to 3\n",oai_emulation.info.tdd_config[CC_id]); - oai_emulation.info.tdd_config[CC_id]=3; - } else - LOG_I(EMU,"TDD config is set to %d\n",oai_emulation.info.tdd_config[CC_id]); - } - } - } - - return 1; -} -int ocg_config_topo(void) -{ - - int i; - // omg - init_omg_global_params(); - - // setup params for openair mobility generator - //common params - for(i=0; i < MAX_NUM_NODE_TYPES; i++) { - - omg_param_list[i].min_x = 0; - omg_param_list[i].max_x = oai_emulation.topology_config.area.x_m; - omg_param_list[i].min_y = 0; - omg_param_list[i].max_y= oai_emulation.topology_config.area.y_m; - // init values - omg_param_list[i].min_speed = 0.1; - omg_param_list[i].max_speed = 20.0; - omg_param_list[i].min_journey_time = 0.1; - omg_param_list[i].max_journey_time = 10.0; - omg_param_list[i].min_azimuth = 0; // ??? - omg_param_list[i].max_azimuth = 360; // ??? - omg_param_list[i].min_sleep = 0.1; - omg_param_list[i].max_sleep = 8.0; - omg_param_list[i].nodes_type = i; - omg_param_list[i].nodes=0; - omg_param_list[i].mobility_type=STATIC; - - // init OMG for eNBs - - if(i==eNB) { - if ((oai_emulation.info.omg_model_enb = map_str_to_int(omg_model_names, oai_emulation.topology_config.mobility.eNB_mobility.eNB_mobility_type.selected_option))== -1) - oai_emulation.info.omg_model_enb = STATIC; - - LOG_I(OMG,"eNB mobility model is (%s, %d)\n", - oai_emulation.topology_config.mobility.eNB_mobility.eNB_mobility_type.selected_option, - oai_emulation.info.omg_model_enb); - - omg_param_list[i].mobility_type = oai_emulation.info.omg_model_enb; - omg_param_list[i].nodes = oai_emulation.info.nb_enb_local + oai_emulation.info.nb_rn_local; - omg_param_list[i].seed = oai_emulation.info.seed; // specific seed for enb and ue to avoid node overlapping - - - if (oai_emulation.info.omg_model_enb == TRACE) { - omg_param_list[i].mobility_file = (char*) malloc(256);// user-specific trace file "%s/UTIL/OMG/mobility.txt",getenv("OPENAIR2_DIR") - //memset(oai_emulation.topology_config.mobility.UE_mobility.trace_config.trace_mobility_file,0,256); - //sprintf(omg_param_list.mobility_file,"%s",oai_emulation.topology_config.mobility.UE_mobility.trace_config.trace_mobility_file); - sprintf(omg_param_list[i].mobility_file,"%s/UTIL/OMG/TRACE/%s", - getenv("OPENAIR2_DIR"), - oai_emulation.topology_config.mobility.eNB_mobility.trace_config.trace_mobility_file); - LOG_I(OMG,"TRACE file at %s\n", omg_param_list[i].mobility_file); - // notify the user if the file is not found - } - - - - if (strcmp(oai_emulation.topology_config.mobility.eNB_mobility.eNB_initial_distribution.selected_option, "fixed") == 0) { - omg_param_list[i].user_fixed = true; - omg_param_list[i].fixed_x = (double)oai_emulation.topology_config.mobility.eNB_mobility.fixed_eNB_distribution.pos_x; - omg_param_list[i].fixed_y = (double)oai_emulation.topology_config.mobility.eNB_mobility.fixed_eNB_distribution.pos_y; - } - - /*// at this moment, we use the above moving dynamics for mobile eNB - if (omg_param_list.nodes >0 ) - init_mobility_generator(omg_param_list);*/ - - } else if (i== UE) { // init OMG for UE - - - // input of OMG: STATIC: 0, RWP: 1, RWALK 2, or TRACE 3, or SUMO or STEADY_RWP - if ((oai_emulation.info.omg_model_ue = map_str_to_int(omg_model_names, oai_emulation.topology_config.mobility.UE_mobility.UE_mobility_type.selected_option))== -1) - oai_emulation.info.omg_model_ue = STATIC; - - LOG_I(OMG,"UE mobility model is (%s, %d)\n", - oai_emulation.topology_config.mobility.UE_mobility.UE_mobility_type.selected_option, - oai_emulation.info.omg_model_ue); - - if (oai_emulation.info.omg_model_ue == RWP) { - oai_emulation.info.omg_rwp_type = map_str_to_int(omg_rwp_names,oai_emulation.topology_config.mobility.UE_mobility.grid_walk.grid_map.selected_option); - - if (oai_emulation.info.omg_rwp_type == -1) { - LOG_I(OMG,"Apply standard RWP model \n"); - } else { - LOG_I(OMG,"Apply %s mobility model (%d) \n", oai_emulation.topology_config.mobility.UE_mobility.grid_walk.grid_map.selected_option, - oai_emulation.info.omg_rwp_type); - omg_param_list[i].rwp_type= oai_emulation.info.omg_rwp_type; - omg_param_list[i].max_vertices = - max_vertices_ongrid (omg_param_list[i]); - - omg_param_list[i].max_block_num = - max_connecteddomains_ongrid (omg_param_list[i]); - } - } - - omg_param_list[i].mobility_type = oai_emulation.info.omg_model_ue; - omg_param_list[i].nodes = oai_emulation.info.nb_ue_local+ oai_emulation.info.nb_rn_local; - omg_param_list[i].seed = oai_emulation.info.seed + oai_emulation.info.nb_ue_local; //fixme: specific seed for enb and ue to avoid node overlapping - - omg_param_list[i].min_speed = (oai_emulation.topology_config.mobility.UE_mobility.UE_moving_dynamics.min_speed_mps == 0) ? 0.1 : - oai_emulation.topology_config.mobility.UE_mobility.UE_moving_dynamics.min_speed_mps; - - omg_param_list[i].max_speed = (oai_emulation.topology_config.mobility.UE_mobility.UE_moving_dynamics.max_speed_mps == 0) ? 0.1 : - oai_emulation.topology_config.mobility.UE_mobility.UE_moving_dynamics.max_speed_mps; - - omg_param_list[i].min_journey_time = (oai_emulation.topology_config.mobility.UE_mobility.UE_moving_dynamics.min_journey_time_ms == 0) ? 0.1 : - oai_emulation.topology_config.mobility.UE_mobility.UE_moving_dynamics.min_journey_time_ms; - - omg_param_list[i].max_journey_time = (oai_emulation.topology_config.mobility.UE_mobility.UE_moving_dynamics.max_journey_time_ms == 0) ? 0.1 : - oai_emulation.topology_config.mobility.UE_mobility.UE_moving_dynamics.max_journey_time_ms; - - omg_param_list[i].min_azimuth = 0.1; // wait for advanced OSD - omg_param_list[i].max_azimuth = 360; - - omg_param_list[i].min_sleep = (oai_emulation.topology_config.mobility.UE_mobility.UE_moving_dynamics.min_sleep_ms == 0) ? 0.1 : - oai_emulation.topology_config.mobility.UE_mobility.UE_moving_dynamics.min_sleep_ms; - - omg_param_list[i].max_sleep = (oai_emulation.topology_config.mobility.UE_mobility.UE_moving_dynamics.max_sleep_ms == 0) ? 0.1 : - oai_emulation.topology_config.mobility.UE_mobility.UE_moving_dynamics.max_sleep_ms; - - - if (oai_emulation.info.omg_model_ue == TRACE) { - omg_param_list[i].mobility_file = (char*) malloc(256);// user-specific trace file "%s/UTIL/OMG/mobility.txt",getenv("OPENAIR2_DIR") - //memset(oai_emulation.topology_config.mobility.UE_mobility.trace_config.trace_mobility_file,0,256); - //sprintf(omg_param_list.mobility_file,"%s",oai_emulation.topology_config.mobility.UE_mobility.trace_config.trace_mobility_file); - snprintf( omg_param_list[i].mobility_file, 256, "%s/UTIL/OMG/TRACE/%s", - getenv("OPENAIR2_DIR"), - oai_emulation.topology_config.mobility.UE_mobility.trace_config.trace_mobility_file); - LOG_I(OMG,"TRACE file at %s\n", omg_param_list[i].mobility_file); - - } else if (oai_emulation.info.omg_model_ue == SUMO) { - omg_param_list[i].sumo_command = (char*) malloc(20); - sprintf(omg_param_list[i].sumo_command, "%s", oai_emulation.topology_config.mobility.UE_mobility.sumo_config.command); - omg_param_list[i].sumo_config = (char*) malloc(256); - sprintf(omg_param_list[i].sumo_config, "%s", oai_emulation.topology_config.mobility.UE_mobility.sumo_config.file); - omg_param_list[i].sumo_start = oai_emulation.topology_config.mobility.UE_mobility.sumo_config.start; - - if (oai_emulation.topology_config.mobility.UE_mobility.sumo_config.end > 0 ) - omg_param_list[i].sumo_end = oai_emulation.topology_config.mobility.UE_mobility.sumo_config.end; - else - omg_param_list[i].sumo_end = (oai_emulation.info.n_frames_flag == 1 ) ? oai_emulation.info.n_frames : MAX_FRAME_NUMBER ; // fixme: the else case is infinity - - omg_param_list[i].sumo_step = oai_emulation.topology_config.mobility.UE_mobility.sumo_config.step=1; // 1000ms - omg_param_list[i].sumo_host = (char*) malloc(40); - sprintf(omg_param_list[i].sumo_host,"%s",oai_emulation.topology_config.mobility.UE_mobility.sumo_config.hip); - omg_param_list[i].sumo_port = oai_emulation.topology_config.mobility.UE_mobility.sumo_config.hport ; - LOG_D(OMG, "opt (%s,%d) cmd (%s,%s) config_file (%s,%s) hip (%s,%s) \n", - oai_emulation.topology_config.mobility.UE_mobility.UE_mobility_type.selected_option,oai_emulation.info.omg_model_ue, - omg_param_list[i].sumo_command, oai_emulation.topology_config.mobility.UE_mobility.sumo_config.command, - omg_param_list[i].sumo_config, oai_emulation.topology_config.mobility.UE_mobility.sumo_config.file, - omg_param_list[i].sumo_host, oai_emulation.topology_config.mobility.UE_mobility.sumo_config.hip); - } - - } - - if (oai_emulation.topology_config.omv == 1 ) - oai_emulation.info.omv_enabled = 1; - - }//for - - - init_mobility_generator(omg_param_list); - - return 1; -} - - - -int ocg_config_app(void) -{ - - char colon[] = ":"; - char comma[] = ","; - char tmp_source_id[128]; - char tmp_destination_id[128]; - char *check_format1; - char *check_format2; - char *check_format1_dst; - char *source_id_start = NULL; - char *source_id_end = NULL; - char *destination_id_start; - char *destination_id_end; - int sid_start; - int sid_end; - int did_start; - int did_end; - char *per_source_id; - int source_id_index; - int destination_id_index; - int i,j,k,l; - - int predefined_traffic_config_index; - int customized_traffic_config_index; - unsigned int state; - - init_all_otg(oai_emulation.info.n_frames); - g_otg->seed= oai_emulation.info.seed; - g_otg->num_nodes = oai_emulation.info.nb_enb_local + oai_emulation.info.nb_ue_local; - g_otg->throughput_metric =map_str_to_int(switch_names,oai_emulation.emulation_config.performance_metrics.throughput); - g_otg->latency_metric =map_str_to_int(switch_names,oai_emulation.emulation_config.performance_metrics.latency); - g_otg->loss_metric =map_str_to_int(switch_names,oai_emulation.emulation_config.performance_metrics.loss_rate); - g_otg->owd_radio_access =map_str_to_int(switch_names,oai_emulation.emulation_config.performance_metrics.owd_radio_access); - g_otg->curve=map_str_to_int(switch_names,oai_emulation.emulation_config.curve); - g_otg->background_stats=map_str_to_int(switch_names,oai_emulation.emulation_config.background_stats); - - g_otg->packet_gen_type=map_str_to_int(packet_gen_names,oai_emulation.application_config.packet_gen_type); - - LOG_I(OTG,"Metrics: Throuput %s(%d), One-way latency %s(%d) for %s, loss rate %s(%d), online curves %s(%d)\n", - oai_emulation.emulation_config.performance_metrics.throughput,g_otg->throughput_metric, - oai_emulation.emulation_config.performance_metrics.latency,g_otg->latency_metric, - (g_otg->owd_radio_access==1)? "Radio Access Network" : "End to End", - oai_emulation.emulation_config.performance_metrics.loss_rate,g_otg->loss_metric, - oai_emulation.emulation_config.curve,g_otg->curve ); - - for (i=0; inum_nodes; i++) { - - for (j=0; jnum_nodes; j++) { - // g_otg->duration[i][j]=oai_emulation.emulation_config.emulation_time_ms; - g_otg->dst_port[i][j]=oai_emulation.application_config.customized_traffic.destination_port[i]; - g_otg->dst_ip[i][j]=oai_emulation.application_config.customized_traffic.destination_id[i]; - - for (k=0; kip_v[i][j][k]=map_str_to_int(otg_ip_version_names, oai_emulation.application_config.customized_traffic.ip_version[i]); - g_otg->trans_proto[i][j][k]=map_str_to_int(otg_transport_protocol_names, oai_emulation.application_config.customized_traffic.transport_protocol[i]); - g_otg->application_type[i][j][k]=map_str_to_int(otg_app_type_names, "no_predefined_traffic"); - g_otg->aggregation_level[i][j][k]=oai_emulation.application_config.customized_traffic.aggregation_level[i]; - - g_otg->flow_start[i][j][k]=flow_start_time(i,j,oai_emulation.info.n_frames, - oai_emulation.application_config.customized_traffic.flow_start[i+j], - oai_emulation.application_config.customized_traffic.flow_duration[i+j]); - g_otg->flow_duration[i][j][k]=oai_emulation.application_config.customized_traffic.flow_duration[i+j]; - - for (l=0; lidt_dist[i][j][k][l]=map_str_to_int(otg_distribution_names, "no_customized_traffic"); - g_otg->idt_min[i][j][k][l]=oai_emulation.application_config.customized_traffic.idt_min_ms[i]; - g_otg->idt_max[i][j][k][l]=oai_emulation.application_config.customized_traffic.idt_max_ms[i]; - g_otg->idt_std_dev[i][j][k][l]=oai_emulation.application_config.customized_traffic.idt_standard_deviation[i]; - g_otg->idt_lambda[i][j][k][l]=oai_emulation.application_config.customized_traffic.idt_lambda[i]; - g_otg->idt_scale[i][j][k][l]=oai_emulation.application_config.customized_traffic.idt_scale[i]; - g_otg->idt_shape[i][j][k][l]=oai_emulation.application_config.customized_traffic.idt_shape[i]; - g_otg->size_dist[i][j][k][l]=map_str_to_int(otg_distribution_names, "no_customized_traffic"); - g_otg->size_min[i][j][k][l]=oai_emulation.application_config.customized_traffic.size_min_byte[i]; - g_otg->size_max[i][j][k][l]=oai_emulation.application_config.customized_traffic.size_max_byte[i]; - g_otg->size_std_dev[i][j][k][l]=oai_emulation.application_config.customized_traffic.size_standard_deviation[i]; - g_otg->size_lambda[i][j][k][l]=oai_emulation.application_config.customized_traffic.size_lambda[i]; - g_otg->size_scale[i][j][k][l]=oai_emulation.application_config.customized_traffic.size_scale[i]; - g_otg->size_shape[i][j][k][l]=oai_emulation.application_config.customized_traffic.size_shape[i]; - } - } - } - } - - LOG_D(OTG,"initializing the RNG with %s %d\n",(g_otg->seed==0)?"Random Seed" : "Fixed Seed", g_otg->seed); - init_seeds(g_otg->seed); // initialize all the nodes, then configure the nodes the user specifically did in the XML in the following - - LOG_I(OTG,"oai_emulation.info.max_predefined_traffic_config_index = %d\n", oai_emulation.info.max_predefined_traffic_config_index); - LOG_I(OTG,"oai_emulation.info.max_customized_traffic_config_index = %d\n", oai_emulation.info.max_customized_traffic_config_index); - - - if (oai_emulation.info.ocg_ok) { - ///// for the predefined traffic - for (predefined_traffic_config_index = 1; - predefined_traffic_config_index <= oai_emulation.info.max_predefined_traffic_config_index; - predefined_traffic_config_index++) { - - LOG_I(OTG,"OCG_config_OTG: predefined no. %d\n", predefined_traffic_config_index); - - //strcpy(tmp_source_id, oai_emulation.application_config.predefined_traffic.source_id[predefined_traffic_config_index]); - //strcpy(tmp_destination_id, oai_emulation.application_config.predefined_traffic.destination_id[predefined_traffic_config_index]); - strncpy(tmp_source_id, oai_emulation.application_config.predefined_traffic.source_id[predefined_traffic_config_index], sizeof(tmp_source_id)); - tmp_source_id[sizeof(tmp_source_id) - 1] = 0; // terminate string - strncpy(tmp_destination_id, oai_emulation.application_config.predefined_traffic.destination_id[predefined_traffic_config_index], sizeof(tmp_destination_id)); - tmp_destination_id[sizeof(tmp_destination_id) - 1] = 0; // terminate string - check_format1 = strstr(tmp_source_id, colon); - check_format2 = strstr(tmp_source_id, comma); - check_format1_dst = strstr(tmp_destination_id, colon); - - - if (check_format1 != NULL) { // format 1:10 - source_id_start = strtok(tmp_source_id, colon); - source_id_end = strtok(NULL, colon); - - sid_start = atoi(source_id_start); - sid_end = atoi(source_id_end); - - //destination_id_index = atoi(oai_emulation.application_config.predefined_traffic.destination_id[predefined_traffic_config_index]); - if (check_format1_dst != NULL) { // format 1:10 - destination_id_start = strtok(tmp_destination_id, colon); - destination_id_end = strtok(NULL, colon); - - did_start = atoi(destination_id_start); - did_end = atoi(destination_id_end); - } else { - did_start = atoi(oai_emulation.application_config.predefined_traffic.destination_id[predefined_traffic_config_index]); - did_end = atoi(oai_emulation.application_config.predefined_traffic.destination_id[predefined_traffic_config_index]); - } - - for (destination_id_index = did_start; destination_id_index <= did_end; destination_id_index++) { - for (source_id_index = sid_start; source_id_index <= sid_end; source_id_index++) { - if (g_otg->application_type[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] == 0) { // no app is defined for this pair src.dst - g_otg->application_type[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_app_type_names, - oai_emulation.application_config.predefined_traffic.application_type[predefined_traffic_config_index]); - - g_otg->background[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] =map_str_to_int(switch_names, - oai_emulation.application_config.predefined_traffic.background[predefined_traffic_config_index]); - g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.predefined_traffic.aggregation_level[predefined_traffic_config_index]; - g_otg->flow_start[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= flow_start_time(source_id_index,destination_id_index, - oai_emulation.info.n_frames,oai_emulation.application_config.predefined_traffic.flow_start[predefined_traffic_config_index], - oai_emulation.application_config.predefined_traffic.flow_duration[predefined_traffic_config_index]); - g_otg->flow_duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.predefined_traffic.flow_duration[predefined_traffic_config_index]; - - LOG_I(OTG,"predef (1):: OCG_config_OTG [MAX UE=%d] [MAX eNB=%d]: FORMAT (%d:%d) source = %d, dest = %d, Application ID = %d background %d, Aggregation=%d , m2m= %d, flow start/duration %d/%d \n", - oai_emulation.info.nb_ue_local, oai_emulation.info.nb_enb_local, sid_start, sid_end, source_id_index, destination_id_index, - g_otg->application_idx[source_id_index][destination_id_index], - g_otg->background[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]], - g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]], - g_otg->m2m[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]], - g_otg->flow_start[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]], - g_otg->flow_duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]); - g_otg->application_idx[source_id_index][destination_id_index]+=1; - } - } - } - } else if (check_format2 != NULL) { // format 1,2,3,5 - per_source_id = strtok(tmp_source_id, comma); - destination_id_index = atoi(oai_emulation.application_config.predefined_traffic.destination_id[predefined_traffic_config_index]); - - while (per_source_id != NULL) { - source_id_index = atoi(per_source_id); - - if (g_otg->application_type[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] == 0) { // no app is defined for this pair src.dst - g_otg->application_type[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_app_type_names, - oai_emulation.application_config.predefined_traffic.application_type[predefined_traffic_config_index]); - g_otg->background[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] =map_str_to_int(switch_names, - oai_emulation.application_config.predefined_traffic.background[predefined_traffic_config_index]); - g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.predefined_traffic.aggregation_level[predefined_traffic_config_index]; - g_otg->flow_start[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=flow_start_time(source_id_index, destination_id_index, - oai_emulation.info.n_frames,oai_emulation.application_config.predefined_traffic.flow_start[predefined_traffic_config_index], - oai_emulation.application_config.predefined_traffic.flow_duration[predefined_traffic_config_index]); - g_otg->flow_duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.predefined_traffic.flow_duration[predefined_traffic_config_index]; - g_otg->application_idx[source_id_index][destination_id_index]+=1; - } - - per_source_id = strtok(NULL, comma); - - } - } else { // single node configuration - source_id_index = atoi(oai_emulation.application_config.predefined_traffic.source_id[predefined_traffic_config_index]); - //destination_id_index = atoi(oai_emulation.application_config.predefined_traffic.destination_id[predefined_traffic_config_index]); - sid_start = atoi(oai_emulation.application_config.predefined_traffic.source_id[predefined_traffic_config_index]); - sid_end = atoi(oai_emulation.application_config.predefined_traffic.source_id[predefined_traffic_config_index]); - - if (check_format1_dst != NULL) { // format 1:10 - destination_id_start = strtok(tmp_destination_id, colon); - destination_id_end = strtok(NULL, colon); - - did_start = atoi(destination_id_start); - did_end = atoi(destination_id_end); - } else { - did_start = atoi(oai_emulation.application_config.predefined_traffic.destination_id[predefined_traffic_config_index]); - did_end = atoi(oai_emulation.application_config.predefined_traffic.destination_id[predefined_traffic_config_index]); - } - - for (destination_id_index = did_start; destination_id_index <= did_end; destination_id_index++) { - for (source_id_index = sid_start; source_id_index <= sid_end; source_id_index++) { - if (g_otg->application_type[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] == 0) { // no app is defined for this pair src.dst - g_otg->application_type[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_app_type_names, - oai_emulation.application_config.predefined_traffic.application_type[predefined_traffic_config_index]); - g_otg->background[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] =map_str_to_int(switch_names, - oai_emulation.application_config.predefined_traffic.background[predefined_traffic_config_index]); - g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.predefined_traffic.aggregation_level[predefined_traffic_config_index]; - g_otg->flow_start[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=flow_start_time(source_id_index,destination_id_index, - oai_emulation.info.n_frames,oai_emulation.application_config.predefined_traffic.flow_start[predefined_traffic_config_index], - oai_emulation.application_config.predefined_traffic.flow_duration[predefined_traffic_config_index]); - g_otg->flow_duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.predefined_traffic.flow_duration[predefined_traffic_config_index]; - - LOG_I(OTG,"predef (2):: OCG_config_OTG: [MAX UE=%d] [MAX eNB=%d]: FORMAT (%d:%d) source = %d, dest = %d, Application ID %d, type %d, Background=%d, Aggregation=%d, m2m=%d, start/duration %d/%d\n", - oai_emulation.info.nb_ue_local, oai_emulation.info.nb_enb_local, sid_start, sid_end, source_id_index, destination_id_index, - g_otg->application_idx[source_id_index][destination_id_index], - g_otg->application_type[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]], - g_otg->background[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]], - g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]], - g_otg->m2m[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]], - g_otg->flow_start[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]], - g_otg->flow_duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]); - g_otg->application_idx[source_id_index][destination_id_index]+=1; - } - } - } - } - - init_predef_traffic(oai_emulation.info.nb_ue_local, oai_emulation.info.nb_enb_local); - } - - ///////// for the customized traffic - for (customized_traffic_config_index = 1; - customized_traffic_config_index <= oai_emulation.info.max_customized_traffic_config_index; - customized_traffic_config_index++) { - - LOG_I(OTG,"OCG_config_OTG: customized no. %d, max_customized %d \n", customized_traffic_config_index, oai_emulation.info.max_customized_traffic_config_index); - strcpy(tmp_source_id, oai_emulation.application_config.customized_traffic.source_id[customized_traffic_config_index]); - - check_format1 = strstr(tmp_source_id, colon); - check_format2 = strstr(tmp_source_id, comma); - - strcpy(tmp_destination_id, oai_emulation.application_config.customized_traffic.destination_id[customized_traffic_config_index]); - check_format1_dst = strstr(tmp_destination_id, colon); - state=PE_STATE; - - if (check_format1 != NULL) { // format 1:10 - source_id_start = strtok(tmp_source_id, colon); - source_id_end = strtok(NULL, colon) ; - - sid_start = atoi(source_id_start); - sid_end = atoi(source_id_end); - - if (check_format1_dst != NULL) { // format 1:10 - destination_id_start = strtok(tmp_destination_id, colon); - destination_id_end = strtok(NULL, colon); - - did_start = atoi(destination_id_start); - did_end = atoi(destination_id_end); - } else { - did_start = atoi(oai_emulation.application_config.customized_traffic.destination_id[customized_traffic_config_index]); - did_end = atoi(oai_emulation.application_config.customized_traffic.destination_id[customized_traffic_config_index]); - } - - for (destination_id_index = did_start; destination_id_index <= did_end; destination_id_index++) { - for (source_id_index = sid_start; source_id_index <= sid_end; source_id_index++) { - if (g_otg->application_type[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] == 0) { // no app is defined for this pair src.dst - g_otg->background[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(switch_names, - oai_emulation.application_config.customized_traffic.background[customized_traffic_config_index]); - g_otg->m2m[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] =map_str_to_int(switch_names, - oai_emulation.application_config.customized_traffic.m2m[customized_traffic_config_index]); - g_otg->trans_proto[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_transport_protocol_names, - oai_emulation.application_config.customized_traffic.transport_protocol[customized_traffic_config_index]); - g_otg->ip_v[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_ip_version_names, - oai_emulation.application_config.customized_traffic.ip_version[customized_traffic_config_index]); - g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.aggregation_level[customized_traffic_config_index]; - g_otg->flow_start[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= flow_start_time(source_id_index,destination_id_index, - oai_emulation.info.n_frames,oai_emulation.application_config.customized_traffic.flow_start[customized_traffic_config_index], - oai_emulation.application_config.customized_traffic.flow_duration[customized_traffic_config_index]); - g_otg->flow_duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.flow_duration[customized_traffic_config_index]; - g_otg->idt_dist[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = map_str_to_int(otg_distribution_names, - oai_emulation.application_config.customized_traffic.idt_dist[customized_traffic_config_index]); - // printf("[OTG] config index %d dist %s\n", customized_traffic_config_index,oai_emulation.application_config.customized_traffic.idt_dist[customized_traffic_config_index]); - g_otg->idt_min[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.idt_min_ms[customized_traffic_config_index]; - g_otg->idt_max[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.idt_max_ms[customized_traffic_config_index]; - g_otg->idt_std_dev[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.idt_standard_deviation[customized_traffic_config_index]; - g_otg->idt_lambda[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.idt_lambda[customized_traffic_config_index]; - g_otg->idt_scale[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.idt_scale[customized_traffic_config_index]; - g_otg->idt_shape[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.idt_shape[customized_traffic_config_index]; - g_otg->size_dist[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = map_str_to_int(otg_distribution_names, - oai_emulation.application_config.customized_traffic.size_dist[customized_traffic_config_index]); - g_otg->size_min[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.size_min_byte[customized_traffic_config_index]; - g_otg->size_max[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.size_max_byte[customized_traffic_config_index]; - g_otg->size_std_dev[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.size_standard_deviation[customized_traffic_config_index]; - g_otg->size_lambda[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.size_lambda[customized_traffic_config_index]; - g_otg->size_scale[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.size_scale[customized_traffic_config_index]; - g_otg->size_shape[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.size_shape[customized_traffic_config_index]; - g_otg->dst_port[source_id_index][destination_id_index] = oai_emulation.application_config.customized_traffic.destination_port[customized_traffic_config_index]; - g_otg->pu_size_pkts[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.pu_size_pkts[customized_traffic_config_index]; - g_otg->ed_size_pkts[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.ed_size_pkts[customized_traffic_config_index]; - g_otg->prob_off_pu[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.prob_off_pu[customized_traffic_config_index]; - g_otg->prob_off_ed[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.prob_off_ed[customized_traffic_config_index]; - g_otg->prob_off_pe[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.prob_off_pe[customized_traffic_config_index]; - g_otg->prob_pu_ed[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.prob_pu_ed[customized_traffic_config_index]; - g_otg->prob_pu_pe[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.prob_pu_pe[customized_traffic_config_index]; - g_otg->prob_ed_pe[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.prob_ed_pe[customized_traffic_config_index]; - g_otg->prob_ed_pu[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.prob_ed_pu[customized_traffic_config_index]; - g_otg->holding_time_off_ed[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.holding_time_off_ed[customized_traffic_config_index]; - g_otg->holding_time_off_pu[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.holding_time_off_pu[customized_traffic_config_index]; - g_otg->holding_time_off_pe[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.holding_time_off_pe[customized_traffic_config_index]; - g_otg->holding_time_pe_off[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.holding_time_pe_off[customized_traffic_config_index]; - - LOG_I(OTG,"customized:: OCG_config_OTG: (1) FORMAT (%d:%d) source = %d, dest = %d, Application = %d, state %d, background %d IDT DIST %d start/duration %d/%d\n", sid_start, sid_end, source_id_index, - destination_id_index, - g_otg->application_type[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]], - state, - g_otg->background[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]], - g_otg->idt_dist[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state], - g_otg->flow_start[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]], - g_otg->flow_duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]); - - g_otg->application_idx[source_id_index][destination_id_index]+=1; - } - } - } - - } else if (check_format2 != NULL) { // format 1,2,3,5 - per_source_id = strtok(tmp_source_id, comma); - destination_id_index = atoi(oai_emulation.application_config.customized_traffic.destination_id[customized_traffic_config_index]); - - while (per_source_id != NULL) { - source_id_index = atoi(per_source_id); - - if (g_otg->application_type[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] == 0) { // no app is defined for this pair src.dst - - g_otg->background[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] =map_str_to_int(switch_names, - oai_emulation.application_config.customized_traffic.background[customized_traffic_config_index]); - g_otg->m2m[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] =map_str_to_int(switch_names, - oai_emulation.application_config.customized_traffic.m2m[customized_traffic_config_index]); - g_otg->trans_proto[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_transport_protocol_names, - oai_emulation.application_config.customized_traffic.transport_protocol[customized_traffic_config_index]); - g_otg->ip_v[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_ip_version_names, - oai_emulation.application_config.customized_traffic.ip_version[customized_traffic_config_index]); - g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.aggregation_level[customized_traffic_config_index]; - g_otg->flow_start[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=flow_start_time(source_id_index,destination_id_index, - oai_emulation.info.n_frames,oai_emulation.application_config.customized_traffic.flow_start[customized_traffic_config_index], - oai_emulation.application_config.customized_traffic.flow_duration[customized_traffic_config_index]); - g_otg->flow_duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.flow_duration[customized_traffic_config_index]; - g_otg->idt_dist[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = map_str_to_int(otg_distribution_names, - oai_emulation.application_config.customized_traffic.idt_dist[customized_traffic_config_index]); - g_otg->idt_min[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.idt_min_ms[customized_traffic_config_index]; - g_otg->idt_max[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.idt_max_ms[customized_traffic_config_index]; - g_otg->idt_std_dev[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.idt_standard_deviation[customized_traffic_config_index]; - g_otg->idt_lambda[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.idt_lambda[customized_traffic_config_index]; - g_otg->idt_scale[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.idt_scale[customized_traffic_config_index]; - g_otg->idt_shape[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.idt_shape[customized_traffic_config_index]; - g_otg->size_dist[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = map_str_to_int(otg_distribution_names, - oai_emulation.application_config.customized_traffic.size_dist[customized_traffic_config_index]); - g_otg->size_min[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.size_min_byte[customized_traffic_config_index]; - g_otg->size_max[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.size_max_byte[customized_traffic_config_index]; - g_otg->size_std_dev[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.size_standard_deviation[customized_traffic_config_index]; - g_otg->size_lambda[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.size_lambda[customized_traffic_config_index]; - g_otg->size_scale[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.size_scale[customized_traffic_config_index]; - g_otg->size_shape[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.size_shape[customized_traffic_config_index]; - g_otg->dst_port[source_id_index][destination_id_index] = oai_emulation.application_config.customized_traffic.destination_port[customized_traffic_config_index]; - g_otg->pu_size_pkts[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.pu_size_pkts[customized_traffic_config_index]; - g_otg->ed_size_pkts[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.ed_size_pkts[customized_traffic_config_index]; - g_otg->prob_off_pu[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.prob_off_pu[customized_traffic_config_index]; - g_otg->prob_off_ed[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.prob_off_ed[customized_traffic_config_index]; - g_otg->prob_off_pe[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.prob_off_pe[customized_traffic_config_index]; - g_otg->prob_pu_ed[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.prob_pu_ed[customized_traffic_config_index]; - g_otg->prob_pu_pe[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.prob_pu_pe[customized_traffic_config_index]; - g_otg->prob_ed_pe[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.prob_ed_pe[customized_traffic_config_index]; - g_otg->prob_ed_pu[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.prob_ed_pu[customized_traffic_config_index]; - g_otg->holding_time_off_ed[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.holding_time_off_ed[customized_traffic_config_index]; - g_otg->holding_time_off_pu[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.holding_time_off_pu[customized_traffic_config_index]; - g_otg->holding_time_off_pe[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.holding_time_off_pe[customized_traffic_config_index]; - g_otg->holding_time_pe_off[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.holding_time_pe_off[customized_traffic_config_index]; - - - LOG_I(OTG,"customized:: OCG_config_OTG: (2) FORMAT (%s:%s) source = %d, dest = %d, dist type for size = %d [TODO: check code, printed value may not be correct, checks the indexes of the arry access] start/duration %d/%d\n", source_id_start, source_id_end, source_id_index, - destination_id_index, g_otg->size_dist[source_id_index][destination_id_index][0][0], - g_otg->flow_start[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]], - g_otg->flow_duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]); - per_source_id = strtok(NULL, comma); - g_otg->application_idx[source_id_index][destination_id_index]+=1; - } - } - } else { // single node configuration - source_id_index = atoi(oai_emulation.application_config.customized_traffic.source_id[customized_traffic_config_index]); - //destination_id_index = atoi(oai_emulation.application_config.customized_traffic.destination_id[customized_traffic_config_index]); - - sid_start = atoi(oai_emulation.application_config.customized_traffic.source_id[customized_traffic_config_index]); - sid_end = atoi(oai_emulation.application_config.customized_traffic.source_id[customized_traffic_config_index]); - - if (check_format1_dst != NULL) { // format 1:10 - destination_id_start = strtok(tmp_destination_id, colon); - destination_id_end = strtok(NULL, colon); - - did_start = atoi(destination_id_start); - did_end = atoi(destination_id_end); - } else { - did_start = atoi(oai_emulation.application_config.customized_traffic.destination_id[customized_traffic_config_index]); - did_end = atoi(oai_emulation.application_config.customized_traffic.destination_id[customized_traffic_config_index]); - } - - for (destination_id_index = did_start; destination_id_index <= did_end; destination_id_index++) { - for (source_id_index = sid_start; source_id_index <= sid_end; source_id_index++) { - - if (g_otg->application_type[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] == 0) { // no app is defined for this pair src.dst - - g_otg->background[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] =map_str_to_int(switch_names, - oai_emulation.application_config.customized_traffic.background[customized_traffic_config_index]); - g_otg->m2m[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] =map_str_to_int(switch_names, - oai_emulation.application_config.customized_traffic.m2m[customized_traffic_config_index]); - - /* LOG_I(OTG, "[src %d][dst %d][app %d]test_m2m %d \n",source_id_index, destination_id_index , g_otg->application_idx[source_id_index][destination_id_index] , g_otg->m2m[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] ); - */ - - g_otg->trans_proto[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_transport_protocol_names, - oai_emulation.application_config.customized_traffic.transport_protocol[customized_traffic_config_index]); - g_otg->ip_v[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_ip_version_names, - oai_emulation.application_config.customized_traffic.ip_version[customized_traffic_config_index]); - g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.aggregation_level[customized_traffic_config_index]; - - g_otg->flow_start[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=flow_start_time(source_id_index,destination_id_index, - oai_emulation.info.n_frames,oai_emulation.application_config.customized_traffic.flow_start[customized_traffic_config_index], - oai_emulation.application_config.customized_traffic.flow_duration[customized_traffic_config_index]); - g_otg->flow_duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.flow_duration[customized_traffic_config_index]; - - g_otg->idt_dist[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = map_str_to_int(otg_distribution_names, - oai_emulation.application_config.customized_traffic.idt_dist[customized_traffic_config_index]); - g_otg->idt_min[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.idt_min_ms[customized_traffic_config_index]; - g_otg->idt_max[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.idt_max_ms[customized_traffic_config_index]; - g_otg->idt_std_dev[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.idt_standard_deviation[customized_traffic_config_index]; - g_otg->idt_lambda[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.idt_lambda[customized_traffic_config_index]; - g_otg->idt_scale[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.idt_scale[customized_traffic_config_index]; - g_otg->idt_shape[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.idt_shape[customized_traffic_config_index]; - g_otg->size_dist[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = map_str_to_int(otg_distribution_names, - oai_emulation.application_config.customized_traffic.size_dist[customized_traffic_config_index]); - g_otg->size_min[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.size_min_byte[customized_traffic_config_index]; - g_otg->size_max[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.size_max_byte[customized_traffic_config_index]; - g_otg->size_std_dev[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.size_standard_deviation[customized_traffic_config_index]; - g_otg->size_lambda[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.size_lambda[customized_traffic_config_index]; - g_otg->size_scale[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.size_scale[customized_traffic_config_index]; - g_otg->size_shape[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = - oai_emulation.application_config.customized_traffic.size_shape[customized_traffic_config_index]; - g_otg->dst_port[source_id_index][destination_id_index] = oai_emulation.application_config.customized_traffic.destination_port[customized_traffic_config_index]; - g_otg->pu_size_pkts[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.pu_size_pkts[customized_traffic_config_index]; - g_otg->ed_size_pkts[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.ed_size_pkts[customized_traffic_config_index]; - g_otg->prob_off_pu[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.prob_off_pu[customized_traffic_config_index]; - g_otg->prob_off_ed[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.prob_off_ed[customized_traffic_config_index]; - g_otg->prob_off_pe[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.prob_off_pe[customized_traffic_config_index]; - g_otg->prob_pu_ed[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.prob_pu_ed[customized_traffic_config_index]; - g_otg->prob_pu_pe[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.prob_pu_pe[customized_traffic_config_index]; - g_otg->prob_ed_pe[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.prob_ed_pe[customized_traffic_config_index]; - g_otg->prob_ed_pu[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.prob_ed_pu[customized_traffic_config_index]; - g_otg->holding_time_off_ed[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.holding_time_off_ed[customized_traffic_config_index]; - g_otg->holding_time_off_pu[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.holding_time_off_pu[customized_traffic_config_index]; - g_otg->holding_time_off_pe[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.holding_time_off_pe[customized_traffic_config_index]; - g_otg->holding_time_pe_off[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]= - oai_emulation.application_config.customized_traffic.holding_time_pe_off[customized_traffic_config_index]; - - LOG_I(OTG,"OCG_config_OTG (single node config): source = %d, dest = %d\n", source_id_index, destination_id_index); - LOG_I(OTG,"customized:: OCG_config_OTG:(3) FORMAT (%d:%d) source = %d, dest = %d, Application = %d, IDT dist %d flow start %d duration %d \n", - did_start, did_end, source_id_index, destination_id_index, - g_otg->application_type[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]], - g_otg->idt_dist[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state], - g_otg->flow_start[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]], - g_otg->flow_duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]); - g_otg->application_idx[source_id_index][destination_id_index]+=1; - - } - } - } - } - } - } - - - if ((oai_emulation.info.max_predefined_traffic_config_index == 0) && - (oai_emulation.info.max_customized_traffic_config_index == 0) && - (oai_emulation.info.otg_enabled==1)) { // OCG not used to configure OTG, but -T option is used, so config here - LOG_I(OTG,"configure OTG through options %s\n", oai_emulation.info.otg_traffic); - - for (i=0; inum_nodes; i++) { - for (j=0; jnum_nodes; j++) { - g_otg->application_idx[i][j]=1; - - for (k=0; kapplication_idx[i][j]; k++) { - - g_otg->application_type[i][j][k] = map_str_to_int(otg_app_type_names, oai_emulation.info.otg_traffic); - g_otg->background[i][j][k]=oai_emulation.info.otg_bg_traffic_enabled; - g_otg->packet_gen_type=SUBSTRACT_STRING; - g_otg->flow_start[i][j][k]=flow_start_time(i,j,oai_emulation.info.n_frames, - oai_emulation.application_config.customized_traffic.flow_start[i+j], - oai_emulation.application_config.customized_traffic.flow_duration[i+j]); - g_otg->flow_duration[i][j][k]=oai_emulation.application_config.customized_traffic.flow_duration[i+j]; - LOG_I(OTG,"predefined traffic:: source = %d, dest = %d, Application = %d, start %d duration %d \n", - i,j, g_otg->application_type[i][j][k],g_otg->flow_start[i][j][k],g_otg->flow_duration[i][j][k]); - } - } - } - - init_predef_traffic(oai_emulation.info.nb_ue_local, oai_emulation.info.nb_enb_local); - - for (i=0; iapplication_type[i][j][k] = map_str_to_int( otg_multicast_app_type_names, oai_emulation.info.otg_traffic); - } - } - } - - init_predef_multicast_traffic(); - LOG_I(OTG,"initilizae multicast traffic %s\n",oai_emulation.info.otg_traffic); - - } - - return 1; -} - -int flow_start_time(int sid, int did, uint32_t n_frames, uint32_t start, uint32_t duration) -{ - - int offset0=uniform_dist(1,10); - int offset1=uniform_dist(10,100); - int offset2=uniform_dist(100,1000); - int interval = 300; - int flow_start_margin_1=0; - int flow_start_margin_2=0; - - // return user-defined flow start time - if (start > 0 ) - return start; - - //determine the flow start time - start = (sid+did+1)*interval; - flow_start_margin_1 = 10*n_frames - (start + offset1 + duration); - flow_start_margin_2 = 10*n_frames - (start + offset2 + duration); - - //LOG_I(OTG,"nframes %d start %d margin_1 %d margin_2 %d\n",n_frames, start,flow_start_margin_1, flow_start_margin_2); - if (flow_start_margin_2 > 0 ) - return uniform_dist(start, start+offset2); - else if (flow_start_margin_1 > 0 ) - return uniform_dist(start, start+offset1); - else - return uniform_dist(start, start+offset0); - -} - - -int ocg_config_emu(void) -{ - - if (oai_emulation.emulation_config.emulation_time_ms != 0) { - oai_emulation.info.n_frames = (int) oai_emulation.emulation_config.emulation_time_ms / 10; // configure the number of frame - oai_emulation.info.n_frames_flag = 1; - } - - if (oai_emulation.info.n_frames_flag) { - LOG_I(OCG, "number of frames in emulation is set to %d\n", oai_emulation.info.n_frames); - } else { - LOG_I(OCG, "number of frames in emulation is set to infinity\n"); - } - - oai_emulation.info.seed = (oai_emulation.emulation_config.seed.value == 0) ? oai_emulation.info.seed : oai_emulation.emulation_config.seed.value; - LOG_I (OCG,"The seed value is set to %d \n", oai_emulation.info.seed ); - - if (oai_emulation.info.cli_enabled == 1) { - if (cli_server_init(cli_server_recv) < 0) { - LOG_E(EMU,"cli server init failed \n"); - exit(-1); - } - - LOG_I(EMU, "OAI CLI is enabled\n"); - LOG_I(EMU,"eNB start state is %d, UE start state %d\n", - oai_emulation.info.cli_start_enb[0], - oai_emulation.info.cli_start_ue[0]); - } - - if (oai_emulation.info.opp_enabled) - opp_enabled = 1; - - //bin/LOG_I(OCG, "OPT output file directory = %s\n", oai_emulation.info.output_path); - oai_emulation.info.opt_enabled = ( oai_emulation.emulation_config.packet_trace.enabled == 0) ? oai_emulation.info.opt_enabled : oai_emulation.emulation_config.packet_trace.enabled; - - if (oai_emulation.info.opt_enabled == 1) { - radio_type_t radio_type; - opt_enabled = 1; - - if (oai_emulation.info.frame_type[0] == FDD) { - radio_type = RADIO_TYPE_FDD; - } else { - radio_type = RADIO_TYPE_TDD; - } - - opt_type = oai_emulation.info.opt_mode; - - if (init_opt(NULL, NULL, NULL, radio_type) == -1) { - LOG_E(OPT,"failed to run OPT \n"); - } - } - - return 1; -} - -void ocg_config_proto(void) -{ - - LOG_I(MAC,"num groups is set to %d\n",oai_emulation.protocol_config.eNB_mac_config.num_groups); - -} - diff --git a/targets/SIMU/USER/oaisim_config.h b/targets/SIMU/USER/oaisim_config.h deleted file mode 100644 index a403252d06..0000000000 --- a/targets/SIMU/USER/oaisim_config.h +++ /dev/null @@ -1,83 +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 oaisim_config.h -* \brief configure an emulation -* \author navid nikaein & Lusheng Wang -* \date 2006-2010 -* \version 4.0 -* \company Eurecom -* \email: openair_tech@eurecom.fr -* \note this a note -* \bug this is a bug -* \warning this is a warning -*/ - -//-----------------------------------begin group----------------------------- -/** @defgroup _oaisim The sturcture of OAISIM - -The current sturcture of oaisim is shown by the figure. - -\image html new_OCG_structure.png "new_OCG_structure" - - - * @{*/ - -/* @}*/ - -#include "UTIL/LOG/log_if.h" -#include "UTIL/LOG/log_extern.h" -#include "UTIL/OCG/OCG.h" -#include "UTIL/OPT/opt.h" // to test OPT -#include "UTIL/OMG/omg.h" -#include "UTIL/CLI/cli_if.h" -#include "PHY/defs_eNB.h" -#include "PHY/phy_extern.h" - -/** @defgroup _init_oai Initial oaisim - * @ingroup _fn - * @brief Initialize all the parameters before start an emulation - * @{*/ -void init_oai_emulation(void); -/* @}*/ - -/** @defgroup _config_oaisim All the configurations for an emulation - * @ingroup _fn - * @brief This is the function that calls all the other configuration functions - * @{*/ -void oaisim_config(void); -/* @}*/ - - -/** @defgroup _config_module Configuration functions for various modules - * @ingroup _fn - * @brief There are the functions to configure different various modules in the emulator - * @{*/ -int olg_config(void); -int ocg_config_env(void); -int ocg_config_omg(void); -int ocg_config_topo(void); -int ocg_config_app(void); -int ocg_config_emu(void); - -int flow_start_time(int sid, int did, uint32_t n_frames, uint32_t start, uint32_t duration); -/* @}*/ - diff --git a/targets/SIMU/USER/oaisim_functions.h b/targets/SIMU/USER/oaisim_functions.h deleted file mode 100644 index 8bbf90df36..0000000000 --- a/targets/SIMU/USER/oaisim_functions.h +++ /dev/null @@ -1,70 +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 "oaisim.h" -#include -#include -#include - -#include "UTIL/FIFO/pad_list.h" - -#ifndef OAISIM_FUNCTIONS_H_ -#define OAISIM_FUNCTIONS_H_ - -void get_simulation_options(int argc, char *argv[]); - -void check_and_adjust_params(void); - -void init_omv(void); - -void init_seed(uint8_t set_seed); - -void init_openair1(void); - -void init_openair2(void); - -void init_ocm(void); - -void init_otg_pdcp_buffer(void); - -void update_omg(frame_t frameP); - -void update_omg_ocm(void); - -void update_ocm(void); - -void update_otg_eNB(module_id_t module_idP, unsigned int ctime); - -void update_otg_UE(module_id_t module_idP, unsigned int ctime); - -void exit_fun(const char* s); - -void init_time(void); - -void init_pad(void); - -void help(void); - -int init_slot_isr(void); - -void wait_for_slot_isr(void); - -#endif /* OAISIM_FUNCTIONS_H_ */ diff --git a/targets/SIMU/USER/oaisim_pad.c b/targets/SIMU/USER/oaisim_pad.c deleted file mode 100644 index 1f251de581..0000000000 --- a/targets/SIMU/USER/oaisim_pad.c +++ /dev/null @@ -1,1149 +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 -#include -#include -#include -#include -#include -#include - -//<>// -//#include -//#include "UTIL/FIFO/pad_list.h" -#include "discrete_event_generator.h" -#include "threadpool.h" -#include -#include "oaisim_functions.h" -//<>// - -#include "SIMULATION/RF/defs.h" -#include "PHY/types.h" -#include "PHY/defs.h" -#include "PHY/vars.h" -#include "MAC_INTERFACE/vars.h" - -//#ifdef OPENAIR2 -#include "LAYER2/MAC/defs.h" -#include "LAYER2/MAC/vars.h" -#include "RRC/LITE/vars.h" -#include "PHY_INTERFACE/vars.h" -//#endif - -#include "ARCH/CBMIMO1/DEVICE_DRIVER/vars.h" - -#ifdef IFFT_FPGA -//#include "PHY/LTE_REFSIG/mod_table.h" -#endif //IFFT_FPGA - -#include "SCHED/defs.h" -#include "SCHED/vars.h" - -#include "oaisim.h" -#include "oaisim_config.h" -#include "UTIL/OCG/OCG_extern.h" -#include "cor_SF_sim.h" -#include "UTIL/OMG/omg_constants.h" - - - -//#include "UTIL/LOG/vcd_signal_dumper.h" - -#define RF - -//#define DEBUG_SIM - -#define MCS_COUNT 24//added for PHY abstraction -#define N_TRIALS 1 - - -/* - DCI0_5MHz_TDD0_t UL_alloc_pdu; - DCI1A_5MHz_TDD_1_6_t CCCH_alloc_pdu; - DCI2_5MHz_2A_L10PRB_TDD_t DLSCH_alloc_pdu1; - DCI2_5MHz_2A_M10PRB_TDD_t DLSCH_alloc_pdu2; - */ - -#define UL_RB_ALLOC computeRIV(lte_frame_parms->N_RB_UL,0,24) -#define CCCH_RB_ALLOC computeRIV(lte_frame_parms->N_RB_UL,0,3) -#define RA_RB_ALLOC computeRIV(lte_frame_parms->N_RB_UL,0,3) -#define DLSCH_RB_ALLOC 0x1fff - -#define DECOR_DIST 100 -#define SF_VAR 10 - -//constant for OAISIM soft realtime calibration -#define SF_DEVIATION_OFFSET_NS 100000 //= 0.1ms : should be as a number of UE -#define SLEEP_STEP_US 100 // = 0.01ms could be adaptive, should be as a number of UE -#define K 2 // averaging coefficient -#define TARGET_SF_TIME_NS 1000000 // 1ms = 1000000 ns - -//#ifdef OPENAIR2 -//uint16_t NODE_ID[1]; -//uint8_t NB_INST = 2; -//#endif //OPENAIR2 -extern int otg_times; -extern int for_times; -extern int if_times; -int for_main_times = 0; - -frame_t frame=0; -char stats_buffer[16384]; -channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX]; -channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX]; -Signal_buffers *signal_buffers_g; -//Added for PHY abstraction -node_desc_t *enb_data[NUMBER_OF_eNB_MAX]; -node_desc_t *ue_data[NUMBER_OF_UE_MAX]; -//double sinr_bler_map[MCS_COUNT][2][16]; -//double sinr_bler_map_up[MCS_COUNT][2][16]; -//extern double SINRpost_eff[301]; -extern int mcsPost; -extern int nrbPost; -extern int frbPost; -extern void kpi_gen(); - -extern uint16_t Nid_cell; -extern uint8_t target_dl_mcs; -extern uint8_t rate_adaptation_flag; -extern double snr_dB, sinr_dB; -extern uint8_t set_seed; -extern uint8_t cooperation_flag; // for cooperative communication -extern uint8_t abstraction_flag, ethernet_flag; -extern uint8_t ue_connection_test; -extern int map1,map2; -extern double **ShaF; -// pointers signal buffers (s = transmit, r,r0 = receive) -extern double **s_re, **s_im, **r_re, **r_im, **r_re0, **r_im0; -extern Node_list ue_node_list; -extern Node_list enb_node_list; -extern int pdcp_period, omg_period; -extern LTE_DL_FRAME_PARMS *frame_parms; -// time calibration for soft realtime mode -extern struct timespec time_spec; -extern unsigned long time_last, time_now; -extern int td, td_avg, sleep_time_us; - -int eMBMS_active = 0; - -threadpool_t * pool; - -#ifdef OPENAIR2 -extern int pfd[2]; -#endif - -// this should reflect the channel models in openair1/SIMULATION/TOOLS/defs.h -mapping small_scale_names[] = { - {"custom", custom}, - {"SCM_A", SCM_A}, - {"SCM_B", SCM_B}, - {"SCM_C", SCM_C}, - {"SCM_D", SCM_D}, - {"EPA", EPA}, - {"EVA", EVA}, - {"ETU", ETU}, - {"Rayleigh8", Rayleigh8}, - {"Rayleigh1", Rayleigh1}, - {"Rayleigh1_800", Rayleigh1_800}, - {"Rayleigh1_corr", Rayleigh1_corr}, - {"Rayleigh1_anticorr", Rayleigh1_anticorr}, - {"Rice8", Rice8}, - {"Rice1", Rice1}, - {"Rice1_corr", Rice1_corr}, - {"Rice1_anticorr", Rice1_anticorr}, - {"AWGN", AWGN}, - {NULL, -1} -}; - -//static void *sigh(void *arg); -void terminate(void); - -void -help (void) -{ - printf - ("Usage: oaisim -h -a -F -C tdd_config -V -R N_RB_DL -e -x transmission_mode -m target_dl_mcs -r(ate_adaptation) -n n_frames -s snr_dB -k ricean_factor -t max_delay -f forgetting factor -A channel_model -z cooperation_flag -u nb_local_ue -U UE mobility -b nb_local_enb -B eNB_mobility -M ethernet_flag -p nb_master -g multicast_group -l log_level -c ocg_enable -T traffic model -D multicast network device\n"); - - printf ("-h provides this help message!\n"); - printf ("-a Activates PHY abstraction mode\n"); - printf ("-F Activates FDD transmission (TDD is default)\n"); - printf ("-C [0-6] Sets TDD configuration\n"); - printf ("-R [6,15,25,50,75,100] Sets N_RB_DL\n"); - printf ("-e Activates extended prefix mode\n"); - printf ("-m Gives a fixed DL mcs\n"); - printf ("-r Activates rate adaptation (DL for now)\n"); - printf ("-n Set the number of frames for the simulation\n"); - printf ("-s snr_dB set a fixed (average) SNR, this deactivates the openair channel model generator (OCM)\n"); - printf ("-S snir_dB set a fixed (average) SNIR, this deactivates the openair channel model generator (OCM)\n"); - printf ("-k Set the Ricean factor (linear)\n"); - printf ("-t Set the delay spread (microseconds)\n"); - printf ("-f Set the forgetting factor for time-variation\n"); - printf ("-A set the multipath channel simulation, options are: SCM_A, SCM_B, SCM_C, SCM_D, EPA, EVA, ETU, Rayleigh8, Rayleigh1, Rayleigh1_corr,Rayleigh1_anticorr, Rice8,, Rice1, AWGN \n"); - printf ("-b Set the number of local eNB\n"); - printf ("-u Set the number of local UE\n"); - printf ("-M Set the machine ID for Ethernet-based emulation\n"); - printf ("-p Set the total number of machine in emulation - valid if M is set\n"); - printf ("-g Set multicast group ID (0,1,2,3) - valid if M is set\n"); - printf ("-l Set the global log level (8:trace, 7:debug, 6:info, 4:warn, 3:error) \n"); - printf - ("-c [1,2,3,4] Activate the config generator (OCG) to process the scenario descriptor, or give the scenario manually: -c template_1.xml \n"); - printf ("-x Set the transmission mode (1,2,5,6 supported for now)\n"); - printf ("-z Set the cooperation flag (0 for no cooperation, 1 for delay diversity and 2 for distributed alamouti\n"); - printf ("-T activate the traffic generator: 0 for NONE, 1 for CBR, 2 for M2M, 3 for FPS Gaming, 4 for mix\n"); - printf ("-B Set the mobility model for eNB, options are: STATIC, RWP, RWALK, \n"); - printf ("-U Set the mobility model for UE, options are: STATIC, RWP, RWALK \n"); - printf ("-E Random number generator seed\n"); - printf ("-P enable protocol analyzer : 0 for wireshark interface, 1: for pcap , 2 : for tshark \n"); - printf ("-I Enable CLI interface (to connect use telnet localhost 1352)\n"); - printf ("-V Enable VCD dump, file = openair_vcd_dump.vcd\n"); - printf ("-G Enable background traffic \n"); - printf ("-O [mme ipv4 address] Enable MME mode\n"); - printf ("-Z Reserved\n"); -} - - -#ifdef OPENAIR2 -void omv_end (int pfd, Data_Flow_Unit omv_data); -int omv_write (int pfd, Node_list enb_node_list, Node_list ue_node_list, Data_Flow_Unit omv_data); -#endif - -//<<<< PAD >>>>// -#define PAD 1 -//#define PAD_FINE 1 -//#define PAD_SYNC 1 -#define JOB_REQUEST_TAG 246 -#define JOB_REPLY_TAG 369 -#define FRAME_END 888 -#define NO_JOBS_TAG 404 -#define JOB_DIST_DEBUG 33 - -//Global Variables -int worker_number; -int frame_number = 1; -//<<<< PAD >>>>// - -//<<<< DEG >>>>// -extern End_Of_Sim_Event end_event; //Could later be a list of condition_events -extern Event_List event_list; -//<<<< DEG >>>>// - -extern Packet_OTG_List *otg_pdcp_buffer; - -void run(int argc, char *argv[]); - -#ifdef PAD -void pad_init() -{ - - int UE_id, i; - - pool = threadpool_create(PAD); - - if (pool == NULL) { - printf("ERROR threadpool allocation\n"); - return; - } - - signal_buffers_g = malloc(NB_UE_INST * sizeof(Signal_buffers)); - - if (abstraction_flag == 0) { - for (UE_id = 0; UE_id < NB_UE_INST; UE_id++) { - signal_buffers_g[UE_id].s_re = malloc(2*sizeof(double*)); - signal_buffers_g[UE_id].s_im = malloc(2*sizeof(double*)); - signal_buffers_g[UE_id].r_re = malloc(2*sizeof(double*)); - signal_buffers_g[UE_id].r_im = malloc(2*sizeof(double*)); - signal_buffers_g[UE_id].r_re0 = malloc(2*sizeof(double*)); - signal_buffers_g[UE_id].r_im0 = malloc(2*sizeof(double*)); - - - for (i=0; i<2; i++) { - - signal_buffers_g[UE_id].s_re[i] = malloc(FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - bzero(signal_buffers_g[UE_id].s_re[i],FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - signal_buffers_g[UE_id].s_im[i] = malloc(FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - bzero(signal_buffers_g[UE_id].s_im[i],FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - signal_buffers_g[UE_id].r_re[i] = malloc(FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - bzero(signal_buffers_g[UE_id].r_re[i],FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - signal_buffers_g[UE_id].r_im[i] = malloc(FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - bzero(signal_buffers_g[UE_id].r_im[i],FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - signal_buffers_g[UE_id].r_re0[i] = malloc(FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - bzero(signal_buffers_g[UE_id].r_re0[i],FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - signal_buffers_g[UE_id].r_im0[i] = malloc(FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - bzero(signal_buffers_g[UE_id].r_im0[i],FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double)); - } - } - } -} - -void pad_finalize() -{ - - int ret, i; - module_id_t UE_id; - - ret = threadpool_destroy(pool); - - if (ret) - printf("ERROR threadpool destroy = %d\n", ret); - - if (abstraction_flag == 0) { - - for (UE_id = 0; UE_id < NB_UE_INST; UE_id++) { - for (i = 0; i < 2; i++) { - free(signal_buffers_g[UE_id].s_re[i]); - free(signal_buffers_g[UE_id].s_im[i]); - free(signal_buffers_g[UE_id].r_re[i]); - free(signal_buffers_g[UE_id].r_im[i]); - } - - free(signal_buffers_g[UE_id].s_re); - free(signal_buffers_g[UE_id].s_im); - free(signal_buffers_g[UE_id].r_re); - free(signal_buffers_g[UE_id].r_im); - } - - //free node by node here same pattern as below - } - - free(signal_buffers_g); -} - -void pad_inject_job(int eNB_flag, int nid, int frame, int next_slot, int last_slot, enum Job_type type, int ctime) -{ - - int ret; - Job_elt *job_elt; - - job_elt = malloc(sizeof(Job_elt)); - job_elt->next = NULL; - (job_elt->job).eNB_flag = eNB_flag; - (job_elt->job).nid = nid; - (job_elt->job).frame = frame; - (job_elt->job).next_slot = next_slot; - (job_elt->job).last_slot = last_slot; - (job_elt->job).type = type; - (job_elt->job).ctime = ctime; - - ret = threadpool_add(pool, job_elt); - - if (ret) { - printf("ERROR threadpool_add %d\n", ret); - return; - } -} - -void pad_synchronize() -{ - pthread_mutex_lock(&(pool->sync_lock)); - - while(pool->active > 0) { - pthread_cond_wait(&(pool->sync_notify), &(pool->sync_lock)); - } - - pthread_mutex_unlock(&(pool->sync_lock)); -} - -#endif -//<>// -int main (int argc, char *argv[]) -{ - - //Mobility *mobility_frame_10; - //Application_Config *application_frame_20; - - //Here make modifications on the mobility and traffic new models - //mob_frame_10 -> ... - //application_frame_30 -> ... - - //schedule(ET_OMG, 10, NULL, mobility_frame_10); - //schedule(ET_OTG, 15, NULL, application_frame_20); - - //event_list_display(&event_list); - - schedule_end_of_simulation(FRAME, 100); - - run(argc, argv); - - return 0; -} -//<>// - -//<>// -void run(int argc, char *argv[]) -{ - - - int32_t i; - module_id_t UE_id, eNB_id; - Job_elt *job_elt; - int ret; - - clock_t t; - - - Event_elt *user_defined_event; - Event event; - - // Framing variables - int32_t slot, last_slot, next_slot; - - FILE *SINRpost; - char SINRpost_fname[512]; - sprintf(SINRpost_fname,"postprocSINR.m"); - SINRpost = fopen(SINRpost_fname,"w"); - // variables/flags which are set by user on command-line - double snr_direction,snr_step=1.0;//,sinr_direction; - - lte_subframe_t direction; - char fname[64],vname[64]; - -#ifdef XFORMS - // current status is that every UE has a DL scope for a SINGLE eNB (eNB_id=0) - // at eNB 0, an UL scope for every UE - FD_lte_phy_scope_ue *form_ue[NUMBER_OF_UE_MAX]; - FD_lte_phy_scope_enb *form_enb[NUMBER_OF_UE_MAX]; - char title[255]; -#endif - -#ifdef PROC - int node_id; - int port,Process_Flag=0,wgt,Channel_Flag=0,temp; -#endif - - // uint8_t awgn_flag = 0; - -#ifdef PRINT_STATS - int len; - FILE *UE_stats[NUMBER_OF_UE_MAX], *UE_stats_th[NUMBER_OF_UE_MAX], *eNB_stats, *eNB_avg_thr, *eNB_l2_stats; - char UE_stats_filename[255]; - char UE_stats_th_filename[255]; - char eNB_stats_th_filename[255]; -#endif - -#ifdef SMBV - uint8_t config_smbv = 0; - char smbv_ip[16]; - strcpy(smbv_ip,DEFAULT_SMBV_IP); -#endif - -#ifdef OPENAIR2 - Data_Flow_Unit omv_data; -#endif - - - //time_t t0,t1; - //clock_t start, stop; - - //double **s_re2[MAX_eNB+MAX_UE], **s_im2[MAX_eNB+MAX_UE], **r_re2[MAX_eNB+MAX_UE], **r_im2[MAX_eNB+MAX_UE], **r_re02, **r_im02; - //double **r_re0_d[MAX_UE][MAX_eNB], **r_im0_d[MAX_UE][MAX_eNB], **r_re0_u[MAX_eNB][MAX_UE],**r_im0_u[MAX_eNB][MAX_UE]; - //default parameters - - //{ - /* INITIALIZATIONS */ - - target_dl_mcs = 0; - rate_adaptation_flag = 0; - oai_emulation.info.n_frames = 0xffff;//1024; //10; - oai_emulation.info.n_frames_flag = 0;//fixme - snr_dB = 30; - cooperation_flag = 0; // default value 0 for no cooperation, 1 for Delay diversity, 2 for Distributed Alamouti - - //Default values if not changed by the user in get_simulation_options(); - pdcp_period = 1; - omg_period = 10; - - mRAL_init_default_values(); //Default values - eRAL_init_default_values(); //Default values - - init_oai_emulation(); //Default values - - get_simulation_options(argc, argv); //Command-line options - - oaisim_config(); // config OMG and OCG, OPT, OTG, OLG - - //To fix eventual conflict on the value of n_frames - if (oai_emulation.info.n_frames_flag) { - schedule_end_of_simulation(FRAME, oai_emulation.info.n_frames); - } - - VCD_SIGNAL_DUMPER_INIT(); // Initialize VCD LOG module - -#ifdef OPENAIR2 - init_omv(); -#endif - - check_and_adjust_params(); //Before this call, NB_UE_INST and NB_eNB_INST are not set correctly - - init_otg_pdcp_buffer(); - -#ifdef PRINT_STATS - - for (UE_id=0; UE_idlte_frame_parms.Nid_cell); - printf ("before L2 init: frame_type %d,tdd_config %d\n", - PHY_vars_eNB_g[0]->lte_frame_parms.frame_type, - PHY_vars_eNB_g[0]->lte_frame_parms.tdd_config); - - init_time(); - -#ifdef PAD - pad_init(); -#endif - - if (ue_connection_test == 1) { - snr_direction = -snr_step; - snr_dB=20; - sinr_dB=-20; - } - - frame = 0; - slot = 0; - - LOG_I(EMU,">>>>>>>>>>>>>>>>>>>>>>>>>>> OAIEMU initialization done <<<<<<<<<<<<<<<<<<<<<<<<<<\n\n"); - - printf ("after init: Nid_cell %d\n", PHY_vars_eNB_g[0]->lte_frame_parms.Nid_cell); - printf ("after init: frame_type %d,tdd_config %d\n", - PHY_vars_eNB_g[0]->lte_frame_parms.frame_type, - PHY_vars_eNB_g[0]->lte_frame_parms.tdd_config); - - t = clock(); - - while (!end_of_simulation()) { - - last_slot = (slot - 1)%20; - - if (last_slot <0) - last_slot+=20; - - next_slot = (slot + 1)%20; - - oai_emulation.info.time_ms = frame * 10 + (next_slot>>1); - oai_emulation.info.frame = frame; - - if (slot == 0) { //Frame's Prologue - - //Run the aperiodic user-defined events - while ((user_defined_event = event_list_get_head(&event_list)) != NULL) { - - event = user_defined_event->event; - - if (event.frame == frame) { - switch (event.type) { - case ET_OMG: - update_omg_model(event.key, event.value); //implement it with assigning the new values to that of oai_emulation & second thing is to ensure mob model is always read from oai_emulation - user_defined_event = event_list_remove_head(&event_list); - break; - - case ET_OTG: - update_otg_model(event.key, event.value); - user_defined_event = event_list_remove_head(&event_list); - break; - } - } else { - break; - } - } - - //Comment (handle cooperation flag) deleted here. Look at oaisim.c to see it - if (ue_connection_test==1) { - if ((frame%20) == 0) { - snr_dB += snr_direction; - sinr_dB -= snr_direction; - } - - if (snr_dB == -20) { - snr_direction=snr_step; - } else if (snr_dB==20) { - snr_direction=-snr_step; - } - } - - update_omg(); // frequency is defined in the omg_global params configurable by the user - - update_omg_ocm(); - -#ifdef OPENAIR2 - - // check if pipe is still open - if ((oai_emulation.info.omv_enabled == 1) ) { - omv_write(pfd[1], enb_node_list, ue_node_list, omv_data); - } - -#endif - -#ifdef DEBUG_OMG - - if ((((int) oai_emulation.info.time_s) % 100) == 0) { - for (UE_id = oai_emulation.info.first_ue_local; UE_id < (oai_emulation.info.first_ue_local + oai_emulation.info.nb_ue_local); UE_id++) { - get_node_position (UE, UE_id); - } - } - -#endif - update_ocm(); - } - - direction = subframe_select(frame_parms,next_slot>>1); - - if((next_slot %2) ==0) - clear_eNB_transport_info(oai_emulation.info.nb_enb_local); - - - for (eNB_id=oai_emulation.info.first_enb_local; - (eNB_id<(oai_emulation.info.first_enb_local+oai_emulation.info.nb_enb_local)) && (oai_emulation.info.cli_start_enb[eNB_id]==1); - eNB_id++) { - for_main_times += 1; - //printf ("debug: Nid_cell %d\n", PHY_vars_eNB_g[eNB_id]->lte_frame_parms.Nid_cell); - //printf ("debug: frame_type %d,tdd_config %d\n", PHY_vars_eNB_g[eNB_id]->lte_frame_parms.frame_type,PHY_vars_eNB_g[eNB_id]->lte_frame_parms.tdd_config); - LOG_D(EMU,"PHY procedures eNB %d for frame %d, slot %d (subframe TX %d, RX %d) TDD %d/%d Nid_cell %d\n", - eNB_id, frame, slot, next_slot >> 1,last_slot>>1, - PHY_vars_eNB_g[eNB_id]->lte_frame_parms.frame_type, - PHY_vars_eNB_g[eNB_id]->lte_frame_parms.tdd_config,PHY_vars_eNB_g[eNB_id]->lte_frame_parms.Nid_cell); - - //Appliation -#ifdef PAD_FINE - pad_inject_job(1, eNB_id, frame, next_slot, last_slot, JT_OTG, oai_emulation.info.time_ms); -#else - update_otg_eNB(eNB_id, oai_emulation.info.time_ms); -#endif - - //Access layer - if (frame % pdcp_period == 0) { -#ifdef PAD_FINE - pad_inject_job(1, eNB_id, frame, next_slot, last_slot, JT_PDCP, oai_emulation.info.time_ms); -#else - pdcp_run(frame, 1, 0, eNB_id);//PHY_vars_eNB_g[eNB_id]->Mod_id -#endif - } - - //Phy/Mac layer -#ifdef PAD_FINE - pad_inject_job(1, eNB_id, frame, next_slot, last_slot, JT_PHY_MAC, oai_emulation.info.time_ms); -#else - phy_procedures_eNB_lte (last_slot, next_slot, PHY_vars_eNB_g[eNB_id], abstraction_flag, no_relay, NULL); -#endif - - -#ifdef PRINT_STATS - - if(last_slot==9 && frame%10==0) - if(eNB_avg_thr) - fprintf(eNB_avg_thr,"%d %d\n",PHY_vars_eNB_g[eNB_id]->frame,(PHY_vars_eNB_g[eNB_id]->total_system_throughput)/((PHY_vars_eNB_g[eNB_id]->frame+1)*10)); - - if (eNB_stats) { - len = dump_eNB_stats(PHY_vars_eNB_g[eNB_id], stats_buffer, 0); - rewind (eNB_stats); - fwrite (stats_buffer, 1, len, eNB_stats); - fflush(eNB_stats); - } - -#ifdef OPENAIR2 - - if (eNB_l2_stats) { - len = dump_eNB_l2_stats (stats_buffer, 0); - rewind (eNB_l2_stats); - fwrite (stats_buffer, 1, len, eNB_l2_stats); - fflush(eNB_l2_stats); - } - -#endif -#endif - } - -#ifdef PAD_SYNC - - if ((direction == SF_DL) || ((direction == SF_S) && (next_slot%2==0)) ) - pad_synchronize(); - -#endif - - - // Call ETHERNET emulation here - //emu_transport (frame, last_slot, next_slot, direction, oai_emulation.info.frame_type, ethernet_flag); - - if ((next_slot % 2) == 0) - clear_UE_transport_info (oai_emulation.info.nb_ue_local); - - for (UE_id = oai_emulation.info.first_ue_local; - (UE_id < (oai_emulation.info.first_ue_local+oai_emulation.info.nb_ue_local)) && (oai_emulation.info.cli_start_ue[UE_id]==1); - UE_id++) - if (frame >= (UE_id * 20)) { // activate UE only after 20*UE_id frames so that different UEs turn on separately - - LOG_D(EMU,"PHY procedures UE %d for frame %d, slot %d (subframe TX %d, RX %d)\n", - UE_id, frame, slot, next_slot >> 1,last_slot>>1); - - if (PHY_vars_UE_g[UE_id]->UE_mode[0] != NOT_SYNCHED) { - if (frame>0) { - PHY_vars_UE_g[UE_id]->frame = frame; - - //Application UE -#ifdef PAD_FINE - pad_inject_job(0, UE_id, frame, next_slot, last_slot, JT_OTG, oai_emulation.info.time_ms); -#else - update_otg_UE(UE_id + NB_eNB_INST, oai_emulation.info.time_ms); -#endif - - //Access layer UE - if (frame % pdcp_period == 0) { -#ifdef PAD_FINE - pad_inject_job(0, UE_id, frame, next_slot, last_slot, JT_PDCP, oai_emulation.info.time_ms); -#else - pdcp_run(frame, 0, UE_id, 0); -#endif - } - - //Phy/Mac layer UE -#ifdef PAD_FINE - pad_inject_job(0, UE_id, frame, next_slot, last_slot, JT_PHY_MAC, oai_emulation.info.time_ms); -#else - phy_procedures_UE_lte (last_slot, next_slot, PHY_vars_UE_g[UE_id], 0, abstraction_flag, normal_txrx, no_relay, NULL); - ue_data[UE_id]->tx_power_dBm = PHY_vars_UE_g[UE_id]->tx_power_dBm; -#endif - } - } else { - if (abstraction_flag==1) { - LOG_E(EMU, "sync not supported in abstraction mode (UE%d,mode%d)\n", UE_id, PHY_vars_UE_g[UE_id]->UE_mode[0]); - exit(-1); - } - - if ((frame>0) && (last_slot == (LTE_SLOTS_PER_FRAME-2))) { -#ifdef PAD_FINE - pad_inject_job(0, UE_id, frame, next_slot, last_slot, JT_INIT_SYNC, oai_emulation.info.time_ms); -#else - initial_sync(PHY_vars_UE_g[UE_id],normal_txrx); -#endif - /* LONG write output comment DELETED here */ - } - } - -#ifdef PRINT_STATS - - if(last_slot==2 && frame%10==0) - if (UE_stats_th[UE_id]) - fprintf(UE_stats_th[UE_id],"%d %d\n",frame, PHY_vars_UE_g[UE_id]->bitrate[0]/1000); - - if (UE_stats[UE_id]) { - len = dump_ue_stats (PHY_vars_UE_g[UE_id], stats_buffer, 0, normal_txrx, 0); - rewind (UE_stats[UE_id]); - fwrite (stats_buffer, 1, len, UE_stats[UE_id]); - fflush(UE_stats[UE_id]); - } - -#endif - } - -#ifdef PAD_SYNC - - if ((direction == SF_UL) || ((direction == SF_S) && (next_slot%2==1)) ) - pad_synchronize(); - -#endif - - emu_transport (frame, last_slot, next_slot,direction, oai_emulation.info.frame_type, ethernet_flag); - - if ((direction == SF_DL)|| (frame_parms->frame_type==0)) { - for (UE_id=0; UE_idframe_type==0)) { //if ((subframe<2) || (subframe>4)) - do_UL_sig(r_re0,r_im0,r_re,r_im,s_re,s_im,UE2eNB,enb_data,ue_data,next_slot,abstraction_flag,frame_parms,frame); - - /* - int ccc; - fprintf(SINRpost,"SINRdb For eNB New Subframe : \n "); - for(ccc = 0 ; ccc<301; ccc++) - { - fprintf(SINRpost,"_ %f ", SINRpost_eff[ccc]); - } - fprintf(SINRpost,"SINRdb For eNB : %f \n ", SINRpost_eff[ccc]); - */ - } - - if ((direction == SF_S)) {//it must be a special subframe - if (next_slot%2==0) {//DL part - for (UE_id=0; UE_idnb_rx;aarx++) - for (aatx=0;aatxnb_tx;aatx++) - for (k=0;kchannel_length;k++) - printf("SB(%d,%d,%d)->(%f,%f)\n",k,aarx,aatx,UE2eNB[1][0]->ch[aarx+(aatx*UE2eNB[1][0]->nb_rx)][k].r,UE2eNB[1][0]->ch[aarx+(aatx*UE2eNB[1][0]->nb_rx)][k].i); - */ - } else { // UL part - /*#ifdef PAD - pthread_mutex_lock(&(pool->sync_lock)); - while(pool->active != 0) { - pthread_cond_wait(&(pool->sync_notify), &(pool->sync_lock)); - } - pthread_mutex_unlock(&(pool->sync_lock)); - #endif*/ - do_UL_sig(r_re0,r_im0,r_re,r_im,s_re,s_im,UE2eNB,enb_data,ue_data,next_slot,abstraction_flag,frame_parms,frame); - /* - int ccc; - fprintf(SINRpost,"SINRdb For eNB New Subframe : \n "); - for(ccc = 0 ; ccc<301; ccc++) - { - fprintf(SINRpost,"_ %f ", SINRpost_eff[ccc]); - } - fprintf(SINRpost,"SINRdb For eNB : %f \n ", SINRpost_eff[ccc]); - */ - } - } - - if ((last_slot == 1) && (frame == 0) - && (abstraction_flag == 0) && (oai_emulation.info.n_frames == 1)) { - - write_output ("dlchan0.m", "dlch0", - &(PHY_vars_UE_g[0]->lte_ue_common_vars.common_vars_rx_data_per_thread[subframe&0x1].dl_ch_estimates[0][0][0]), - (6 * (PHY_vars_UE_g[0]->lte_frame_parms.ofdm_symbol_size)), 1, 1); - write_output ("dlchan1.m", "dlch1", - &(PHY_vars_UE_g[0]->lte_ue_common_vars.common_vars_rx_data_per_thread[subframe&0x1].dl_ch_estimates[1][0][0]), - (6 * (PHY_vars_UE_g[0]->lte_frame_parms.ofdm_symbol_size)), 1, 1); - write_output ("dlchan2.m", "dlch2", - &(PHY_vars_UE_g[0]->lte_ue_common_vars.common_vars_rx_data_per_thread[subframe&0x1].dl_ch_estimates[2][0][0]), - (6 * (PHY_vars_UE_g[0]->lte_frame_parms.ofdm_symbol_size)), 1, 1); - write_output ("pbch_rxF_comp0.m", "pbch_comp0", - PHY_vars_UE_g[0]->lte_ue_pbch_vars[0]->rxdataF_comp[0], 6 * 12 * 4, 1, 1); - write_output ("pbch_rxF_llr.m", "pbch_llr", - PHY_vars_UE_g[0]->lte_ue_pbch_vars[0]->llr, (frame_parms->Ncp == 0) ? 1920 : 1728, 1, 4); - } - - if (next_slot %2 == 0) { - clock_gettime (CLOCK_REALTIME, &time_spec); - time_last = time_now; - time_now = (unsigned long) time_spec.tv_nsec; - td = (int) (time_now - time_last); - - if (td>0) { - td_avg = (int)(((K*(long)td) + (((1<<3)-K)*((long)td_avg)))>>3); // in us - LOG_T(EMU,"sleep frame %d, time_now %ldus,time_last %ldus,average time difference %ldns, CURRENT TIME DIFF %dus, avgerage difference from the target %dus\n", - frame, time_now,time_last,td_avg, td/1000,(td_avg-TARGET_SF_TIME_NS)/1000); - } - - if (td_avg<(TARGET_SF_TIME_NS - SF_DEVIATION_OFFSET_NS)) { - sleep_time_us += SLEEP_STEP_US; - LOG_D(EMU,"Faster than realtime increase the avg sleep time for %d us, frame %d\n", - sleep_time_us,frame); - // LOG_D(EMU,"Faster than realtime increase the avg sleep time for %d us, frame %d, time_now %ldus,time_last %ldus,average time difference %ldns, CURRENT TIME DIFF %dus, avgerage difference from the target %dus\n", sleep_time_us,frame, time_now,time_last,td_avg, td/1000,(td_avg-TARGET_SF_TIME_NS)/1000); - } else if (td_avg > (TARGET_SF_TIME_NS + SF_DEVIATION_OFFSET_NS)) { - sleep_time_us-= SLEEP_STEP_US; - LOG_D(EMU,"Slower than realtime reduce the avg sleep time for %d us, frame %d, time_now\n", - sleep_time_us,frame); - //LOG_T(EMU,"Slower than realtime reduce the avg sleep time for %d us, frame %d, time_now %ldus,time_last %ldus,average time difference %ldns, CURRENT TIME DIFF %dus, avgerage difference from the target %dus\n", sleep_time_us,frame, time_now,time_last,td_avg, td/1000,(td_avg-TARGET_SF_TIME_NS)/1000); - } - } // end if next_slot%2 - - slot++; - - if (slot == 20) { //Frame's Epilogue - frame++; - slot = 0; - - // if n_frames not set by the user or is greater than max num frame then set adjust the frame counter - if ( (oai_emulation.info.n_frames_flag == 0) || (oai_emulation.info.n_frames >= 0xffff) ) { - frame %=(oai_emulation.info.n_frames-1); - } - - oai_emulation.info.time_s += 0.01; - - if ((frame>=1)&&(frame<=9)&&(abstraction_flag==0)) { - write_output("UEtxsig0.m","txs0", PHY_vars_UE_g[0]->lte_ue_common_vars.txdata[0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); - sprintf(fname,"eNBtxsig%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); - write_output("eNBtxsigF0.m","txsF0",PHY_vars_eNB_g[0]->lte_eNB_common_vars.txdataF[0][0],PHY_vars_eNB_g[0]->lte_frame_parms.symbols_per_tti*PHY_vars_eNB_g[0]->lte_frame_parms.ofdm_symbol_size,1,1); - - write_output("UErxsig0.m","rxs0", PHY_vars_UE_g[0]->lte_ue_common_vars.rxdata[0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); - write_output("eNBrxsig0.m","rxs0", PHY_vars_eNB_g[0]->lte_eNB_common_vars.rxdata[0][0],FRAME_LENGTH_COMPLEX_SAMPLES,1,1); - } - -#ifdef XFORMS - do_xforms(); -#endif - - // calibrate at the end of each frame if there is some time left - if((sleep_time_us > 0)&& (ethernet_flag ==0)) { - LOG_I(EMU,"[TIMING] Adjust average frame duration, sleep for %d us\n",sleep_time_us); - usleep(sleep_time_us); - sleep_time_us=0; // reset the timer, could be done per n SF - } - -#ifdef SMBV - - if ((frame == config_frames[0]) || (frame == config_frames[1]) || (frame == config_frames[2]) || (frame == config_frames[3])) { - smbv_frame_cnt++; - } - -#endif - } - } - - t = clock() - t; - printf("rrc Duration of the simulation: %f seconds\n",((float)t)/CLOCKS_PER_SEC); - - fclose(SINRpost); - LOG_I(EMU,">>>>>>>>>>>>>>>>>>>>>>>>>>> OAIEMU Ending <<<<<<<<<<<<<<<<<<<<<<<<<<\n\n"); - - free(otg_pdcp_buffer); - -#ifdef SMBV - - if (config_smbv) { - smbv_send_config (smbv_fname,smbv_ip); - } - -#endif - - //Perform KPI measurements - if (oai_emulation.info.otg_enabled==1) - kpi_gen(); - -#ifdef PAD - pad_finalize(); -#endif - - // relase all rx state - if (ethernet_flag == 1) { - emu_transport_release (); - } - - if (abstraction_flag == 0) { - /* - #ifdef IFFT_FPGA - free(txdataF2[0]); - free(txdataF2[1]); - free(txdataF2); - free(txdata[0]); - free(txdata[1]); - free(txdata); - #endif - */ - - for (i = 0; i < 2; i++) { - free (s_re[i]); - free (s_im[i]); - free (r_re[i]); - free (r_im[i]); - } - - free (s_re); - free (s_im); - free (r_re); - free (r_im); - lte_sync_time_free (); - } - - // pthread_join(sigth, NULL); - - // added for PHY abstraction - if (oai_emulation.info.ocm_enabled == 1) { - for (eNB_id = 0; eNB_id < NUMBER_OF_eNB_MAX; eNB_id++) - free(enb_data[eNB_id]); - - for (UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++) - free(ue_data[UE_id]); - } //End of PHY abstraction changes - -#ifdef OPENAIR2 - mac_top_cleanup(); -#endif - -#ifdef PRINT_STATS - - for(UE_id=0; UE_id FOR TIMES = %d <-> IF TIMES = %d\n", for_main_times, otg_times, for_times, if_times); - -} -//<>// - -void terminate(void) -{ - int i; - char interfaceName[8]; - - for (i=0; i < NUMBER_OF_eNB_MAX+NUMBER_OF_UE_MAX; i++) - if (oai_emulation.info.oai_ifup[i]==1) { - sprintf(interfaceName, "oai%d", i); - bringInterfaceUp(interfaceName,0); - } -} - -#ifdef OPENAIR2 -int omv_write (int pfd, Node_list enb_node_list, Node_list ue_node_list, Data_Flow_Unit omv_data) -{ - int i,j; - omv_data.end=0; - - //omv_data.total_num_nodes = NB_UE_INST + NB_eNB_INST; - for (i=0; inode->X_pos < 0.0)? 0.0 : enb_node_list->node->X_pos; - omv_data.geo[i].y = (enb_node_list->node->Y_pos < 0.0)? 0.0 : enb_node_list->node->Y_pos; - omv_data.geo[i].z = 1.0; - omv_data.geo[i].mobility_type = oai_emulation.info.omg_model_enb; - omv_data.geo[i].node_type = 0; //eNB - enb_node_list = enb_node_list->next; - omv_data.geo[i].Neighbors=0; - - for (j=NB_eNB_INST; j< NB_UE_INST + NB_eNB_INST ; j++) { - if (is_UE_active(i,j - NB_eNB_INST ) == 1) { - omv_data.geo[i].Neighbor[omv_data.geo[i].Neighbors]= j; - omv_data.geo[i].Neighbors++; - LOG_D(OMG,"[eNB %d][UE %d] is_UE_active(i,j) %d geo (x%d, y%d) num neighbors %d\n", i,j-NB_eNB_INST, is_UE_active(i,j-NB_eNB_INST), - omv_data.geo[i].x, omv_data.geo[i].y, omv_data.geo[i].Neighbors); - } - } - } - } - - for (i=NB_eNB_INST; inode->X_pos < 0.0) ? 0.0 : ue_node_list->node->X_pos; - omv_data.geo[i].y = (ue_node_list->node->Y_pos < 0.0) ? 0.0 : ue_node_list->node->Y_pos; - omv_data.geo[i].z = 1.0; - omv_data.geo[i].mobility_type = oai_emulation.info.omg_model_ue; - omv_data.geo[i].node_type = 1; //UE - //trial - omv_data.geo[i].state = 1; - omv_data.geo[i].rnti = 88; - omv_data.geo[i].connected_eNB = 0; - omv_data.geo[i].RSRP = 66; - omv_data.geo[i].RSRQ = 55; - omv_data.geo[i].Pathloss = 44; - omv_data.geo[i].RSSI[0] = 33; - omv_data.geo[i].RSSI[1] = 22; - omv_data.geo[i].RSSI[2] = 11; - - ue_node_list = ue_node_list->next; - omv_data.geo[i].Neighbors=0; - - for (j=0; j< NB_eNB_INST ; j++) { - if (is_UE_active(j,i-NB_eNB_INST) == 1) { - omv_data.geo[i].Neighbor[ omv_data.geo[i].Neighbors]=j; - omv_data.geo[i].Neighbors++; - LOG_D(OMG,"[UE %d][eNB %d] is_UE_active %d geo (x%d, y%d) num neighbors %d\n", i-NB_eNB_INST,j, is_UE_active(j,i-NB_eNB_INST), - omv_data.geo[i].x, omv_data.geo[i].y, omv_data.geo[i].Neighbors); - } - } - } - } - - if( write( pfd, &omv_data, sizeof(struct Data_Flow_Unit) ) == -1 ) - perror( "write omv failed" ); - - return 1; -} - -void omv_end (int pfd, Data_Flow_Unit omv_data) -{ - omv_data.end=1; - - if( write( pfd, &omv_data, sizeof(struct Data_Flow_Unit) ) == -1 ) - perror( "write omv failed" ); -} -#endif diff --git a/targets/SIMU/USER/phy_procedures_sim_form.fd b/targets/SIMU/USER/phy_procedures_sim_form.fd deleted file mode 100644 index 278096ad91..0000000000 --- a/targets/SIMU/USER/phy_procedures_sim_form.fd +++ /dev/null @@ -1,88 +0,0 @@ -Magic: 13000 - -Internal Form Definition File - (do not change) - -Number of forms: 1 -Unit of measure: FL_COORD_PIXEL - -=============== FORM =============== -Name: phy_procedures_sim -Width: 640 -Height: 320 -Number of Objects: 4 - --------------------- -class: FL_BOX -type: UP_BOX -box: 0 0 640 320 -boxtype: FL_UP_BOX -colors: FL_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_DEFAULT_SIZE -lcol: FL_BLACK -label: -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 50 30 220 190 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_YELLOW -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: PUSCH constellation -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: pusch_constellation -callback: -argument: - --------------------- -class: FL_XYPLOT -type: POINTS_XYPLOT -box: 370 30 220 190 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_YELLOW -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: PDSCH constellation -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: pdsch_constellation -callback: -argument: - --------------------- -class: FL_XYPLOT -type: IMPULSE_XYPLOT -box: 370 240 210 60 -boxtype: FL_FLAT_BOX -colors: FL_BLACK FL_YELLOW -alignment: FL_ALIGN_BOTTOM -style: FL_NORMAL_STYLE -size: FL_TINY_SIZE -lcol: FL_BLACK -label: CH00 -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: ch00 -callback: -argument: - -============================== -create_the_forms diff --git a/targets/SIMU/USER/phy_procedures_sim_form.h b/targets/SIMU/USER/phy_procedures_sim_form.h deleted file mode 100644 index df8f846f96..0000000000 --- a/targets/SIMU/USER/phy_procedures_sim_form.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 - */ - -/** Header file generated with fdesign on Tue Jul 27 16:31:42 2010.**/ - -#ifndef FD_phy_procedures_sim_h_ -#define FD_phy_procedures_sim_h_ - -/** Callbacks, globals and object handlers **/ - - -/**** Forms and Objects ****/ -typedef struct { - FL_FORM *phy_procedures_sim; - void *vdata; - char *cdata; - long ldata; - FL_OBJECT *pusch_constellation; - FL_OBJECT *pdsch_constellation; - FL_OBJECT *ch00; -} FD_phy_procedures_sim; - -extern FD_phy_procedures_sim * create_form_phy_procedures_sim(void); - -#endif /* FD_phy_procedures_sim_h_ */ diff --git a/targets/SIMU/USER/plot_results.m b/targets/SIMU/USER/plot_results.m deleted file mode 100644 index 73ac501f6f..0000000000 --- a/targets/SIMU/USER/plot_results.m +++ /dev/null @@ -1,57 +0,0 @@ -function plot_results(tm) -data_abs = dlmread(sprintf('UE_stats_abs_th0_tx%d.txt',tm)); -data = dlmread(sprintf('UE_stats_th0_tx%d.txt',tm)); -figure -plot(data(:,1),data(:,2)) -hold on -plot(data_abs(:,1),data_abs(:,2),'r') -title(sprintf('Average Throughput of System for TM %d',tm)) -xlabel('Frames') -ylabel('Throughput [kbps]') -legend('Full PHY','PHY ABSTRACTION') -hold off -%figure -%[f x]=ecdf(data(:,2)); -%plot(x,f); -%hold on -%[f x]=ecdf(data_abs(:,2)); -%plot(x,f); -%hold off -% figure -% cdfplot(data(:,2)); -% hold on -% cdfplot(data_abs(:,2)); -% hold off -%data0 = dlmread(sprintf('UE_stats_th0_tx%d.txt',tm)); -%if(users>1) -%data1 = dlmread(sprintf('UE_stats_th1_tx%d.txt',tm)); -%data1_abs = dlmread(sprintf('UE_stats_abs_th1_tx%d.txt',tm)); -%end -%data0_abs = dlmread(sprintf('UE_stats_abs_th0_tx%d.txt',tm)); -%figure -%plot(data0(:,1),data0(:,2)) -%hold on; -%plot(data0_abs(:,1),data0_abs(:,2),'r') -%title(sprintf('Instanteneous Throughput of UE 1 for TM %d',tm)) -%xlabel('Frames') -%ylabel('Throughput [kbps]') -%legend('Full PHY','PHY ABSTRACTION') -%hold off -% figure -% [f x]=ecdf(data0(:,2)); -% plot(x,f); -% hold on -% [f x]=ecdf(data0_abs(:,2)); -% plot(x,f); -% hold off -%if(users>1) -%figure -%plot(data1(:,1),data1(:,2)) -%hold on; -%plot(data1_abs(:,1),data1_abs(:,2),'r') -%title(sprintf('Instanteneous Throughput of UE 2 for TM %d',tm)) -%xlabel('Frames') -%ylabel('Throughput [kbps]') -%legend('Full PHY','PHY ABSTRACTION') -%hold off -%end diff --git a/targets/SIMU/USER/sinr_sim.c b/targets/SIMU/USER/sinr_sim.c deleted file mode 100644 index 2dc86b8443..0000000000 --- a/targets/SIMU/USER/sinr_sim.c +++ /dev/null @@ -1,679 +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 -#include -#include -#include -#include - -#include "SIMULATION/TOOLS/sim.h" -#include "SIMULATION/RF/rf.h" -#include "PHY/types.h" -#include "PHY/defs_eNB.h" -#include "PHY/defs_UE.h" -#include "PHY/phy_extern.h" -#include "oaisim_config.h" - -#ifdef OPENAIR2 -#include "LAYER2/MAC/mac.h" -#include "LAYER2/MAC/mac_extern.h" -#include "UTIL/LOG/log_if.h" -#include "UTIL/LOG/log_extern.h" -#include "RRC/LTE/rrc_extern.h" -#include "PHY_INTERFACE/phy_interface_extern.h" -#include "UTIL/OCG/OCG.h" -#include "UTIL/OMG/omg.h" -#include "UTIL/OPT/opt.h" // to test OPT -#endif - - -#include "oaisim.h" - -#define PI 3.1416 -#define Am 20 - -#define MCL (-70) /*minimum coupling loss (MCL) in dB*/ -//double sinr[NUMBER_OF_eNB_MAX][2*25]; -/* -extern double sinr_bler_map[MCS_COUNT][2][16]; -extern double sinr_bler_map_up[MCS_COUNT][2][16]; -double SINRpost_eff[301]; -extern double MI_map_4qam[3][162]; -extern double MI_map_16qam[3][197]; -extern double MI_map_64qam[3][227]; -*/ -// Extract the positions of UE and ENB from the mobility model - -void extract_position (node_list* input_node_list, node_desc_t **node_data, int nb_nodes) -{ - - int i; - - for (i=0; ix = input_node_list->node->x_pos; - - if (node_data[i]->x <0.0) - node_data[i]->x = 0.0; - - node_data[i]->y = input_node_list->node->y_pos; - - if (node_data[i]->y <0.0) - node_data[i]->y = 0.0; - - LOG_D(OCM, "extract_position: added node_data %d with position X: %f and Y: %f \n", i,input_node_list->node->x_pos, input_node_list->node->y_pos ); - input_node_list = input_node_list->next; - } else { - LOG_E(OCM, "extract_position: Null pointer!!!\n"); - //exit(-1); - } - } -} -void extract_position_fixed_enb (node_desc_t **node_data, int nb_nodes, frame_t frame) -{ - int i; - - for (i=0; ix = 0; - node_data[i]->y = 500; - } else if (i == 1 ) { - node_data[i]->x = 866;// - node_data[i]->y = 1000; - } else if (i == 2 ) { - node_data[i]->x = 866; - node_data[i]->y = 0; - } - } -} - -void extract_position_fixed_ue (node_desc_t **node_data, int nb_nodes, frame_t frame) -{ - int i; - - if(frame<50) - for (i=0; ix = 2050; - node_data[i]->y = 1500; - } else { - node_data[i]->x = 2150; - node_data[i]->y = 1500; - } - } - else { - for (i=0; ix = 1856 - (frame - 49); - // if(node_data[i]->x > 2106) - // node_data[i]->x = 2106; - node_data[i]->y = 1813 + (frame - 49); - // if(node_data[i]->y < 1563) - // node_data[i]->y = 1563; - // if( node_data[i]->x == 2106) - // node_data[i]->x = 2106 - (frame - 49); - } else { - node_data[i]->x = 2106 - (frame - 49); - // if(node_data[i]->x < 1856) - // node_data[i]->x = 1856; - node_data[i]->y = 1563 + (frame - 49); - // if(node_data[i]->y < 1813) - // node_data[i]->y = 1813; - } - } - } - -} - -void init_ue(node_desc_t *ue_data, UE_Antenna ue_ant) //changed from node_struct -{ - - ue_data->n_sectors = 1; - ue_data->phi_rad = 2 * PI; - ue_data->ant_gain_dBi = ue_ant.antenna_gain_dBi; - ue_data->tx_power_dBm = ue_ant.tx_power_dBm; - ue_data->rx_noise_level = ue_ant.rx_noise_level_dB; //value in db - -} - -void init_enb(node_desc_t *enb_data, eNB_Antenna enb_ant) //changed from node_struct -{ - - int i; - double sect_angle[3]= {0,2*PI/3,4*PI/3}; - - enb_data->n_sectors = enb_ant.number_of_sectors; - - for (i=0; in_sectors; i++) - enb_data->alpha_rad[i] = sect_angle[i]; //enb_ant.alpha_rad[i]; - - enb_data->phi_rad = enb_ant.beam_width_dB; - enb_data->ant_gain_dBi = enb_ant.antenna_gain_dBi; - enb_data->tx_power_dBm = enb_ant.tx_power_dBm; - enb_data->rx_noise_level = enb_ant.rx_noise_level_dB; - -} - - - -void calc_path_loss(node_desc_t* enb_data, node_desc_t* ue_data, channel_desc_t *ch_desc, Environment_System_Config env_desc, double **Shad_Fad) -{ - - double dist; - double path_loss; - double gain_max; - double gain_sec[3]; - double alpha, theta; - - int count; - - - dist = sqrt(pow((enb_data->x - ue_data->x), 2) + pow((enb_data->y - ue_data->y), 2)); - - path_loss = env_desc.fading.free_space_model_parameters.pathloss_0_dB - - 10*env_desc.fading.free_space_model_parameters.pathloss_exponent * log10(dist/1000); - LOG_D(OCM,"dist %f, Path loss %f\n",dist,ch_desc->path_loss_dB); - - /* Calculating the angle in the range -pi to pi from the slope */ - alpha = atan2((ue_data->y - enb_data->y),(ue_data->x - enb_data->x)); - - if (alpha < 0) - alpha += 2*PI; - - //printf("angle in radians is %lf\n", ue_data[UE_id]->alpha_rad[eNB_id]); - ch_desc->aoa = alpha; - ch_desc->random_aoa = 0; - - if (enb_data->n_sectors==1) //assume omnidirectional antenna - gain_max = 0; - else { - gain_max = -1000; - - for(count = 0; count < enb_data->n_sectors; count++) { - theta = enb_data->alpha_rad[count] - alpha; - /* gain = -min(Am , 12 * (theta/theta_3dB)^2) */ - gain_sec[count] = -(Am < (12 * pow((theta/enb_data->phi_rad),2)) ? Am : (12 * pow((theta/enb_data->phi_rad),2))); - - if (gain_sec[count]>gain_max) //take the sector that we are closest too (or where the gain is maximum) - gain_max = gain_sec[count]; - } - } - - path_loss += enb_data->ant_gain_dBi + gain_max + ue_data->ant_gain_dBi; - - if (Shad_Fad!=NULL) - path_loss += Shad_Fad[(int)ue_data->x][(int)ue_data->y]; - - ch_desc->path_loss_dB = MCL < path_loss ? MCL : path_loss; - //LOG_D(OCM,"x_coordinate\t%f\t,y_coordinate\t%f\t, path_loss %f\n",ue_data->x,ue_data->y,ch_desc->path_loss_dB); -} - - - - - -void init_snr(channel_desc_t* eNB2UE, node_desc_t *enb_data, node_desc_t *ue_data, double* sinr_dB, double* N0, uint8_t transmission_mode, uint16_t q, uint8_t dl_power_off, uint16_t nb_rb) -{ - - double thermal_noise,abs_channel,channelx, channely,channelx_i, channely_i ; - int count; - int aarx,aatx; - uint8_t qq; - - /* Thermal noise is calculated using 10log10(K*T*B) K = Boltzmann's constant T = room temperature B = bandwidth*/ - thermal_noise = -174 + 10*log10(15000); //per RE; value in dBm - - //for (aarx=0; aarxnb_rx; aarx++) - *N0 = thermal_noise + ue_data->rx_noise_level; - - LOG_D(OCM,"Path loss %lf, noise (N0) %lf, signal %lf, snr %lf\n", - eNB2UE->path_loss_dB, - thermal_noise + ue_data->rx_noise_level, - enb_data->tx_power_dBm + eNB2UE->path_loss_dB, - enb_data->tx_power_dBm + eNB2UE->path_loss_dB - (thermal_noise + ue_data->rx_noise_level)); - - if(transmission_mode == 5 && dl_power_off==1) - transmission_mode = 6; - - switch(transmission_mode) { - case 1: - - //printf ("coupling factor is %lf\n", coupling); - for (count = 0; count < (12 * nb_rb); count++) { - sinr_dB[count] = enb_data->tx_power_dBm - + eNB2UE->path_loss_dB - - (thermal_noise + ue_data->rx_noise_level) - + 10 * log10 (pow(eNB2UE->chF[0][count].x, 2) - + pow(eNB2UE->chF[0][count].y, 2)); - //printf("sinr_dB[%d]: %1f\n",count,sinr_dB[count]); - //printf("Dl_link SNR for res. block %d is %lf\n", count, sinr[eNB_id][count]); - } - - break; - - case 2: - - for (count = 0; count < (12 * nb_rb); count++) { - abs_channel=0; - - for (aarx=0; aarxnb_rx; aarx++) { - for (aatx=0; aatxnb_tx; aatx++) { - abs_channel += (pow(eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x, 2) + pow(eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y, 2)); - } - } - - sinr_dB[count] = enb_data->tx_power_dBm - + eNB2UE->path_loss_dB - - (thermal_noise + ue_data->rx_noise_level) - + 10 * log10 (abs_channel/2); - // printf("sinr_dB[%d]: %1f\n",count,sinr_dB[count]); - } - - break; - - case 5: - for (count = 0; count < (12 * nb_rb); count++) { - channelx=0; - channely=0; - channelx_i=0; - channely_i=0; - qq = (q>>(((count/12)>>2)<<1))&3; - //printf("pmi_alloc %d: rb %d, pmi %d\n",q,count/12,qq); - - - - // qq = q; - for (aarx=0; aarxnb_rx; aarx++) { - for (aatx=0; aatxnb_tx; aatx++) { - switch(qq) { - case 0: - if (channelx==0 || channely==0) { - channelx = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - channely = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - channelx_i = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - channely_i = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - } else { - channelx += eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - channely += eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - channelx_i -= eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - channely_i -= eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - } - - break; - - case 1: - if (channelx==0 || channely==0) { - channelx = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - channely = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - channelx_i = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - channely_i = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - } else { - channelx -= eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - channely -= eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - channelx_i += eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - channely_i += eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - } - - break; - - case 2: - if (channelx==0 || channely==0) { - channelx = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - channely = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - channelx_i = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - channely_i = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - } else { - channelx -= eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - channely += eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - channelx_i += eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - channely_i -= eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - - } - - break; - - case 3: - if (channelx==0 || channely==0) { - channelx = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - channely = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - channelx_i = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - channely_i = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - } else { - channelx += eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - channely -= eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - channelx_i -= eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - channely_i += eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - } - - break; - - default: - LOG_E(EMU,"Problem in SINR Calculation for TM5 \n"); - break; - - }//switch(q) - - }//aatx - }//aarx - - /* sinr_dB[count] = enb_data->tx_power_dBm - + eNB2UE->path_loss_dB - - (thermal_noise + ue_data->rx_noise_level) - + 10 * log10 ((pow(channelx,2) + pow(channely,2))/2) - 10 * log10 ((pow(channelx_i,2) + pow(channely_i,2))/2); - */ - sinr_dB[count] = enb_data->tx_power_dBm - + eNB2UE->path_loss_dB - - (thermal_noise + ue_data->rx_noise_level) - + 10 * log10 ((pow(channelx,2) + pow(channely,2))) - 10 * log10 ((pow(channelx_i,2) + pow(channely_i,2))) - 3; // 3dB is subtracted as the tx_power_dBm is to be adjusted on per user basis - // printf("sinr_dB[%d]: %1f\n",count,sinr_dB[count]); - } - - break; - - case 6: - for (count = 0; count < (12 * nb_rb); count++) { - channelx=0; - channely=0; - qq = (q>>(((count/12)>>2)<<1))&3; - //printf("pmi_alloc %d: rb %d, pmi %d\n",q,count/12,qq); - - - - // qq = q; - for (aarx=0; aarxnb_rx; aarx++) { - for (aatx=0; aatxnb_tx; aatx++) { - switch(qq) { - case 0: - if (channelx==0 || channely==0) { - channelx = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - channely = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - } else { - channelx += eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - channely += eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - } - - break; - - case 1: - if (channelx==0 || channely==0) { - channelx = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - channely = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - } else { - channelx -= eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - channely -= eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - } - - break; - - case 2: - if (channelx==0 || channely==0) { - channelx = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - channely = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - } else { - channelx -= eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - channely += eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - } - - break; - - case 3: - if (channelx==0 || channely==0) { - channelx = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - channely = eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - } else { - channelx += eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].y; - channely -= eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][count].x; - } - - break; - - default: - LOG_E(EMU,"Problem in SINR Calculation for TM6 \n"); - break; - - }//switch(q) - - }//aatx - }//aarx - - sinr_dB[count] = enb_data->tx_power_dBm - + eNB2UE->path_loss_dB - - (thermal_noise + ue_data->rx_noise_level) - + 10 * log10 ((pow(channelx,2) + pow(channely,2))/2); - - // printf("sinr_dB[%d]: %1f\n",count,sinr_dB[count]); - } - - break; - - default: - LOG_E(EMU,"Problem in SINR Initialization in sinr_sim.c\n"); - break; - }//switch -}//function ends - -void calculate_sinr(channel_desc_t* eNB2UE, node_desc_t *enb_data, node_desc_t *ue_data, double *sinr_dB, uint16_t nb_rb) -{ - - double sir, thermal_noise; - short count; - - /* Thermal noise is calculated using 10log10(K*T*B) K = Boltzmann's constant T = room temperature B = bandwidth */ - thermal_noise = -174 + 10*log10(15000); //per RE, value in dBm - - for (count = 0; count < 12 * nb_rb; count++) { - sir = enb_data->tx_power_dBm - + eNB2UE->path_loss_dB - - (thermal_noise + ue_data->rx_noise_level) - + 10 * log10 (pow(eNB2UE->chF[0][count].x, 2) - + pow(eNB2UE->chF[0][count].y, 2)); - - if (sir > 0) - sinr_dB[count] -= sir; - - //printf("*****sinr% lf \n",sinr_dB[count]); - } -} -void get_beta_map() -{ - char *file_path = NULL; - //int table_len = 0; - int t,u; - int mcs = 0; - char *sinr_bler; - char buffer[1000]; - FILE *fp; - double perf_array[13]; - - file_path = (char*) malloc(512); - - for (mcs = 0; mcs < MCS_COUNT; mcs++) { - snprintf( file_path, 512, "%s/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs%d.csv", getenv("OPENAIR1_DIR"), mcs ); - fp = fopen(file_path,"r"); - - if (fp == NULL) { - LOG_E(OCM,"ERROR: Unable to open the file %s! Exitng.\n", file_path); - exit(-1); - } - - // else { - if (fgets (buffer, 1000, fp) != NULL) { - if (fgets (buffer, 1000, fp) != NULL) { - table_length[mcs] = 0; - - while (!feof (fp)) { - u = 0; - sinr_bler = strtok (buffer, ";"); - - while (sinr_bler != NULL) { - perf_array[u] = atof (sinr_bler); - u++; - sinr_bler = strtok (NULL, ";"); - } - - if ((perf_array[4] / perf_array[5]) < 1) { - sinr_bler_map[mcs][0][table_length[mcs]] = perf_array[0]; - sinr_bler_map[mcs][1][table_length[mcs]] = (perf_array[4] / perf_array[5]); - table_length[mcs]++; - - if (table_length[mcs]>MCS_TABLE_LENGTH_MAX) { - LOG_E(OCM,"Error reading MCS table. Increase MCS_TABLE_LENGTH_MAX (mcs %d)!\n",mcs); - exit(-1); - } - } - - if (fgets (buffer, 1000, fp) != NULL) { - } - } - } - } - - fclose(fp); - // } - LOG_D(OCM,"Print the table for mcs %d\n",mcs); - - for (t = 0; t. -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are -* met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** -* @file threadpool.c -* @brief Threadpool implementation file -*/ - -#include -#include -#include - - -#include "oaisim.h" -#include "UTIL/OCG/OCG_extern.h" -#include "UTIL/FIFO/pad_list.h" -#include "threadpool.h" - -extern uint8_t abstraction_flag; -extern Signal_buffers *signal_buffers_g; - -extern channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX]; -extern channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX]; - -extern node_desc_t *enb_data[NUMBER_OF_eNB_MAX]; -extern node_desc_t *ue_data[NUMBER_OF_UE_MAX]; - -extern LTE_DL_FRAME_PARMS *frame_parms; - -/** -* @function void *threadpool_thread(void *threadpool) -* @brief the worker thread -* @param threadpool the pool which own the thread -*/ -void *threadpool_thread(void *threadpool); - -int threadpool_free(threadpool_t *pool); - -threadpool_t *threadpool_create(int thread_count) -{ - threadpool_t *pool; - int i; - - /* TODO: Check for negative or otherwise very big input parameters */ - - if((pool = (threadpool_t *)malloc(sizeof(threadpool_t))) == NULL) { - goto err; - } - - // memset - /* Initialize */ - pool->thread_count = thread_count; - job_list_init(&(pool->job_queue)); - pool->shutdown = pool->started = pool->active = 0; - - /* Allocate thread and task queue */ - pool->threads = (pthread_t *)malloc(sizeof (pthread_t) * thread_count); - - // memset - /* Initialize mutex and conditional variable first */ - if((pthread_mutex_init(&(pool->lock), NULL) != 0) || - (pthread_mutex_init(&(pool->sync_lock), NULL) != 0) || - (pthread_cond_init(&(pool->notify), NULL) != 0) || - (pthread_cond_init(&(pool->sync_notify), NULL) != 0) || - (pool->threads == NULL)) { - goto err; - } - - /* Start worker threads */ - for(i = 0; i < thread_count; i++) { - if(pthread_create(&(pool->threads[i]), NULL, - threadpool_thread, (void*)pool) != 0) { - threadpool_destroy(pool); - return NULL; - } else { - pool->started++; - } - } - - return pool; - -err: - - if(pool) { - threadpool_free(pool); - } - - return NULL; -} - -int threadpool_add(threadpool_t *pool, Job_elt *job) -{ - int err = 0; - - if(pool == NULL || job == NULL) { - return threadpool_invalid; - } - - if(pthread_mutex_lock(&(pool->lock)) != 0) { - return threadpool_lock_failure; - } - - do { - - /* Are we shutting down ? */ - if(pool->shutdown) { - err = threadpool_shutdown; - break; - } - - /* Add task to queue */ - job_list_add_tail_eurecom(job, &(pool->job_queue)); - - /* pthread_cond_broadcast */ - if(pthread_cond_signal(&(pool->notify)) != 0) { - err = threadpool_lock_failure; - break; - } - } while(0); - - if(pthread_mutex_unlock(&pool->lock) != 0) { - err = threadpool_lock_failure; - } - - return err; -} - -int threadpool_destroy(threadpool_t *pool) -{ - int i, err = 0; - - if(pool == NULL) { - return threadpool_invalid; - } - - if(pthread_mutex_lock(&(pool->lock)) != 0) { - return threadpool_lock_failure; - } - - do { - /* Already shutting down */ - if(pool->shutdown) { - err = threadpool_shutdown; - break; - } - - pool->shutdown = 1; - - /* Wake up all worker threads */ - if((pthread_cond_broadcast(&(pool->notify)) != 0) || - (pthread_mutex_unlock(&(pool->lock)) != 0)) { - err = threadpool_lock_failure; - break; - } - - /* Join all worker thread */ - for(i = 0; i < pool->thread_count; i++) { - if(pthread_join(pool->threads[i], NULL) != 0) { - err = threadpool_thread_failure; - } - } - } while(0); - - if(pthread_mutex_unlock(&pool->lock) != 0) { - err = threadpool_lock_failure; - } - - /* Only if everything went well do we deallocate the pool */ - if(!err) { - threadpool_free(pool); - } - - return err; -} - -int threadpool_free(threadpool_t *pool) -{ - if(pool == NULL || pool->started > 0) { - return -1; - } - - /* Did we manage to allocate ? */ - if(pool->threads) { - free(pool->threads); - job_list_free (&(pool->job_queue)); - - /* Because we allocate pool->threads after initializing the - mutex and condition variable, we're sure they're - initialized. Let's lock the mutex just in case. */ - pthread_mutex_lock(&(pool->lock)); - pthread_mutex_destroy(&(pool->lock)); - pthread_mutex_destroy(&(pool->sync_lock)); - pthread_cond_destroy(&(pool->notify)); - pthread_cond_destroy(&(pool->sync_notify)); - } - - free(pool); - return 0; -} - - -void *threadpool_thread(void *threadpool) -{ - threadpool_t *pool = (threadpool_t *)threadpool; - Job_elt * job_elt; - int err; - - - printf("The ID of this thread is: %u\n", (unsigned int)pthread_self()); - - for(;;) { - /* Lock must be taken to wait on conditional variable */ - pthread_mutex_lock(&(pool->lock)); - - /* Wait on condition variable, check for spurious wakeups. - When returning from pthread_cond_wait(), we own the lock. */ - - while(((pool->job_queue).nb_elements == 0) && (!pool->shutdown)) { - pthread_cond_wait(&(pool->notify), &(pool->lock)); - } - - if(pool->shutdown) { - break; - } - - /* Grab our task */ - job_elt = job_list_remove_head(&(pool->job_queue)); - - - if((err = pthread_mutex_lock(&(pool->sync_lock))) != 0) { - printf("Mutex Error \n"); - return err; - } - - pool->active++; - - if((err = pthread_mutex_unlock(&pool->sync_lock)) != 0) { - printf("Mutex Error \n"); - return err; - } - - - /* Unlock */ - pthread_mutex_unlock(&(pool->lock)); - - /* Get to work */ - switch((job_elt->job).type) { - case JT_OTG: - if ((job_elt->job).eNB_flag) - update_otg_eNB((job_elt->job).nid, (unsigned int) oai_emulation.info.time_ms); - else - update_otg_UE((job_elt->job).nid, (unsigned int) oai_emulation.info.time_ms); - - break; - - case JT_PDCP://do not forget adding flag enb - if ((job_elt->job).eNB_flag) - pdcp_run(frame, 1, 0, (job_elt->job).nid); - else - pdcp_run(frame, 0, (job_elt->job).nid, 0); - - break; - - case JT_PHY_MAC: - if ((job_elt->job).eNB_flag) - phy_procedures_eNB_lte ((job_elt->job).last_slot, (job_elt->job).next_slot, PHY_vars_eNB_g[(job_elt->job).nid], abstraction_flag); - else - phy_procedures_UE_lte ((job_elt->job).last_slot, (job_elt->job).next_slot, PHY_vars_UE_g[(job_elt->job).nid], 0, abstraction_flag, normal_txrx); - - ue_data[(job_elt->job).nid]->tx_power_dBm = PHY_vars_UE_g[(job_elt->job).nid]->tx_power_dBm; - break; - - case JT_INIT_SYNC: - initial_sync(PHY_vars_UE_g[(job_elt->job).nid],normal_txrx); - break; - - case JT_DL: - do_DL_sig(signal_buffers_g[(job_elt->job).nid].r_re0,signal_buffers_g[(job_elt->job).nid].r_im0,signal_buffers_g[(job_elt->job).nid].r_re,signal_buffers_g[(job_elt->job).nid].r_im, - signal_buffers_g[(job_elt->job).nid].s_re,signal_buffers_g[(job_elt->job).nid].s_im,eNB2UE,enb_data,ue_data,(job_elt->job).next_slot,abstraction_flag, - frame_parms,(job_elt->job).nid); - break; - - case JT_UL: - do_UL_sig(signal_buffers_g[(job_elt->job).nid].r_re0,signal_buffers_g[(job_elt->job).nid].r_im0,signal_buffers_g[(job_elt->job).nid].r_re,signal_buffers_g[(job_elt->job).nid].r_im, - signal_buffers_g[(job_elt->job).nid].s_re,signal_buffers_g[(job_elt->job).nid].s_im,UE2eNB,enb_data,ue_data,(job_elt->job).next_slot,abstraction_flag, - frame_parms,frame); - break; - - } - - if((err = pthread_mutex_lock(&(pool->sync_lock))) != 0) { - printf("Mutex Error \n"); - return err; - } - - pool->active--; - - if ((pool->active <= 0) && ((pool->job_queue).nb_elements == 0)) { - pool->active=0; - - if(pthread_cond_signal(&(pool->sync_notify)) != 0) { - printf("Condition Error \n"); - break; - } - } - - - if((err = pthread_mutex_unlock(&pool->sync_lock)) != 0) { - printf("Mutex Error \n"); - return err; - } - - - } - - pool->started--; - - pthread_mutex_unlock(&(pool->lock)); - pthread_exit(NULL); - return(NULL); -} diff --git a/targets/SIMU/USER/threadpool.h b/targets/SIMU/USER/threadpool.h deleted file mode 100644 index 9cea60c6e7..0000000000 --- a/targets/SIMU/USER/threadpool.h +++ /dev/null @@ -1,101 +0,0 @@ -/* -* Copyright (c) 2011, Mathias Brossard . -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are -* met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _THREADPOOL_H_ -#define _THREADPOOL_H_ - -/** -* @file threadpool.h -* @brief Threadpool Header file -*/ - -/** -* @struct threadpool -* @brief The threadpool struct -* -* @var notify Condition variable to notify worker threads. -* @var threads Array containing worker threads ID. -* @var thread_count Number of threads -* @var job_queue Array containing the task queue. -* @var shutdown Flag indicating if the pool is shutting down -*/ -struct threadpool_t { - pthread_mutex_t lock; // used to get / put a job in the queue, protect job_queue - pthread_mutex_t sync_lock; // used when there is a dependancy between two consecutive jobs, protect active - pthread_cond_t notify; // wakup threads - pthread_cond_t sync_notify; // last worker sends this - pthread_t *threads; - Job_List job_queue; - int thread_count; - int count; // ???? - int shutdown; // end of sim/emu - int started; // total number of thread started , after init: started == count - int active; // num active threads -}; - -typedef struct threadpool_t threadpool_t; - -typedef enum { - threadpool_invalid = -1, - threadpool_lock_failure = -2, - threadpool_queue_full = -3, - threadpool_shutdown = -4, - threadpool_thread_failure = -5 -} threadpool_error_t; - -/** -* @function threadpool_create -* @brief Creates a threadpool_t object. -* @param thread_count Number of worker threads. -* @param queue_size Size of the queue. -* @param flags Unused parameter. -* @return a newly created thread pool or NULL -*/ -threadpool_t *threadpool_create(int thread_count); - -/** -* @function threadpool_add -* @brief add a new task in the queue of a thread pool -* @param pool Thread pool to which add the task. -* @param function Pointer to the function that will perform the task. -* @param argument Argument to be passed to the function. -* @param flags Unused parameter. -* @return 0 if all goes well, negative values in case of error (@see -* threadpool_error_t for codes). -*/ -int threadpool_add(threadpool_t *pool, Job_elt *job); - -/** -* @function threadpool_destroy -* @brief Stops and destroys a thread pool. -* @param pool Thread pool to destroy. -* @param flags Unused parameter. -*/ -int threadpool_destroy(threadpool_t *pool); - -#endif /* _THREADPOOL_H_ */ diff --git a/targets/SIMU/USER/valgrind.sh b/targets/SIMU/USER/valgrind.sh deleted file mode 100755 index 4cb856107f..0000000000 --- a/targets/SIMU/USER/valgrind.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -valgrind --tool=memcheck --leak-check=full --show-reachable=yes --num-callers=20 --track-origins=yes --track-fds=yes ./oaisim -b1 -u1 -F -n100 2>leakage 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\""