diff --git a/docs/JudgeServer/English/deploy/index.html b/docs/JudgeServer/English/deploy/index.html index 2116c27..df4ad2e 100644 --- a/docs/JudgeServer/English/deploy/index.html +++ b/docs/JudgeServer/English/deploy/index.html @@ -113,27 +113,6 @@ - - - - - - @@ -156,8 +135,8 @@ Previous -
  • -
  • diff --git a/docs/JudgeServer/English/index.html b/docs/JudgeServer/English/index.html index 6aa0be0..1ab8225 100644 --- a/docs/JudgeServer/English/index.html +++ b/docs/JudgeServer/English/index.html @@ -113,27 +113,6 @@ - - - - - - @@ -322,7 +301,6 @@

    Judge (for Special Judge)

    -

    Special Judge must be compiled before, refer to the above API

    @@ -335,6 +313,8 @@
  • test_case_id
  • spj_version
  • spj_config, refer to client/Python/languages.py, do not need to modify generally
  • +
  • spj_compile_config: refer to client/Python/languages.py, do not need to modify generally
  • +
  • spj_src
  • Response

    [
    diff --git a/docs/JudgeServer/index.html b/docs/JudgeServer/index.html
    index dc5f8b7..31bd1ac 100644
    --- a/docs/JudgeServer/index.html
    +++ b/docs/JudgeServer/index.html
    @@ -113,27 +113,6 @@
     
     
             
    -    
    -  
    -
    -                    
    -                        
    -  
     
    diff --git a/docs/Judger/English/index.html b/docs/Judger/English/index.html
    index ed10f35..84e0ada 100644
    --- a/docs/Judger/English/index.html
    +++ b/docs/Judger/English/index.html
    @@ -113,27 +113,6 @@
     
     
             
    -    
    -  
    -
    -                    
    -                        
    -  
     
    diff --git a/docs/Judger/index.html b/docs/Judger/index.html
    index a5c4a43..85c1c11 100644
    --- a/docs/Judger/index.html
    +++ b/docs/Judger/index.html
    @@ -113,27 +113,6 @@
     
     
             
    -    
    -  
    -
    -                    
    -                        
    -  
     
    diff --git a/docs/index.html b/docs/index.html
    index 1bfbc82..a91235f 100644
    --- a/docs/index.html
    +++ b/docs/index.html
    @@ -113,27 +113,6 @@
     
     
             
    -    
    -  
    -
    -                    
    -                        
    -  
     
    diff --git a/docs/judger/English/index.html b/docs/judger/English/index.html
    index ed10f35..84e0ada 100644
    --- a/docs/judger/English/index.html
    +++ b/docs/judger/English/index.html
    @@ -113,27 +113,6 @@
     
     
             
    -    
    -  
    -
    -                    
    -                        
    -  
     
    diff --git a/docs/judger/index.html b/docs/judger/index.html
    index a5c4a43..85c1c11 100644
    --- a/docs/judger/index.html
    +++ b/docs/judger/index.html
    @@ -113,27 +113,6 @@
     
     
             
    -    
    -  
    -
    -                    
    -                        
    -  
     
    diff --git a/docs/mkdocs/search_index.json b/docs/mkdocs/search_index.json
    index f42c063..466fbdc 100644
    --- a/docs/mkdocs/search_index.json
    +++ b/docs/mkdocs/search_index.json
    @@ -97,7 +97,7 @@
             }, 
             {
                 "location": "/JudgeServer/English/", 
    -            "text": "JudgeServer API\n\n\nPreparement\n\n\n\n\nX-Judge-Server-Token\n HTTP header is required for all requests, the value of this header is \nsha256(token)\n.\n\n\nType of request and response data is JSON.\n\n\nRequest method is \nPOST\n.\n\n\n\n\nFor all responses, \nerr\n and \ndata\n fields will be returned. \n\n\n\n\nIf the request is processed successfully, \nerr\n field will be \nnull\n, \ndata\n field will be the data returned. \n\n\nIf error occured while processing request, \nerr\n field will be error code, \ndata\n field will be the reason.\n\n\n\n\n\n\n\n\nGet system info\n\n\n\n\nURL \n/ping\n\n\n\n\nArgs\n\n\n\n\nDo not need args\n\n\n\n\nResponse\n\n\n{\n    \njudger_version\n: \n2.0.1\n,\n    \nhostname\n: \nd3765528134e\n,\n    // number of cpu cores, this value will determine the number of concurrent tasks\n    \ncpu_core\n: 1,\n    // usage of cpu and memory\n    \ncpu\n: 4.1,\n    \nmemory\n: 24.5,\n    \naction\n: \npong\n\n}\n\n\n\n\nJudge (not for Special Judge)\n\n\n\n\nURL \n/judge\n\n\n\n\nArgs\n\n\n\n\nsrc\n: source code\n\n\nlanguage_config\n: refer to \nclient/Python/languages.py\n, do not need to modify generally\n\n\nmax_cpu_time\n: unit is ms\n\n\nmax_memory\n: unit is byte\n\n\ntest_case_id\n: used to get the test_case directory\n\n\n\n\nResponse\n\n\n[\n    // each object/dict is a test case file running result\n    {\n        \ncpu_time\n: 1,\n        // refer to the end of this document\n        \nresult\n: 0,\n        \nmemory\n: 12836864,\n        \nreal_time\n: 2,\n        \nsignal\n: 0,\n        \nerror\n: 0,\n        // refer to the end of this document\n        \nexit_code\n: 0,\n        \noutput_md5\n: \neccbc87e4b5ce2fe28308fd9f2a7baf3\n,\n        // test case file id\n        \ntest_case\n: 1\n    },\n    {\n        \ncpu_time\n: 1,\n        \nresult\n: 0,\n        \nmemory\n: 12849152,\n        \nreal_time\n: 1,\n        \nsignal\n: 0,\n        \nerror\n: 0,\n        \nexit_code\n: 0,\n        \noutput_md5\n: \neccbc87e4b5ce2fe28308fd9f2a7baf3\n,\n        \ntest_case\n: 2\n    }\n]\n\n\n\n\nWhen compilation is failed, following data will be returned\n\n\n{\n    \nerr\n: \nCompileError\n, \n    \ndata\n: \nerror resson\n\n}\n\n\n\n\nCompile Special Judge\n\n\n\n\nURL \n/compile_spj\n\n\n\n\nArgs\n\n\n\n\nsrc\n: special judge soure code\n\n\nspj_version\n: version of special judge, used to determine whether to recompile special judge\n\n\nspj_compile_config\n: refer to \nclient/Python/languages.py\n, do not need to modify generally\n\n\ntest_case_id\n\n\n\n\nResponse\n\n\nsuccess\n\n\n\n\n\nWhen compilation is failed, following data will be returned\n\n\n{\n    \nerr\n: \nSPJCompileError\n, \n    \ndata\n: \nerror resson\n\n}\n\n\n\n\nJudge (for Special Judge)\n\n\nSpecial Judge must be compiled before, refer to the above API\n\n\n\n\nURL \n/judge\n\n\n\n\nArgs\n\n\n\n\nsrc\n\n\nlanguage_config\n\n\nmax_cpu_time\n\n\nmax_memory\n\n\ntest_case_id\n\n\nspj_version\n\n\nspj_config\n, refer to \nclient/Python/languages.py\n, do not need to modify generally\n\n\n\n\nResponse\n\n\n[\n    {\n        \ncpu_time\n: 1,\n        \nresult\n: 0,\n        \nmemory\n: 12836864,\n        \nreal_time\n: 2,\n        \nsignal\n: 0,\n        \nerror\n: 0,\n        \nexit_code\n: 0,\n        \noutput_md5\n: null,\n        \ntest_case\n: 1\n    },\n    {\n        \ncpu_time\n: 1,\n        \nresult\n: 0,\n        \nmemory\n: 12849152,\n        \nreal_time\n: 1,\n        \nsignal\n: 0,\n        \nerror\n: 0,\n        \nexit_code\n: 0,\n        \noutput_md5\n: null,\n        \ntest_case\n: 2\n    }\n]\n\n\n\n\nWhen compilation is failed, following data will be returned\n\n\n{\n    \nerr\n: \nCompileError\n, \n    \ndata\n: \nerror reason\n\n}\n\n\n\n\nIf SPJ process crashed, \nresult = SYSTEM_ERROR\n and \nERROR = SPJ_ERROR\n is returned.\n\n\nresult\n field return value\n\n\n\n\nWRONG_ANSWER = -1 (this means the process exited normally, but the answer is wrong)\n\n\nSUCCESS = 0 (this means the answer is accepted)\n\n\nCPU_TIME_LIMIT_EXCEEDED = 1 \n\n\nREAL_TIME_LIMIT_EXCEEDED = 2\n\n\nMEMORY_LIMIT_EXCEEDED = 3\n\n\nRUNTIME_ERROR = 4\n\n\nSYSTEM_ERROR = 5\n\n\n\n\nerror\n field return value\n\n\n\n\nSUCCESS = 0\n\n\nINVALID_CONFIG = -1\n\n\nCLONE_FAILED = -2\n\n\nPTHREAD_FAILED = -3\n\n\nWAIT_FAILED = -4\n\n\nROOT_REQUIRED = -5\n\n\nLOAD_SECCOMP_FAILED = -6\n\n\nSETRLIMIT_FAILED = -7\n\n\nDUP2_FAILED = -8\n\n\nSETUID_FAILED = -9\n\n\nEXECVE_FAILED = -10\n\n\nSPJ_ERROR = -11", 
    +            "text": "JudgeServer API\n\n\nPreparement\n\n\n\n\nX-Judge-Server-Token\n HTTP header is required for all requests, the value of this header is \nsha256(token)\n.\n\n\nType of request and response data is JSON.\n\n\nRequest method is \nPOST\n.\n\n\n\n\nFor all responses, \nerr\n and \ndata\n fields will be returned. \n\n\n\n\nIf the request is processed successfully, \nerr\n field will be \nnull\n, \ndata\n field will be the data returned. \n\n\nIf error occured while processing request, \nerr\n field will be error code, \ndata\n field will be the reason.\n\n\n\n\n\n\n\n\nGet system info\n\n\n\n\nURL \n/ping\n\n\n\n\nArgs\n\n\n\n\nDo not need args\n\n\n\n\nResponse\n\n\n{\n    \njudger_version\n: \n2.0.1\n,\n    \nhostname\n: \nd3765528134e\n,\n    // number of cpu cores, this value will determine the number of concurrent tasks\n    \ncpu_core\n: 1,\n    // usage of cpu and memory\n    \ncpu\n: 4.1,\n    \nmemory\n: 24.5,\n    \naction\n: \npong\n\n}\n\n\n\n\nJudge (not for Special Judge)\n\n\n\n\nURL \n/judge\n\n\n\n\nArgs\n\n\n\n\nsrc\n: source code\n\n\nlanguage_config\n: refer to \nclient/Python/languages.py\n, do not need to modify generally\n\n\nmax_cpu_time\n: unit is ms\n\n\nmax_memory\n: unit is byte\n\n\ntest_case_id\n: used to get the test_case directory\n\n\n\n\nResponse\n\n\n[\n    // each object/dict is a test case file running result\n    {\n        \ncpu_time\n: 1,\n        // refer to the end of this document\n        \nresult\n: 0,\n        \nmemory\n: 12836864,\n        \nreal_time\n: 2,\n        \nsignal\n: 0,\n        \nerror\n: 0,\n        // refer to the end of this document\n        \nexit_code\n: 0,\n        \noutput_md5\n: \neccbc87e4b5ce2fe28308fd9f2a7baf3\n,\n        // test case file id\n        \ntest_case\n: 1\n    },\n    {\n        \ncpu_time\n: 1,\n        \nresult\n: 0,\n        \nmemory\n: 12849152,\n        \nreal_time\n: 1,\n        \nsignal\n: 0,\n        \nerror\n: 0,\n        \nexit_code\n: 0,\n        \noutput_md5\n: \neccbc87e4b5ce2fe28308fd9f2a7baf3\n,\n        \ntest_case\n: 2\n    }\n]\n\n\n\n\nWhen compilation is failed, following data will be returned\n\n\n{\n    \nerr\n: \nCompileError\n, \n    \ndata\n: \nerror resson\n\n}\n\n\n\n\nCompile Special Judge\n\n\n\n\nURL \n/compile_spj\n\n\n\n\nArgs\n\n\n\n\nsrc\n: special judge soure code\n\n\nspj_version\n: version of special judge, used to determine whether to recompile special judge\n\n\nspj_compile_config\n: refer to \nclient/Python/languages.py\n, do not need to modify generally\n\n\ntest_case_id\n\n\n\n\nResponse\n\n\nsuccess\n\n\n\n\n\nWhen compilation is failed, following data will be returned\n\n\n{\n    \nerr\n: \nSPJCompileError\n, \n    \ndata\n: \nerror resson\n\n}\n\n\n\n\nJudge (for Special Judge)\n\n\n\n\nURL \n/judge\n\n\n\n\nArgs\n\n\n\n\nsrc\n\n\nlanguage_config\n\n\nmax_cpu_time\n\n\nmax_memory\n\n\ntest_case_id\n\n\nspj_version\n\n\nspj_config\n, refer to \nclient/Python/languages.py\n, do not need to modify generally\n\n\nspj_compile_config\n: refer to \nclient/Python/languages.py\n, do not need to modify generally\n\n\nspj_src\n\n\n\n\nResponse\n\n\n[\n    {\n        \ncpu_time\n: 1,\n        \nresult\n: 0,\n        \nmemory\n: 12836864,\n        \nreal_time\n: 2,\n        \nsignal\n: 0,\n        \nerror\n: 0,\n        \nexit_code\n: 0,\n        \noutput_md5\n: null,\n        \ntest_case\n: 1\n    },\n    {\n        \ncpu_time\n: 1,\n        \nresult\n: 0,\n        \nmemory\n: 12849152,\n        \nreal_time\n: 1,\n        \nsignal\n: 0,\n        \nerror\n: 0,\n        \nexit_code\n: 0,\n        \noutput_md5\n: null,\n        \ntest_case\n: 2\n    }\n]\n\n\n\n\nWhen compilation is failed, following data will be returned\n\n\n{\n    \nerr\n: \nCompileError\n, \n    \ndata\n: \nerror reason\n\n}\n\n\n\n\nIf SPJ process crashed, \nresult = SYSTEM_ERROR\n and \nERROR = SPJ_ERROR\n is returned.\n\n\nresult\n field return value\n\n\n\n\nWRONG_ANSWER = -1 (this means the process exited normally, but the answer is wrong)\n\n\nSUCCESS = 0 (this means the answer is accepted)\n\n\nCPU_TIME_LIMIT_EXCEEDED = 1 \n\n\nREAL_TIME_LIMIT_EXCEEDED = 2\n\n\nMEMORY_LIMIT_EXCEEDED = 3\n\n\nRUNTIME_ERROR = 4\n\n\nSYSTEM_ERROR = 5\n\n\n\n\nerror\n field return value\n\n\n\n\nSUCCESS = 0\n\n\nINVALID_CONFIG = -1\n\n\nCLONE_FAILED = -2\n\n\nPTHREAD_FAILED = -3\n\n\nWAIT_FAILED = -4\n\n\nROOT_REQUIRED = -5\n\n\nLOAD_SECCOMP_FAILED = -6\n\n\nSETRLIMIT_FAILED = -7\n\n\nDUP2_FAILED = -8\n\n\nSETUID_FAILED = -9\n\n\nEXECVE_FAILED = -10\n\n\nSPJ_ERROR = -11", 
                 "title": "API"
             }, 
             {
    @@ -157,12 +157,12 @@
             }, 
             {
                 "location": "/JudgeServer/English/#judge-for-special-judge", 
    -            "text": "Special Judge must be compiled before, refer to the above API   URL  /judge", 
    +            "text": "URL  /judge", 
                 "title": "Judge (for Special Judge)"
             }, 
             {
                 "location": "/JudgeServer/English/#args_3", 
    -            "text": "src  language_config  max_cpu_time  max_memory  test_case_id  spj_version  spj_config , refer to  client/Python/languages.py , do not need to modify generally", 
    +            "text": "src  language_config  max_cpu_time  max_memory  test_case_id  spj_version  spj_config , refer to  client/Python/languages.py , do not need to modify generally  spj_compile_config : refer to  client/Python/languages.py , do not need to modify generally  spj_src", 
                 "title": "Args"
             }, 
             {
    @@ -199,96 +199,6 @@
                 "location": "/JudgeServer/English/deploy/#heartbeat-request", 
                 "text": "Method  POST  X-JUDGE-SERVER-TOKEN :  sha256(token)  Content-Type :  application/json   Request data   {\n     judger_version :  2.0.1 ,\n     hostname :  c45acd557074 ,\n     cpu_core : 1,\n     memory : 30.3,\n     action :  heartbeat ,\n     cpu : 0,\n     service_url : null or  http://1.2.3.4:8005 \n}  If everything is OK, you should give a JSON response as follows  {\n     data :  success ,\n     err : null\n}", 
                 "title": "Heartbeat request"
    -        }, 
    -        {
    -            "location": "/JudgeServer/Chinese/", 
    -            "text": "JudgeServer API\n\n\n\u6240\u6709\u7684\u8bf7\u6c42\uff0c\u8bf7\u5728HTTP\u5934\u4e2d\u653e\u5165\nX-Judge-Server-Token\n\u5b57\u6bb5\uff0c\u503c\u4e3atoken\u7684sha256\u7ed3\u679c\u3002\n\n\n\u6240\u6709\u7684\u54cd\u5e94\u90fd\u662f\u4e24\u4e2a\u5b57\u6bb5\uff0c\nerr\n\u548c\ndata\n\uff0c\u6b63\u5e38\u60c5\u51b5\u4e0b\nerr\n\u4e3a\nnull\n\uff0c\ndata\n\u4e3a\u54cd\u5e94\u7684\u6570\u636e\u3002\u51fa\u73b0\u9519\u8bef\u7684\u60c5\u51b5\u4e0b\uff0c\nerr\n\u662f\u9519\u8bef\u4ee3\u7801\uff0c\ndata\n\u4e3a\u9519\u8bef\u8be6\u60c5\u3002\u4e0b\u9762\u6240\u6709\u7684\u54cd\u5e94\u90fd\u662f\ndata\n\u7684\u5185\u5bb9\u3002\n\n\n\u83b7\u53d6\u7cfb\u7edf\u72b6\u6001\n\n\n\n\nURL \n/ping\n\n\nMethod \nPOST\n\n\n\n\n\u53c2\u6570\n\n\n\n\n\u65e0\u53c2\u6570\n\n\n\n\n\u54cd\u5e94\n\n\n{\n    \njudger_version\n: \n2.0.1\n,\n    \nhostname\n: \nd3765528134e\n,\n    // cpu\u6838\u6570\uff0c\u8fd9\u4e2a\u6570\u5b57\u4e5f\u786e\u5b9a\u4e86\u53ef\u4ee5\u5e76\u53d1\u8fd0\u884c\u7684\u5224\u9898\u4efb\u52a1\u6570\u91cf\n    \ncpu_core\n: 1,\n    // cpu\u548c\u5185\u5b58\u4f7f\u7528\u7387\uff0c\u767e\u5206\u6bd4\n    \ncpu\n: 4.1,\n    \nmemory\n: 24.5,\n    \naction\n: \npong\n\n}\n\n\n\n\n\u5224\u9898\uff08\u975eSpecial Judge)\n\n\n\n\nURL \n/judge\n\n\nMethod \nPOST\n\n\n\n\n\u53c2\u6570\n\n\n\n\nsrc\uff0c\u6e90\u7801\n\n\nlanguage_config\uff0c\u53c2\u8003\nlanguages.py\n\u4e2d\uff0c\u4e00\u822c\u4e0d\u9700\u8981\u4fee\u6539\n\n\nmax_cpu_time\uff0c\u5355\u4f4d\u6beb\u79d2\n\n\nmax_memory\uff0c\u6700\u5927\u5185\u5b58\uff0c\u5355\u4f4d\u5b57\u8282\n\n\ntest_case_id\uff0c\u7528\u4e8e\u627e\u5230\u5b58\u653e\u6709\u6d4b\u8bd5\u7528\u4f8b\u7684\u6587\u4ef6\u5939\n\n\n\n\n\u54cd\u5e94\n\n\n[\n    // \u6bcf\u7ec4\u90fd\u662f\u4e00\u4e2a\u6d4b\u8bd5\u7528\u4f8b\uff0c\u901a\u8fc7test_case\u5b57\u6bb5\u533a\u5206\n    {\n        // cpu\u65f6\u95f4\uff0c\u6beb\u79d2\n        \ncpu_time\n: 1,\n        // \u89c1\u672c\u6587\u6863\u6700\u540e\u90e8\u5206\n        \nresult\n: 0,\n        // \u5185\u5b58\uff0c\u5b57\u8282\n        \nmemory\n: 12836864,\n        // \u5b9e\u9645\u65f6\u95f4\uff0c\u6beb\u79d2\n        \nreal_time\n: 2,\n        \nsignal\n: 0,\n        \nerror\n: 0,\n        \nexit_code\n: 0,\n        \noutput_md5\n: \neccbc87e4b5ce2fe28308fd9f2a7baf3\n,\n        // \u6d4b\u8bd5\u7528\u4f8bid\n        \ntest_case\n: 1\n    },\n    {\n        \ncpu_time\n: 1,\n        \nresult\n: 0,\n        \nmemory\n: 12849152,\n        \nreal_time\n: 1,\n        \nsignal\n: 0,\n        \nerror\n: 0,\n        \nexit_code\n: 0,\n        \noutput_md5\n: \neccbc87e4b5ce2fe28308fd9f2a7baf3\n,\n        \ntest_case\n: 2\n    }\n]\n\n\n\n\n\u5728\u7f16\u8bd1\u9519\u8bef\u7684\u65f6\u5019\uff0c\u8fd4\u56de\n\n\n{\n    \nerr\n: \nCompileError\n, \n    \ndata\n: \n\u7f16\u8bd1\u5668\u7684\u9519\u8bef\u8f93\u51fa\n\n}\n\n\n\n\n\u7f16\u8bd1Special Judge\n\n\n\n\nURL \n/compile_spj\n\n\nMethod \nPOST\n\n\n\n\n\u53c2\u6570\n\n\n\n\nsrc\uff0c\u6e90\u7801\n\n\nspj_version\uff0cSpecial Judge\u7684\u7248\u672c\uff0c\u7528\u4e8e\u51b3\u5b9a\u662f\u5426\u8981\u91cd\u65b0\u7f16\u8bd1\u4e8c\u8fdb\u5236\n\n\nspj_compile_config\uff0c\u53c2\u8003\nlanguages.py\n\uff0c\u4e00\u822c\u4e0d\u9700\u8981\u4fee\u6539\n\n\ntest_case_id\n\n\n\n\n\u54cd\u5e94\n\n\nsuccess\n\n\n\n\n\n\u5728\u7f16\u8bd1\u9519\u8bef\u7684\u65f6\u5019\uff0c\u8fd4\u56de\n\n\n{\n    \nerr\n: \nSPJCompileError\n, \n    \ndata\n: \n\u7f16\u8bd1\u5668\u7684\u9519\u8bef\u8f93\u51fa\n\n}\n\n\n\n\n\u5224\u9898\uff08Special Judge)\n\n\n\u6ce8\u610f\uff0c\u5fc5\u987b\u63d0\u524d\u7f16\u8bd1Special Judge\uff0c\u89c1\u4e0a\u4e00\u4e2aAPI\n\n\n\n\nURL \n/judge\n\n\nMethod \nPOST\n\n\n\n\n\u53c2\u6570\n\n\n\n\nsrc\n\n\nlanguage_config\n\n\nmax_cpu_time\n\n\nmax_memory\n\n\ntest_case_id\n\n\nspj_version\n\n\nspj_config\uff0c\u53c2\u8003\nlanguages.py\n\uff0c\u4e00\u822c\u4e0d\u9700\u8981\u4fee\u6539\n\n\n\n\n\u54cd\u5e94\n\n\n[\n    // \u6bcf\u7ec4\u90fd\u662f\u4e00\u4e2a\u6d4b\u8bd5\u7528\u4f8b\uff0c\u901a\u8fc7test_case\u5b57\u6bb5\u533a\u5206\n    {\n        // cpu\u65f6\u95f4\uff0c\u6beb\u79d2\n        \ncpu_time\n: 1,\n        // \u89c1\u672c\u6587\u6863\u6700\u540e\u90e8\u5206\n        \nresult\n: 0,\n        // \u5185\u5b58\uff0c\u5b57\u8282\n        \nmemory\n: 12836864,\n        // \u5b9e\u9645\u65f6\u95f4\uff0c\u6beb\u79d2\n        \nreal_time\n: 2,\n        \nsignal\n: 0,\n        \nerror\n: 0,\n        \nexit_code\n: 0,\n        \noutput_md5\n: null,\n        // \u6d4b\u8bd5\u7528\u4f8bid\n        \ntest_case\n: 1\n    },\n    {\n        \ncpu_time\n: 1,\n        \nresult\n: 0,\n        \nmemory\n: 12849152,\n        \nreal_time\n: 1,\n        \nsignal\n: 0,\n        \nerror\n: 0,\n        \nexit_code\n: 0,\n        \noutput_md5\n: null,\n        \ntest_case\n: 2\n    }\n]\n\n\n\n\n\u5728\u7f16\u8bd1\u9519\u8bef\u7684\u65f6\u5019\uff0c\u8fd4\u56de\n\n\n{\n    \nerr\n: \nCompileError\n, \n    \ndata\n: \n\u7f16\u8bd1\u5668\u7684\u9519\u8bef\u8f93\u51fa\n\n}\n\n\n\n\nresult \u5b57\u6bb5\u542b\u4e49\n\n\n\n\nWRONG_ANSWER = -1\n\n\nAEECPTED = 0\n\n\nCPU_TIME_LIMITED = 1\n\n\nREAL_TIME_LIMIT_EXCEEDED = 2\n\n\nMEMORY_LIMIT_EXCEEDED = 3\n\n\nRUNTIME_ERROR = 4\n\n\nSYSTEM_ERROR = 5", 
    -            "title": "API"
    -        }, 
    -        {
    -            "location": "/JudgeServer/Chinese/#judgeserver-api", 
    -            "text": "\u6240\u6709\u7684\u8bf7\u6c42\uff0c\u8bf7\u5728HTTP\u5934\u4e2d\u653e\u5165 X-Judge-Server-Token \u5b57\u6bb5\uff0c\u503c\u4e3atoken\u7684sha256\u7ed3\u679c\u3002  \u6240\u6709\u7684\u54cd\u5e94\u90fd\u662f\u4e24\u4e2a\u5b57\u6bb5\uff0c err \u548c data \uff0c\u6b63\u5e38\u60c5\u51b5\u4e0b err \u4e3a null \uff0c data \u4e3a\u54cd\u5e94\u7684\u6570\u636e\u3002\u51fa\u73b0\u9519\u8bef\u7684\u60c5\u51b5\u4e0b\uff0c err \u662f\u9519\u8bef\u4ee3\u7801\uff0c data \u4e3a\u9519\u8bef\u8be6\u60c5\u3002\u4e0b\u9762\u6240\u6709\u7684\u54cd\u5e94\u90fd\u662f data \u7684\u5185\u5bb9\u3002", 
    -            "title": "JudgeServer API"
    -        }, 
    -        {
    -            "location": "/JudgeServer/Chinese/#_1", 
    -            "text": "URL  /ping  Method  POST", 
    -            "title": "\u83b7\u53d6\u7cfb\u7edf\u72b6\u6001"
    -        }, 
    -        {
    -            "location": "/JudgeServer/Chinese/#_2", 
    -            "text": "\u65e0\u53c2\u6570", 
    -            "title": "\u53c2\u6570"
    -        }, 
    -        {
    -            "location": "/JudgeServer/Chinese/#_3", 
    -            "text": "{\n     judger_version :  2.0.1 ,\n     hostname :  d3765528134e ,\n    // cpu\u6838\u6570\uff0c\u8fd9\u4e2a\u6570\u5b57\u4e5f\u786e\u5b9a\u4e86\u53ef\u4ee5\u5e76\u53d1\u8fd0\u884c\u7684\u5224\u9898\u4efb\u52a1\u6570\u91cf\n     cpu_core : 1,\n    // cpu\u548c\u5185\u5b58\u4f7f\u7528\u7387\uff0c\u767e\u5206\u6bd4\n     cpu : 4.1,\n     memory : 24.5,\n     action :  pong \n}", 
    -            "title": "\u54cd\u5e94"
    -        }, 
    -        {
    -            "location": "/JudgeServer/Chinese/#special-judge", 
    -            "text": "URL  /judge  Method  POST", 
    -            "title": "\u5224\u9898\uff08\u975eSpecial Judge)"
    -        }, 
    -        {
    -            "location": "/JudgeServer/Chinese/#_4", 
    -            "text": "src\uff0c\u6e90\u7801  language_config\uff0c\u53c2\u8003 languages.py \u4e2d\uff0c\u4e00\u822c\u4e0d\u9700\u8981\u4fee\u6539  max_cpu_time\uff0c\u5355\u4f4d\u6beb\u79d2  max_memory\uff0c\u6700\u5927\u5185\u5b58\uff0c\u5355\u4f4d\u5b57\u8282  test_case_id\uff0c\u7528\u4e8e\u627e\u5230\u5b58\u653e\u6709\u6d4b\u8bd5\u7528\u4f8b\u7684\u6587\u4ef6\u5939", 
    -            "title": "\u53c2\u6570"
    -        }, 
    -        {
    -            "location": "/JudgeServer/Chinese/#_5", 
    -            "text": "[\n    // \u6bcf\u7ec4\u90fd\u662f\u4e00\u4e2a\u6d4b\u8bd5\u7528\u4f8b\uff0c\u901a\u8fc7test_case\u5b57\u6bb5\u533a\u5206\n    {\n        // cpu\u65f6\u95f4\uff0c\u6beb\u79d2\n         cpu_time : 1,\n        // \u89c1\u672c\u6587\u6863\u6700\u540e\u90e8\u5206\n         result : 0,\n        // \u5185\u5b58\uff0c\u5b57\u8282\n         memory : 12836864,\n        // \u5b9e\u9645\u65f6\u95f4\uff0c\u6beb\u79d2\n         real_time : 2,\n         signal : 0,\n         error : 0,\n         exit_code : 0,\n         output_md5 :  eccbc87e4b5ce2fe28308fd9f2a7baf3 ,\n        // \u6d4b\u8bd5\u7528\u4f8bid\n         test_case : 1\n    },\n    {\n         cpu_time : 1,\n         result : 0,\n         memory : 12849152,\n         real_time : 1,\n         signal : 0,\n         error : 0,\n         exit_code : 0,\n         output_md5 :  eccbc87e4b5ce2fe28308fd9f2a7baf3 ,\n         test_case : 2\n    }\n]  \u5728\u7f16\u8bd1\u9519\u8bef\u7684\u65f6\u5019\uff0c\u8fd4\u56de  {\n     err :  CompileError , \n     data :  \u7f16\u8bd1\u5668\u7684\u9519\u8bef\u8f93\u51fa \n}", 
    -            "title": "\u54cd\u5e94"
    -        }, 
    -        {
    -            "location": "/JudgeServer/Chinese/#special-judge_1", 
    -            "text": "URL  /compile_spj  Method  POST", 
    -            "title": "\u7f16\u8bd1Special Judge"
    -        }, 
    -        {
    -            "location": "/JudgeServer/Chinese/#_6", 
    -            "text": "src\uff0c\u6e90\u7801  spj_version\uff0cSpecial Judge\u7684\u7248\u672c\uff0c\u7528\u4e8e\u51b3\u5b9a\u662f\u5426\u8981\u91cd\u65b0\u7f16\u8bd1\u4e8c\u8fdb\u5236  spj_compile_config\uff0c\u53c2\u8003 languages.py \uff0c\u4e00\u822c\u4e0d\u9700\u8981\u4fee\u6539  test_case_id", 
    -            "title": "\u53c2\u6570"
    -        }, 
    -        {
    -            "location": "/JudgeServer/Chinese/#_7", 
    -            "text": "success   \u5728\u7f16\u8bd1\u9519\u8bef\u7684\u65f6\u5019\uff0c\u8fd4\u56de  {\n     err :  SPJCompileError , \n     data :  \u7f16\u8bd1\u5668\u7684\u9519\u8bef\u8f93\u51fa \n}", 
    -            "title": "\u54cd\u5e94"
    -        }, 
    -        {
    -            "location": "/JudgeServer/Chinese/#special-judge_2", 
    -            "text": "\u6ce8\u610f\uff0c\u5fc5\u987b\u63d0\u524d\u7f16\u8bd1Special Judge\uff0c\u89c1\u4e0a\u4e00\u4e2aAPI   URL  /judge  Method  POST", 
    -            "title": "\u5224\u9898\uff08Special Judge)"
    -        }, 
    -        {
    -            "location": "/JudgeServer/Chinese/#_8", 
    -            "text": "src  language_config  max_cpu_time  max_memory  test_case_id  spj_version  spj_config\uff0c\u53c2\u8003 languages.py \uff0c\u4e00\u822c\u4e0d\u9700\u8981\u4fee\u6539", 
    -            "title": "\u53c2\u6570"
    -        }, 
    -        {
    -            "location": "/JudgeServer/Chinese/#_9", 
    -            "text": "[\n    // \u6bcf\u7ec4\u90fd\u662f\u4e00\u4e2a\u6d4b\u8bd5\u7528\u4f8b\uff0c\u901a\u8fc7test_case\u5b57\u6bb5\u533a\u5206\n    {\n        // cpu\u65f6\u95f4\uff0c\u6beb\u79d2\n         cpu_time : 1,\n        // \u89c1\u672c\u6587\u6863\u6700\u540e\u90e8\u5206\n         result : 0,\n        // \u5185\u5b58\uff0c\u5b57\u8282\n         memory : 12836864,\n        // \u5b9e\u9645\u65f6\u95f4\uff0c\u6beb\u79d2\n         real_time : 2,\n         signal : 0,\n         error : 0,\n         exit_code : 0,\n         output_md5 : null,\n        // \u6d4b\u8bd5\u7528\u4f8bid\n         test_case : 1\n    },\n    {\n         cpu_time : 1,\n         result : 0,\n         memory : 12849152,\n         real_time : 1,\n         signal : 0,\n         error : 0,\n         exit_code : 0,\n         output_md5 : null,\n         test_case : 2\n    }\n]  \u5728\u7f16\u8bd1\u9519\u8bef\u7684\u65f6\u5019\uff0c\u8fd4\u56de  {\n     err :  CompileError , \n     data :  \u7f16\u8bd1\u5668\u7684\u9519\u8bef\u8f93\u51fa \n}", 
    -            "title": "\u54cd\u5e94"
    -        }, 
    -        {
    -            "location": "/JudgeServer/Chinese/#result", 
    -            "text": "WRONG_ANSWER = -1  AEECPTED = 0  CPU_TIME_LIMITED = 1  REAL_TIME_LIMIT_EXCEEDED = 2  MEMORY_LIMIT_EXCEEDED = 3  RUNTIME_ERROR = 4  SYSTEM_ERROR = 5", 
    -            "title": "result \u5b57\u6bb5\u542b\u4e49"
    -        }, 
    -        {
    -            "location": "/JudgeServer/Chinese/deploy/", 
    -            "text": "\u540c\u4e3b\u673alink\u573a\u666f\n\n\noj_web_server\u548cjudge_server\u5728\u540c\u4e00\u53f0\u670d\u52a1\u5668\u4e0a\uff0c\u800c\u4e14judge_server\u4e2dlink oj_web_server\u3002\n\n\noj_web_server\u9700\u8981\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\njudger_token\n\uff0c\u8fd9\u6837\njudge_server\n\u5c31\u53ef\u4ee5\u5728\nOJ_WEB_SERVER_ENV_judger_token\n\u73af\u5883\u53d8\u91cf\u4e2d\u5f97\u5230token\uff0c\u5728\nOJ_WEB_SERVER_PORT_8080_TCP_ADDR\n\u5f97\u5230ip\uff0c\u5728\nOJ_WEB_SERVER_PORT_8080_TCP_PORT\n\u5f97\u5230\u7aef\u53e3\uff0c\u4ece\u800c\u6bcf5\u79d2\u5411\u8be5ip\u53d1\u9001\u5fc3\u8df3\u5305\uff0c\u5728HTTP\u5934\u4e2d\u643a\u5e26\u4e86\nX-JUDGE-SERVER-TOKEN\n\uff0c\u503c\u4e3atoken\u7684sha256\u3002\n\n\n\u8de8\u4e3b\u673a\u573a\u666f\n\n\n\u5982\u679c\u4e0d\u5728\u540c\u4e00\u53f0\u670d\u52a1\u5668\u4e0a\uff0c\u9700\u8981\u624b\u52a8\u8bbe\u7f6ejudge_server\u7684\u4e0b\u9762\u56db\u4e2a\u73af\u5883\u53d8\u91cf\n\n\n\n\nservice_discovery_url\n\n\njudger_token\n\n\n\n\n\u901a\u8fc7\u4ee5\u4e0a\u4e24\u4e2a\u73af\u5883\u53d8\u91cf\u8fd9\u6837\u5c31\u53ef\u4ee5\u5411\u8be5url\u53d1\u9001\u5fc3\u8df3\u5305\u4e86\n\n\n\n\nservice_host\n\n\nservice_port\n\n\n\n\n\u56e0\u4e3a\u8de8\u4e3b\u673a\u7684\u60c5\u51b5\u4e0b\uff0coj_web_server\u662f\u65e0\u6cd5\u5f97\u77e5judge_server\u7684ip\u548c\u7aef\u53e3\u7684\uff0c\u9700\u8981\u4e3b\u52a8\u7684\u8bbe\u7f6e\uff0c\u7136\u540e\u5728\u5fc3\u8df3\u5305\u4e2d\u4f1a\u5e26\u4e0a\u8fd9\u4e24\u4e2a\u4fe1\u606f\uff0c\u8ba9oj_web_server\u80fd\u591f\u4e3b\u52a8\u8bbf\u95ee\u3002\u6b64\u65f6judge_server\u53ea\u80fd\u4f7f\u7528\u56fa\u5b9a\u7aef\u53e3\u6620\u5c04\u3002", 
    -            "title": "\u90e8\u7f72"
    -        }, 
    -        {
    -            "location": "/JudgeServer/Chinese/deploy/#link", 
    -            "text": "oj_web_server\u548cjudge_server\u5728\u540c\u4e00\u53f0\u670d\u52a1\u5668\u4e0a\uff0c\u800c\u4e14judge_server\u4e2dlink oj_web_server\u3002  oj_web_server\u9700\u8981\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf judger_token \uff0c\u8fd9\u6837 judge_server \u5c31\u53ef\u4ee5\u5728 OJ_WEB_SERVER_ENV_judger_token \u73af\u5883\u53d8\u91cf\u4e2d\u5f97\u5230token\uff0c\u5728 OJ_WEB_SERVER_PORT_8080_TCP_ADDR \u5f97\u5230ip\uff0c\u5728 OJ_WEB_SERVER_PORT_8080_TCP_PORT \u5f97\u5230\u7aef\u53e3\uff0c\u4ece\u800c\u6bcf5\u79d2\u5411\u8be5ip\u53d1\u9001\u5fc3\u8df3\u5305\uff0c\u5728HTTP\u5934\u4e2d\u643a\u5e26\u4e86 X-JUDGE-SERVER-TOKEN \uff0c\u503c\u4e3atoken\u7684sha256\u3002", 
    -            "title": "\u540c\u4e3b\u673alink\u573a\u666f"
    -        }, 
    -        {
    -            "location": "/JudgeServer/Chinese/deploy/#_1", 
    -            "text": "\u5982\u679c\u4e0d\u5728\u540c\u4e00\u53f0\u670d\u52a1\u5668\u4e0a\uff0c\u9700\u8981\u624b\u52a8\u8bbe\u7f6ejudge_server\u7684\u4e0b\u9762\u56db\u4e2a\u73af\u5883\u53d8\u91cf   service_discovery_url  judger_token   \u901a\u8fc7\u4ee5\u4e0a\u4e24\u4e2a\u73af\u5883\u53d8\u91cf\u8fd9\u6837\u5c31\u53ef\u4ee5\u5411\u8be5url\u53d1\u9001\u5fc3\u8df3\u5305\u4e86   service_host  service_port   \u56e0\u4e3a\u8de8\u4e3b\u673a\u7684\u60c5\u51b5\u4e0b\uff0coj_web_server\u662f\u65e0\u6cd5\u5f97\u77e5judge_server\u7684ip\u548c\u7aef\u53e3\u7684\uff0c\u9700\u8981\u4e3b\u52a8\u7684\u8bbe\u7f6e\uff0c\u7136\u540e\u5728\u5fc3\u8df3\u5305\u4e2d\u4f1a\u5e26\u4e0a\u8fd9\u4e24\u4e2a\u4fe1\u606f\uff0c\u8ba9oj_web_server\u80fd\u591f\u4e3b\u52a8\u8bbf\u95ee\u3002\u6b64\u65f6judge_server\u53ea\u80fd\u4f7f\u7528\u56fa\u5b9a\u7aef\u53e3\u6620\u5c04\u3002", 
    -            "title": "\u8de8\u4e3b\u673a\u573a\u666f"
             }
         ]
     }
    \ No newline at end of file
    diff --git a/docs/sitemap.xml b/docs/sitemap.xml
    index 7a73d04..be21e6e 100644
    --- a/docs/sitemap.xml
    +++ b/docs/sitemap.xml
    @@ -4,7 +4,7 @@
         
         
          None/
    -     2016-10-07
    +     2016-10-10
          daily
         
         
    @@ -13,7 +13,7 @@
             
         
          None/Judger/
    -     2016-10-07
    +     2016-10-10
          daily
         
             
    @@ -29,13 +29,7 @@
             
         
          None/JudgeServer/
    -     2016-10-07
    -     daily
    -    
    -        
    -    
    -     None
    -     
    +     2016-10-10
          daily
         
             
    diff --git a/src/JudgeServer/English/index.md b/src/JudgeServer/English/index.md
    index b4ca414..c8b7277 100644
    --- a/src/JudgeServer/English/index.md
    +++ b/src/JudgeServer/English/index.md
    @@ -115,8 +115,6 @@ When compilation is failed, following data will be returned
     
     # Judge (for Special Judge)
     
    -Special Judge must be compiled before, refer to the above API
    -
      - URL `/judge`
     
     ## Args
    @@ -128,6 +126,8 @@ Special Judge must be compiled before, refer to the above API
       - `test_case_id`
       - `spj_version`
       - `spj_config`, refer to `client/Python/languages.py`, do not need to modify generally
    +  - `spj_compile_config`: refer to `client/Python/languages.py`, do not need to modify generally
    +  - `spj_src`
     
     ## Response