1antoraSearch.initSearch(lunr, {"index":{"version":"2.3.9","fields":["title","name","text","component","keyword"],"fieldVectors":[["title/1-1",[0,47.776]],["name/1-1",[]],["text/1-1",[]],["component/1-1",[]],["keyword/1-1",[]],["title/1-2",[1,37.949,2,42.708]],["name/1-2",[]],["text/1-2",[]],["component/1-2",[]],["keyword/1-2",[]],["title/1-3",[3,44.901,4,63.334]],["name/1-3",[]],["text/1-3",[]],["component/1-3",[]],["keyword/1-3",[]],["title/1-4",[1,37.949,5,59.657]],["name/1-4",[]],["text/1-4",[]],["component/1-4",[]],["keyword/1-4",[]],["title/1",[1,46.114]],["name/1",[1,0.954]],["text/1",[1,6.432,4,4.433,6,3.856,7,2.337,8,5.828,9,3.143,10,5.831,11,2.504,12,4.824,13,4.433,14,4.176,15,3.335,16,2.854,17,4.824,18,5.2,19,4.87,20,2.945,21,4.824,22,4.824,23,4.824,24,3.984,25,4.824,26,3.739,27,3.83,28,3.702,29,8.536,30,4.824,31,3.984,32,3.593,33,5.911,34,2.719,35,3.266,36,2.322,37,3.702,38,3.984,39,4.306,40,3.412,41,4.458,42,5.684,43,3.202,44,4.824,45,6.679,46,4.433,47,3.037,48,3.143,49,6.197,50,2.181,51,3.566,52,4.433,53,4.433,54,4.215,55,3.984,56,4.824,57,3.039,58,4.824,59,4.176,60,4.176,61,4.824,62,2.902,63,4.824,64,3.984,65,4.824,66,3.412,67,3.335,68,3.984,69,2.495,70,4.433,71,5.911,72,7.159,73,4.824,74,3.088,75,2.266,76,5.684,77,3.037,78,5.063,79,4.824,80,2.119,81,2.322,82,4.176,83,3.037,84,4.433,85,3.83,86,4.846,87,3.047,88,3.702,89,2.197,90,4.176,91,2.471,92,3.83,93,5.374,94,3.984,95,4.433,96,5.494,97,3.984,98,4.433,99,4.824,100,7.159,101,2.181,102,4.824,103,2.545,104,2.627,105,4.824,106,4.824,107,7.159,108,4.664,109,3.202,110,2.382,111,2.303,112,2.657,113,2.061,114,3.83,115,3.497,116,4.176,117,3.088,118,4.433,119,2.657,120,2.361,121,4.824,122,3.335,123,3.984,124,4.176,125,2.197,126,2.104,127,3.593,128,2.341,129,3.984,130,4.433,131,4.824,132,3.83,133,3.335,134,4.824,135,4.824,136,4.824,137,4.433,138,2.149,139,4.433,140,4.824,141,4.824,142,2.902,143,4.824,144,2.902,145,3.143,146,2.823,147,4.433,148,2.571,149,2.104,150,4.583,151,3.984,152,3.497,153,2.99,154,2.752,155,4.176,156,4.433,157,4.824,158,4.824,159,4.824,160,3.984,161,4.824,162,2.862,163,3.037,164,2.048,165,2.902,166,2.571,167,2.823,168,4.433]],["component/1",[169,0.891]],["keyword/1",[]],["title/2-1",[11,24.104,170,31.383]],["name/2-1",[]],["text/2-1",[]],["component/2-1",[]],["keyword/2-1",[]],["title/2-2",[170,31.383,171,68.918]],["name/2-2",[]],["text/2-2",[]],["component/2-2",[]],["keyword/2-2",[]],["title/2-3",[170,31.383,172,52.89]],["name/2-3",[]],["text/2-3",[]],["component/2-3",[]],["keyword/2-3",[]],["title/2-4",[7,11.287,173,53.808,174,50.683]],["name/2-4",[]],["text/2-4",[]],["component/2-4",[]],["keyword/2-4",[]],["title/2",[7,13.285,175,42.064]],["name/2",[175,1.057]],["text/2",[1,3.79,3,1.786,6,5.694,7,2.073,8,1.584,10,1.461,11,2.677,16,1.093,18,1.509,19,1.564,28,1.417,35,1.856,36,2.203,40,3.237,41,1.432,57,2.502,66,1.939,75,1.287,87,3.521,88,2.104,89,1.248,110,4.543,111,3.948,112,3.79,128,1.33,152,1.987,154,2.611,165,1.649,166,1.461,170,3.486,173,2.519,174,3.962,176,6.235,177,1.446,178,1.626,179,2.176,180,3.962,181,2.203,182,2.982,183,2.519,184,1.856,185,1.939,186,7.035,187,7.655,188,4.373,189,4.046,190,3.07,191,6.321,192,2.741,193,2.519,194,7.161,195,2.519,196,2.741,197,2.741,198,2.295,199,2.28,200,1.726,201,1.649,202,1.726,203,2.025,204,2.741,205,5.549,206,1.527,207,1.477,208,3.318,209,2.741,210,1.819,211,1.404,212,2.741,213,2.176,214,2.741,215,2.519,216,1.649,217,1.258,218,1.673,219,4.207,220,3.634,221,2.882,222,2.741,223,1.493,224,1.699,225,2.519,226,2.741,227,2.373,228,2.679,229,3.88,230,2.741,231,1.939,232,2.176,233,1.432,234,2.26,235,2.882,236,1.726,237,1.319,238,2.041,239,5.684,240,3.318,241,3.885,242,8.274,243,5.684,244,5.416,245,4.207,246,2.373,247,9.865,248,6.884,249,3.634,250,5.591,251,9.01,252,7.602,253,7.602,254,6.884,255,7.965,256,7.161,257,7.161,258,5.6,259,3.653,260,4.679,261,4.578,262,1.584,263,5.894,264,7.061,265,3.959,266,4.578,267,3.88,268,2.519,269,2.176,270,5.416,271,5.894,272,4.867,273,2.041,274,2.741,275,2.519,276,4.207,277,2.741,278,2.373,279,4.89,280,4.99,281,2.741,282,6.326,283,2.519,284,5.894,285,8.456,286,2.263,287,5.894,288,5.894,289,2.741,290,5.894,291,2.519,292,2.519,293,2.55,294,4.578,295,5.894,296,2.741,297,3.962,298,4.578,299,1.987,300,2.519,301,5.894,302,4.578,303,4.207,304,1.895,305,4.207,306,2.741,307,2.741,308,3.409,309,2.741,310,1.626,311,2.741,312,5.894,313,6.884,314,2.741,315,2.741,316,2.741,317,2.741,318,2.741,319,2.373,320,2.741,321,4.207,322,2.741,323,2.519,324,4.207,325,2.519,326,4.578,327,3.962,328,2.741,329,3.318,330,4.207,331,2.373,332,2.741,333,2.741,334,1.33,335,1.509,336,2.373,337,2.373,338,2.519,339,1.895,340,2.741,341,2.519,342,2.741,343,1.755,344,0.803,345,1.298,346,1.604,347,2.741,348,2.519,349,2.741,350,1.545,351,3.78,352,1.856,353,2.741,354,2.176,355,1.353,356,2.741,357,2.176,358,2.741,359,1.493,360,2.741,361,1.545,362,1.786]],["component/2",[169,0.891]],["keyword/2",[]],["title/3-1",[41,30.578,363,36.864,364,26.271]],["name/3-1",[]],["text/3-1",[]],["component/3-1",[]],["keyword/3-1",[]],["title/3-2",[7,11.287,363,36.864,364,26.271]],["name/3-2",[]],["text/3-2",[]],["component/3-2",[]],["keyword/3-2",[]],["title/3",[7,13.285,364,30.922]],["name/3",[364,0.777]],["text/3",[6,1.01,7,1.397,8,1.908,10,1.76,18,1.032,35,1.269,39,1.128,40,1.326,41,4.417,66,2.336,93,2.079,126,0.817,128,1.603,152,1.359,154,1.069,162,1.112,166,0.999,170,1.504,193,3.035,195,3.035,203,3.408,227,8.046,228,1.933,229,1.861,239,5.984,241,2.079,265,1.708,268,8.542,270,6.168,275,3.035,278,1.623,283,6.659,293,4.036,299,4.865,300,1.723,305,5.591,310,3.609,339,1.296,363,3.359,364,2.73,365,1.623,366,1.875,367,1.908,368,2.743,369,1.097,370,1.128,371,0.918,372,1.723,373,1.875,374,1.269,375,1.396,376,1.269,377,1.326,378,1.623,379,1.359,380,1.723,381,1.723,382,1.083,383,1.439,384,1.623,385,1.548,386,0.918,387,1.875,388,1.162,389,0.806,390,1.488,391,1.056,392,1.723,393,1.112,394,1.359,395,0.902,396,0.918,397,0.934,398,1.128,399,0.88,400,1.396,401,1.723,402,1.083,403,1.269,404,1.439,405,6.712,406,8.002,407,11.605,408,1.875,409,7.07,410,4.427,411,5.335,412,5.335,413,4.427,414,4.427,415,4.427,416,4.427,417,3.303,418,4.427,419,4.427,420,4.059,421,3.805,422,1.875,423,3.303,424,1.875,425,8.059,426,7.47,427,1.875,428,1.875,429,1.875,430,3.303,431,3.303,432,1.875,433,9.908,434,4.427,435,4.427,436,5.335,437,5.335,438,1.875,439,4.427,440,4.427,441,4.427,442,3.303,443,3.303,444,4.427,445,1.875,446,3.303,447,1.875,448,1.875,449,1.875,450,1.875,451,8.769,452,1.875,453,3.303,454,3.303,455,1.875,456,3.303,457,3.303,458,3.303,459,3.303,460,3.303,461,1.875,462,3.303,463,3.303,464,1.875,465,6.169,466,3.303,467,1.875,468,1.875,469,1.875,470,7.246,471,1.326,472,1.875,473,4.427,474,1.875,475,1.875,476,1.875,477,1.875,478,1.875,479,1.875,480,1.875,481,1.875,482,1.875,483,3.303,484,4.427,485,7.706,486,7.082,487,1.875,488,1.723,489,1.875,490,1.875,491,4.427,492,1.875,493,1.723,494,1.875,495,1.875,496,1.875,497,1.875,498,3.303,499,1.875,500,1.875,501,1.723,502,3.303,503,1.875,504,1.875,505,1.875,506,1.875,507,4.427,508,4.427,509,1.875,510,3.303,511,1.875,512,1.875,513,1.875,514,1.875,515,1.875,516,6.084,517,6.084,518,6.084,519,1.875,520,6.084,521,6.084,522,1.875,523,6.712,524,1.875,525,3.303,526,1.875,527,1.875,528,1.875,529,1.875,530,1.875,531,1.875,532,1.875,533,1.875,534,1.875,535,3.035,536,1.875,537,3.303,538,3.303,539,3.303,540,1.875,541,3.303,542,3.303,543,1.875,544,1.875,545,6.712,546,1.875,547,4.427,548,4.427,549,4.427,550,4.427,551,1.875,552,3.303,553,3.303,554,1.548,555,1.723,556,9.295,557,1.875,558,1.875,559,1.875,560,1.875,561,1.875,562,1.875,563,1.875,564,8.107,565,5.329,566,1.875,567,3.303,568,5.335,569,5.335,570,3.303,571,3.303,572,3.303,573,1.875,574,1.875,575,4.427,576,4.068,577,4.427,578,4.427,579,1.875,580,1.875,581,3.303,582,6.084,583,1.875,584,1.875,585,1.723,586,1.875,587,1.875,588,3.303,589,1.875,590,1.875,591,1.875,592,1.875,593,1.875,594,1.875,595,1.875,596,1.875,597,1.875,598,1.875,599,1.875,600,1.875,601,10.631,602,1.875,603,1.875,604,1.875,605,1.439,606,1.875,607,1.875,608,1.875,609,1.875,610,6.712,611,6.712,612,1.875,613,1.875,614,1.875,615,1.875,616,1.875,617,1.875,618,4.427,619,3.303,620,3.303,621,3.303,622,1.875,623,1.875,624,1.875,625,1.875,626,1.875,627,1.875,628,1.875,629,1.875,630,1.875,631,5.335,632,1.875,633,5.335,634,5.335,635,5.335,636,5.335,637,5.335,638,1.875,639,4.427,640,1.875,641,1.875,642,1.875,643,1.875,644,1.875,645,1.875,646,1.875,647,1.875,648,5.335,649,1.548,650,3.303,651,1.875,652,5.591,653,1.875,654,1.875,655,1.875,656,7.706,657,1.875,658,4.427,659,1.875,660,1.875,661,4.427,662,1.875,663,1.875,664,1.875,665,1.875,666,1.875,667,1.875,668,1.875,669,1.875,670,1.875,671,1.875,672,1.875,673,1.875,674,1.875,675,1.875,676,1.875,677,1.875,678,1.875,679,1.875]],["component/3",[169,0.891]],["keyword/3",[]],["title/4-1",[87,24.598,680,56.91]],["name/4-1",[]],["text/4-1",[]],["component/4-1",[]],["keyword/4-1",[]],["title/4-2",[87,16.065,221,28.339,345,21.308,681,31.834,682,30.47]],["name/4-2",[]],["text/4-2",[]],["component/4-2",[]],["keyword/4-2",[]],["title/4-3",[18,32.241,19,33.403,87,20.898]],["name/4-3",[]],["text/4-3",[]],["component/4-3",[]],["keyword/4-3",[]],["title/4-4",[35,46.654,36,33.166]],["name/4-4",[]],["text/4-4",[]],["component/4-4",[]],["keyword/4-4",[]],["title/4-5",[7,11.287,10,31.208,36,28.177]],["name/4-5",[]],["text/4-5",[]],["component/4-5",[]],["keyword/4-5",[]],["title/4-6",[7,11.287,28,30.279,36,28.177]],["name/4-6",[]],["text/4-6",[]],["component/4-6",[]],["keyword/4-6",[]],["title/4-7",[7,11.287,36,28.177,683,50.683]],["name/4-7",[]],["text/4-7",[]],["component/4-7",[]],["keyword/4-7",[]],["title/4-8",[38,69.153]],["name/4-8",[]],["text/4-8",[]],["component/4-8",[]],["keyword/4-8",[]],["title/4-9",[40,41.41,41,30.578,81,28.177]],["name/4-9",[]],["text/4-9",[]],["component/4-9",[]],["keyword/4-9",[]],["title/4",[87,29.89]],["name/4",[87,0.618]],["text/4",[1,4.904,3,2.797,6,4.797,7,2.463,8,5.541,10,4.747,11,2.783,16,1.712,18,4.381,19,4.539,28,5.609,33,3.546,35,4.439,36,4.616,38,3.546,39,3.945,40,4.638,41,5.494,42,3.409,50,1.941,60,3.717,66,4.638,67,4.534,68,6.57,71,3.546,75,2.016,81,2.066,87,3.871,89,2.986,114,3.409,122,2.969,126,1.873,128,2.084,148,4.747,150,4.198,152,3.113,153,2.661,162,3.89,164,1.823,165,2.583,166,2.289,167,2.513,170,3.623,176,5.406,181,2.066,182,2.797,194,8.303,198,1.672,199,2.139,201,2.583,202,2.703,203,3.939,211,2.199,219,3.946,223,2.338,225,3.946,228,2.513,229,2.42,239,3.546,241,2.016,335,2.364,339,2.969,345,3.104,367,2.481,382,2.481,386,2.102,393,2.547,395,3.156,401,3.946,403,2.907,406,3.198,407,6.026,420,1.927,680,3.546,682,4.439,683,6.887,684,9.293,685,2.797,686,4.294,687,4.294,688,3.198,689,3.717,690,2.3
113,691,4.129,692,2.583,693,2.969,694,2.797,695,3.13,696,4.294,697,4.294,698,2.139,699,6.026,700,3.037,701,2.364,702,1.847,703,4.294,704,4.294,705,3.037,706,4.294,707,4.294,708,2.199,709,3.717,710,2.338,711,2.583,712,3.198,713,4.352,714,3.946,715,2.969,716,2.749,717,2.907,718,3.037,719,4.294,720,4.294,721,4.129,722,3.717,723,2.85,724,2.513,725,1.799,726,2.85,727,2.797,728,2.513,729,3.113,730,2.85,731,3.546,732,3.546,733,3.946,734,3.717,735,4.294,736,7.311,737,3.198,738,3.037,739,3.946,740,3.946,741,4.003,742,4.294,743,7.956,744,7.956,745,6.106,746,7.956,747,2.313,748,3.717,749,3.198,750,4.294,751,3.946,752,3.946,753,3.946,754,2.661,755,3.946,756,3.717,757,2.969,758,3.409,759,2.583,760,3.113,761,3.519,762,3.717,763,6.026,764,4.198,765,4.294,766,2.066,767,2.265,768,4.294,769,3.198,770,3.717]],["component/4",[169,0.891]],["keyword/4",[]],["title/5",[7,13.285,26,35.992]],["name/5",[771,0.82]],["text/5",[6,6.504,7,2.433,11,3.042,19,6.889,26,5.583,170,5.271,176,6.025,177,4.588,179,6.905,181,4.185,182,5.666,184,5.887,189,4.622,190,4.842,203,3.846,205,6.304,228,5.09,229,4.902,238,6.477,702,3.741,772,7.182,773,6.151,774,4.454]],["component/5",[191,1.24]],["keyword/5",[]],["title/6-1",[35,46.654,36,33.166]],["name/6-1",[]],["text/6-1",[]],["component/6-1",[]],["keyword/6-1",[]],["title/6-2",[775,51.326,776,56.91]],["name/6-2",[]],["text/6-2",[]],["component/6-2",[]],["keyword/6-2",[]],["title/6-3",[41,35.992,198,26.834]],["name/6-3",[]],["text/6-3",[]],["component/6-3",[]],["keyword/6-3",[]],["title/6-4",[167,40.335,761,30.481]],["name/6-4",[]],["text/6-4",[]],["component/6-4",[]],["keyword/6-4",[]],["title/6-5",[87,24.598,680,56.91]],["name/6-5",[]],["text/6-5",[]],["component/6-5",[]],["keyword/6-5",[]],["title/6",[150,44.12,155,59.657]],["name/6",[771,0.82]],["text/6",[1,4.548,5,5.09,6,3.167,7,2.486,8,4.771,10,5.088,16,2.344,26,3.071,27,4.668,28,5.354,34,3.314,35,3.98,36,2.83,38,4.855,39,3.537,41,5.407,42,6.557,50,3.733,68,4.855,69,3.041,76,4.668,80,4.547,81,2.83,86,3.98,87,2.099,89,2.677,120,4.043,124,5.09,126,3.602,133,4.065,148,3.134,149,2.564,150,6.982,151,4.855,153,3.644,162,3.488,163,3.702,165,3.537,167,5.587,176,3.314,178,3.488,198,3.717,223,3.202,382,3.397,389,2.529,395,2.83,420,3.706,683,8.263,684,7.59,709,5.09,724,3.441,736,5.403,739,5.403,740,5.403,741,3.589,745,7.326,747,3.167,754,3.644,758,4.668,760,4.262,761,4.579,763,5.403,764,3.764,769,4.379,770,5.09,774,3.012,777,3.644,778,2.903,779,4.512,780,5.88,781,4.855,782,5.287,783,5.88,784,5.09,785,5.403,786,5.403,787,5.09,788,3.98,789,3.238,790,2.878,791,5.88,792,2.564,793,5.403,794,4.159,795,4.262,796,4.855,797,2.878,798,3.238,799,5.88,800,5.88,801,3.98,802,3.589,803,5.841,804,4.065,805,3.202,806,5.403,807,4.668,808,5.88,809,5.88,810,4.512,811,3.354,812,4.159,813,5.88,814,3.831,815,4.159]],["component/6",[69,0.418,150,0.517]],["keyword/6",[]],["title/7-1",[181,28.177,217,26.864,816,40.481]],["name/7-1",[]],["text/7-1",[]],["component/7-1",[]],["keyword/7-1",[]],["title/7-2",[817,26.464,818,50.683,819,31.54]],["name/7-2",[]],["text/7-2",[]],["component/7-2",[]],["keyword/7-2",[]],["title/7-3",[817,26.464,819,31.54,820,35.737]],["name/7-3",[]],["text/7-3",[]],["component/7-3",[]],["keyword/7-3",[]],["title/7-4",[181,28.177,819,31.54,821,36.284]],["name/7-4",[]],["text/7-4",[]],["component/7-4",[]],["keyword/7-4",[]],["title/7-5",[822,31.54,823,36.284,824,44.934]],["name/7-5",[]],["text/7-5",[]],["component/7-5",[]],["keyword/7-5",[]],["title/7-6",[0,33.403,345,27.718,819,31.54]],["name/7-6",[]],["text/7-6",[]],["component/7-6",[]],["keyword/7-6",[]],["title/7-7",[819,37.124,825,40.335]],["name/7-7",[]],["text/7-7",[]],["component/7-7",[]],["keyword/7-7",[]],["title/7",[7,13.285,819,37.124]],["name/7",[771,0.82]],["text/7",[7,2.438,8,2.109,10,1.945,11,3.594,18,2.01,26,3.018,39,2.196,41,1.906,50,1.65,57,1.549,93,3.639,108,2.378,117,2.337,119,2.01,125,3.267,129,3.014,154,2.082,164,1.549,165,2.196,167,2.136,170,3.715,178,2.165,181,5.492,188,1.818,189,3.123,190,1.464,198,2.25,200,5.954,203,1.614,207,1.966,208,2.646,211,1.869,217,3.743,218,2.228,229,3.257,231,4.087,240,5.914,241,1.714,260,4.588,269,4.588,273,4.304,279,3.219,304,2.524,310,3.428,334,2.805,344,1.069,346,2.136,361,2.057,369,2.136,389,1.57,554,3.014,690,1.966,695,1.742,701,2.01,702,1.57,705,2.581,718,2.581,754,2.262,759,3.476,788,2.471,792,1.592,795,5.914,816,5.641,817,4.997,819,6.058,820,2.228,821,3.581,822,4.395,823,7.244,824,7.258,825,2.136,826,2.471,827,3.65,828,4.189,829,1.787,830,5.924,831,2.524,832,2.801,833,5.779,834,7.879,835,5.506,836,5.914,837,4.588,838,5.779,839,4.435,840,1.852,841,1.688,842,2.646,843,1.742,844,3.16,845,4.199,846,2.109,847,3.16,848,6.478,849,5.311,850,6.593,851,4.98,852,2.378,853,3.65,854,2.262,855,2.082,856,3.65,857,2.829,858,2.057,859,3.16,860,3.65,861,1.818,862,1.742,863,3.65,864,1.728,865,3.16,866,1.757,867,2.375,868,3.996,869,3.219,870,1.835,871,2.524,872,2.898,873,3.65,874,2.524,875,3.65,876,5.779,877,2.337,878,3.65,879,2.228,880,2.423,881,2.423,882,2.337,883,1.614,884,3.476,885,1.742,886,3.65,887,3.65,888,2.524,889,2.284,890,1.966,891,3.65,892,3.65,893,3.65,894,1.835,895,2.471,896,2.136,897,3.297,898,3.639,899,3.65,900,3.354,901,2.082,902,1.945,9
103,1.614,904,3.354,905,3.65,906,1.945,907,2.423,908,3.65,909,3.014,910,3.65,911,2.298,912,2.262,913,2.082,914,1.966,915,2.524,916,3.65,917,2.196,918,3.65,919,3.65,920,3.65,921,8.891,922,10.837,923,8.891,924,3.65,925,6.21,926,5.51,927,3.65,928,5.779,929,3.65,930,5.779,931,5.779]],["component/7",[69,0.418,150,0.517]],["keyword/7",[]],["title/8-1",[26,35.992,69,35.64]],["name/8-1",[]],["text/8-1",[]],["component/8-1",[]],["keyword/8-1",[]],["title/8-2",[26,35.992,932,63.334]],["name/8-2",[]],["text/8-2",[]],["component/8-2",[]],["keyword/8-2",[]],["title/8-3",[933,72.491]],["name/8-3",[]],["text/8-3",[]],["component/8-3",[]],["keyword/8-3",[]],["title/8-4",[181,33.166,934,63.334]],["name/8-4",[]],["text/8-4",[]],["component/8-4",[]],["keyword/8-4",[]],["title/8-5",[191,56.91,819,37.124]],["name/8-5",[]],["text/8-5",[]],["component/8-5",[]],["keyword/8-5",[]],["title/8-6",[8,33.826,26,30.578,935,36.284]],["name/8-6",[]],["text/8-6",[]],["component/8-6",[]],["keyword/8-6",[]],["title/8-7",[69,35.64,936,52.89]],["name/8-7",[]],["text/8-7",[]],["component/8-7",[]],["keyword/8-7",[]],["title/8-8",[937,63.334,938,63.334]],["name/8-8",[]],["text/8-8",[]],["component/8-8",[]],["keyword/8-8",[]],["title/8-9",[26,35.992,170,31.383]],["name/8-9",[]],["text/8-9",[]],["component/8-9",[]],["keyword/8-9",[]],["title/8-10",[26,26.58,170,23.176,913,29.036,939,25.585]],["name/8-10",[]],["text/8-10",[]],["component/8-10",[]],["keyword/8-10",[]],["title/8-11",[149,19.63,170,20.496,939,22.627,940,30.47,941,18.16]],["name/8-11",[]],["text/8-11",[]],["component/8-11",[]],["keyword/8-11",[]],["title/8-12",[15,47.648,942,37.949]],["name/8-12",[]],["text/8-12",[]],["component/8-12",[]],["keyword/8-12",[]],["title/8-13",[933,59.657,943,51.326]],["name/8-13",[]],["text/8-13",[]],["component/8-13",[]],["keyword/8-13",[]],["title/8-14",[402,39.814,944,29.449]],["name/8-14",[]],["text/8-14",[]],["component/8-14",[]],["keyword/8-14",[]],["title/8-15",[945,66.488]],["name/8-15",[]],["text/8-15",[]],["component/8-15",[]],["keyword/8-15",[]],["title/8-16",[946,76.96]],["name/8-16",[]],["text/8-16",[]],["component/8-16",[]],["keyword/8-16",[]],["title/8",[26,35.992,778,34.029]],["name/8",[771,0.82]],["text/8",[0,2.121,6,1.156,7,1.993,8,2.841,10,2.621,11,3.334,15,4.584,16,0.856,18,1.182,20,3.002,26,5.101,27,1.704,32,1.599,43,1.425,45,1.518,50,1.681,57,0.911,60,1.858,62,2.237,66,1.518,69,4.93,75,3.659,77,1.352,81,2.822,86,1.453,87,1.327,88,1.648,89,2.239,91,1.1,93,1.352,101,0.97,103,1.132,109,1.425,117,2.38,119,2.047,120,3.245,125,0.978,126,0.936,127,2.769,128,1.042,129,4.061,145,1.399,148,1.144,149,2.557,150,4.649,153,2.304,162,1.273,164,0.911,165,2.237,166,2.621,167,3.432,169,3.479,170,3.754,175,1.31,181,3.494,182,1.399,184,2.517,188,3.303,189,4.124,191,8.897,198,3.034,199,1.852,201,2.237,202,1.352,203,2.594,205,1.556,206,1.196,207,3.159,208,2.695,211,2.519,220,1.704,221,1.352,228,1.256,231,2.63,232,1.704,239,1.773,249,1.704,259,1.775,260,2.952,262,1.24,264,1.648,269,2.952,273,2.769,308,5.408,331,1.858,334,1.042,336,1.858,344,2.415,350,1.21,355,1.06,359,1.169,367,1.24,370,1.291,376,1.453,382,1.24,385,1.773,386,1.82,388,3.048,389,0.924,391,1.21,395,1.033,396,1.051,399,2.754,402,3.83,420,1.668,681,1.518,690,2.003,691,1.352,694,1.399,698,1.069,702,3.124,712,1.599,715,2.571,716,1.374,718,1.518,729,1.556,733,1.973,737,1.599,738,1.518,747,1.156,749,1.599,758,1.704,761,2.932,766,3.19,767,2.594,769,1.599,777,5.907,778,3.273,784,1.858,788,4.916,789,2.047,790,1.051,792,2.557,793,1.973,795,1.556,802,2.269,817,3.282,819,5.262,820,1.31,822,1.156,824,3.774,828,1.556,829,3.814,830,1.773,842,1.556,843,1.775,845,2.878,846,2.148,848,2.952,849,1.973,851,1.31,852,1.399,855,2.121,857,1.051,861,1.069,862,1.775,867,2.021,868,1.484,872,1.704,874,1.484,883,0.949,889,0.601,894,1.079,914,1.156,933,6.745,934,7.576,937,3.417,938,3.417,939,1.869,940,1.453,941,1.984,942,2.708,943,1.599,944,2.506,945,4.656,946,3.417,947,2.695,948,2.517,949,1.858,950,1.858,951,1.453,952,1.415,953,0.747,954,0.985,955,0.729,956,2.147,957,1.069,958,1.693,959,3.159,960,6.63,961,3.718,962,3.218,963,1.775,964,1.374,965,2.147,966,1.453,967,1.973,968,3.218,969,2.269,970,2.769,971,2.147,972,1.556,973,2.206,974,1.352,975,1.923,976,1.599,977,1.016,978,1.518,979,1.556,980,1.425,981,2.63,982,1.773,983,2.695,984,3.218,985,1.132,986,1.804,987,2.517,988,3.462,989,3.792,990,2.769,991,2.147,992,2.147,993,2.147,994,2.38,995,3.774,996,3.07,997,1.648,998,2.147,999,4.916,1000,1.556,1001,1.704,1002,2.147,1003,1.518,1004,1.973,1005,2.147,1006,1.352,1007,1.556,1008,3.4,1009,1.518,1010,2.147,1011,1.132,1012,5.864,1013,1.11,1014,1.182,1015,2.769,1016,1.518,1017,1.599,1018,0.97,1019,1.11,1020,1.453,1021,2.147,1022,1.704,1023,1.773,1024,2.147,1025,1,1026,2.147,1027,1.225,
11028,1.973,1029,2.769,1030,2.147,1031,1.291,1032,1.704,1033,2.147,1034,1.399,1035,2.147,1036,2.147,1037,2.147,1038,2.147,1039,1.648,1040,1.425,1041,1.599,1042,1.556,1043,3.718,1044,3.684,1045,1.069,1046,3.905,1047,2.147,1048,1.518,1049,2.147,1050,2.147,1051,3.417,1052,1.704,1053,1.484,1054,1.773,1055,2.047,1056,1.773,1057,1.599,1058,1.858,1059,3.07,1060,2.952,1061,2.147,1062,1.273,1063,0.978,1064,1.33,1065,3.243,1066,1.648,1067,1.291,1068,1.33,1069,1.773,1070,1.196,1071,3.718,1072,1.144,1073,1.973,1074,2.147,1075,1.973,1076,3.774,1077,2.147,1078,1.973,1079,1.518,1080,3.718,1081,1.31,1082,1.273,1083,2.147,1084,2.147,1085,2.853,1086,1.182,1087,1.973,1088,1.518,1089,1.453,1090,1.789,1091,1.352,1092,1.069,1093,2.147,1094,1.973,1095,2.147,1096,2.853,1097,2.147,1098,1.196,1099,2.147,1100,0.985,1101,1.196,1102,2.147,1103,1.069,1104,1.33,1105,2.147,1106,1.704,1107,2.147,1108,2.147,1109,1.648,1110,2.147,1111,2.147,1112,1.484,1113,1.973,1114,1.291,1115,1.051,1116,1.973,1117,2.147,1118,1.973,1119,2.147,1120,1.973,1121,1.484,1122,1.773,1123,1.31,1124,1.973,1125,0.985,1126,2.147,1127,1.773,1128,1.556,1129,1.858,1130,1.453,1131,2.147,1132,2.147,1133,2.147,1134,1.773,1135,2.952,1136,2.147,1137,1.973,1138,1.858,1139,1.773,1140,1.484,1141,1.144,1142,2.147,1143,2.121,1144,3.718,1145,1.858,1146,2.147,1147,1.973,1148,1.704,1149,1.425,1150,1.648,1151,1.973,1152,2.422,1153,1.704,1154,1.132,1155,1.773,1156,2.147,1157,1.453,1158,1.453,1159,1.599]],["component/8",[69,0.418,150,0.517]],["keyword/8",[]],["title/9",[6,31.54,76,46.486,1160,50.683]],["name/9",[771,0.82]],["text/9",[6,6.129,7,1.859,10,3.94,11,3.373,19,4.217,71,6.104,76,7.657,78,6.821,101,3.341,119,4.07,120,3.618,126,3.224,149,3.224,154,4.217,163,4.654,174,6.399,218,4.512,335,5.311,354,7.657,390,9.37,396,3.618,421,3.65,699,6.793,702,3.18,788,5.004,797,4.721,819,3.982,829,3.618,845,4.326,861,3.683,867,3.038,957,3.683,981,7.592,986,3.587,1018,3.341,1019,3.823,1160,6.399,1161,7.62,1162,12.103,1163,5.673,1164,7.392,1165,7.392,1166,4.149,1167,7.183,1168,7.392,1169,5.358,1170,5.869,1171,6.793,1172,4.166,1173,7.964,1174,5.977,1175,5.004,1176,5.673,1177,2.767,1178,6.793,1179,4.385]],["component/9",[69,0.418,150,0.517]],["keyword/9",[]],["title/10-1",[889,19.296,981,48.742]],["name/10-1",[]],["text/10-1",[]],["component/10-1",[]],["keyword/10-1",[]],["title/10-2",[78,41.41,778,28.911,1180,31.884]],["name/10-2",[]],["text/10-2",[]],["component/10-2",[]],["keyword/10-2",[]],["title/10-3",[78,48.742,1161,43.391]],["name/10-3",[]],["text/10-3",[]],["component/10-3",[]],["keyword/10-3",[]],["title/10-4",[1166,25.188,1176,44.934,1177,21.918]],["name/10-4",[]],["text/10-4",[]],["component/10-4",[]],["keyword/10-4",[]],["title/10-5",[857,33.734,1181,44.12]],["name/10-5",[]],["text/10-5",[]],["component/10-5",[]],["keyword/10-5",[]],["title/10",[1169,49.958,1182,59.657]],["name/10",[771,0.82]],["text/10",[5,4.594,6,2.859,7,1.739,11,3.154,26,2.771,39,3.192,40,3.753,41,5.887,42,4.213,64,4.382,69,2.744,75,2.492,76,7.847,78,8.447,80,2.331,81,2.554,89,2.417,101,2.399,103,2.8,120,2.598,128,2.575,150,6.998,154,3.028,162,4.554,164,2.253,167,3.106,168,4.877,176,2.991,188,2.644,189,2.938,199,2.644,208,3.847,210,5.095,216,3.192,217,2.435,241,2.492,265,2.744,335,2.922,375,3.952,376,3.592,390,7.161,397,2.644,398,4.618,399,2.492,420,3.444,421,2.62,691,3.341,692,3.192,702,4.511,708,2.718,715,3.669,724,3.106,738,3.753,761,2.347,782,3.397,797,2.598,857,4.415,861,3.824,889,1.486,912,4.757,917,3.192,958,2.417,959,2.859,975,2.744,981,6.99,984,4.594,1009,3.753,1018,2.399,1034,3.457,1070,2.956,1109,4.073,1152,3.457,1157,3.592,1160,6.645,1161,4.833,1163,4.073,1166,2.283,1172,2.991,1176,9.283,1177,4.528,1179,3.148,1180,4.18,1181,3.397,1183,5.307,1184,5.307,1185,5.307,1186,4.213,1187,2.8,1188,5.307,1189,5.565,1190,4.382,1191,4.877,1192,2.829,1193,5.307,1194,5.307,1195,3.952,1196,5.307,1197,5.307,1198,5.307,1199,6.339,1200,5.307,1201,3.239,1202,5.505,1203,5.197,1204,5.307,1205,3.522,1206,9.083,1207,4.877,1208,4.073,1209,5.307,1210,4.686,1211,3.289,1212,3.457,1213,2.89,1214,3.592,1215,5.307,1216,3.592,1217,5.307,1218,5.307]],["component/10",[69,0.418,150,0.517]],["keyword/10",[]],["title/11",[364,37.575]],["name/11",[771,0.82]],["text/11",[6,4.084,7,2.349,8,5.664,10,5.226,40,6.934,41,6.633,64,6.261,66,6.934,75,3.561,87,2.706,93,6.173,125,3.452,128,5.273,162,4.497,166,4.041,335,5.399,363,7.491,364,4.876,367,6.278,368,6.734,369,4.437,372,6.967,374,5.132,375,5.646,376,5.132,377,5.362,378,6.563,379,5.496,380,6.967,381,6.967,382,4.38,383,5.818,384,6.563,386,3.711,388,4.698,389,4.218,390,6.019,393,4.497,395,3.649,748,6.563,815,5.362,894,3.811,911,4.773,912,4.698,1219,5.032,1220,7.582,1221,4.223]],["component/11",[69,0.418,150,0.517]],["keyword/11",[]],["title/12-1",[208,49.958,368,42.708]],["name/12-1",[]],["text/12-1",[]],["component/12-1",[]],["keyword/12-1",[]],["title/12-2",[170,31.383,830,56.91]],["name/12-2",[]],["text/12-2",[]],["component/12-2",[]],["keyword/12-2",[]],["title/12",[19,33.403,149,25.535,1017,43.606]],["name/12",[771,0.82]],["text/12",[1,3.562,6,4.752,7,2.399,8,3.737,10,5.352,19,3.69,40,4.574,41,3.378,57,4.791,84,5.944,87,2.309,89,4.017,101,3.988,103,3.412,119,3.562,120,3.166,128,3.139,149,2.821,152,4.689,153,4.008,154,5.033,163,4.072,189,2.476,208,7.278,213,7.004,221,4.072,229,4.972,234,5.573,240,6.395,241,3.038,242,5.599,243,5.341,244,5.944,245,5.944,246,5.599,293,3.603,354,5.135,368,4.008,777,5.467,788,5.972,817,2.923,8
119,3.484,830,10.021,831,4.472,832,4.964,836,4.689,837,5.135,839,4.964,845,3.785,846,3.737,847,5.599,864,3.062,883,3.902,894,3.251,932,5.944,959,3.484,969,3.948,981,4.574,1013,3.345,1029,4.817,1059,5.341,1163,6.77,1176,6.77,1177,3.303,1222,6.468,1223,8.822,1224,4.964,1225,4.689,1226,6.468,1227,3.345,1228,6.468,1229,6.468,1230,5.944,1231,4.689,1232,9.227,1233,5.341,1234,4.378,1235,6.468,1236,5.385,1237,6.468,1238,4.817]],["component/12",[69,0.418,150,0.517]],["keyword/12",[]],["title/13-1",[402,39.814,889,19.296]],["name/13-1",[]],["text/13-1",[]],["component/13-1",[]],["keyword/13-1",[]],["title/13-2",[57,29.253,943,51.326]],["name/13-2",[]],["text/13-2",[]],["component/13-2",[]],["keyword/13-2",[]],["title/13-3",[943,51.326,1239,32.111]],["name/13-3",[]],["text/13-3",[]],["component/13-3",[]],["keyword/13-3",[]],["title/13",[149,30.056,1103,34.333]],["name/13",[771,0.82]],["text/13",[6,3.887,7,1.122,11,3.605,13,5.348,16,1.468,19,3.32,26,1.923,28,1.904,37,2.826,50,2.631,54,1.818,57,1.563,75,1.729,80,2.556,94,3.041,119,2.028,120,1.803,129,3.041,149,4.14,189,5.041,198,2.266,203,2.574,241,2.733,265,1.904,267,2.075,279,2.051,293,2.051,371,1.803,376,3.94,393,3.452,396,1.803,402,4.169,701,3.205,702,2.504,711,3.501,721,2.319,725,3.023,726,2.444,729,2.669,761,1.629,767,3.07,770,3.188,775,6.107,792,1.606,796,3.041,797,2.849,802,2.248,819,3.135,820,2.248,847,5.038,867,1.514,883,2.574,897,2.101,898,3.664,906,1.963,936,6.293,943,4.334,955,1.25,959,1.984,975,1.904,999,2.493,1031,2.215,1034,2.399,1039,2.826,1044,2.953,1045,1.835,1055,2.028,1057,2.743,1068,6.387,1086,3.974,1115,4.014,1130,2.493,1143,4.117,1154,3.07,1157,2.493,1177,1.379,1180,3.169,1192,1.963,1239,5.329,1240,2.899,1241,5.348,1242,5.82,1243,3.683,1244,3.683,1245,3.683,1246,3.384,1247,2.357,1248,2.546,1249,3.188,1250,3.683,1251,3.683,1252,2.924,1253,2.215,1254,3.683,1255,2.319,1256,3.683,1257,3.683,1258,3.188,1259,3.384,1260,4.472,1261,2.319,1262,3.683,1263,3.188,1264,3.041,1265,2.669,1266,2.546,1267,3.661,1268,8.2,1269,3.041,1270,2.604,1271,5.82,1272,3.501,1273,3.32,1274,3.683,1275,5.82,1276,3.683,1277,3.683,1278,5.249,1279,3.683,1280,5.82,1281,2.028,1282,3.188,1283,2.319,1284,3.683,1285,3.94,1286,5.82,1287,1.835,1288,2.924,1289,9.493,1290,3.683,1291,3.28,1292,6.107,1293,3.683,1294,3.102,1295,1.664,1296,2.184,1297,4.458,1298,2.357,1299,3.683,1300,3.683,1301,3.683,1302,2.924,1303,3.664,1304,3.188,1305,2.826,1306,1.629,1307,5.538,1308,4.989,1309,8.922,1310,3.683,1311,6.536,1312,5.717,1313,8.206,1314,8.206,1315,3.683,1316,2.444,1317,5.82,1318,7.216,1319,2.546,1320,3.041,1321,2.282,1322,2.604,1323,5.348,1324,8.93,1325,2.669,1326,2.444,1327,3.384,1328,3.384]],["component/13",[69,0.418,150,0.517]],["keyword/13",[]],["title/14-1",[69,35.64,690,37.124]],["name/14-1",[]],["text/14-1",[]],["component/14-1",[]],["keyword/14-1",[]],["title/14-2",[20,42.064,69,35.64]],["name/14-2",[]],["text/14-2",[]],["component/14-2",[]],["keyword/14-2",[]],["title/14",[6,31.54,7,11.287,238,43.606]],["name/14",[771,0.82]],["text/14",[6,4.449,7,2.437,8,3.397,10,4.402,11,3.621,15,5.71,16,2.344,18,3.238,19,3.354,20,3.589,26,3.071,57,4.8,69,4.271,87,2.099,92,4.668,93,3.702,96,6.338,110,2.903,111,2.806,112,3.238,117,3.764,144,3.537,149,2.564,170,4.714,194,8.263,200,3.702,201,3.537,203,2.6,211,3.012,217,2.698,224,3.644,229,4.655,234,2.903,236,3.702,237,2.83,240,5.987,241,2.761,249,6.557,250,3.012,259,5.544,260,7.579,262,3.397,269,6.557,273,7.11,293,3.275,337,5.09,355,4.078,420,4.283,680,4.855,690,3.167,761,4.222,777,5.118,831,4.065,832,4.512,836,4.262,837,4.668,839,4.512,851,3.589,858,3.314,864,2.784,944,2.512,949,5.09,950,5.09,951,5.591,952,4.151,953,3.322,954,3.789,955,3.516,958,3.761,964,3.764,1027,3.354,1065,3.974,1100,2.698,1114,3.537,1115,2.878,1233,4.855,1329,5.403,1330,3.764,1331,3.102,1332,3.903,1333,4.065,1334,5.403,1335,3.071,1336,3.831,1337,5.88,1338,7.59,1339,4.159,1340,9.546,1341,5.88,1342,5.88]],["component/14",[7,0.29]],["keyword/14",[]],["title/15",[1343,72.491]],["name/15",[1343,1.499]],["text/15",[7,2.32,11,2.876,16,2.33,20,2.26,26,3.052,50,2.642,51,1.844,69,1.915,81,1.782,87,1.321,89,3.745,104,2.016,111,1.767,112,2.039,113,3.826,119,2.039,126,2.549,138,3.226,148,3.115,149,1.615,155,3.205,164,2.481,169,2.196,190,1.485,198,3.705,199,1.844,200,2.331,234,1.828,237,2.813,250,1.896,259,2.789,344,2.622,345,1.753,354,2.939,355,2.886,396,2.861,397,2.912,420,5.26,421,4.421,682,2.506,694,7.09,712,2.757,725,1.551,766,1.782,774,1.896,829,2.861,841,3.802,862,3.925,864,1.753,866,1.782,877,2.37,883,2.585,889,3.108,896,2.167,897,2.112,903,1.637,9
107,2.457,935,2.294,939,2.938,941,2.358,944,2.497,952,4.142,953,3.928,954,1.699,955,3.938,957,1.844,988,4.295,990,2.757,1013,5.152,1018,2.642,1025,5.259,1045,1.844,1065,4.767,1072,1.973,1089,2.506,1100,4.571,1103,1.844,1140,2.56,1166,1.593,1175,2.506,1177,3.351,1179,2.196,1187,3.083,1192,1.973,1213,2.016,1221,2.062,1239,1.725,1240,4.74,1249,3.205,1267,1.878,1287,1.844,1343,3.205,1344,2.087,1345,5.358,1346,5.371,1347,3.205,1348,3.205,1349,2.939,1350,2.841,1351,5.255,1352,4.987,1353,1.812,1354,3.148,1355,1.953,1356,2.457,1357,3.742,1358,3.115,1359,2.457,1360,4.718,1361,4.876,1362,2.618,1363,3.221,1364,4.097,1365,2.767,1366,3.402,1367,2.841,1368,4.041,1369,2.37,1370,3.205,1371,2.684,1372,3.68,1373,1.828,1374,2.039,1375,5.096,1376,4.485,1377,4.64,1378,2.56,1379,2.016,1380,3.205,1381,3.402,1382,3.057,1383,2.039,1384,2.412,1385,2.112,1386,2.412,1387,3.057,1388,2.167,1389,3.402,1390,2.757,1391,2.757,1392,3.376,1393,2.331,1394,2.37,1395,2.56,1396,2.139,1397,2.412]],["component/15",[7,0.29]],["keyword/15",[]],["title/16",[7,9.811,69,26.32,238,37.904,690,27.416]],["name/16",[771,0.82]],["text/16",[6,6.191,7,2.215,10,5.229,69,5.073,690,5.284,761,4.339,777,6.079,851,5.988,949,8.492,950,8.492,951,6.641,952,3.734,953,3.414,955,3.331,1065,4.084]],["component/16",[7,0.29]],["keyword/16",[]],["title/17-1",[149,25.535,280,42.443,400,43.606]],["name/17-1",[]],["text/17-1",[]],["component/17-1",[]],["keyword/17-1",[]],["title/17",[7,9.811,20,31.064,69,26.32,238,37.904]],["name/17",[771,0.82]],["text/17",[6,2.629,7,2.476,10,2.602,11,3.545,16,1.946,20,2.979,69,3.734,74,4.623,80,2.144,110,2.41,111,2.33,112,2.688,120,2.389,125,2.223,126,3.149,128,2.369,148,2.602,149,5.109,175,2.979,176,7.054,179,3.875,190,1.957,198,2.812,223,3.932,237,2.349,250,2.5,258,3.304,259,2.33,280,8.717,335,2.688,352,3.304,355,2.41,361,2.751,364,2.19,371,2.389,386,3.535,400,3.635,488,6.636,493,4.486,501,6.636,693,3.375,698,2.432,702,3.106,725,3.025,730,3.24,745,3.746,761,2.159,773,3.452,777,3.025,778,2.41,820,2.979,832,3.746,836,3.538,842,3.538,843,2.33,851,2.979,866,2.349,894,2.454,901,2.785,907,3.24,911,3.073,912,3.025,941,2.914,951,3.304,952,2.748,953,2.991,954,4.651,955,3.225,958,2.223,983,6.23,1065,2.032,1082,4.284,1166,3.106,1287,4.282,1297,2.292,1306,3.194,1363,1.912,1392,2.82,1398,5.886,1399,4.486,1400,4.031,1401,4.486,1402,3.24,1403,4.486,1404,3.24,1405,7.15,1406,3.538,1407,4.881,1408,4.881,1409,4.881,1410,4.881,1411,8.595,1412,3.538,1413,9.498,1414,4.881,1415,7.221,1416,4.881,1417,8.595,1418,4.881,1419,4.888,1420,4.623,1421,8.595,1422,9.498,1423,10.137,1424,3.24,1425,2.82,1426,3.452,1427,2.206,1428,4.225]],["component/17",[7,0.29]],["keyword/17",[]],["title/18-1",[1027,39.317,1429,43.391]],["name/18-1",[]],["text/18-1",[]],["component/18-1",[]],["keyword/18-1",[]],["title/18-2",[7,13.285,344,20.187]],["name/18-2",[]],["text/18-2",[]],["component/18-2",[]],["keyword/18-2",[]],["title/18-3",[1375,42.708,1376,52.89]],["name/18-3",[]],["text/18-3",[]],["component/18-3",[]],["keyword/18-3",[]],["title/18-4",[164,29.253,1430,36.734]],["name/18-4",[]],["text/18-4",[]],["component/18-4",[]],["keyword/18-4",[]],["title/18",[1351,36.357,1377,54.716]],["name/18",[771,0.82]],["text/18",[7,2.472,11,2.648,16,3.637,20,2.748,28,2.329,36,3.942,39,2.709,49,2.327,50,3.932,57,4.158,62,1.617,67,1.858,77,2.835,78,1.901,81,4.391,87,0.959,89,3.096,101,2.627,110,1.327,111,1.283,112,1.48,125,1.224,126,3.98,128,1.304,148,1.433,149,1.172,164,4.272,166,1.433,167,2.635,170,2.646,189,3.749,190,1.078,198,2.263,200,1.692,202,1.692,203,1.189,206,1.497,207,2.426,211,2.976,233,2.352,234,1.327,237,2.167,344,3.537,359,4.737,364,1.206,369,1.573,391,1.515,395,1.293,396,2.204,399,1.262,420,1.206,421,1.327,576,2.47,585,2.47,682,4.602,689,3.898,701,1.48,708,1.377,728,3.401,747,1.448,759,3.496,761,2.57,764,1.721,766,2.167,788,3.048,792,1.964,802,2.748,814,1.751,817,1.215,822,2.426,829,2.204,843,1.283,851,4.621,857,1.316,858,1.515,861,1.339,864,2.751,866,2.797,867,1.105,870,1.351,882,1.721,883,3.007,885,1.283,889,3.241,901,2.569,903,4.555,913,1.533,939,2.264,941,3.305,944,2.483,947,1.948,951,5.125,952,3.117,953,3.502,954,2.066,955,2.781,958,1.224,959,1.448,966,1.819,969,1.64,977,2.132,988,4.278,989,2.352,994,3.72,1011,1.418,1013,2.329,1014,1.48,1018,2.627,1025,3.527,1027,1.533,1031,1.617,1040,1.784,1044,2.285,1062,1.594,1065,2.419,1082,1.594,1090,1.293,1091,5.745,1092,2.243,1098,1.497,1100,2.666,1125,2.066,1141,3.624,1174,1.666,1177,2.834,1231,1.948,1236,2.748,1239,1.252,1272,1.617,1287,2.243,1306,1.991,1352,2.508,1353,2.844,1354,4.078,1355,4.814,1359,3.857,1363,4.034,1375,6.626,1376,7.904,1383,1.48,1388,1.573,1424,1.784,1427,
11.215,1429,1.692,1430,3.624,1431,1.377,1432,2.569,1433,2.688,1434,1.784,1435,2.306,1436,1.404,1437,4.7,1438,2.063,1439,2.709,1440,1.819,1441,2.329,1442,2.063,1443,3.879,1444,1.751,1445,2.688,1446,3.584,1447,1.948,1448,2.452,1449,2.688,1450,2.002,1451,1.721,1452,2.688,1453,2.134,1454,2.327,1455,6.153,1456,2.002,1457,2.748,1458,1.377,1459,1.751,1460,5.811,1461,1.64,1462,2.063,1463,2.327,1464,2.063,1465,2.219,1466,4.138,1467,2.688,1468,2.327,1469,2.327,1470,2.688,1471,2.688,1472,1.858,1473,3.456,1474,2.327,1475,2.688,1476,4.328,1477,4.503,1478,2.063,1479,1.692]],["component/18",[7,0.29]],["keyword/18",[]],["title/19-1",[361,38.842,362,44.901]],["name/19-1",[]],["text/19-1",[]],["component/19-1",[]],["keyword/19-1",[]],["title/19-2",[1100,31.62,1480,44.901]],["name/19-2",[]],["text/19-2",[]],["component/19-2",[]],["keyword/19-2",[]],["title/19-3",[259,19.256,355,19.921,725,16.903,952,15.356,955,13.7,1365,19.1]],["name/19-3",[]],["text/19-3",[]],["component/19-3",[]],["keyword/19-3",[]],["title/19-4",[841,31.863,1481,54.716]],["name/19-4",[]],["text/19-4",[]],["component/19-4",[]],["keyword/19-4",[]],["title/19-5",[1482,69.153]],["name/19-5",[]],["text/19-5",[]],["component/19-5",[]],["keyword/19-5",[]],["title/19-6",[1483,62.368]],["name/19-6",[]],["text/19-6",[]],["component/19-6",[]],["keyword/19-6",[]],["title/19-7",[985,44.178]],["name/19-7",[]],["text/19-7",[]],["component/19-7",[]],["keyword/19-7",[]],["title/19",[361,47.199]],["name/19",[771,0.82]],["text/19",[7,1.986,11,3.076,34,1.262,36,2.444,50,1.743,51,3.704,53,2.058,62,3.055,89,3.098,91,1.147,113,0.957,116,1.939,125,1.756,126,0.977,133,3.511,164,2.156,170,1.02,188,1.116,189,3.494,198,3.101,199,1.921,206,2.148,211,1.975,217,1.769,233,2.014,234,4.153,235,1.41,241,4.547,259,2.88,265,5.006,267,5.146,279,4.685,334,1.087,344,0.656,345,1.826,355,1.106,359,5.272,361,5.311,362,7.014,371,4.117,403,1.516,692,1.347,702,2.596,715,1.548,718,1.584,725,4.387,761,2.246,774,1.975,792,2.215,797,1.096,802,2.354,828,1.624,841,2.79,843,1.069,855,2.898,857,2.486,861,1.116,862,2.88,864,1.06,866,1.856,867,3.979,868,1.548,869,1.247,870,3.42,883,3.288,885,1.841,889,3.168,894,1.126,902,1.194,903,0.991,911,2.428,912,2.39,913,1.278,914,2.736,926,3.147,941,3,952,4.271,953,2.1,954,1.769,955,3.436,957,3.007,985,5.338,986,1.087,988,3.553,994,1.434,1006,1.41,1011,1.182,1025,3.17,1045,1.116,1055,1.233,1063,3.83,1065,2.832,1096,1.719,1100,3.411,1101,1.247,1103,3.39,1115,3.33,1152,1.459,1158,1.516,1172,2.862,1201,1.367,1221,6.352,1240,4.694,1253,1.347,1291,1.262,1297,4.752,1316,1.487,1321,1.388,1359,1.487,1364,5.681,1365,1.06,1373,1.106,1374,2.797,1379,1.22,1380,5.224,1393,4.284,1396,3.487,1427,4.48,1430,1.194,1451,1.434,1456,5.537,1480,3.932,1481,3.062,1482,8.185,1483,2.872,1484,1.367,1485,2.24,1486,2.24,1487,2.24,1488,2.24,1489,1.939,1490,2.058,1491,2.058,1492,2.058,1493,2.24,1494,2.24,1495,2.24,1496,2.24,1497,5.079,1498,2.24,1499,2.24,1500,4.032,1501,3.438,1502,1.434,1503,2.058,1504,2.24,1505,2.058,1506,3.062,1507,2.24,1508,4.375,1509,4.433,1510,4.433,1511,4.606,1512,4.606,1513,4.932,1514,2.24,1515,3.705,1516,1.719,1517,2.24,1518,1.367,1519,3.857,1520,1.233,1521,1.719,1522,1.388,1523,2.728,1524,1.939,1525,3.511,1526,2.058,1527,1.939,1528,4.984,1529,2.058,1530,2.24,1531,2.24,1532,2.24,1533,3.198,1534,4.194,1535,3.898,1536,2.354,1537,1.849,1538,1.939,1539,2.058,1540,1.939,1541,1.778,1542,3.783,1543,2.058,1544,1.459,1545,2.56,1546,2.24,1547,2.24,1548,2.058,1549,2.24,1550,1.624,1551,2.24,1552,5.079,1553,1.434,1554,1.388,1555,1.719,1556,2.056,1557,1.624,1558,1.668,1559,5.079,1560,2.24,1561,1.434,1562,2.24,1563,3.857,1564,1.719,1565,2.24,1566,1.849,1567,2.24,1568,2.24,1569,2.058,1570,2.24,1571,1.22,1572,1.487,1573,2.32,1574,2.24,1575,1.719,1576,1.939,1577,1.487,1578,2.24,1579,3.857,1580,2.24,1581,2.24,1582,1.367]],["component/19",[7,0.29]],["keyword/19",[]],["title/20-1",[1453,54.716,1583,38.387]],["name/20-1",[]],["text/20-1",[]],["component/20-1",[]],["keyword/20-1",[]],["title/20-2",[7,13.285,175,42.064]],["name/20-2",[]],["text/20-2",[]],["component/20-2",[]],["keyword/20-2",[]],["title/20-3",[7,13.285,851,42.064]],["name/20-3",[]],["text/20-3",[]],["component/20-3",[]],["keyword/20-3",[]],["title/20-4",[7,13.285,164,29.253]],["name/20-4",[]],["text/20-4",[]],["component/20-4",[]],["keyword/20-4",[]],["title/20-5",[952,22.285,955,19.882,1065,24.373]],["name/20-5",[]],["text/20-5",[]],["component/20-5",[]],["keyword/20-5",[]],["title/20-6",[198,22.797,106
15,24.373,1392,33.826]],["name/20-6",[]],["text/20-6",[]],["component/20-6",[]],["keyword/20-6",[]],["title/20-7",[964,44.12,1065,28.688]],["name/20-7",[]],["text/20-7",[]],["component/20-7",[]],["keyword/20-7",[]],["title/20",[164,29.253,1017,51.326]],["name/20",[771,0.82]],["text/20",[2,0.812,6,0.706,7,2.394,11,2.349,18,0.722,26,1.727,28,1.238,36,1.153,43,0.87,50,1.846,51,0.653,54,1.183,55,1.082,57,3.842,62,0.788,69,0.678,75,1.125,80,1.794,81,0.631,87,1.458,89,1.86,101,1.082,111,1.143,112,1.319,119,1.821,120,0.642,126,2.329,138,1.067,142,0.788,154,1.887,163,0.825,164,3.842,167,1.402,170,2.432,175,3.26,176,1.864,178,1.421,185,6.521,186,2.201,188,0.653,189,4.813,198,3.651,199,0.653,200,2.082,203,1.463,229,3.557,231,5.243,233,1.727,234,0.647,235,0.825,237,1.966,241,2.508,249,1.041,250,2.092,259,3.38,262,4.092,265,2.762,267,2.302,279,1.334,280,0.95,292,1.204,293,1.334,310,1.421,344,3.054,345,1.134,350,1.35,355,3.943,359,4.83,364,2.396,368,0.812,370,0.788,389,0.564,395,0.631,396,2.866,398,1.441,399,1.553,406,5.743,420,1.484,421,1.633,690,0.706,695,1.949,698,2.917,702,2.297,705,2.339,712,0.976,717,1.621,725,1.003,738,0.927,747,2.2,759,1.441,761,1.463,764,0.839,766,1.966,767,0.691,774,2.436,782,0.839,790,0.642,792,0.572,795,0.95,797,0.642,805,0.714,811,0.748,814,0.854,817,3.036,822,0.706,825,0.767,829,1.172,840,0.665,843,0.626,846,1.384,851,2.018,854,0.812,855,0.748,861,1.193,864,2.251,866,1.966,867,0.984,868,0.906,870,2.943,883,1.059,885,2.549,889,2.429,894,0.659,896,2.391,901,0.748,902,0.699,903,4.686,913,0.748,926,2.049,935,1.484,941,2.155,944,1.023,951,0.887,952,4.118,953,2.338,955,3.476,958,1.86,963,0.626,975,0.678,976,0.976,977,2.528,979,0.95,981,2.339,982,1.082,983,0.95,986,1.162,988,5.237,989,2.484,997,1.838,999,7.058,1019,2.762,1020,1.621,1025,0.611,1044,2.71,1057,0.976,1063,0.597,1064,0.812,1065,4.475,1070,1.842,1090,1.591,1091,5.585,1092,3.347,1100,2.182,1103,0.653,1125,3.663,1141,2.177,1143,0.748,1166,2.519,1170,1.041,1177,0.491,1178,1.204,1187,0.691,1190,1.082,1213,0.714,1239,2.488,1241,1.204,1253,0.788,1297,1.918,1311,0.788,1314,1.204,1332,0.87,1335,0.684,1351,1.745,1352,0.73,1353,1.172,1354,0.706,1355,1.745,1358,0.699,1363,3.127,1365,0.62,1375,5.103,1376,2.538,1379,0.714,1388,0.767,1392,3.646,1395,0.906,1396,0.757,1402,0.87,1404,1.59,1420,0.839,1427,2.646,1430,1.276,1435,2.735,1437,1.656,1439,1.441,1441,1.238,1443,2.33,1448,0.714,1458,0.671,1459,0.854,1461,0.8,1476,5.003,1478,2.538,1479,2.082,1484,0.8,1518,2.018,1534,1.082,1535,1.006,1545,1.59,1582,3.574,1583,1.334,1584,1.134,1585,1.134,1586,0.87,1587,1.311,1588,4.41,1589,2.395,1590,1.204,1591,1.082,1592,2.863,1593,1.311,1594,1.533,1595,1.041,1596,1.082,1597,0.825,1598,2.463,1599,1.311,1600,1.311,1601,1.838,1602,2.625,1603,1.311,1604,1.311,1605,1.134,1606,1.311,1607,0.927,1608,1.311,1609,1.311,1610,0.927,1611,1.204,1612,3.039,1613,0.906,1614,1.041,1615,1.082,1616,1.082,1617,1.311,1618,1.533,1619,1.204,1620,1.204,1621,4.493,1622,4.493,1623,4.493,1624,2.2,1625,3.754,1626,3.754,1627,1.134,1628,1.311,1629,6.483,1630,1.082,1631,0.87,1632,1.462,1633,1.134,1634,1.082,1635,0.95,1636,1.082,1637,1.134,1638,3.363,1639,1.134,1640,4.37,1641,2.201,1642,6.123,1643,5.155,1644,1.311,1645,4.41,1646,2.731,1647,2.731,1648,2.625,1649,2.625,1650,1.311,1651,2.863,1652,1.311,1653,1.978,1654,1.311,1655,2.395,1656,1.311,1657,1.006,1658,0.976,1659,1.134,1660,2.961,1661,1.204,1662,1.204,1663,4.099,1664,1.204,1665,1.082,1666,1.134,1667,1.134,1668,0.976,1669,2.711,1670,1.311,1671,0.927,1672,2.863,1673,1.978,1674,1.006,1675,1.311,1676,2.395,1677,0.927,1678,1.311,1679,1.311,1680,1.311,1681,1.311,1682,1.311,1683,1.311,1684,1.204,1685,1.204,1686,1.311,1687,1.311,1688,1.311,1689,1.311,1690,1.311,1691,1.311,1692,1.694,1693,1.082,1694,0.976,1695,1.204,1696,1.041,1697,1.838,1698,0.87,1699,2.073,1700,1.041,1701,1.204,1702,1.006,1703,0.87,1704,1.864,1705,1.041,1706,1.484,1707,2.731,1708,0.576,1709,1.311,1710,2.201,1711,0.976,1712,1.311,1713,1.311,1714,1.041,1715,1.006,1716,1.311,1717,2.395,1718,1.311,1719,1.311,1720,1.311,1721,1.311,1722,0.927,1723,1.311,1724,0.812,1725,0.722]],["component/20",[7,0.29]],["keyword/20",[]],["title/21",[6,31.54,7,11.287,81,28.177]],["name/21",[771,0.82]],["text/21",[6,4.785,7,1.712,81,4.275,87,4.341,91,4.55,96,6.818,110,4.386,111,4.24,112,4.892,189,3.4,234,4.386,235,5.593,237,4.275,250,4.55,259,4.24,355,4.386,361,5.007,798,4.892,821,5.505,840,4.507,841,4.107,952,3.381,955,3.017,1013,4.594,1065,3.698,1331,4.686,1332,5.896,1333,6.142,1363,3.479,1451,5.687,1615,7.336,1708,3.901,1726,5.896,1727,7.851,1728,6.616]],["component/21",[7,0.29]],["keyword/21",[]],["title/22-1",[988,35.992,1726,45.742]],["name/22-1",[]],["text/22-1",[]],["component/22-1",[]],["keyword/22-1",[]],["title/22-2",[198,22.797,952,22.285,955,19.882]],["name/22-2",[]],["text/22-2",[]],["component/22-2",[]],["keyword/22-2",[]],["title/22-3",[952,22.285,955,19.882,975,30.279]],["name/22-3",[]],["text/22-3",[]],["component/22-3",[]],["keyword/22-3",[]],["title/22-4",[259,21.482,355,22.225,952,17.131,955,15.284,975,23.276]],["name/22-4",[]],["text/22-4",[]],["component/22-4",[]],["keyword/22-4",[]],["title/22-5",[7,8.677,104,24.51,952,17.131,955,15.284,975,23.276]],["name/22-5",[]],["text/22-5",[]],["component/22-5",[]],["keyword/22-5",[]],["title/22-6",[7,8.677,952,17.131,955,15.284,975,23.276,1360,29.325]],["name/22-6",[]],["text/22-6",[]],["component/22-6",[]],["keyword/22-6",[]],["title/22-7",[7,8.677,897,25.678,952,17.131,955,15.284,975,23.276]],["name/22-7",[]],["text/22-7",[]],["component/22-7",[]],["keyword/22-7",[]],["title/22-8",[1065,21.186,1729,40.408,1730,42.028,1731,42.028]],["name/22-8",[]],["text/22-8",[]],["component/22-8",[]],["keyword/22-8",[]],["title/22-9",[730,45.742,1065,28.688]],["name/22-9",[]],["text/22-9",[]],["component/22-9",[]],["keyword/22-9",[]],["title/22-10",[713,38.862,1364,29.169,1365,27.718]],["name/22-10",[]],["text/22-10",[]],["component/22-10",[]],["keyword/22-10",[]],["title/22-11",[713,45.742,1019,35.64]],["name/22-11",[]],["text/22-11",[]],["component/22-11",[]],["keyword/22-11",[]],["title/22-12",[713,33.781,1019,26.32,1055,28.025,1065,21.186]],["name/22-12",[]],["text/22-12",[]],["component/22-12",[]],["keyword/22-12",[]],["title/22-13",[713,33.781,939,25.585,1019,26.32,1065,21.186]],["name/22-13",[]],["text/22-13",[]],["component/22-13",[]],["keyword/22-13",[]],["title/22-14",[7,8.677,198,17.525,1065,18.736,1240,22.423,1364,22.423]],["name/22-14",[]],["text/22-14",[]],["component/22-14",[]],["keyword/22-14",[]],["title/22-15",[889,19.296,1019,35.64]],["name/22-15",[]],["text/22-15",[]],["component/22-15",[]],["keyword/22-15",[]],["title/22-16",[7,8.677,198,17.525,955,15.284,1240,22.423,1364,22.423]],["name/22-16",[]],["text/22-16",[]],["component/22-16",[]],["keyword/22-16",[]],["title/22-17",[7,5.933,104,16.759,198,11.983,952,11.713,955,17.106,106
15,12.811,1240,15.332,1364,15.332]],["name/22-17",[]],["text/22-17",[]],["component/22-17",[]],["keyword/22-17",[]],["title/22-18",[7,5.498,198,11.105,259,13.612,355,14.083,952,10.855,955,16.066,1065,11.872,1240,14.208,1364,14.208]],["name/22-18",[]],["text/22-18",[]],["component/22-18",[]],["keyword/22-18",[]],["title/22-19",[889,16.393,1332,38.862,1724,36.284]],["name/22-19",[]],["text/22-19",[]],["component/22-19",[]],["keyword/22-19",[]],["title/22-20",[840,29.707,889,16.393,1725,32.241]],["name/22-20",[]],["text/22-20",[]],["component/22-20",[]],["keyword/22-20",[]],["title/22-21",[840,29.707,1063,26.662,1725,32.241]],["name/22-21",[]],["text/22-21",[]],["component/22-21",[]],["keyword/22-21",[]],["title/22-22",[840,29.707,889,16.393,1725,32.241]],["name/22-22",[]],["text/22-22",[]],["component/22-22",[]],["keyword/22-22",[]],["title/22-23",[766,19.416,840,20.47,957,20.099,1364,20.099,1365,19.1,1725,22.216]],["name/22-23",[]],["text/22-23",[]],["component/22-23",[]],["keyword/22-23",[]],["title/22-24",[766,32.708,952,17.131,955,15.284,1355,23.745]],["name/22-24",[]],["text/22-24",[]],["component/22-24",[]],["keyword/22-24",[]],["title/22-25",[198,19.817,889,14.25,1392,29.403,1395,35.188]],["name/22-25",[]],["text/22-25",[]],["component/22-25",[]],["keyword/22-25",[]],["title/22-26",[1396,39.814,1458,35.298]],["name/22-26",[]],["text/22-26",[]],["component/22-26",[]],["keyword/22-26",[]],["title/22",[952,22.285,955,19.882,1065,24.373]],["name/22",[771,0.82]],["text/22",[2,0.397,7,2.114,8,0.708,11,2.834,16,0.488,26,1.175,35,0.434,36,1.301,41,0.64,43,3.384,50,1.751,51,0.61,54,0.316,57,1.787,62,2.33,80,2.461,81,0.847,87,0.437,89,3.027,91,1.153,101,1.751,103,1.187,104,3.808,113,0.274,120,0.861,125,1.231,126,0.767,128,0.311,133,0.443,145,0.417,149,0.767,153,0.397,163,0.403,164,0.52,169,1.604,177,0.646,188,0.319,189,4.309,190,1.084,198,4.613,199,0.877,202,0.771,203,1.381,207,1.212,210,0.813,211,0.328,216,0.737,217,0.294,229,1.76,233,0.64,234,2.079,236,0.403,237,0.308,241,0.575,243,0.529,259,3.69,262,3.372,265,0.633,267,0.69,273,2.014,293,3.488,310,0.38,329,0.464,335,1.934,339,1.556,344,2.338,345,0.833,351,0.529,355,4,359,1.226,362,2.743,364,0.287,369,0.375,370,0.385,383,0.492,386,1.323,389,0.527,395,1.083,396,1.102,397,0.61,399,3.284,420,1.401,421,0.605,685,0.417,701,0.674,702,2.605,710,0.958,711,0.385,712,0.477,718,0.453,723,0.425,724,0.375,725,2.706,729,1.275,730,2.073,745,0.492,749,0.477,759,0.385,761,1.553,764,0.41,766,2.914,767,0.338,774,1.385,777,0.397,782,0.41,789,1.239,790,1.896,792,0.982,794,0.453,797,0.314,798,0.353,804,1.216,805,0.667,811,0.366,814,0.417,817,0.29,829,2.36,840,3.278,843,0.306,862,0.585,864,0.833,866,1.301,867,4.035,870,1.57,871,0.443,874,0.847,880,0.813,883,2.678,884,1.058,885,4.119,889,3.071,896,0.717,897,4.554,901,0.366,902,0.341,903,2.857,906,0.341,913,0.699,926,0.759,935,1.676,939,2.275,941,3.52,944,0.523,948,1.191,952,4.736,953,2.107,954,1.241,955,4.221,957,2.792,958,1.917,959,0.345,963,1.676,974,0.403,975,1.615,982,1.011,985,1.647,986,0.311,988,5.456,989,1.175,1009,0.866,1014,0.353,1015,0.912,1018,2.179,1019,5.464,1020,0.829,1023,0.529,1025,0.299,1044,0.893,1046,1.397,1052,0.509,1055,0.969,1062,0.38,1063,3.579,1065,4.868,1072,0.341,1082,0.38,1086,1.489,1089,0.434,1090,1.301,1091,1.108,1092,1.347,1100,1.433,1101,2.685,1103,0.61,1113,0.589,1114,1.354,1115,2.623,1125,2.678,1130,0.434,1143,0.366,1150,0.492,1158,0.434,1166,0.527,1172,1.76,1177,2.098,1192,1.872,1213,2.464,1227,0.633,1234,0.434,1240,4.769,1253,0.737,1272,1.354,1287,1.347,1288,0.972,1295,0.29,1297,1.467,1298,0.41,1320,1.011,1332,0.813,1352,2.157,1354,0.345,1355,0.646,1356,1.494,1358,0.341,1360,2.288,1361,1.529,1363,0.251,1364,4.093,1365,2.763,1367,1.727,1373,0.316,1375,1.395,1379,0.349,1382,0.529,1383,0.674,1386,0.417,1392,4.222,1393,0.403,1394,0.41,1395,1.556,1396,3.498,1400,1.011,1404,0.425,1405,2.143,1427,3.856,1432,1.284,1435,0.901,1436,1.631,1441,1.615,1446,1.662,1448,0.349,1456,0.477,1457,0.391,1461,0.391,1484,2.143,1500,0.509,1502,0.41,1509,3.651,1510,3.491,1511,3.628,1512,3.263,1513,3.495,1515,0.349,1518,0.391,1520,1.72,1521,0.94,1523,0.453,1525,0.443,1528,0.529,1541,0.509,1545,1.168,1556,1.2,1561,0.41,1573,1.626,1576,1.06,1582,1.374,1592,4.639,1595,0.972,1602,0.509,1618,0.784,1624,0.345,1638,0.453,1658,0.477,1660,0.888,1663,0.492,1674,0.492,1677,0.453,1692,2.739,1693,0.529,1694,0.477,1695,3.559,1696,0.972,1697,0.492,1698,1.168,1700,0.972,1704,0.69,1706,0.397,1707,0.529,1708,0.281,1710,0.589,1711,2.615,1715,0.94,1722,3.201,1724,0.759,1725,3.94,1726,1.494,1729,2.479,1731,1.011,1732,0.477,1733,1.146,1734,0.641,1735,0.641,1736,0.641,1737,0.641,1738,1.191,1739,0.641,1740,0.641,1741,0.589,1742,0.641,1743,1.225,1744,3.123,1745,7.155,1746,1.31,1747,1.506,1748,0.641,1749,0.641,1750,0.589,1751,1.523,1752,2.622,1753,3.123,1754,0.641,1755,2.251,1756,0.509,1757,0.641,1758,0.641,1759,0.641,1760,0.509,1761,0.641,1762,0.403,1763,1.126,1764,0.94,1765,0.589,1766,1.011,1767,0.589,1768,0.555,1769,0.589,1770,1.859,1771,0.464,1772,0.509,1773,1.06,1774,1.441,1775,1.453,1776,1.225,
11777,0.641,1778,1.225,1779,4.174,1780,1.225,1781,0.641,1782,3.512,1783,3.695,1784,0.641,1785,2.87,1786,0.641,1787,0.589,1788,0.641,1789,0.641,1790,0.641,1791,0.529,1792,0.555,1793,0.641,1794,0.434,1795,0.641,1796,0.425,1797,1.011,1798,1.397,1799,1.225,1800,0.555,1801,0.641,1802,0.555,1803,0.641,1804,0.589,1805,0.641,1806,0.641,1807,0.641,1808,0.641,1809,0.641,1810,0.425,1811,0.641,1812,1.225,1813,0.641,1814,1.76,1815,0.641,1816,0.641,1817,0.641,1818,0.641,1819,0.641,1820,1.617,1821,0.94,1822,0.37,1823,0.641,1824,0.453,1825,1.225,1826,0.555,1827,3.559,1828,1.225,1829,0.403,1830,0.798,1831,0.641,1832,1.225,1833,0.641,1834,0.847,1835,1.225,1836,0.453,1837,2.251,1838,0.972,1839,2.533,1840,3.873,1841,2.704,1842,0.477,1843,1.225,1844,0.555,1845,1.216,1846,1.617,1847,1.76,1848,1.03,1849,1.225,1850,1.225,1851,1.225,1852,0.589,1853,1.225,1854,0.641,1855,0.717,1856,0.641,1857,0.492,1858,0.417,1859,0.641,1860,0.417,1861,1.225,1862,0.589,1863,0.641,1864,1.126,1865,0.509,1866,0.866,1867,3.512,1868,0.641,1869,0.641,1870,2.704,1871,1.225,1872,0.589,1873,0.748,1874,0.641,1875,0.641,1876,0.641,1877,0.641,1878,0.641,1879,0.641,1880,0.366,1881,0.641,1882,0.641,1883,0.641,1884,1.523,1885,0.641,1886,0.641,1887,1.617,1888,2.068,1889,0.641,1890,0.492,1891,1.225,1892,0.641,1893,0.641,1894,0.641,1895,0.641,1896,0.641,1897,0.641,1898,0.641,1899,0.361,1900,0.641,1901,0.641,1902,1.948,1903,0.509,1904,0.641,1905,0.555,1906,0.417,1907,0.464,1908,0.492,1909,3.004,1910,0.41,1911,0.529,1912,2.377,1913,0.529,1914,0.641,1915,1.225,1916,1.225,1917,0.972,1918,0.641,1919,0.641,1920,1.126,1921,1.225,1922,0.509,1923,1.2,1924,1.225,1925,0.509,1926,0.641,1927,0.641,1928,0.641,1929,0.641,1930,0.641,1931,1.044,1932,0.589,1933,0.641,1934,0.847,1935,0.888,1936,0.509,1937,1.225,1938,1.225,1939,0.641,1940,0.641,1941,0.641,1942,0.641,1943,0.641,1944,1.76,1945,1.76,1946,2.704,1947,0.641,1948,0.641,1949,0.641,1950,0.641,1951,0.641,1952,0.641,1953,0.641,1954,0.641,1955,0.641,1956,0.641,1957,0.555,1958,1.225,1959,1.225,1960,1.225,1961,1.225,1962,0.641,1963,1.225,1964,1.225,1965,0.641,1966,0.641,1967,0.589,1968,0.641,1969,0.641,1970,0.641,1971,0.641,1972,1.225,1973,1.225,1974,0.589,1975,0.94,1976,0.641,1977,0.641,1978,0.589,1979,0.641,1980,0.641,1981,0.434,1982,0.589,1983,0.509,1984,0.509,1985,0.509,1986,0.555,1987,0.555,1988,0.589,1989,0.641,1990,1.35,1991,1.83,1992,0.641,1993,0.641]],["component/22",[7,0.29]],["keyword/22",[]],["title/23-1",[51,34.333,774,35.298]],["name/23-1",[]],["text/23-1",[]],["component/23-1",[]],["keyword/23-1",[]],["title/23-2",[1994,76.96]],["name/23-2",[]],["text/23-2",[]],["component/23-2",[]],["keyword/23-2",[]],["title/23-3",[1995,76.96]],["name/23-3",[]],["text/23-3",[]],["component/23-3",[]],["keyword/23-3",[]],["title/23-4",[1907,60.706]],["name/23-4",[]],["text/23-4",[]],["component/23-4",[]],["keyword/23-4",[]],["title/23-5",[785,46.772,1357,32.582,1996,46.772,1997,35.996]],["name/23-5",[]],["text/23-5",[]],["component/23-5",[]],["keyword/23-5",[]],["title/23-6",[35,56.691]],["name/23-6",[]],["text/23-6",[]],["component/23-6",[]],["keyword/23-6",[]],["title/23-7",[1998,76.96]],["name/23-7",[]],["text/23-7",[]],["component/23-7",[]],["keyword/23-7",[]],["title/23-8",[1999,76.96]],["name/23-8",[]],["text/23-8",[]],["component/23-8",[]],["keyword/23-8",[]],["title/23-9",[7,11.287,198,22.797,1240,29.169]],["name/23-9",[]],["text/23-9",[]],["component/23-9",[]],["keyword/23-9",[]],["title/23-10",[774,35.298,1362,48.742]],["name/23-10",[]],["text/23-10",[]],["component/23-10",[]],["keyword/23-10",[]],["title/23",[1332,55.583]],["name/23",[771,0.82]],["text/23",[0,0.813,7,1.982,11,3.267,16,1.737,35,3.419,50,0.644,51,4.565,62,2.134,80,5.043,87,0.509,89,3.02,91,1.324,104,1.408,113,2.834,119,0.785,120,0.698,125,1.177,126,1.127,132,4.01,138,2.25,142,0.857,149,1.127,184,3.419,188,2.171,189,1.358,198,4.117,200,0.897,203,1.143,207,1.392,217,0.654,218,2.66,233,3.223,234,1.276,241,4.386,259,3.534,264,3.344,265,4.152,267,3.184,279,3.147,310,1.533,334,0.692,344,2.169,345,0.675,352,0.965,355,2.152,361,0.803,374,1.75,389,2.173,390,1.132,396,1.265,399,2.046,420,0.639,692,2.134,695,1.693,698,0.71,702,1.526,708,0.73,710,0.7
176,716,0.912,723,0.946,725,3.579,727,0.929,728,0.834,741,2.165,759,0.857,761,1.143,764,0.912,766,0.686,767,2.299,774,6.099,789,0.785,792,1.127,797,1.265,798,1.423,802,0.87,805,3.361,822,0.768,829,1.265,843,1.693,854,0.883,855,0.813,857,0.698,861,3.075,862,4.077,864,0.675,867,3.3,870,3.103,885,0.68,889,2.615,890,0.768,897,0.813,901,0.813,902,0.76,903,2.234,941,3.12,944,0.609,947,1.033,952,4.437,953,1.234,954,2.592,955,3.811,957,2.516,958,1.177,959,2.347,970,1.061,985,1.364,986,1.721,988,1.35,1013,3.43,1014,1.423,1018,2.283,1019,4.418,1032,1.132,1063,4.892,1065,0.593,1072,4.121,1089,3.824,1100,1.627,1114,1.555,1125,1.627,1128,2.571,1150,1.094,1166,1.526,1172,0.803,1219,0.946,1231,1.033,1240,4.565,1253,0.857,1267,3.131,1281,1.423,1297,0.669,1298,0.912,1305,1.094,1321,2.198,1332,5.819,1347,1.234,1357,1.655,1359,2.354,1362,7.193,1364,3.075,1365,2.063,1373,0.704,1374,0.785,1379,1.408,1383,1.423,1396,5.736,1424,0.946,1427,1.603,1431,0.73,1441,2.253,1446,1.224,1457,1.578,1458,2.587,1484,5.064,1502,0.912,1508,1.033,1513,3.159,1515,1.931,1520,0.785,1523,1.008,1533,0.897,1538,2.238,1541,1.132,1545,2.354,1561,3.233,1573,0.857,1582,6.338,1585,1.234,1607,1.008,1610,1.008,1618,0.912,1698,0.946,1704,1.999,1708,0.626,1715,1.094,1724,5.433,1762,0.897,1764,1.984,1830,0.929,1845,3.013,1866,1.008,1884,2.238,1890,1.984,1902,6.41,1906,0.929,1907,3.159,1910,2.271,1931,2.104,1994,2.375,1995,4.005,1996,3.259,1998,2.375,1999,4.005,2000,3.46,2001,1.716,2002,2.052,2003,1.033,2004,2.641,2005,1.234,2006,2.238,2007,5.368,2008,7.033,2009,1.31,2010,5.191,2011,0.857,2012,4.736,2013,1.425,2014,4.005,2015,6.115,2016,1.425,2017,1.425,2018,3.259,2019,1.425,2020,2.585,2021,1.425,2022,2.375,2023,1.425,2024,1.425,2025,1.425,2026,1.425,2027,1.984,2028,1.425,2029,1.061,2030,1.008,2031,3.616,2032,1.234,2033,1.425,2034,1.425,2035,1.425,2036,1.425,2037,1.425,2038,1.425,2039,1.425,2040,1.425,2041,5.05,2042,2.585,2043,1.234,2044,1.425,2045,1.425,2046,4.005,2047,5.672,2048,4.89,2049,5.649,2050,1.31,2051,2.585,2052,2.585,2053,2.585,2054,4.766,2055,1.425,2056,2.585,2057,3.547,2058,2.508,2059,1.061,2060,3.572,2061,1.234,2062,1.787,2063,1.425,2064,1.425,2065,1.425,2066,1.425,2067,4.358,2068,4.358,2069,4.358,2070,1.425,2071,1.425,2072,1.425,2073,1.425,2074,2.585,2075,1.425,2076,1.425,2077,1.425,2078,1.425,2079,1.425,2080,1.425,2081,1.31,2082,2.134,2083,1.425,2084,1.425,2085,1.425,2086,1.425,2087,1.033,2088,2.271,2089,1.132,2090,1.425,2091,1.177,2092,1.31,2093,1.425,2094,1.425,2095,1.425,2096,1.425,2097,1.425,2098,2.585,2099,1.094,2100,1.061,2101,0.965,2102,3.547,2103,2.585,2104,1.425,2105,2.585,2106,2.585,2107,2.585,2108,1.425,2109,1.31,2110,1.425,2111,1.425,2112,1.008,2113,1.177,2114,1.094,2115,3.547,2116,3.547,2117,2.585,2118,1.425,2119,1.425,2120,1.425,2121,1.094,2122,1.234,2123,1.033,2124,2.052,2125,1.871,2126,2.585,2127,0.76,2128,1.425,2129,2.585]],["component/23",[7,0.29]],["keyword/23",[]],["title/24-1",[87,18.166,845,29.787,903,22.51,1331,26.849]],["name/24-1",[]],["text/24-1",[]],["component/24-1",[]],["keyword/24-1",[]],["title/24-2",[87,18.166,903,22.51,1331,26.849,2130,26.32]],["name/24-2",[]],["text/24-2",[]],["component/24-2",[]],["keyword/24-2",[]],["title/24-3",[389,14.376,695,15.949,1236,20.397,1331,17.629,1355,17.629,2130,17.281,2131,27.595,2132,24.888]],["name/24-3",[]],["text/24-3",[]],["component/24-3",[]],["keyword/24-3",[]],["title/24-4",[189,15.442,695,19.256,1202,24.625,1331,21.284,2130,20.864,2133,21.07]],["name/24-4",[]],["text/24-4",[]],["component/24-4",[]],["keyword/24-4",[]],["title/24-5",[364,20.195,695,21.482,1331,23.745,2130,23.276,2134,27.472]],["name/24-5",[]],["text/24-5",[]],["component/24-5",[]],["keyword/24-5",[]],["title/24",[189,19.48,1013,26.32,1331,26.849,1726,33.781]],["name/24",[771,0.82]],["text/24",[0,2.997,1,2.504,7,2.013,10,0.803,11,3.207,16,1.812,18,2.045,26,0.787,28,3.03,31,1.245,47,1.712,50,1.679,51,0.751,57,2.907,69,0.779,77,0.949,81,0.725,85,1.197,87,1.326,101,1.679,108,0.982,120,0.738,122,3.144,125,0.686,126,1.186,128,1.803,138,4.245,145,0.982,148,2.423,164,1.93,175,2.267,177,1.434,178,1.613,180,1.305,188,0.751,189,4.346,190,1.09,198,3.094,199,0.751,203,1.643,207,0.812,211,0.772,216,0.907,217,0.692,223,0.821,224,0.934,233,3.79,236,0.949,334,0.731,335,3.996,344,2.791,345,1.287,359,2.476,364,1.667,368,0.934,369,0.882,371,1.331,377,1.923,382,0.871,386,1.331,389,1.956,395,2.188,396,1.818,397,0.751,398,0.907,399,1.277,400,1.123,403,1.02,420,0.676,421,0.744,695,4.174,702,1.598,708,1.393,713,1,723,1,724,0.882,725,0.631,728,1.591,761,1.643,764,0.965,766,1.788,782,0.9
165,790,2.226,792,2.987,794,3.715,798,0.83,811,2.119,815,1.923,817,1.229,823,0.934,829,0.738,834,1.123,843,2.507,845,5.577,857,0.738,861,0.751,864,0.714,866,3.667,867,1.527,870,0.758,883,2.825,885,3.464,889,2.863,901,0.86,903,3.37,914,0.812,915,1.042,939,0.758,941,2.119,944,0.644,953,3.97,955,0.923,957,1.355,958,1.238,959,0.812,969,0.92,972,1.093,973,0.894,975,1.921,977,2.487,986,1.803,989,0.787,1006,0.949,1013,2.717,1016,1.066,1018,0.681,1025,2.119,1063,2.392,1082,1.613,1085,2.087,1090,1.788,1091,2.863,1092,2.617,1098,1.514,1100,3.646,1103,0.751,1121,1.042,1125,2.086,1128,1.093,1141,0.803,1143,1.551,1161,4.312,1166,1.598,1175,1.02,1177,0.564,1179,0.894,1192,0.803,1202,4.18,1207,1.385,1211,1.685,1219,1,1225,4.63,1227,0.779,1236,4.18,1247,0.965,1266,1.042,1267,3.24,1291,0.849,1296,0.894,1306,4.412,1311,0.907,1331,6.046,1335,0.787,1336,0.982,1344,0.849,1353,1.331,1354,1.465,1355,4.487,1363,0.59,1365,1.758,1375,1.685,1379,1.481,1425,0.871,1427,3.096,1430,0.803,1434,1.805,1436,1.42,1439,0.907,1440,1.02,1441,0.779,1443,0.86,1444,0.982,1446,1.758,1457,0.92,1465,2.245,1472,1.042,1518,0.92,1536,0.92,1561,0.965,1571,2.861,1572,2.465,1586,3.889,1616,1.245,1629,1.042,1660,1.971,1694,1.123,1704,1.532,1706,1.685,1725,4.816,1726,3.487,1762,0.949,1830,2.962,1839,0.907,1848,0.882,1903,1.197,1910,1.741,1981,1.02,2001,1,2031,2.378,2058,2.627,2087,3.296,2088,4.089,2125,0.795,2127,0.803,2130,5.71,2131,5.992,2132,4.364,2133,1.94,2134,3.898,2135,1.245,2136,3.936,2137,2.087,2138,0.982,2139,2.245,2140,10.89,2141,4.547,2142,7.119,2143,2.766,2144,2.245,2145,3.067,2146,1.385,2147,1.157,2148,1.157,2149,4.178,2150,1.385,2151,8.099,2152,5.869,2153,1.02,2154,1.741,2155,1.123,2156,1.305,2157,8.515,2158,0.849,2159,4.827,2160,6.294,2161,1.385,2162,1.385,2163,3.414,2164,3.414,2165,1.123,2166,3.414,2167,3.414,2168,4.827,2169,1.385,2170,1.385,2171,3.067,2172,1.385,2173,2.499,2174,0.882,2175,1.123,2176,1.157,2177,1.02,2178,2.851,2179,3.215,2180,1.305,2181,2.087,2182,1.507,2183,1.197,2184,1.385,2185,1.385,2186,4.178,2187,2.851,2188,4.827,2189,1.385,2190,0.894,2191,1.507,2192,1.245,2193,2.627,2194,1.507,2195,1.507,2196,1.507,2197,1.507,2198,2.719,2199,1.385,2200,3.414,2201,2.719,2202,3.215,2203,2.719,2204,2.719,2205,1.507,2206,2.499,2207,2.499,2208,1.042,2209,1.385,2210,3.144,2211,3.206,2212,5.842,2213,1.042,2214,2.087,2215,2.851,2216,1.066,2217,1.385,2218,1.385,2219,2.719,2220,2.354,2221,3.489,2222,1.507,2223,2.087,2224,2.719,2225,2.719,2226,1.385,2227,1.385]],["component/24",[7,0.29]],["keyword/24",[]],["title/25",[6,31.54,7,11.287,2228,58.551]],["name/25",[771,0.82]],["text/25",[7,2.274,47,5.716,111,5.238,112,4.999,250,5.621,364,4.924,814,5.915,840,4.606,841,5.074,889,3.643,1141,5.849,1239,4.23,1363,3.555,1385,5.179,1443,6.261,1448,4.944,1461,5.541,1836,6.421,2229,5.461]],["component/25",[7,0.29]],["keyword/25",[]],["title/26",[259,27.945,2230,53.808,2231,58.551]],["name/26",[771,0.82]],["text/26",[7,2.042,11,2.996,103,3.269,113,2.648,164,2.63,177,3.269,178,3.676,189,3.279,190,3.435,198,4.677,234,3.06,241,4.023,259,5.306,265,4.43,267,4.828,279,4.771,344,2.509,355,4.23,359,5.768,761,2.741,792,4.282,798,3.412,846,3.58,852,4.037,867,2.547,870,4.306,889,2.966,903,3.789,941,2.5,952,3.26,955,2.909,988,3.236,1014,4.717,1025,2.887,1063,4.471,1092,4.268,1100,3.93,1101,4.771,1103,3.087,1115,3.033,1166,2.666,1172,4.828,1192,3.303,1221,6.192,1240,4.268,1297,4.023,1336,4.037,1364,5.538,1393,3.902,1427,4.438,1484,5.229,1509,4.037,1510,4.037,1511,4.195,1512,4.195,1513,4.492,1515,3.374,1524,5.364,1528,5.117,1529,5.695,1533,6.669,1548,5.695,2001,4.113,2004,6.38,2006,5.364,2101,4.195,2230,9.023,2232,7.415,2233,5.364,2234,5.695,2235,5.117,2236,8.567,2237,6.197,2238,6.197,2239,6.197,2240,4.615,2241,6.197]],["component/26",[7,0.29]],["keyword/26",[]],["title/27",[39,27.076,201,27.076,954,20.651,1103,22.423,2242,41.364]],["name/27",[771,0.82]],["text/27",[7,2.072,39,6.464,120,4.293,189,3.357,198,3.415,200,5.522,201,5.276,203,4.753,235,5.522,262,6.712,344,2.569,389,3.773,420,3.935,864,4.152,903,4.753,917,5.276,952,4.09,953,3.052,954,4.024,955,3.649,1019,4.536,1065,3.651,1103,4.369,1425,5.067,1484,5.353,1830,5.714,2242,8.06,2243,11.419,2244,6.963,2245,8.06]],["component/27",[7,
10.29]],["keyword/27",[]],["title/28-1",[234,28.911,235,36.864,889,16.393]],["name/28-1",[]],["text/28-1",[]],["component/28-1",[]],["keyword/28-1",[]],["title/28",[57,24.853,201,35.221,953,20.376]],["name/28",[771,0.82]],["text/28",[2,1.575,6,3.006,7,1.534,10,2.975,11,3.538,19,2.452,39,3.357,41,1.328,43,1.687,50,1.149,51,2.141,54,2.122,57,1.824,74,1.628,75,4.184,87,2.618,89,1.158,101,1.942,117,3.573,118,2.336,125,1.957,126,1.109,148,1.355,165,3.357,188,1.267,189,4.532,198,3.938,199,2.141,201,2.585,211,1.302,217,1.166,234,5.813,235,7.604,241,3.98,262,3.791,265,3.393,267,3.698,272,2.099,276,6.03,279,3.109,334,1.234,344,0.745,345,2.034,350,1.433,361,1.433,382,4.237,389,1.094,391,2.422,402,1.469,420,1.141,695,1.213,702,1.094,718,1.798,725,3.335,728,2.515,730,1.687,761,1.124,766,1.223,767,1.341,774,1.302,777,1.575,789,1.4,797,1.244,798,2.366,804,1.758,831,1.758,855,2.452,857,2.103,864,1.204,866,1.223,867,3.484,869,2.393,870,4.963,882,1.628,883,4.103,884,1.529,885,1.213,889,2.054,890,1.37,894,2.806,903,2.902,917,2.585,941,1.026,952,1.636,953,0.885,955,1.459,973,1.508,979,7.488,988,1.328,999,3.778,1011,1.341,1019,1.315,1039,1.951,1040,1.687,1044,1.29,1053,1.758,1055,2.366,1057,1.893,1063,3.34,1065,1.058,1068,1.575,1070,1.416,1092,2.78,1103,1.267,1104,1.575,1123,2.623,1125,1.166,1138,2.201,1141,1.355,1158,1.721,1159,1.893,1177,0.952,1180,1.384,1192,2.975,1211,1.575,1214,1.721,1221,4.721,1227,1.315,1239,2.601,1253,1.529,1285,1.721,1288,2.018,1295,1.942,1296,1.508,1297,2.018,1303,2.706,1312,1.628,1319,1.758,1326,1.687,1336,1.656,1345,1.656,1361,1.244,1364,3.269,1373,5.101,1374,5.109,1383,3.073,1385,1.45,1396,1.469,1405,1.552,1424,2.852,1427,1.942,1435,1.302,1446,1.204,1448,3.039,1463,2.201,1480,5.186,1484,1.552,1503,2.336,1508,1.843,1518,1.552,1520,1.4,1525,2.971,1550,1.843,1554,1.575,1556,2.29,1558,1.893,1566,2.099,1571,1.384,1573,2.585,
11583,1.416,1624,1.37,1627,2.201,1671,1.798,1747,1.416,1762,1.601,1772,2.018,1783,1.843,1821,3.298,1822,1.469,1824,3.947,1830,1.656,1838,2.018,1848,1.488,1855,1.488,1908,1.951,1931,2.549,1990,6.505,1991,6.031,2001,1.687,2012,1.951,2054,1.721,2112,1.798,2125,2.944,2127,1.355,2158,2.422,2244,2.018,2246,7.335,2247,2.018,2248,2.542,2249,2.336,2250,4.297,2251,2.542,2252,5.581,2253,1.843,2254,4.297,2255,3.949,2256,4.297,2257,2.542,2258,2.336,2259,5.129,2260,3.949,2261,4.297,2262,2.542,2263,2.542,2264,1.687,2265,1.843,2266,4.431,2267,2.336,2268,2.542,2269,3.72,2270,6.562,2271,1.843,2272,2.542,2273,1.798,2274,2.542,2275,2.542,2276,6.562,2277,3.548,2278,2.542,2279,2.201,2280,2.542,2281,1.721,2282,2.201,2283,2.542,2284,5.581,2285,2.542,2286,2.542,2287,1.575,2288,4.297,2289,4.297,2290,2.542,2291,1.656,2292,2.542,2293,2.542,2294,2.542,2295,2.542,2296,1.758,2297,2.542,2298,2.542,2299,2.542,2300,2.542,2301,2.542,2302,2.542,2303,2.542,2304,2.542,2305,2.542,2306,2.542,2307,1.721,2308,2.542,2309,2.542,2310,1.575,2311,5.581,2312,2.542,2313,2.542,2314,1.951,2315,2.542,2316,2.018,2317,2.542,2318,3.298,2319,2.542,2320,2.542,2321,3.72,2322,4.297,2323,2.542,2324,1.687,2325,1.4,2326,2.201,2327,1.893,2328,1.951,2329,2.542,2330,2.542,2331,2.336,2332,2.542,2333,2.201,2334,2.542,2335,2.542,2336,2.542,2337,2.542,2338,1.601,2339,1.951,2340,2.542,2341,2.542,2342,2.542,2343,2.542,2344,2.099,2345,2.542,2346,2.201,2347,2.542,2348,1.843]],["component/28",[7,0.29]],["keyword/28",[]],["title/29-1",[344,17.151,896,34.268,1101,32.613]],["name/29-1",[]],["text/29-1",[]],["component/29-1",[]],["keyword/29-1",[]],["title/29-2",[80,25.714,344,17.151,1166,25.188]],["name/29-2",[]],["text/29-2",[]],["component/29-2",[]],["keyword/29-2",[]],["title/29",[7,11.287,344,17.151,944,25.019]],["name/29",[944,0.74]],["text/29",[0,1.279,7,2.164,11,2.787,16,1.539,31,1.851,36,2.907,39,3.633,41,2.016,57,1.639,74,1.435,80,3.267,81,1.858,82,1.941,86,1.518,93,1.412,103,2.036,113,1.649,120,1.89,125,1.758,126,0.978,138,0.999,142,1.349,153,2.392,162,1.33,163,1.412,164,1.639,177,1.183,189,4.686,198,4.441,203,0.992,216,1.349,217,1.029,223,1.221,224,1.389,241,3.952,265,4.352,267,4.743,279,4.687,293,2.15,310,3.583,334,2.931,344,3.564,359,4.339,364,1.006,371,2.956,386,3.333,389,1.661,395,1.858,397,1.117,399,1.813,402,1.295,420,1.732,698,1.923,702,2.929,709,1.941,725,2.53,747,2.079,761,0.992,774,1.977,778,4.654,790,1.097,792,2.969,797,1.097,798,2.799,801,1.518,807,1.78,812,1.586,845,1.312,846,2.23,857,1.89,862,1.07,864,3.772,867,2.482,881,2.562,885,4.622,889,2.639,890,2.079,894,1.941,896,2.259,903,3.29,906,2.058,917,2.322,935,2.392,941,2.051,944,5.349,953,2.929,954,1.771,975,2.629,977,1.827,979,2.798,980,2.562,985,2.036,988,3.556,989,3.154,1014,1.235,1018,1.745,1025,4.62,1062,1.33,1064,1.389,1076,1.721,1089,1.518,1090,1.079,1091,2.43,1092,3.392,1098,2.15,1100,1.029,1101,2.15,1103,3.969,1115,2.488,1125,2.332,1141,2.058,1166,3.201,1177,1.445,1239,1.045,1240,4.825,1253,4.475,1267,1.138,1287,1.117,1294,1.195,1296,1.33,1297,3.197,1306,0.992,1335,2.655,1354,1.208,1359,1.488,1361,1.89,1363,1.512,1369,2.471,1372,1.412,1375,4.61,1386,1.461,1394,1.435,1419,4.609,1420,3.254,1429,1.412,1441,1.996,1458,1.148,1509,2.515,1510,2.515,1511,2.613,1512,2.613,1515,1.221,1561,1.435,1582,3.686,1614,1.78,1638,2.73,1660,2.798,1663,1.721,1669,3.374,1671,3.595,1698,2.562,1766,7.784,1768,3.342,1779,2.875,1810,1.488,1830,1.461,1899,2.176,2008,4.635,2082,2.322,2127,1.195,2134,2.356,2209,5.55,2210,5.509,2220,5.228,2339,1.721,2349,7.252,2350,4.197,2351,3.441,2352,2.242,2353,1.586,2354,4.498,2355,2.242,2356,2.242,2357,2.242,2358,2.06,2359,2.242,2360,2.242,2361,2.242,2362,2.242,2363,2.242,2364,1.78,2365,2.242,2366,2.242,2367,5.083,2368,2.242,2369,2.242,2370,2.06,2371,2.242,2372,3.548,2373,2.242,2374,2.06,2375,1.941,2376,1.851,2377,11.015,2378,3.548,2379,2.875,2380,2.242,2381,4.4,2382,2.875,2383,2.242,2384,2.242,2385,2.242,2386,3.86,2387,1.941,2388,2.242,2389,6.04,2390,2.06,2391,2.242,2392,2.242,2393,2.242,2394,2.242,2395,2.242,2396,2.242,2397,1.851,2398,2.242,2399,5.083,2400,3.86,2401,2.242,2402,2.242,2403,5.083,2404,2.242,2405,2.242]],["component/29",[7,0.29]],["keyword/29",[]],["title/30-1",[344,20.187,1063,31.383]],["name/30-1",[]],["text/30-1",[]],["component/30-1",[]],["keyword/30-1",[]],["title/30-2",[344,20.187,1025,32.111]],["name/30-2",[]],["text/30-2",[]],["component/30-2",[]],["keyword/30-2",[]],["title/30-3",[344,20.187,885,32.893]],["name/30-3",[]],["text/30-3",[]],["component/30-3",[]],["keyword/30-3",[]],["title/30-4",[344,20.187,370,41.457]],["name/30-4",[]],["text/30-4",[]],["component/30-4",[]],["keyword/30-4",[]],["title/30-5",[917,50.376]],["name/30-5",[]],["text/30-5",[]],["component/30-5",[]],["keyword/30-5",[]],["title/30-6",[39,50.376]],["name/30-6",[]],["text/30-6",[]],["component/30-6",[]],["keyword/30-6",[]],["title/30-7",[16,33.382]],["name/30-7",[]],["text/30-7",[]],["component/30-7",[]],["keyword/30-7",[]],["title/30-8",[864,39.645]],["name/30-8",[]],["text/30-8",[]],["component/30-8",[]],["keyword/30-8",[]],["title/30-9",[]],["name/30-9",[]],["text/30-9",[]],["component/30-9",[]],["keyword/30-9",[]],["title/30-10",[797,40.991]],["name/30-10",[]],["text/30-10",[]],["component/30-10",[]],["keyword/30-10",[]],["title/30-11",[198,32.607]],["name/30-11",[]],["text/30-11",[]],["component/30-11",[]],["keyword/30-11",[]],["title/30-12",[1698,55.583]
1],["name/30-12",[]],["text/30-12",[]],["component/30-12",[]],["keyword/30-12",[]],["title/30-13",[1240,41.719]],["name/30-13",[]],["text/30-13",[]],["component/30-13",[]],["keyword/30-13",[]],["title/30-14",[1669,55.583]],["name/30-14",[]],["text/30-14",[]],["component/30-14",[]],["keyword/30-14",[]],["title/30-15",[1669,45.742,1671,48.742]],["name/30-15",[]],["text/30-15",[]],["component/30-15",[]],["keyword/30-15",[]],["title/30-16",[2406,62.368]],["name/30-16",[]],["text/30-16",[]],["component/30-16",[]],["keyword/30-16",[]],["title/30-17",[343,53.612]],["name/30-17",[]],["text/30-17",[]],["component/30-17",[]],["keyword/30-17",[]],["title/30-18",[15,57.899]],["name/30-18",[]],["text/30-18",[]],["component/30-18",[]],["keyword/30-18",[]],["title/30-19",[170,38.134]],["name/30-19",[]],["text/30-19",[]],["component/30-19",[]],["keyword/30-19",[]],["title/30",[7,13.285,344,20.187]],["name/30",[771,0.82]],["text/30",[7,2.294,8,1.382,11,3.101,15,4.894,16,3.736,18,2.247,19,3.044,20,2.016,28,1.708,36,4.267,39,1.439,40,0.926,50,1.493,51,2.914,57,2.677,75,0.615,80,1.792,81,2.568,82,1.133,83,0.824,87,0.854,101,0.592,103,0.691,113,1.744,117,0.838,119,1.317,120,1.171,125,0.596,126,2.072,128,1.603,133,0.905,145,0.853,149,1.441,164,3.271,166,1.761,170,3.057,175,2.491,176,1.862,179,1.039,181,1.964,182,1.559,188,0.652,189,1.819,198,4.559,199,0.652,203,0.579,207,0.705,210,0.869,211,1.225,217,0.601,221,1.506,228,1.4,233,4.418,235,0.824,250,0.67,264,1.005,308,0.975,334,1.603,343,5.109,344,3.773,345,4.105,357,1.039,359,0.713,368,0.811,370,3.793,371,0.641,375,0.975,382,1.382,386,1.171,389,1.029,395,0.63,399,1.916,402,0.756,420,2.625,702,1.755,723,0.869,725,1.384,738,1.692,747,0.705,749,0.975,761,0.579,766,1.59,774,0.67,777,2.047,778,1.181,789,0.721,792,1.78,797,2.326,798,2.938,801,0.886,817,1.493,823,1.482,825,1.933,828,0.949,829,1.171,839,1.005,840,2.07,846,1.382,862,2.547,864,2.77,866,1.59,867,1.953,870,4.457,883,3.409,885,5.016,889,2.482,890,2.198,896,2.388,901,0.747,902,2.844,903,4.211,909,1.081,917,0.787,926,1.482,941,3.998,944,3.866,952,0.498,953,2.682,954,1.098,955,0.444,957,1.646,958,1.858,975,3.831,977,2.249,985,3.086,988,4.528,989,3.697,994,0.838,1017,0.975,1018,3.199,1023,3.923,1025,3.452,1041,1.782,1044,3.406,1052,1.899,1062,0.776,1063,4.268,1065,0.545,1072,1.761,1081,1.46,1086,0.721,1089,0.886,1090,2.568,1092,4.1,1098,1.332,1100,0.601,1101,2.273,1103,3.69,1112,0.905,1114,4.8,1115,1.171,1118,1.203,1123,1.46,1125,4.695,1128,1.734,1141,2.532,1166,2.517,1177,0.49,1179,2.421,1182,2.859,1192,0.698,1201,0.799,1211,1.482,1213,0.713,1227,0.677,1239,3.591,1240,4.993,1260,0.811,1270,0.926,1287,1.646,1297,0.615,1298,0.838,1311,0.787,1321,2.047,1331,0.691,1335,2.481,1353,0.641,1359,1.588,1363,2.772,1364,1.192,1365,3.649,1368,0.905,1369,2.115,1375,2.047,1376,1.005,1383,2.247,1384,3.096,1388,0.766,1390,1.782,1394,1.531,1404,2.708,1425,0.756,1427,2.644,1430,2.532,1432,1.885,1437,2.284,1438,1.836,1441,0.677,1443,0.747,1446,0.62,1464,1.005,1469,1.133,1476,0.975,1479,1.506,1502,3.416,1509,1.559,1510,1.559,1511,1.619,1512,1.619,1515,1.799,1520,2.938,1525,1.654,1536,0.799,1556,0.698,1557,1.734,1558,1.782,1575,1.005,1584,1.133,1586,2.708,1597,0.824,1629,4.045,1669,4.185,1674,1.005,1685,2.198,1698,2.708,1725,0.721,1729,1.039,1746,1.782,1747,2.646,1766,1.975,1796,0.869,1838,1.039,1839,0.787,1865,3.24,1873,0.799,1931,1.419,2011,1.439,2030,2.336,2062,0.905,2082,1.439,2121,1.005,2138,0.853,2174,1.4,2210,1.654,2211,1.46,2234,2.198,2253,0.949,2265,1.734,2291,0.853,2296,2.284,2314,1.005,2325,1.317,2338,0.824,2346,1.133,2353,1.692,2370,1.203,2372,1.203,2375,1.133,2387,1.133,2406,1.782,2407,1.203,2408,2.198,2409,1.975,2410,2.198,2411,1.734,2412,1.309,2413,1.309,2414,3.75,2415,1.309,2416,2.392,2417,3.036,2418,3.75,2419,1.203,2420,1.309,2421,1.309,2422,1.203,2423,1.203,2424,1.309,2425,1.309,2426,1.309,2427,1.203,2428,1.133,2429,1.133,2430,1.203,2431,1.133,2432,1.203,2433,1.836,2434,1.309,2435,1.203,2436,1.309,2437,1.309,2438,1.899,2439,1.309,2440,1.309,2441,1.309,2442,0.975,2443,1.081,2444,2.392,2445,0.975,2446,1.309,2447,0.975,2448,1.203,2449,4.751,2450,3.036,2451,4.751,2452,1.081,2453,1.309,2454,1.692,2455,1.309,2456,2.392,2457,1.309,2458,1.309,2459,2.198,2460,2.198,2461,5.207,2462,3.75,2463,1.203,2464,1.309,2465,1.309,2466,1.309,2467,1.309,2468,1.309,2469,1.309,2470,2.198,2471,1.975,2472,1.309,2473,1.309,2474,1.133,2475,1.203,2476,1.203,2477,1.203,2478,0.886,2479,1.081,2480,1.203,2481,1.309,2482,2.198,2483,3.036,2484,1.203,2485,1.039,2486,1.309,2487,1.309]],["component/30",[7,0.29]],["keyword/30",[]],["title/31-1",[344,20.187,2488,54.716]],["name/31-1",[]],["text/31-1",[]],["component/31-1",[]],["keyword/31-1",[]],["title/31-2",[344,14.908,869,28.348,1179,30.191,2489,42.028]],["name/31-2",[]],["text/31-2",[]],["component/31-2",[]],["keyword/31-2",[]],["title/31-3",[344,20.187,1635,49.958]],["name/31-3",[]],["text/31-3",[]],["component/31-3",[]],["keyword/31-3",[]],["title/31-4",[344,20.187,2490,46.654]],["name/31-4",[]],["text/31-4",[]],["component/31-4",[]],["keyword/31-4",[]],["title/31-5",[344,20.187,2490,46.654]],["name/31-5",[]],["text/31-5",[]],["component/31-5",[]],["keyword/31-5",[]],["title/31-6",[344,17.151,2490,39.636,2491,46.486]],["name/31-6",[]],["text/31-6",[]],["component/31-6",[]],["keyword/31-6",[]],["title/31-7",[344,17.151,1601,44.934,2490,39.636]],["name/31-7",[]],["text/31-7",[]],["component/31-7",[]],["keyword/31-7",[]],["title/31-8",[344,17.151,2490,39.636,2492,46.486]],["name/31-8",[]],["text/31-8",[]],["component/31-8",[]],["keyword/31-8",[]],["title/31-9",[138,22.671,344,14.908,869,28.348,1354,27.416]],["name/31-9",[]],["text/31-9",[]],["component/31-9",[]],["keyword/31-9",[]],["title/31-10",[344,17.151,2213,40.481,2493,43.606]],["name/31-10",[]],["text/31-10",[]],["component/31-10",[]],["keyword/31-10",[]],["title/31-11",[104,31.884,344,17.151,1065,24.373]],["name/31-11",[]],["text/31-11",[]],["component/31-11",[]],["keyword/31-11",[]],["title/31-12",[344,17.151,1216,39.636,2494,46.486]],["name/31-12",[]],["text/31-12",[]],["component/31-12",[]],["keyword/31-12",[]],["title/31-13",[344,20.187,2495,63.334]],["name/31-13",[]],["text/31-13",[]],["component/31-13",[]],["keyword/31-13",[]],["title/31-14",[344,17.151,1065,24.373,1711,43.606]],["name/31-14",[]],["text/31-14",[]],["component/31-14",[]],["keyword/31-14",[]],["title/31-15",[344,20.187,1096,52.89]],["name/31-15",[]],["text/31-15",[]],["component/31-15",[]],["keyword/31-15",[]],["title/31-16",[59,50.683,344,17.151,963,27.945]],["name/31-16",[]],["text/31-16",[]],["component/31-16",[]],["keyword/31-16",[]],["title/31-17",[344,17.151,1065,24.373,1484,35.737]],["name/31-17",[]],["text/31-17",[]],["component/31-17",[]],["keyword/31-17",[]],["title/31-18",[344,17.151,1484,35.737,2004,43.606]],["name/31-18",[]],["text/31-18",[]],["component/31-18",[]],["keyword/31-18",[]],["title/31-19",[344,17.151,1484,35.737,2229,35.221]],["name/31-19",[]],["text/31-19",[]],["component/31-19",[]],["keyword/31-19",[]],["title/31-20",[344,17.151,926,36.284,1484,35.737]],["name/31-20",[]],["text/31-20",[]],["component/31-20",[]],["keyword/31-20",[]],["title/31-21",[344,20.187,2004,51.326]],["name/31-21",[]],["text/31-21",[]],["component/31-21",[]],["keyword/31-21",[]],["title/31-22",[344,20.187,2496,56.91]],["name/31-22",[]],["text/31-22",[]],["component/31-22",[]],["keyword/31-22",[]],["title/31-23",[344,20.187,1363,26.99]],["name/31-23",[]],["text/31-23",[]],["component/31-23",[]],["keyword/31-23",[]],["title/31-24",[889,19.296,2497,51.326]],["name/31-24",[]],["text/31-24",[]],["component/31-24",[]],["keyword/31-24",[]],["title/31-25",[889,19.296,2498,51.326]],["name/31-25",[]],["text/31-25",[]],["component/31-25",[]],["keyword/31-25",[]],["title/31-26",[344,20.187,1384,44.901]],["name/31-26",[]],["text/31-26",[]],["component/31-26",[]],["keyword/31-26",[]],["title/31-27",[344,20.187,2499,59.657]],["name/31-27",[]],["text/31-27",[]],["component/31-27",[]],["keyword/31-27",[]],["title/31-28",[344,20.187,2500,47.648]],["name/31-28",[]],["text/31-28",[]],["component/31-28",[]],["keyword/31-28",[]],["title/31-29",[344,17.151,1363,22.93,1479,36.864]],["name/31-29",[]],["text/31-29",[]],["component/31-29",[]],["keyword/31-29",[]],["title/31-30",[885,27.945,953,20.376,2281,39.636]],["name/31-30",[]],["text/31-30",[]],["component/31-30",[]],["keyword/31-30",[]],["title/31-31",[344,20.187,1236,42.064]],["name/31-31",[]],["text/31-31",[]],["component/31-31",[]],["keyword/31-31",[]],["title/31-32",[344,20.187,1363,26.99]],["name/31-32",[]],["text/31-32",[]],["component/31-32",[]],["keyword/31-32",[]],["title/31-33",[344,20.187,133
11,36.357]],["name/31-33",[]],["text/31-33",[]],["component/31-33",[]],["keyword/31-33",[]],["title/31-34",[344,17.151,1331,30.888,2130,30.279]],["name/31-34",[]],["text/31-34",[]],["component/31-34",[]],["keyword/31-34",[]],["title/31-35",[344,17.151,2501,40.481,2502,48.349]],["name/31-35",[]],["text/31-35",[]],["component/31-35",[]],["keyword/31-35",[]],["title/31-36",[232,40.408,344,14.908,1154,26.849,2489,42.028]],["name/31-36",[]],["text/31-36",[]],["component/31-36",[]],["keyword/31-36",[]],["title/31-37",[344,20.187,2503,45.742]],["name/31-37",[]],["text/31-37",[]],["component/31-37",[]],["keyword/31-37",[]],["title/31-38",[344,20.187,2504,59.657]],["name/31-38",[]],["text/31-38",[]],["component/31-38",[]],["keyword/31-38",[]],["title/31-39",[344,20.187,2505,51.326]],["name/31-39",[]],["text/31-39",[]],["component/31-39",[]],["keyword/31-39",[]],["title/31-40",[344,17.151,2505,43.606,2506,38.862]],["name/31-40",[]],["text/31-40",[]],["component/31-40",[]],["keyword/31-40",[]],["title/31-41",[344,20.187,774,35.298]],["name/31-41",[]],["text/31-41",[]],["component/31-41",[]],["keyword/31-41",[]],["title/31-42",[344,20.187,1798,54.716]],["name/31-42",[]],["text/31-42",[]],["component/31-42",[]],["keyword/31-42",[]],["title/31-43",[344,20.187,1631,45.742]],["name/31-43",[]],["text/31-43",[]],["component/31-43",[]],["keyword/31-43",[]],["title/31-44",[344,20.187,953,23.984]],["name/31-44",[]],["text/31-44",[]],["component/31-44",[]],["keyword/31-44",[]],["title/31-45",[885,27.945,889,16.393,953,20.376]],["name/31-45",[]],["text/31-45",[]],["component/31-45",[]],["keyword/31-45",[]],["title/31-46",[344,17.151,869,32.613,1260,36.284]],["name/31-46",[]],["text/31-46",[]],["component/31-46",[]],["keyword/31-46",[]],["title/31-47",[344,20.187,2210,47.648]],["name/31-47",[]],["text/31-47",[]],["component/31-47",[]],["keyword/31-47",[]],["title/31-48",[344,17.151,1364,29.169,2210,40.481]],["name/31-48",[]],["text/31-48",[]],["component/31-48",[]],["keyword/31-48",[]],["title/31-49",[344,17.151,2210,40.481,2507,44.934]],["name/31-49",[]],["text/31-49",[]],["component/31-49",[]],["keyword/31-49",[]],["title/31-50",[344,17.151,880,38.862,2508,38.862]],["name/31-50",[]],["text/31-50",[]],["component/31-50",[]],["keyword/31-50",[]],["title/31-51",[344,17.151,897,33.403,1065,24.373]],["name/31-51",[]],["text/31-51",[]],["component/31-51",[]],["keyword/31-51",[]],["title/31-52",[344,17.151,823,36.284,2211,35.737]],["name/31-52",[]],["text/31-52",[]],["component/31-52",[]],["keyword/31-52",[]],["title/31-53",[344,17.151,841,27.07,869,32.613]],["name/31-53",[]],["text/31-53",[]],["component/31-53",[]],["keyword/31-53",[]],["title/31-54",[344,20.187,1388,40.335]],["name/31-54",[]],["text/31-54",[]],["component/31-54",[]],["keyword/31-54",[]],["title/31-55",[344,17.151,840,29.707,1388,34.268]],["name/31-55",[]],["text/31-55",[]],["component/31-55",[]],["keyword/31-55",[]],["title/31-56",[344,17.151,840,29.707,1388,34.268]],["name/31-56",[]],["text/31-56",[]],["component/31-56",[]],["keyword/31-56",[]],["title/31-57",[344,14.908,840,25.823,995,39.059,1388,29.787]],["name/31-57",[]],["text/31-57",[]],["component/31-57",[]],["keyword/31-57",[]],["title/31-58",[77,36.864,344,17.151,811,33.403]],["name/31-58",[]],["text/31-58",[]],["component/31-58",[]],["keyword/31-58",[]],["title/31",[344,20.187,1103,34.333]],["name/31",[1103,0.863]],["text/31",[0,0.141,3,0.161,7,1.337,9,0.467,10,0.132,11,3.14,16,1.951,
118,0.136,28,1.693,34,0.14,35,0.168,36,3.243,37,0.55,39,0.293,41,0.129,42,0.197,43,0.905,45,0.175,47,0.306,50,1.732,51,0.877,54,3.683,57,1.57,59,0.214,62,0.293,74,0.159,75,1.085,77,1.564,80,1.438,81,1.112,83,0.592,87,1.925,88,0.19,89,1.804,91,1.272,93,0.859,101,0.616,103,0.131,104,1.783,108,0.161,110,0.122,111,0.651,112,0.268,113,0.833,115,0.353,119,0.136,120,0.121,122,1.348,123,1.454,125,0.713,126,1.728,128,0.348,130,0.447,133,0.171,138,3.642,142,0.293,145,0.467,148,0.132,149,2.996,153,0.301,154,0.141,156,0.228,160,0.204,164,0.399,165,0.942,166,0.616,169,1.371,170,0.971,176,0.14,177,0.378,188,0.78,189,4.951,190,0.463,198,2.624,199,1.909,200,0.156,203,0.317,206,0.981,207,0.622,211,0.902,217,1.139,218,0.151,221,0.592,223,0.852,227,0.214,228,0.285,229,0.274,232,0.197,233,0.92,234,0.869,236,1.564,237,2.355,241,3.577,250,1.093,251,0.52,259,0.931,262,0.281,265,0.598,279,0.138,280,0.179,293,0.138,325,0.228,329,0.179,334,0.456,335,2.11,339,0.336,344,3.12,345,2.724,346,0.145,350,0.53,355,1.141,359,0.852,362,1.936,364,1.534,367,0.143,370,0.695,371,1.53,375,0.534,379,0.52,382,0.668,389,0.839,391,0.769,394,0.179,395,0.345,396,1.674,397,0.971,398,0.149,399,1.245,402,0.543,409,0.159,420,1.659,421,0.673,471,0.817,554,0.204,649,0.204,685,0.467,690,1.338,695,0.551,698,0.123,700,0.175,701,0.751,702,0.918,708,0.249,710,0.391,711,0.149,713,0.164,715,0.65,716,0.159,717,0.168,724,0.285,725,0.968,728,0.676,730,1.169,738,0.175,741,0.151,747,0.133,759,0.431,761,0.603,766,0.345,767,1.219,774,0.699,775,0.534,777,0.301,778,1.053,779,0.55,789,0.268,790,0.121,792,0.768,797,1.454,798,0.268,802,0.297,803,1.245,805,0.135,806,0.447,811,1.417,812,0.344,817,0.616,819,0.262,821,1.091,822,0.506,823,0.845,828,1.922,829,1.216,831,0.336,835,1.201,840,2.919,841,4.166,843,0.651,845,2.001,846,0.281,851,1.411,854,0.301,855,0.141,857,1.743,858,1.099,861,0.357,862,0.449,864,1.01,865,0.214,866,1.195,867,2.012,868,0.171,869,2.134,870,4.131,871,0.171,879,0.151,880,1.039,881,0.767,882,1.59,883,3.558,884,0.82,885,4.091,888,0.171,889,2.523,894,4.089,896,0.798,897,0.778,898,0.859,901,0.409,902,0.501,903,2.582,911,0.156,912,0.153,913,0.659,914,0.948,917,0.695,926,0.716,936,0.19,939,0.686,941,1.748,942,1.175,944,0.402,947,0.179,948,0.485,952,1.131,953,3.021,954,0.895,955,1.345,957,1.321,958,1.423,959,0.262,963,2.068,964,0.159,966,0.329,969,0.151,972,0.52,973,0.929,975,3.147,977,0.741,982,0.204,983,0.179,985,0.719,986,0.456,988,2.263,989,0.129,994,3.844,995,1.201,999,0.168,1001,0.386,1003,0.175,1008,0.171,1009,0.507,1013,0.705,1014,0.136,1015,0.184,1016,0.344,1018,1.545,1019,1.103,1020,1.06,1022,0.386,1025,0.82,1034,0.317,1039,0.19,1040,0.164,1044,0.586,1045,0.242,1048,0.175,1055,0.862,1057,0.184,1059,0.204,1062,0.147,1063,3.038,1065,2.359,1066,0.19,1067,0.431,1070,0.138,1072,0.382,1075,0.659,1079,0.175,1081,0.438,1082,0.147,1085,0.19,1086,0.751,1087,0.228,1088,1.634,1092,0.971,1096,0.55,1098,0.399,1100,0.718,1101,1.383,1103,0.123,1104,4.217,1112,0.171,1114,0.149,1115,0.238,1122,0.204,1123,0.705,1125,2.386,1128,0.179,1130,1.444,1135,0.569,1141,1.039,1154,1.727,1157,0.168,1158,0.329,1161,0.592,1166,0.994,1172,3.092,1173,0.204,1174,0.153,1175,0.923,1177,3.928,1179,3.747,1180,0.135,1181,2.697,1187,0.61,1189,1.546,1190,0.402,1192,0.132,1201,0.438,1202,0.705,1205,0.476,1210,1.302,1211,1.539,1212,0.161,1213,0.265,1214,0.168,1216,2.011,1219,0.164,1221,0.399,1225,0.179,1227,0.371,1234,1.681,1236,2.571,1238,1.016,1239,2.908,1240,0.576,1247,0.311,1252,0.746,1253,0.565,1258,0.214,1260,3.511,1265,0.353,1266,0.171,1281,0.268,1283,0.859,1287,0.78,1288,0.386,1291,0.651,1292,0.362,1294,0.382,1295,3.016,1296,1.572,1297,1.467,1298,0.311,1303,0.156,1305,0.55,1306,2.656,1312,1.59,1316,0.164,1319,0.799,1321,1.322,1322,0.175,1325,0.353,1326,1.169,1330,0.159,1331,0.61,1335,0.818,1336,1.39,1339,1.107,1344,1.099,1345,0.161,1351,0.131,1352,2.277,1353,0.862,1354,1.516,1355,2.157,1356,0.323,1358,0.616,1360,0.161,1361,1.875,1362,0.344,1363,2.878,1364,1.321,1365,3.025,1368,0.65,1372,1.343,1373,0.354,1374,0.862,1375,1.322,1378,0.171,1382,1.293,1383,0.268,1384,0.467,1385,3.426,1386,0.161,1388,1.739,1391,0.184,1392,0.143,1395,0.171,1396,0.143,1397,0.467,1406,0.681,1419,0.168,1420,0.159,1424,0.323,1425,0.904,1427,2.521,1429,0.156,1430,0.382,1431,1.184,1432,3.807,1435,1.184,1436,0.254,1438,0.19,1439,0.149,1441,0.486,1443,1.004,1444,1.618,1446,2.881,1447,0.179,1448,0.852,1455,0.175,1457,0.151,1458,0.127,1459,0.161,1462,0.373,1464,0.19,1472,0.171,1476,0.184,1479,0.452,1480,0.467,1482,0.402,1483,0.184,1484,1.075,1501,0.329,1502,0.311,1506,0.197,1509,0.317,1510,0.317,1511,0.329,1512,0.329,1518,0.297,1520,0.862,1522,0.153,1525,0.171,1533,2.494,1536,0.574,1537,1.762,1542,2.652,1544,1.39,1545,0.323,1550,0.353,1553,0.159,1554,3.4,1555,0.19,1556,1.822,1557,0.681,1561,0.159,1564,0.373,1571,0.265,1573,1.173,1575,4.608,1577,1.039,1582,0.832,1585,0.214,1586,0.164,1594,0.159,1596,0.204,1597,0.156,1598,0.861,1601,1.047,1610,0.175,1613,0.496,1618,1.366,1624,0.262,1629,0.171,1631,1.416,1632,1.618,1635,0.52,1638,0.175,1658,0.362,1667,0.214,1669,0.476,1671,0.344,1672,0.214,1673,0.204,1674,0.19,1677,0.175,1692,1.379,1698,0.767,1704,0.651,1706,0.153,1708,1.091,1711,0.184,1714,1.083,1722,0.175,1724,0.444,1725,1.175,1726,0.476,1729,0.569,1731,0.204,1732,0.534,1738,0.782,1741,0.228,1747,0.524,1752,0.168,1762,0.156,1764,0.19,1770,0.592,1774,0.873,1787,0.228,1791,0.204,1794,1.681,1796,0.323,1797,0.402,1798,1.548,1804,0.659,1810,0.476,1820,0.447,1821,0.19,1822,2.827,1824,0.344,1826,0.621,1829,0.306,1830,0.317,1834,0.171,1836,0.344,1839,0.431,1842,0.534,1848,0.285,1855,0.676,1860,0.317,1864,0.864,1865,0.917,1872,0.228,1880,0.141,1887,0.228,1890,0.373,1899,0.14,1905,0.214,1906,0.161,1908,0.19,1909,0.476,1912,0.485,1913,0.776,1917,0.197,1923,1.584,1931,1.265,1934,2.264,1975,0.19,1991,0.329,1997,0.507,2001,0.164,2003,0.179,2004,0.7,2005,0.214,2006,0.214,2007,0.179,2011,0.942,2015,0.204,2031,0.873,2054,0.485,2058,0.175,2059,0.534,2087,0.353,2088,1.127,2089,0.197,2101,0.168,2113,0.204,2122,0.621,2123,0.353,2125,3.035,2127,1.666,2130,2.531,2133,2.2,2134,1.814,2140,1.847,2151,0.621,2155,0.184,2156,0.214,2157,0.421,2158,0.14,2174,1.03,2176,0.19,2177,0.168,2178,0.19,2179,0.814,2180,0.214,2181,0.55,2189,0.228,2190,0.147,2208,0.171,2210,2.054,2211,2.571,2212,1.727,2213,0.336,2214,0.19,2215,0.373,2221,0.887,2223,0.373,2229,2.534,2244,0.197,2253,0.179,2264,1.534,2266,0.197,2271,
10.52,2281,2.503,2287,1.743,2296,0.171,2307,1.905,2310,2.374,2316,0.197,2325,0.97,2327,0.534,2328,0.19,2348,0.681,2349,0.746,2351,0.329,2353,0.665,2397,0.402,2406,0.184,2427,0.447,2433,0.887,2454,0.175,2478,2.933,2479,0.592,2488,1.243,2489,2.704,2490,2.41,2491,0.917,2492,1.083,2493,0.362,2494,1.835,2495,0.228,2496,0.592,2497,1.974,2498,1.85,2499,0.214,2500,0.496,2501,0.336,2502,0.204,2503,1.294,2504,0.214,2505,1.016,2506,1.039,2507,0.721,2508,0.476,2509,0.776,2510,0.248,2511,0.248,2512,0.621,2513,0.248,2514,0.362,2515,0.954,2516,0.421,2517,0.248,2518,0.486,2519,0.248,2520,0.248,2521,0.248,2522,1.343,2523,0.248,2524,0.486,2525,0.248,2526,1.847,2527,1.548,2528,0.864,2529,0.329,2530,2.41,2531,0.248,2532,1.506,2533,0.621,2534,0.248,2535,0.248,2536,0.228,2537,0.467,2538,0.248,2539,0.248,2540,0.248,2541,0.248,2542,0.659,2543,0.228,2544,0.248,2545,0.248,2546,0.248,2547,0.214,2548,0.248,2549,0.621,2550,2.295,2551,2.436,2552,0.248,2553,0.248,2554,0.19,2555,0.248,2556,0.248,2557,0.486,2558,0.248,2559,1,2560,0.248,2561,1.546,2562,1.06,2563,0.248,2564,0.746,2565,0.248,2566,0.248,2567,0.248,2568,0.248,2569,0.248,2570,0.248,2571,0.228,2572,0.248,2573,0.248,2574,0.486,2575,0.248,2576,0.248,2577,0.659,2578,0.248,2579,0.248,2580,0.248,2581,0.248,2582,0.248,2583,0.248,2584,0.248,2585,0.179,2586,0.248,2587,0.248,2588,0.248,2589,0.248,2590,0.248,2591,0.248,2592,0.248,2593,0.214,2594,0.248,2595,1.524,2596,0.94,2597,0.248,2598,0.659,2599,0.717,2600,0.248,2601,0.248,2602,1.083,2603,0.248,2604,0.248,2605,0.248,2606,0.248,2607,0.204,2608,0.248,2609,0.248,2610,0.248,2611,2.412,2612,2.28,2613,0.668,2614,0.248,2615,0.228,2616,0.569,2617,0.569,2618,0.954,2619,0.228,2620,1.618,2621,0.864,2622,1.155,2623,0.248,2624,0.248,2625,0.248,2626,0.248,2627,0.228,2628,0.248,2629,0.248,2630,0.447,2631,1.181,2632,0.184,2633,0.624,2634,0.228,2635,1.548,2636,0.534,2637,1.902,2638,0.248,2639,0.248,2640,0.248,2641,0.402,2642,0.248,2643,0.248,2644,0.447,2645,0.507,2646,0.248,2647,0.248,2648,0.248,2649,0.248,2650,0.248,2651,0.248,2652,0.717,2653,0.228,2654,0.248,2655,0.248,2656,0.248,2657,0.452,2658,0.204,2659,0.19,2660,0.486,2661,0.248,2662,0.248,2663,0.248,2664,0.248,2665,0.248,2666,0.485,2667,0.248,2668,0.248,2669,0.214,2670,0.248,2671,0.447,2672,0.248,2673,0.248,2674,0.248,2675,0.248,2676,0.197,2677,0.486,2678,0.776,2679,0.716,2680,0.248,2681,0.248,2682,0.248,2683,0.214,2684,0.248,2685,0.248,2686,0.248,2687,0.248,2688,0.248,2689,0.248,2690,0.248,2691,2.095,2692,0.248,2693,0.248,2694,0.228,2695,0.228,2696,1.243,2697,0.248,2698,0.248,2699,0.386,2700,0.248,2701,0.248,2702,0.248,2703,0.248,2704,0.248,2705,0.248,2706,0.569,2707,0.248,2708,0.248,2709,0.248,2710,0.248,2711,0.248,2712,0.248,2713,0.248,2714,0.248,2715,0.421,2716,0.659,2717,0.362,2718,1.454,2719,0.248,2720,3.4,2721,0.248,2722,0.248,2723,0.248,2724,0.329,2725,0.248,2726,0.248,2727,0.248,2728,0.248,2729,0.248,2730,0.248,2731,0.447,2732,0.248,2733,1.047,2734,0.248,2735,0.248,2736,0.248,2737,0.248,2738,0.248,2739,0.248,2740,0.248,2741,0.248,2742,0.248,2743,0.486,2744,0.248,2745,0.248,2746,0.184,2747,0.248,2748,0.248,2749,0.248,2750,0.248,2751,0.248,2752,0.248,2753,0.248,2754,0.248,2755,0.248,2756,0.248,2757,0.248,2758,0.486,2759,0.717,2760,0.248,2761,0.486,2762,0.248,2763,0.248,2764,0.248,2765,0.989,2766,0.248,2767,0.248,2768,0.248,2769,0.248,2770,0.248,2771,0.248,2772,0.248,2773,0.248,2774,0.248,2775,0.228,2776,0.248,2777,0.248,2778,0.248,2779,0.248,2780,0.248,2781,0.248,2782,0.214,2783,0.592,2784,0.421,2785,0.248,2786,0.776,2787,0.534,2788,0.204,2789,0.248,2790,1.062,2791,0.248,2792,0.248,2793,0.228,2794,0.486,2795,0.447,2796,0.248,2797,0.447,2798,0.248,2799,0.486,2800,0.248,2801,0.486,2802,0.248,2803,0.486,2804,0.248,2805,0.486,2806,0.248,2807,0.486,2808,0.248,2809,0.248,2810,0.248,2811,0.447,2812,1.126,2813,0.204,2814,0.214,2815,0.184,2816,0.175,2817,0.228,2818,0.204,2819,0.214,2820,0.278,2821,0.228,2822,0.228,2823,0.94,2824,0.214,2825,0.159,2826,0.447,2827,0.486,2828,0.228,2829,0.179,2830,0.164,2831,0.197,2832,0.248,2833,0.592,2834,0.248,2835,0.248,2836,0.301,2837,0.248,2838,0.864,2839,1.126,2840,0.248,2841,0.486,2842,0.447,2843,0.486,2844,0.534,2845,0.447,2846,0.486,2847,0.887,2848,0.248,2849,0.248,2850,0.248,2851,0.248,2852,0.248,2853,0.168,2854,0.184,2855,0.55,2856,0.179,2857,0.248,2858,0.248,2859,0.248,2860,0.248,2861,0.248,2862,0.248,2863,0.248,2864,0.402,2865,0.248,2866,0.248,2867,0.373,2868,0.197,2869,0.214,2870,0.248,2871,0.248,2872,0.248,2873,0.228,2874,0.248,2875,0.248,2876,0.248,2877,0.248,2878,0.248,2879,0.248,2880,0.362,2881,0.248,2882,0.184,2883,0.248,2884,0.197,2885,0.248,2886,0.248,2887,0.214,2888,0.248,2889,0.248,2890,0.248,2891,0.248,2892,0.248,2893,0.248,2894,0.248,2895,0.228,2896,0.592,2897,0.214,2898,0.248,2899,0.204,2900,0.248,2901,0.214,2902,0.204,2903,0.159,2904,0.248,2905,0.248,2906,0.336,2907,0.248,2908,0.228,2909,0.228,2910,0.19,2911,0.954,2912,1.694,2913,0.659,2914,0.486,2915,0.248,2916,0.486,2917,0.248,2918,0.814,2919,0.248,2920,0.864,2921,0.486,2922,0.486,2923,0.248,2924,0.248,2925,0.248,2926,0.248,2927,0.814,2928,0.248,2929,0.447,2930,0.248,2931,0.486,2932,0.248,2933,0.486,2934,0.717,2935,0.486,2936,0.248,2937,0.94,2938,0.228,2939,0.864,2940,0.864,2941,0.228,2942,0.248,2943,0.248,2944,0.228,2945,0.248,2946,0.228,2947,0.228,2948,0.248,2949,0.228,2950,0.248,2951,0.248,2952,0.228,2953,0.248,2954,0.248,2955,0.248,2956,0.228,2957,0.228,2958,0.228,2959,0.248,2960,0.248,2961,0.228,2962,0.248,2963,0.228,2964,0.228,2965,0.228,2966,0.248,2967,0.659,2968,0.228,2969,0.447,2970,0.214,2971,0.248,2972,0.248,2973,0.248,2974,0.248,2975,0.248,2976,0.248,2977,0.248,2978,0.248,2979,0.248,2980,0.248,2981,0.248,2982,0.248,2983,0.248,2984,0.248,2985,0.248,2986,0.248,2987,0.248,2988,0.248,2989,0.248,2990,0.447,2991,0.248,2992,0.248,2993,0.248,2994,0.248,2995,0.659,299
16,1.243,2997,0.204,2998,0.717,2999,0.402,3000,0.717,3001,0.19,3002,0.228,3003,0.386,3004,0.184,3005,1.774,3006,0.336,3007,0.486,3008,0.248,3009,0.248,3010,0.336,3011,0.171,3012,0.248,3013,0.248,3014,0.248,3015,0.248,3016,0.421,3017,0.486,3018,0.248,3019,0.248,3020,0.228,3021,0.179,3022,0.228,3023,0.659,3024,0.621,3025,0.447,3026,0.228,3027,0.486,3028,0.248,3029,0.386,3030,0.248,3031,0.228,3032,0.373,3033,0.228,3034,0.248,3035,0.248,3036,0.248,3037,0.228,3038,0.228,3039,0.248,3040,0.248,3041,0.362,3042,0.248,3043,0.248,3044,0.228,3045,0.214,3046,0.248,3047,0.248,3048,0.228,3049,0.421,3050,0.248,3051,0.248,3052,0.179,3053,0.248,3054,0.248,3055,0.248,3056,0.248,3057,0.248,3058,0.248,3059,0.248,3060,0.214,3061,0.447,3062,0.814,3063,0.486,3064,0.486,3065,1.181,3066,0.746,3067,0.486,3068,0.486,3069,0.248,3070,0.248,3071,0.248,3072,0.248,3073,0.248,3074,0.248,3075,0.248,3076,0.486,3077,0.486,3078,0.486,3079,0.421,3080,1.364,3081,0.486,3082,0.665,3083,0.814,3084,0.486,3085,0.486,3086,1.364,3087,0.486,3088,0.486,3089,0.353,3090,0.486,3091,2.483,3092,0.94,3093,0.486,3094,0.534,3095,0.486,3096,0.421,3097,0.486,3098,0.486,3099,1.047,3100,0.486,3101,0.486,3102,0.486,3103,0.486,3104,0.486,3105,0.486,3106,0.486,3107,0.486,3108,0.864,3109,0.94,3110,0.486,3111,0.486,3112,1.126,3113,0.486,3114,0.486,3115,0.421,3116,0.486,3117,0.447,3118,0.486,3119,0.7,3120,0.486,3121,0.486,3122,1.364,3123,0.486,3124,0.486,3125,0.486,3126,0.486,3127,0.486,3128,0.486,3129,0.486,3130,0.386,3131,0.402,3132,0.248,3133,0.214,3134,0.214,3135,0.228,3136,0.386,3137,0.353,3138,0.228,3139,0.228,3140,0.204,3141,0.248,3142,0.248,3143,0.228,3144,0.248,3145,0.486,3146,1.155,3147,0.486,3148,0.486,3149,0.248,3150,0.248,3151,0.248,3152,0.214,3153,0.486,3154,0.248,3155,0.248,3156,0.248,3157,0.248,3158,0.248,3159,0.248,3160,0.248,3161,0.184,3162,0.248,3163,0.248,3164,0.248,3165,0.228,3166,0.248,3167,0.248,3168,0.248,3169,0.184,3170,0.248,3171,0.402,3172,0.214,3173,0.248,3174,0.248,3175,0.228,3176,0.447,3177,0.228,3178,0.228,3179,0.248,3180,0.353,3181,0.421,3182,0.248,3183,0.248,3184,0.248,3185,0.248,3186,0.248,3187,0.248,3188,0.486,3189,0.248,3190,0.248,3191,0.248,3192,0.248,3193,0.248,3194,0.248,3195,0.248,3196,1.454,3197,0.421,3198,0.248,3199,0.214,3200,0.228,3201,0.248,3202,0.204,3203,0.285,3204,0.248,3205,0.248,3206,0.248,3207,0.197,3208,0.248,3209,0.248,3210,0.248,3211,0.55,3212,0.228,3213,0.228,3214,0.248,3215,0.248,3216,0.248,3217,0.248,3218,0.659,3219,0.248,3220,0.248,3221,0.248,3222,0.248,3223,0.248,3224,0.248,3225,0.248,3226,0.248,3227,0.248,3228,0.248,3229,0.248,3230,0.248,3231,0.248,3232,0.184,3233,0.248,3234,0.486,3235,0.248,3236,0.248,3237,0.486,3238,0.248,3239,0.248,3240,0.402,3241,0.248,3242,0.248,3243,0.248,3244,0.248,3245,0.248,3246,0.248,3247,0.248,3248,0.248,3249,0.175,3250,0.248,3251,0.248,3252,0.248,3253,0.248,3254,0.248,3255,0.248,3256,0.248,3257,0.248,3258,0.447,3259,0.248,3260,0.248,3261,0.248,3262,0.19,3263,0.248,3264,0.362,3265,0.204,3266,0.248,3267,0.228,3268,0.685,3269,0.248,3270,0.248,3271,0.248,3272,0.293,3273,0.248,3274,0.248,3275,0.248,3276,0.184,3277,0.179,3278,0.248,3279,0.248,3280,0.214,3281,0.248,3282,0.248,3283,1.253,3284,1.364,3285,0.248,3286,0.248,3287,0.248,3288,0.248,3289,0.228,3290,0.228,3291,0.248,3292,0.248,3293,0.248,3294,0.248,3295,0.248,3296,0.248,3297,0.248,3298,0.214,3299,0.248,3300,0.248,3301,0.248,3302,0.228,3303,0.204,3304,0.421,3305,0.248,3306,0.248,3307,0.248,3308,0.248,3309,0.248,3310,0.248,3311,0.248,3312,0.248,3313,0.248,3314,0.248,3315,0.621,3316,0.447,3317,0.248,3318,0.717,3319,0.717,3320,0.717,3321,0.717,3322,0.248,3323,0.717,3324,0.55,3325,0.717,3326,0.94,3327,0.248,3328,0.248,3329,0.228,3330,0.248,3331,0.248,3332,0.248,3333,0.248,3334,0.659,3335,0.248,3336,0.248,3337,0.228,3338,0.248,3339,0.486,3340,0.248,3341,0.248,3342,0.486,3343,0.248,3344,0.248,3345,0.248,3346,0.55,3347,0.248,3348,0.248,3349,0.248,3350,0.248,3351,0.204,3352,0.248,3353,0.248,3354,0.248,3355,0.214,3356,0.164,3357,0.248,3358,0.248,3359,0.248]],["component/31",[7,0.29]],["keyword/31",[]],["title/32-1",[903,37.038]],["name/32-1",[]],["text/32-1",[]],["component/32-1",[]],["keyword/32-1",[]],["title/32",[259,19.256,355,19.921,952,15.356,955,13.7,1065,16.794,1728,30.047]],["name/32",[771,0.82]],["text/32",[7,1.856,10,2.308,11,3.804,57,1.838,75,4.521,80,1.901,81,3.176,89,1.972,101,2.983,115,3.139,120,3.914,128,2.101,149,1.888,178,2.568,188,3.288,189,2.526,198,4.563,211,3.38,234,2.138,259,4.595,262,2.501,344,2.342,355,4.754,359,4.355,361,3.719,362,5.827,395,2.084,404,3.323,420,1.943,691,2.726,692,2.605,698,2.157,717,2.931,726,4.38,728,2.534,732,3.575,759,3.97,792,2.878,797,2.119,817,1.957,822,2.332,829,3.23,857,2.119,859,3.748,867,2.713,868,2.993,870,2.177,883,2.919,889,2.504,903,2.919,952,4.514,953,1.507,955,3.582,963,2.066,973,3.915,984,3.748,986,3.203,988,4.671,997,3.323,1031,2.605,1042,3.139,1063,3.641,1065,4.638,1091,2.726,1092,2.157,1100,3.028,1211,2.683,1213,2.358,1216,4.468,1221,4.454,1240,3.984,1272,2.605,1287,2.157,1297,3.099,1303,2.726,1321,2.683,1358,2.308,1364,2.157,1375,4.09,1383,2.384,1392,3.813,1396,6.566,1427,1.957,1430,2.308,1440,2.931,1446,4.234,1451,2.772,1454,3.748,1484,4.028,1502,2.772,1520,3.634,1545,2.874,1556,2.308,1602,8.054,1624,2.332,1668,6.661,1677,3.062,1697,5.065,1707,3.575,1728,3.225,1738,4.468,1746,3.225,1762,2.726,1855,2.534,1858,2.821,1860,2.821,1866,3.062,1975,3.323,2009,3.979,2112,3.062,2125,4.718,2208,4.563,2235,3.575,2265,4.784,2307,4.468,2325,4.403,2612,3.323,2632,3.225,3232,3.225,3360,5.45,3361,3.225,3362,4.33,3363,10.267,3364,4.915,3365,3.748,3366,4.33,3367,3.225,3368,3.979,3369,4.33,3370,4.33,3371,4.33,3372,3.979,3373,3.748,3374,3.225,3375,3.979,3376,4.33,3377,4.33]],["component/32",[7,0.29]],["keyword/32",[]],["title/33-1",[1166,29.647,2211,42.064]],["name/33-1",[]],["text/33-1",[]],["component/33-1",[]],["keyword/33-1",[]],["title/33-2",[939,29.434,1724,36.284,2211,35.737]],["name/33-2",[]],["text/33-2",[]],["component/33-2",[]],["keyword/33-2",[]],["title/33-3",[1161,32.044,1166,21.894,1177,19.052,2212,33.159]],["name/33-3",[]],["text/33-3",[]],["component/33-3",[]],["keyword/33-3",[]],["title/33-4",[1143,33.403,1161,36.864,2212,38.147]],["name/33-4",[]],["text/33-4",[]],["component/33-4",[]],["keyword/33-4",[]],["title/33-5",[1166,19.363,1306,19.907,2133,23.507,2211,27.472,2212,29.325]],["name/33-5",[]],["text/33-5",[]],["component/33-5",[]],["keyword/33-5",[]],["title/33",[889,16.393,2211,35.737,3378,41.41]],["name/33",[771,0.82]],["text/33",[0,1.135,7,0.671,11,3.401,16,0.793,20,3.396,34,1.121,36,0.958,41,1.039,50,1.573,57,0.845,75,3.265,80,0.874,86,1.347,87,1.242,103,1.05,108,4.53,125,1.585,126,3.032,128,0.966,138,1.55,144,1.197,146,1.165,160,1.643,166,1.855,169,1.18,177,2.447,189,0.762,198,4.159,200,2.191,217,1.597,228,2.037,237,2.678,241,4.222,251,1.442,265,4.491,267,4.477,279,3.872,293,1.939,299,2.523,304,3.847,310,3.301,335,1.096,339,2.406,364,3.359,376,1.347,377,1.407,386,1.704,393,4.441,396,0.974,399,2.613,421,0.983,554,3.83,695,0.95,698,3.729,702,0.856,727,2.268,741,1.215,761,3.311,766,3.346,773,1.407,790,1.704,792,3.265,816,1.376,829,0.974,840,1.766,854,1.233,866,0.958,870,1.75,889,1.947,894,1,906,1.855,915,1.376,939,2.332,941,1.404,944,0.85,952,2.646,953,3.717,955,1.89,957,2.772,958,0.906,959,1.072,969,1.215,975,1.029,986,2.701,989,3.909,1015,2.592,1020,3.14,1027,1.986,1034,1.296,1044,1.01,1055,1.096,1063,3.797,1064,1.233,1072,1.061,1081,1.215,1082,1.18,1085,3.56,1090,3.602,1100,3.19,1103,0.991,1106,1.58,1114,1.197,1115,1.704,1116,7.299,1125,2.553,1129,3.013,1143,4.955,1149,1.321,1161,6.645,1166,3.22,1172,1.121,1174,2.157,1177,1.736,1189,1.442,1202,4.569,1211,4.639,1248,2.406,1296,2.065,1304,3.013,1306,4.724,1326,2.3
11,1344,1.962,1352,2.584,1368,1.376,1419,2.356,1425,2.011,1426,1.407,1427,3.59,1431,2.376,1520,1.917,1536,1.215,1553,1.274,1571,1.084,1586,3.693,1594,1.274,1616,1.643,1627,1.722,1657,2.671,1704,1.121,1725,1.917,1880,3.175,1909,5.765,1912,1.347,1917,1.58,1923,2.472,1931,2.752,1957,3.013,2004,2.592,2088,2.228,2101,1.347,2113,7.424,2133,4.536,2134,2.831,2143,1.482,2147,1.527,2153,1.347,2183,1.58,2190,2.065,2193,3.936,2211,7.169,2212,8.255,2214,3.56,2215,4.852,2223,5.336,2233,1.722,2273,1.407,2307,2.356,2325,1.096,2350,5.22,2454,1.407,2485,1.58,2537,1.296,2561,2.523,2618,2.874,2633,2.31,2815,1.482,2836,5.382,2882,1.482,2999,1.643,3041,2.592,3066,1.58,3137,6.045,3196,2.874,3199,6.018,3200,5.114,3298,6.018,3374,1.482,3379,6.952,3380,1.99,3381,9.262,3382,4.639,3383,1.99,3384,4.595,3385,4.639,3386,5.565,3387,4.639,3388,1.99,3389,4.639,3390,4.639,3391,3.48,3392,4.639,3393,4.639,3394,4.639,3395,4.639,3396,4.639,3397,3.48,3398,1.99,3399,1.829,3400,1.99,3401,2.763,3402,1.99,3403,3.683,3404,1.99,3405,1.58,3406,3.48,3407,1.99,3408,1.99,3409,1.829,3410,1.722,3411,3.48,3412,8.339,3413,6.952,3414,3.48,3415,1.99,3416,1.99,3417,1.527,3418,1.722,3419,5.565,3420,1.99,3421,3.48,3422,1.99,3423,3.48,3424,1.99,3425,1.99,3426,3.48,3427,1.99,3428,1.99,3429,1.99,3430,1.99,3431,1.99,3432,3.48,3433,1.99,3434,4.639,3435,6.322,3436,1.99,3437,3.48,3438,1.722,3439,1.829,3440,1.829,3441,1.99,3442,1.99,3443,1.99,3444,3.48,3445,1.99]],["component/33",[7,0.29]],["keyword/33",[]],["title/34-1",[1239,39.02]],["name/34-1",[]],["text/34-1",[]],["component/34-1",[]],["keyword/34-1",[]],["title/34-2",[953,23.984,1239,32.111]],["name/34-2",[]],["text/34-2",[]],["component/34-2",[]],["keyword/34-2",[]],["title/34-3",[883,30.481,889,19.296]],["name/34-3",[]],["text/34-3",[]],["component/34-3",[]],["keyword/34-3",[]],["title/34-4",[198,19.817,1239,23.714,2493,37.904,2617,40.408]],["name/34-4",[]],["text/34-4",[]],["component/34-4",[]],["keyword/34-4",[]],["title/34-5",[889,19.296,944,29.449]],["name/34-5",[]],["text/34-5",[]],["component/34-5",[]],["keyword/34-5",[]],["title/34-6",[1239,32.111,3130,54.716]],["name/34-6",[]],["text/34-6",[]],["component/34-6",[]],["keyword/34-6",[]],["title/34-7",[1239,32.111,3131,56.91]],["name/34-7",[]],["text/34-7",[]],["component/34-7",[]],["keyword/34-7",[]],["title/34-8",[1239,27.281,2247,46.486,2506,38.862]],["name/34-8",[]],["text/34-8",[]],["component/34-8",[]],["keyword/34-8",[]],["title/34-9",[2247,54.716,3446,63.334]],["name/34-9",[]],["text/34-9",[]],["component/34-9",[]],["keyword/34-9",[]],["title/34-10",[1177,25.799,1239,32.111]],["name/34-10",[]],["text/34-10",[]],["component/34-10",[]],["keyword/34-10",[]],["title/34-11",[1177,21.918,1239,27.281,2506,38.862]],["name/34-11",[]],["text/34-11",[]],["component/34-11",[]],["keyword/34-11",[]],["title/34-12",[841,31.863,1385,39.317]],["name/34-12",[]],["text/34-12",[]],["component/34-12",[]],["keyword/34-12",[]],["title/34-13",[87,20.898,840,29.707,841,27.07]],["name/34-13",[]],["text/34-13",[]],["component/34-13",[]],["keyword/34-13",[]],["title/34",[7,13.285,953,23.984]],["name/34",[771,0.82]],["text/34",[0,0.708,2,1.412,7,2.292,10,1.215,11,3.591,15,2.706,16,3.38,26,0.648,28,1.634,37,0.953,47,0.782,50,1.03,51,0.618,54,1.56,55,1.025,57,3.599,62,0.747,75,1.07,81,1.52,83,0.782,87,0.813,89,0.565,101,0.561,103,0.655,104,1.241,113,0.53,115,4.098,117,0.795,119,2.517,120,1.115,122,0.858,125,0.565,126,2.244,145,0.809,148,0.662,149,1.707,160,1.882,164,0.967,166,0.662,175,1.391,176,0.7,177,0.655,181,0.597,182,2.058,184,0.84,185,1.612,188,1.135,189,4.697,190,1.267,198,3.517,199,0.618,203,1.008,206,0.691,211,1.167,217,1.046,221,0.782,223,0.676,231,0.878,233,0.648,236,1.435,237,1.097,250,1.167,259,0.592,335,2.156,344,3.34,345,0.588,359,4.088,367,1.825,369,0.727,386,1.916,388,0.769,389,1.684,391,0.7,395,0.597,396,2.767,397,0.618,398,1.371,399,2.147,402,1.317,420,1.756,421,1.125,425,4.729,471,1.612,681,0.878,690,0.669,692,0.747,695,1.088,698,1.135,701,0.684,702,1.966,708,1.618,716,0.795,724,0.727,725,0.955,741,1.391,749,0.925,761,2.022,766,1.884,767,3.802,774,2.341,775,1.697,778,1.56,790,1.546,792,1.707,797,0.608,798,0.684,802,0.758,803,1.612,805,1.72,814,0.809,817,1.769,822,0.669,825,0.727,835,1.749,840,3.489,841,3.821,843,0.592,845,0.727,846,0.717,854,0.769,857,1.115,864,1.853,866,1.52,867,1.298,870,2.842,874,1.576,883,3.995,884,0.747,885,1.088,889,2.821,894,1.146,896,0.727,902,2.087,903,4.195,906,1.215,913,1.3,935,1.412,941,2.464,944,2.416,948,2.138,952,0.472,953,2.508,954,2.361,955,0.774,957,0.618,958,2.343,963,1.088,972,0.9,973,0.736,975,3.727,977,0.588,988,3.189,989,1.65,995,1.749,997,0.953,999,5.874,1008,0.858,1011,0.655,1014,1.255,1025,1.472,1027,0.708,1044,2.319,1063,2.343,1064,1.412,1067,0.747,1068,0.769,1072,1.215,1088,0.878,1090,1.52,1091,4.329,1092,3.59,1100,0.57,1103,0.618,1114,0.747,1125,1.796,1135,0.986,1154,2.065,1166,0.98,1175,0.84,1176,0.953,1177,3.094,1179,1.874,1180,2.132,1189,0.9,1219,0.824,1239,5.8,1247,0.795,1267,0.63,1292,2.915,1295,2.066,1303,1.989,1306,1.731,1309,1.075,1319,0.858,1325,5.224,1326,2.097,1330,0.795,1331,0.655,1335,1.65,1336,0.809,1344,0.7,1352,0.691,1363,2.693,1365,0.588,1371,0.9,1372,2.465,1373,0.613,1374,1.255,1375,3.784,1385,3.483,1388,4.554,1405,1.391,1425,0.717,1427,3.257,1431,0.636,1432,0.708,1434,0.824,1435,1.618,1436,0.648,1440,1.543,1441,0.642,1446,1.495,1448,1.72,1461,1.928,1478,2.424,1479,0.782,1483,1.697,1501,0.84,1518,0.758,1520,0.684,1533,0.782,1545,0.824,1556,0.662,1558,0.925,1571,1.241,1577,2.598,1582,0.758,1588,1.882,1591,1.025,1597,0.782,1613,1.576,1614,0.986,1618,0.795,1621,0.953,1622,0.953,1623,0.953,1624,0.669,1629,5.19,1630,1.025,1631,0.824,1632,0.758,1633,1.075,1634,1.025,1635,0.9,1636,1.025,1637,1.075,1638,3.999,1639,1.075,1660,2.838,1663,3.004,1666,1.973,1669,0.824,1698,1.513,1747,0.691,1762,0.782,1770,1.025,1796,0.824,1822,1.317,1845,0.858,1857,0.953,1860,0.809,1880,0.708,1899,0.7,1906,2.058,1912,2.65,1925,1.809,2000,0.986,2003,2.29,2011,1.371,2031,5.555,2062,0.858,2100,0.925,2101,0.84,2113,1.025,2127,2.087,2130,1.178,2133,0.648,2155,1.697,2175,0.925,2213,3.558,2240,1.697,2247,3.629,2264,1.513,2271,0.9,2314,0.953,2325,1.255,2333,1.075,2338,2.465,2376,
11.025,2406,0.925,2411,0.9,2433,3.004,2461,1.882,2471,3.774,2485,0.986,2493,5.983,2505,4.547,2506,6.816,2522,0.782,2562,1.543,2602,1.809,2615,1.141,2616,2.508,2617,1.809,2618,2.608,2620,3.597,2627,2.094,2632,0.925,2653,1.141,2666,1.543,2833,0.782,2836,0.769,2880,1.697,2903,0.795,2906,1.576,2912,0.986,2918,1.973,3060,1.075,3061,1.141,3062,1.075,3065,2.734,3066,0.986,3108,1.141,3130,6.89,3131,5.951,3134,1.075,3262,0.953,3384,1.025,3446,4.2,3447,1.141,3448,1.241,3449,1.241,3450,1.241,3451,1.241,3452,1.241,3453,2.279,3454,1.241,3455,1.241,3456,1.241,3457,1.241,3458,1.241,3459,1.241,3460,1.241,3461,1.075,3462,1.241,3463,1.241,3464,1.241,3465,2.279,3466,1.241,3467,1.075,3468,1.241,3469,1.241,3470,1.241,3471,1.241,3472,1.241,3473,1.025,3474,1.241,3475,1.241,3476,2.279,3477,1.241,3478,1.241,3479,1.241,3480,1.241,3481,1.141,3482,1.141,3483,1.141,3484,3.159,3485,4.571,3486,1.241,3487,1.241,3488,0.986,3489,3.159,3490,1.241,3491,1.025,3492,1.141,3493,1.241,3494,1.241,3495,1.652,3496,1.241,3497,1.241,3498,1.241,3499,1.241,3500,1.241,3501,2.279,3502,0.878,3503,1.025,3504,0.986,3505,1.241,3506,1.241,3507,1.025,3508,1.241,3509,1.025,3510,1.141,3511,2.279,3512,1.241,3513,1.241,3514,1.241,3515,1.141,3516,1.241,3517,1.141,3518,2.094,3519,1.882,3520,2.279,3521,2.279,3522,2.279,3523,2.279,3524,2.279,3525,2.094,3526,2.094,3527,2.279,3528,2.279,3529,2.279,3530,2.279,3531,2.279,3532,1.241,3533,1.141,3534,1.241,3535,1.241,3536,1.241,3537,1.973,3538,1.241,3539,1.241,3540,1.241,3541,0.9,3542,1.241,3543,1.241,3544,0.84,3545,1.241,3546,1.241,3547,2.279,3548,2.279,3549,2.279]],["component/34",[7,0.29]],["keyword/34",[]],["title/35-1",[250,29.989,1141,31.208,1443,33.403]],["name/35-1",[]],["text/35-1",[]],["component/35-1",[]],["keyword/35-1",[]],["title/35-2",[250,35.298,364,30.922]],["name/35-2",[]],["text/35-2",[]],["component/35-2",[]],["keyword/35-2",[]],["title/35-3",[111,32.893,889,19.296]],["name/35-3",[]],["text/35-3",[]],["component/35-3",[]],["keyword/35-3",[]],["title/35-4",[111,21.482,364,20.195,1141,23.991,1443,25.678,1730,37.168]],["name/35-4",[]],["text/35-4",[]],["component/35-4",[]],["keyword/35-4",[]],["title/35-5",[111,32.893,364,30.922]],["name/35-5",[]],["text/35-5",[]],["component/35-5",[]],["keyword/35-5",[]],["title/35-6",[111,27.945,1141,31.208,1443,33.403]],["name/35-6",[]],["text/35-6",[]],["component/35-6",[]],["keyword/35-6",[]],["title/35-7",[112,46.114]],["name/35-7",[]],["text/35-7",[]],["component/35-7",[]],["keyword/35-7",[]],["title/35-8",[110,41.35]],["name/35-8",[]],["text/35-8",[]],["component/35-8",[]],["keyword/35-8",[]],["title/35-9",[110,34.029,889,19.296]],["name/35-9",[]],["text/35-9",[]],["component/35-9",[]],["keyword/35-9",[]],["title/35-10",[110,28.911,884,35.221,1544,38.147]],["name/35-10",[]],["text/35-10",[]],["component/35-10",[]],["keyword/35-10",[]],["title/35-11",[11,15.742,110,22.225,952,17.131,955,15.284,1306,19.907]],["name/35-11",[]],["text/35-11",[]],["component/35-11",[]],["keyword/35-11",[]],["title/35-12",[258,56.691]],["name/35-12",[]],["text/35-12",[]],["component/35-12",[]],["keyword/35-12",[]],["title/35-13",[889,19.296,3550,54.716]],["name/35-13",[]],["text/35-13",[]],["component/35-13",[]],["keyword/35-13",[]],["title/35-14",[237,28.177,364,26.271,889,16.393]],["name/35-14",[]],["text/35-14",[]],["component/35-14",[]],["keyword/35-14",[]],["title/35-15",[889,14.25,944,21.748,2211,31.064,3378,35.996]],["name/35-15",[]],["text/35-15",[]],["component/35-15",[]],["keyword/35-15",[]],["title/35-16",[170,23.176,237,24.493,944,21.748,3378,35.996]],["name/35-16",[]],["text/35-16",[]],["component/35-16",[]],["keyword/35-16",[]],["title/35-17",[944,25.019,2349,46.486,3378,41.41]],["name/35-17",[]],["text/35-17",[]],["component/35-17",[]],["keyword/35-17",[]],["title/35-18",[2212,44.901,3355,59.657]],["name/35-18",[]],["text/35-18",[]],["component/35-18",[]],["keyword/35-18",[]],["title/35-19",[2211,35.737,2507,44.934,2669,50.683]],["name/35-19",[]],["text/35-19",[]],["component/35-19",[]],["keyword/35-19",[]],["title/35-20",[11,17.801,16,20.288,3378,35.996,3551,42.028]],["name/35-20",[]],["text/35-20",[]],["component/35-20",[]],["keyword/35-20",[]],["title/35-21",[11,15.742,16,17.942,3378,31.834,3552,37.168,3553,37.168]],["name/35-21",[]],["text/35-21",[]],["component/35-21",[]],["keyword/35-21",[]],["title/35-22",[889,19.296,3196,56.91]],["name/35-22",[]],["text/35-22",[]],["component/35-22",[]],["keyword/35-22",[]],["title/35-23",[7,7.777,814,26.286,1448,21.97,1461,24.625,1836,28.534,2229,24.269]],["name/35-23",[]],["text/35-23",[]],["component/35-23",[]],["keyword/35-23",[]],["title/35-24",[889,16.393,1104,36.284,1236,35.737]],["name/35-24",[]],["text/35-24",[]],["component/35-24",[]],["keyword/35-24",[]],["title/35-25",[237,28.177,889,16.393,2229,35.221]],["name/35-25",[]],["text/35-25",[]],["component/35-25",[]],["keyword/35-25",[]],["title/35-26",[7,9.811,111,24.291,250,26.067,3554,44.056]],["name/35-26",[]],["text/35-26",[]],["component/35-26",[]],["keyword/35-26",[]],["title/35",[7,11.287,237,28.177,1352,32.613]],["name/35",[771,0.82]],["text/35",[0,0.226,1,1.6,2,0.906,7,2.201,11,2.841,15,0.274,16,2.449,18,0.219,19,0.44,28,0.582,34,0.435,36,1.273,41,1.892,43,0.97,45,0.281,50,1.921,51,1.181,54,1.306,57,3.29,66,0.281,67,0.778,69,0.205,75,0.978,77,0.25,80,1.778,81,0.371,83,0.25,86,0.522,87,2.513,89,0.811,91,1.855,92,0.315,98,0.365,101,0.179,103,0.594,104,0.216,108,1.16,110,4.112,111,4.005,112,1.6,113,1.641,117,1.333,119,0.425,120,0.551,125,0.948,126,2.018,127,0.296,128,0.864,133,0.274,138,2.949,144,0.239,146,0.659,148,0.6,149,0.336,151,0.328,154,0.226,164,2.378,165,0.464,166,0.411,169,0.458,170,1.204,172,0.305,176,0.224,177,0.407,185,4.682,188,1.448,189,4.123,190,1.624,198,2.533,199,0.561,202,0.486,203,0.787,205,0.288,206,0.221,207,0.959,211,0.203,213,0.315,216,1.898,217,1.213,221,0.92,223,0.42,224,0.478,229,0.435,231,2.562,233,1.518,234,0.196,235,0.25,237,4.801,241,1.701,250,4.33,251,1.06,255,0.343,256,0.668,257,0.668,258,2.877,259,2.741,260,0.315,262,0.651,265,1.632,267,1.336,279,0.43,286,0.328,293,0.992,299,0.559,304,0.533,310,0.458,329,0.288,334,0.374,335,1.305,344,2.683,345,0.188,350,0.435,351,0.328,355,2.539,359,3.939,361,0.635,362,0.259,363,0.486,364,3.287,367,0.651,368,0.478,370,0.239,371,0.551,374,0.269,377,0.546,386,1.545,388,0.246,389,0.766,391,0.224,393,0.867,395,0.371,396,2.436,397,0.728,398,0.239,399,1.365,403,0.269,406,6.342,420,0.935,421,0.879,426,0.637,465,0.263,471,0.546,605,0.305,649,0.328,682,0.762,692,0.239,693,0.274,698,1.448,702,2.41,705,1.871,708,1.488,710,
10.42,711,0.239,717,1.205,725,0.472,726,0.263,727,0.259,738,0.546,747,0.416,761,2.344,766,1.002,767,1.251,774,1.067,790,2.08,792,2.242,794,0.796,796,0.328,798,1.147,802,0.471,805,0.796,811,0.226,812,3.52,814,0.259,816,0.533,817,1.736,820,0.242,822,0.214,823,2.978,826,0.269,829,0.871,831,1.44,834,0.575,840,0.571,843,0.537,844,0.343,846,1.029,851,1.447,857,0.378,858,0.224,862,0.537,864,1.122,866,0.191,867,2.302,869,0.221,870,1.047,877,0.254,879,1.087,881,0.263,882,0.254,883,2.047,884,0.677,885,2.454,888,1.639,889,2.716,890,0.416,894,0.199,895,0.269,896,1.219,897,0.226,902,1.11,903,4.169,906,0.212,911,0.25,912,0.246,939,0.735,941,2.529,944,0.761,945,0.315,947,0.288,952,2.753,953,2.851,954,0.354,955,2.129,957,0.384,958,1.649,959,1.951,962,0.975,963,0.698,964,0.936,967,0.365,968,0.343,969,0.242,970,0.296,972,0.288,973,0.235,974,1.121,975,0.582,976,0.296,977,0.692,980,1.382,981,1.677,985,0.594,986,1.151,988,3,989,2.22,999,4.244,1004,0.365,1008,0.274,1009,0.281,1013,0.582,1014,0.425,1015,1.551,1016,0.281,1018,0.941,1020,3.133,1025,0.83,1029,0.296,1031,0.464,1034,1.16,1042,0.816,1044,0.903,1045,0.561,1055,1.147,1062,0.668,1063,0.666,1064,0.246,1065,1.314,1067,0.464,1069,0.328,1070,0.43,1072,0.411,1082,0.458,1085,0.592,1090,1.949,1091,4.304,1092,4.047,1098,0.43,1100,1.448,1101,0.221,1103,0.887,1104,1.956,1112,0.533,1114,0.239,1115,0.716,1121,0.274,1125,2.205,1127,0.328,1141,3.062,1143,0.226,1154,0.771,1159,0.296,1161,1.83,1166,1.991,1172,1.779,1174,0.246,1175,1.205,1177,2.252,1179,2.521,1180,1.44,1181,1.14,1186,0.613,1192,0.411,1201,0.242,1202,1.614,1203,0.269,1205,0.263,1210,0.242,1211,1.291,1213,0.216,1216,0.522,1221,0.221,1225,0.288,1230,0.365,1231,0.559,1234,0.269,1236,3.038,1238,0.296,1239,0.681,1240,2.213,1247,0.254,1252,1.161,1255,0.25,1258,0.343,1261,0.25,1266,0.274,1267,0.571,1272,0.677,1281,0.425,1283,0.486,1287,0.561,1295,0.941,1296,1.406,1297,1.902,1306,4.071,1311,0.464,1312,0.494,1316,0.512,1319,0.274,1321,0.246,1330,0.721,1335,0.93,1338,1.636,1339,0.796,1344,0.635,1352,3.492,1353,1.661,1354,2.181,1355,2.535,1357,0.254,1358,0.212,1363,3.154,1364,1.572,1365,1.376,1368,0.274,1370,0.343,1371,0.559,1373,0.196,1374,0.62,1375,3.186,1378,0.274,1379,0.216,1383,0.219,1384,1.723,1387,0.328,1388,0.232,1392,0.651,1398,0.478,1399,0.365,1400,0.637,1404,0.747,1406,1.51,1419,0.762,1420,0.936,1425,0.229,1427,1.736,1428,0.975,1430,0.212,1431,1.855,1432,1.509,1434,0.512,1435,2.275,1436,0.93,1441,0.756,1443,3.111,1444,0.503,1446,1.122,1447,0.288,1448,0.613,1450,0.839,1451,0.254,1453,1.161,1455,1.677,1457,0.471,1459,0.503,1461,0.687,1462,3.108,1464,0.305,1478,1.819,1479,0.25,1483,0.296,1509,1.16,1510,0.952,1511,0.99,1512,0.99,1515,0.613,1518,0.242,1520,0.425,1525,0.274,1533,0.486,1535,0.305,1536,0.242,1541,0.315,1542,1.326,1554,0.246,1557,0.288,1561,0.254,1571,0.796,1573,0.239,1582,3.9,1583,2.017,1588,0.93,1590,0.365,1591,0.328,1594,0.254,1595,1.161,1597,0.25,1607,0.281,1621,2.78,1622,2.78,1623,2.78,1629,2.009,1630,0.328,1631,0.512,1632,2.072,1634,0.93,1635,0.288,1636,0.328,1637,0.343,1638,1.473,1639,0.343,1641,0.365,1642,6.809,1643,6.18,1645,3.344,1646,1.958,1647,1.958,1648,1.882,1649,1.882,1651,2.289,1653,0.637,1658,0.296,1660,1.06,1663,0.864,1665,0.93,1671,0.281,1692,0.796,1694,0.296,1700,0.315,1701,0.365,1706,0.246,1715,0.305,1725,2.34,1726,0.512,1728,0.296,1732,0.296,1738,0.269,1747,0.627,1752,0.522,1762,0.25,1774,0.721,1779,0.575,1783,1.51,1785,0.365,1791,0.328,1800,0.343,1802,0.668,1829,0.25,1830,1.545,1836,1.034,1839,0.464,1842,0.575,1845,0.274,1848,0.856,1855,0.452,1858,2.056,1860,0.952,1873,0.242,1880,1.016,1899,0.224,1909,1.755,1912,1.967,1923,2.265,1925,0.315,1931,0.668,1934,1.639,1935,1.06,1957,0.343,1983,0.315,1984,0.315,1985,0.315,1991,1.205,2008,1.599,2031,0.936,2048,0.343,2082,0.239,2088,0.254,2125,1.533,2130,1.755,2132,0.575,2134,5.122,2138,0.259,2148,0.305,2153,0.269,2155,0.296,2171,0.328,2174,1.042,2177,0.269,2190,0.235,2193,0.281,2210,4.577,2211,5.042,2212,4.997,2213,0.274,2214,0.305,2215,1.366,2218,0.365,2220,0.343,2223,0.305,2229,3.914,2273,0.281,2296,0.274,2307,0.522,2324,0.263,2325,1.147,2338,1.311,2349,4.447,2350,0.637,2351,0.522,2358,1.035,2374,0.709,2382,0.296,2448,0.365,2488,2.876,2490,0.522,2499,0.975,2500,0.533,2507,1.366,2509,1.207,2529,0.269,2537,
10.259,2562,0.269,2577,0.365,2611,0.709,2613,0.651,2618,0.637,2641,0.637,2645,0.281,2658,0.328,2679,0.246,2691,0.839,2720,3.645,2815,0.296,2825,2.963,2828,0.365,2831,0.315,2833,0.25,2836,1.103,2847,0.305,2853,0.269,2854,0.839,2856,1.291,2903,0.254,2906,0.274,2910,0.592,2952,0.709,2969,0.365,2997,0.93,2999,0.637,3001,0.305,3006,0.274,3048,0.365,3083,0.343,3094,0.296,3099,1.599,3117,0.365,3140,1.958,3196,4.377,3197,1.265,3203,0.452,3207,0.894,3211,0.305,3218,0.365,3232,0.296,3240,0.328,3258,0.365,3276,1.326,3277,0.288,3280,0.343,3283,1.914,3298,0.668,3351,0.328,3355,0.668,3356,0.97,3384,0.328,3401,0.315,3405,0.315,3417,0.592,3418,0.668,3438,0.343,3439,0.365,3495,0.288,3504,0.315,3507,0.328,3550,2.505,3551,1.47,3552,0.637,3553,0.637,3554,4.16,3555,0.343,3556,0.296,3557,0.305,3558,0.668,3559,0.397,3560,0.397,3561,0.397,3562,0.397,3563,0.397,3564,0.397,3565,0.772,3566,0.296,3567,0.365,3568,1.126,3569,0.397,3570,0.397,3571,2.179,3572,1.78,3573,0.397,3574,0.772,3575,0.397,3576,0.397,3577,0.397,3578,2.083,3579,0.397,3580,0.397,3581,0.397,3582,0.397,3583,0.397,3584,0.397,3585,0.397,3586,1.126,3587,0.397,3588,0.397,3589,1.462,3590,0.397,3591,0.397,3592,1.462,3593,0.397,3594,1.462,3595,1.78,3596,5.142,3597,5.142,3598,1.462,3599,4.443,3600,4.253,3601,1.462,3602,1.462,3603,1.462,3604,1.462,3605,0.397,3606,0.397,3607,1.126,3608,0.397,3609,0.397,3610,0.397,3611,0.397,3612,0.343,3613,0.397,3614,0.546,3615,1.413,3616,2.9,3617,0.397,3618,1.639,3619,0.365,3620,0.365,3621,0.328,3622,0.637,3623,2.052,3624,0.397,3625,0.397,3626,0.397,3627,0.397,3628,0.397,3629,0.397,3630,1.78,3631,0.397,3632,1.126,3633,0.397,3634,0.397,3635,1.343,3636,0.397,3637,0.397,3638,0.397,3639,0.305,3640,0.772,3641,0.397,3642,0.397,3643,0.397,3644,0.397,3645,0.397,3646,0.397,3647,0.397,3648,0.397,3649,0.668,3650,1.126,3651,0.397,3652,0.709,3653,0.343,3654,0.93,3655,0.397,3656,0.397,3657,1.126,3658,0.397,3659,0.772,3660,0.397,3661,0.397,3662,1.462,3663,1.462,3664,0.772,3665,0.397,3666,5.882,3667,0.772,3668,0.772,3
1669,0.343,3670,0.772,3671,0.772,3672,0.397,3673,0.397,3674,0.397,3675,0.397,3676,0.397,3677,0.397,3678,0.397,3679,0.397,3680,0.397,3681,0.397,3682,0.772,3683,0.397,3684,0.397,3685,0.397,3686,0.397,3687,0.397,3688,0.397,3689,0.397,3690,0.397,3691,0.397,3692,0.397,3693,0.397,3694,0.343,3695,0.397,3696,0.397,3697,0.397,3698,0.397,3699,0.397,3700,1.78,3701,0.397,3702,1.126,3703,0.397,3704,0.397,3705,0.397,3706,0.397,3707,0.397,3708,0.397,3709,0.397,3710,0.397,3711,0.397,3712,0.397,3713,0.397,3714,0.397,3715,0.397,3716,0.365,3717,0.397,3718,0.263,3719,0.328,3720,0.397,3721,0.397,3722,0.315,3723,0.365,3724,0.397,3725,0.365,3726,0.397,3727,0.397,3728,0.592,3729,0.397,3730,0.397,3731,0.397,3732,0.343,3733,0.397,3734,0.397,3735,0.397,3736,0.397,3737,0.397,3738,0.592,3739,3.171,3740,0.365,3741,0.365,3742,0.397,3743,0.305,3744,2.671,3745,0.343,3746,0.397,3747,0.397,3748,0.397,3749,0.397,3750,0.397,3751,0.365,3752,0.343,3753,0.328,3754,0.772,3755,0.772,3756,0.397,3757,0.397,3758,0.397,3759,0.397,3760,0.365,3761,0.397,3762,0.397,3763,0.772,3764,0.397,3765,0.772,3766,0.772,3767,0.397,3768,0.772,3769,0.365,3770,0.397,3771,0.397,3772,0.397,3773,0.772,3774,0.397,3775,0.397,3776,0.397,3777,0.397,3778,0.397,3779,0.397,3780,0.397,3781,0.397,3782,0.397,3783,0.397,3784,0.397,3785,0.397,3786,0.397,3787,0.397,3788,0.397,3789,0.397,3790,0.397,3791,0.397,3792,0.397,3793,0.397,3794,0.397,3795,0.343,3796,0.397,3797,0.328,3798,0.397,3799,0.397,3800,0.365,3801,0.397,3802,0.397,3803,0.315,3804,0.365,3805,0.343,3806,0.328,3807,0.343,3808,0.772,3809,0.397,3810,0.397,3811,1.914,3812,0.365,3813,0.397,3814,0.315,3815,0.397,3816,0.772,3817,0.397,3818,0.365,3819,1.126,3820,0.397,3821,0.397,3822,0.772,3823,0.397,3824,0.397,3825,0.397,3826,0.397,3827,0.397,3828,0.365,3829,0.269,3830,0.397,3831,0.709,3832,0.397,3833,0.709,3834,1.207,3835,0.328,3836,0.709,3837,0.365,3838,0.709,3839,0.397,3840,0.343,3841,0.397,3842,0.365,3843,3.156,3844,1.126,3845,1.126,3846,0.772,3847,0.772,3848,1.126,3849,0.397,3850,0.315,3851,0.365,3852,0.288,3853,0.772,3854,0.397,3855,0.772,3856,0.397,3857,0.397,3858,0.397,3859,0.397,3860,1.035,3861,0.397,3862,0.397,3863,0.613,3864,0.709,3865,0.397,3866,0.397,3867,0.397,3868,0.772,3869,0.397,3870,0.772,3871,0.778,3872,0.397,3873,1.78,3874,0.772,3875,0.397,3876,0.397,3877,0.397,3878,0.397,3879,0.397,3880,0.397,3881,0.397,3882,0.772,3883,0.397,3884,0.397,3885,0.397,3886,0.397,3887,0.397,3888,1.78,3889,1.462,3890,0.397,3891,0.397,3892,0.397,3893,0.397,3894,0.397,3895,0.397,3896,0.343,3897,1.207,3898,0.397,3899,0.315,3900,0.397,3901,0.397,3902,0.397,3903,0.274,3904,0.397,3905,0.397,3906,0.397,3907,0.397,3908,0.772,3909,0.709,3910,1.462,3911,0.575,3912,0.637,3913,0.772,3914,0.772,3915,0.772,3916,0.397,3917,1.126,3918,0.397,3919,0.397,3920,0.365,3921,1.126,3922,0.397,3923,0.397,3924,0.397,3925,0.772,3926,0.365,3927,0.397,3928,0.343,3929,0.397,3930,0.343,3931,0.365]],["component/35",[7,0.29]],["keyword/35",[]],["title/36-1",[889,23.447]],["name/36-1",[]],["text/36-1",[]],["component/36-1",[]],["keyword/36-1",[]],["title/36-2",[344,20.187,1333,47.648]],["name/36-2",[]],["text/36-2",[]],["component/36-2",[]],["keyword/36-2",[]],["title/36-3",[259,19.256,355,19.921,889,11.296,952,15.356,955,13.7,1333,27.894]],["name/36-3",[]],["text/36-3",[]],["component/36-3",[]],["keyword/36-3",[]],["title/36-4",[889,19.296,1333,47.648]],["name/36-4",[]],["text/36-4",[]],["component/36-4",[]],["keyword/36-4",[]],["title/36-5",[16,27.472,3932,63.334]],["name/36-5",[]],["text/36-5",[]],["component/36-5",[]],["keyword/36-5",[]],["title/36-6",[3933,83.745]],["name/36-6",[]],["text/36-6",[]],["component/36-6",[]],["keyword/36-6",[]],["title/36-7",[3934,83.745]],["name/36-7",[]],["text/36-7",[]],["component/36-7",[]],["keyword/36-7",[]],["title/36-8",[3935,83.745]],["name/36-8",[]],["text/36-8",[]],["component/36-8",[]],["keyword/36-8",[]],["title/36-9",[3936,83.745]],["name/36-9",[]],["text/36-9",[]],["component/36-9",[]],["keyword/36-9",[]],["title/36",[1333,57.899]],["name/36",[87,0.336,1333,0.652]],["text/36",[0,0.947,7,1.304,11,3.18,16,1.601,24,1.37,26,0.867,28,5.637,50,1.816,54,0.819,57,1.705,62,0.998,69,0.858,80,3.351,87,0.592,89,1.35,91,2.058,93,1.045,96,2.275,101,0.75,113,1.267,115,1.203,119,0.914,120,2.391,126,2.447,138,3.56,149,1.293,153,1.028,164,0.704,166,0.885,170,0.756,188,2.001,189,3.769,198,3.948,201,1.783,205,4.068,206,0.924,210,1.101,211,0.85,217,3.103,218,1.013,223,0.904,228,3.646,229,2.753,234,0.819,240,2.149,241,4.27,265,3.736,267,3.511,279,4.024,293,3.47,299,4.902,304,4.307,310,3.696,334,1.439,339,4.307,344,2.341,345,2.949,364,2.795,365,1.437,369,0.971,371,0.812,374,1.123,376,1.123,382,2.321,386,0.812,389,2.414,391,1.671,39
16,4.739,399,2.294,402,0.959,420,2.192,426,2.448,471,2.097,486,2.724,535,2.724,555,2.724,685,1.081,691,1.045,692,1.783,695,1.917,698,1.477,701,0.914,702,1.275,708,0.85,710,1.614,725,2.351,730,1.101,759,2.417,761,1.311,766,0.799,767,0.875,792,1.752,795,3.541,797,0.812,802,1.013,805,0.904,811,0.947,812,1.174,817,0.75,820,1.013,821,1.837,822,1.597,823,1.837,828,1.203,831,4.307,835,2.275,843,0.792,857,0.812,858,1.671,861,1.477,864,0.786,866,1.933,867,3.737,870,2.02,877,1.062,883,0.734,885,4.339,889,2.91,903,1.311,917,1.783,935,1.028,941,2.915,944,1.267,952,1.859,953,0.578,955,2.453,957,1.477,963,2.331,966,1.123,975,2.077,977,1.902,986,1.439,988,2.551,989,0.867,1000,4.068,1013,0.858,1019,0.858,1044,0.842,1062,0.984,1063,5.461,1065,1.234,1072,0.885,1079,2.097,1088,1.174,1089,1.123,1100,1.843,1103,3.104,1114,0.998,1115,1.451,1123,1.809,1125,0.761,1141,0.885,1154,0.875,1166,0.714,1177,1.11,1187,2.577,1192,1.58,1199,1.37,1202,3.803,1214,1.123,1221,3.126,1238,1.236,1239,1.381,1240,3.104,1246,1.525,1265,3.541,1287,0.827,1297,2.294,1305,1.274,1321,2.49,1332,1.968,1333,7.594,1345,1.931,1350,1.274,1355,0.875,1364,1.477,1365,1.403,1368,1.147,1373,1.984,1374,0.914,1375,1.837,1383,4.577,1396,2.321,1420,1.062,1427,1.34,1435,1.518,1446,0.786,1454,1.437,1457,1.013,1465,1.37,1479,3.533,1480,1.081,1508,3.541,1509,1.931,1510,1.931,1511,2.007,1512,2.007,1513,1.203,1537,1.37,1544,1.931,1556,0.885,1566,1.37,1571,0.904,1582,1.809,1594,1.062,1607,1.174,1610,1.174,1624,1.597,1669,1.101,1671,1.174,1704,3.511,1708,1.302,1711,1.236,1715,1.274,1724,1.028,1794,1.123,1830,1.081,1844,1.437,1855,0.971,1858,1.081,1873,1.013,1880,1.691,1890,6.599,1906,4.406,1981,1.123,2002,4.456,2003,2.912,2018,1.525,2027,2.275,2031,1.062,2058,1.174,2060,1.174,2061,3.477,2082,0.998,2087,3.541,2088,4.329,2089,1.318,2091,1.37,2099,2.275,2100,1.236,2121,1.274,2133,5.142,2154,1.062,2244,1.318,2273,1.174,2291,1.081,2307,1.123,2324,1.101,2417,1.525,2452,1.37,2542,1.525,2562,1.123,2602,2.354,2636,4.64,2816,2.097,2854,1.236,2902,1.37,3005,5.545,3006,5.746,3010,5.945,3041,1.236,3262,1.274,3401,2.354,3473,6.599,3932,8.356,3937,2.05,3938,1.66,3939,1.37,3940,1.37,3941,1.66,3942,1.66,3943,1.525,3944,1.37,3945,1.66,3946,2.964,3947,1.66,3948,1.66,3949,4.017,3950,1.66,3951,2.964,3952,6.762,3953,1.66,3954,1.525,3955,1.66,3956,1.66,3957,1.66,3958,1.66,3959,4.017,3960,4.017,3961,4.017,3962,4.017,3963,1.66,3964,1.525,3965,1.66,3966,1.437,3967,1.66,3968,1.66,3969,1.66,3970,1.525,3971,1.66,3972,1.66,3973,1.66,3974,1.66,3975,4.885,3976,2.964,3977,2.964,3978,1.66,3979,1.66,3980,4.885,3981,1.66,3982,1.66,3983,1.66,3984,2.964,3985,2.964,3986,2.964,3987,2.964,3988,2.964,3989,2.964,3990,2.964,3991,1.66,3992,1.66,3993,1.66,3994,1.66,3995,1.66,3996,1.66,3997,1.437,3998,1.525,3999,1.66,4000,1.66,4001,1.66,4002,1.66,4003,1.66,4004,1.66,4005,1.66,4006,1.66,4007,1.66,4008,1.66,4009,1.66,4010,1.66,4011,1.66,4012,1.66,4013,1.66,4014,2.964,4015,7.991,4016,1.66,4017,1.66,4018,1.66,4019,1.66,4020,1.66,4021,1.66,4022,1.66,4023,1.66,4024,1.66,4025,1.66,4026,1.66,4027,1.66,4028,1.66,4029,1.66,4030,2.208,4031,1.66,4032,1.66,4033,1.66,4034,1.66,4035,1.66,4036,1.437,4037,2.354,4038,1.318,4039,2.275,4040,4.017,4041,2.964,4042,1.37]],["component/36",[7,0.29]],["keyword/36",[]],["title/37-1",[869,25.07,889,12.602,952,17.131,955,15.284,1187,23.745]],["name/37-1",[]],["text/37-1",[]],["component/37-1",[]],["keyword/37-1",[]],["title/37",[869,32.613,963,27.945,1187,30.888]],["name/37",[889,0.181,1187,0.342,1260,0.401]],["text/37",[7,2.232,20,4.254,69,3.604,104,5.052,189,3.991,198,4.06,223,3.795,259,5.526,355,5.717,389,2.998,702,2.998,790,3.411,862,3.326,867,4.893,869,5.167,889,3.456,952,4.698,955,4.126,1125,3.197,1187,5.501,1221,5.808,1240,4.622,1297,5.221,1364,5.539,1393,4.388,1396,5.359,1439,4.192,1484,4.254,1513,6.725,1528,7.661,1902,6.032,1991,4.718,2174,4.079,2265,5.052,2635,5.533,2839,5.755,4043,6.404,4044,6.969,4045,6.969,4046,6.404,4047,6.404,4048,9.277,4049,9.277,4050,6.969]],["component/37",[7,0.29]],["keyword/37",[]],["title/38-1",[889,23.447]],["name/38-1",[]],["text/38-1",[]],["component/38-1",[]],["keyword/38-1",[]],["title/38-2",[344,20.187,4051,51.326]],["name/38-2",[]],["text/38-2",[]],["component/38-2",[]],["keyword/38-2",[]],["title/38-3",[889,19.296,4051,51.326]],["name/38-3",[]],["text/38-3",[]],["component/38-3",[]],["keyword/38-3",[]],["title/38-4",[1476,51.326,4051,51.326]],["name/38-4",[]],["text/38-4",[]],["component/38-4",[]],["keyword/38-4",[]],["title/38-5",[7,9.811,93,32.044,1430,27.128,2133,26.58]],["name/38-5",[]],["text/38-5",[]],["component/38-5",[]],["keyword/38-5",[]],["title/38-6",[7,11.287,2338,36.864,4052,53.808]],["name/38-6",[]],["text/38-6",[]],["component/38-6",[]],["keyword/38-6",[]],["title/38",[4051,62.368]],["name/38",[87,0.336,4051,0.702]],["text/38",[7,2.02,11,3.665,16,4.427,39,3.187,57,1.39,74,2.096,80,1.438,87,2.382,89,2.413,93,2.062,113,3.85,115,2.374,119,1.803,122,2.264,146,1.916,154,1.868,164,1.39,170,1.491,177,1.727,189,4.536,190,1.313,198,3.279,203,1.448,217,1.502,223,1.783,229,2.986,234,1.617,242,2.835,259,3.185,262,6.311,273,4.97,334,1.589,344,3.444,355,3.295,359,1.783,364,4.043,367,3.061,371,1.603,382,3.061,395,2.55,399,1.538,420,2.994,685,2.133,690,1.764,702,1.409,710,2.885,721,2.062,728,1.916,747,1.764,797,1.603,823,2.029,846,1.892,8
161,2.64,862,1.563,864,2.508,867,3.152,870,1.646,881,2.173,882,3.392,883,2.951,885,1.563,889,2.523,897,3.023,903,3.391,906,1.745,912,2.029,917,4.014,941,2.692,944,3.276,952,1.246,953,2.931,955,1.799,957,1.631,959,1.764,986,1.589,996,2.704,1019,2.74,1031,1.97,1063,1.491,1065,1.363,1070,3.717,1091,2.062,1092,2.64,1100,1.502,1103,1.631,1115,1.603,1124,4.869,1172,4.746,1180,1.783,1192,1.745,1224,2.513,1240,4.195,1248,3.663,1253,1.97,1297,3.601,1339,3.747,1363,2.075,1364,4.195,1365,3.159,1379,4.175,1425,3.061,1430,1.745,1439,1.97,1446,1.55,1457,1.999,1476,3.946,1479,4.828,1509,2.133,1510,2.133,1511,2.217,1512,2.217,1566,2.704,1573,3.187,1582,5.5,1632,1.999,1698,2.173,1707,2.704,1724,4.752,1732,2.439,1830,3.452,1910,5.769,1922,2.6,2043,4.586,2058,5.956,2060,5.423,2087,2.374,2133,5.328,2158,3.761,2244,4.207,2247,2.6,2338,2.062,2501,5.301,2561,2.374,2636,2.439,2903,2.096,3005,2.513,3161,2.439,3289,3.009,3290,3.009,3372,3.009,3618,2.029,3795,2.835,3863,2.6,3937,2.264,3964,3.009,4036,2.835,4038,4.207,4051,8.827,4052,3.009,4053,2.217,4054,3.275,4055,8.421,4056,3.275,4057,3.275,4058,3.275,4059,3.275,4060,5.298,4061,6.673,4062,3.275,4063,3.275,4064,7.668,4065,6.673,4066,3.275,4067,3.009,4068,3.275,4069,2.835,4070,3.275,4071,3.275,4072,3.275,4073,3.275,4074,3.275,4075,3.275,4076,3.275,4077,3.275,4078,3.275,4079,3.275,4080,4.586,4081,3.275,4082,3.275,4083,3.275,4084,3.275,4085,3.275,4086,3.275,4087,3.275,4088,2.835,4089,2.704,4090,3.275,4091,3.275,4092,3.009,4093,3.275,4094,3.275,4095,5.298,4096,3.275,4097,5.298,4098,3.275,4099,3.275,4100,3.275,4101,3.275]],["component/38",[7,0.29]],["keyword/38",[]],["title/39-1",[1363,22.93,1377,46.486,1708,25.714]],["name/39-1",[]],["text/39-1",[]],["component/39-1",[]],["keyword/39-1",[]],["title/39-2",[4102,72.491]],["name/39-2",[]],["text/39-2",[]],["component/39-2",[]],["keyword/39-2",[]],["title/39-3",[344,20.187,1708,30.266]],["name/39-3",[]],["text/39-3",[]],["component/39-3",[]],["keyword/39-3",[]],["title/39-4",[344,17.151,1435,29.989,1708,25.714]],["name/39-4",[]],["text/39-4",[]],["component/39-4",[]],["keyword/39-4",[]],["title/39-5",[889,23.447]],["name/39-5",[]],["text/39-5",[]],["component/39-5",[]],["keyword/39-5",[]],["title/39-6",[1708,30.266,4103,59.657]],["name/39-6",[]],["text/39-6",[]],["component/39-6",[]],["keyword/39-6",[]],["title/39-7",[344,14.908,821,31.539,1363,19.932,1708,22.351]],["name/39-7",[]],["text/39-7",[]],["component/39-7",[]],["keyword/39-7",[]],["title/39-8",[821,42.708,858,38.842]],["name/39-8",[]],["text/39-8",[]],["component/39-8",[]],["keyword/39-8",[]],["title/39-9",[889,23.447]],["name/39-9",[]],["text/39-9",[]],["component/39-9",[]],["keyword/39-9",[]],["title/39-10",[821,51.896]],["name/39-10",[]],["text/39-10",[]],["component/39-10",[]],["keyword/39-10",[]],["title/39-11",[889,23.447]],["name/39-11",[]],["text/39-11",[]],["component/39-11",[]],["keyword/39-11",[]],["title/39-12",[198,15.709,344,11.818,866,19.416,1363,15.8,1708,17.718,1829,25.402]],["name/39-12",[]],["text/39-12",[]],["component/39-12",[]],["keyword/39-12",[]],["title/39-13",[889,23.447]],["name/39-13",[]],["text/39-13",[]],["component/39-13",[]],["keyword/39-13",[]],["title/39-14",[344,13.184,1363,17.627,1708,19.767,1829,28.339,1906,29.325]],["name/39-14",[]],["text/39-14",[]],["component/39-14",[]],["keyword/39-14",[]],["title/39-15",[889,23.447]],["name/39-15",[]],["text/39-15",[]],["component/39-15",[]],["keyword/39-15",[]],["title/39-16",[344,13.184,1363,17.627,1708,19.767,1829,28.339,4104,38.962]],["name/39-16",[]],["text/39-16",[]],["component/39-16",[]],["keyword/39-16",[]],["title/39-17",[889,23.447]],["name/39-17",[]],["text/39-17",[]],["component/39-17",[]],["keyword/39-17",[]],["title/39-18",[344,13.184,1363,17.627,1708,19.767,1829,28.339,4105,33.521]],["name/39-18",[]],["text/39-18",[]],["component/39-18",[]],["keyword/39-18",[]],["title/39-19",[344,14.908,1708,22.351,2130,26.32,4105,37.904]],["name/39-19",[]],["text/39-19",[]],["component/39-19",[]],["keyword/39-19",[]],["title/39-20",[889,23.447]],["name/39-20",[]],["text/39-20",[]],["component/39-20",[]],["keyword/39-20",[]],["title/39-21",[344,14.908,1794,34.454,2130,26.32,4105,37.904]],["name/39-21",[]],["text/39-21",[]],["component/39-21",[]],["keyword/39-21",[]],["title/39-22",[344,14.908,754,31.539,1708,22.351,4105,37.904]],["name/39-22",[]],["text/39-22",[]],["component/39-22",[]],["keyword/39-22",[]],["title/39-23",[889,23.447]],["name/39-23",[]],["text/39-23",[]],["component/39-23",[]],["keyword/39-23",[]],["title/39-24",[344,14.908,754,31.539,1794,34.454,4105,37.904]],["name/39-24",[]],["text/39-24",[]],["component/39-24",[]],["keyword/39-24",[]],["title/39-25",[7,8.677,974,28.339,975,23.276,1708,19.767,4106,41.364]],["name/39-25",[]],["text/39-25",[]],["component/39-25",[]],["keyword/39-25",[]],["title/39-26",[344,13.184,1363,17.627,1708,19.767,1829,28.339,4107,35.735]],["name/39-26",[]],["text/39-26",[]],["component/39-26",[]],["keyword/39-26",[]],["title/39-27",[1727,42.443,2130,30.279,4107,46.486]],["name/39-27",[]],["text/39-27",[]],["component/39-27",[]],["keyword/39-27",[]],["title/39-28",[889,23.447]],["name/39-28",[]],["text/39-28",[]],["component/39-28",[]],["keyword/39-28",[]],["title/39-29",[754,36.284,1727,42.443,4107,46.486]],["name/39-29",[]],["text/39-29",[]],["component/39-29",[]],["keyword/39-29",[]],["title/39-30",[889,23.447]],["name/39-30",[]],["text/39-30",[]],["component/39-30",[]],["keyword/39-30",[]],["title/39-31",[344,10.708,1363,14.316,1708,16.054,1829,23.016,3021,26.499,4108,30.187,4109,30.187]],["name/39-31",[]],["text/39-31",[]],["component/39-31",[]],["keyword/39-31",[]],["title/39-32",[987,56.691]],["name/39-32",[]],["text/39-32",[]],["component/39-32",[]],["keyword/39-32",[]],["title/39-33",[1,37.949,4110,63.334]],["name/39-33",[]],["text/39-33",[]],["component/39-33",[]],["keyword/39-33",[]],["title/39-34",[7,8.677,817,20.344,1760,35.735,2099,34.543,3021,32.628]],["name/39-34",[]],["text/39-34",[]],["component/39-34",[]],["keyword/39-34",[]],["title/39-35",[7,8.677,817,20.344,1845,31.119,2099,34.543,3021,32.628]],["name/39-35",[]],["text/39-35",[]],["component/39-35",[]],["keyword/39-35",[]],["title/39-36",[771,24.094,889,14.25,1154,26.849,1708,22.351]],["name/39-36",[]],["text/39-36",[]],["component/39-36",[]],["keyword/39-36",[]],["title/39-37",[1,32.241,4110,53.808,4111,53.808]],["name/39-37",[]],["text/39-37",[]],["component/39-37",[]],["keyword/39-37",[]],["title/39-38",[344,13.184,903,19.907,3021,32.628,4108,37.168,4109,37.168]],["name/39-38",[]],["text/39-38",[]],["component/39-38",[]],["keyword/39-38",[]],["title/39-39",[889,23.447]],["name/39-39",[]],["text/39-39",[]],["component/39-39",[]],["keyword/39-39",[]],["title/39-40",[344,9.789,821,20.709,1154,17.629,1363,13.087,1708,23.653,1829,21.04,4112,28.927]],["name/39-40",[]],["text/39-40",[]],["component/39-40",[]],["keyword/39-40",[]],["title/39-41",[4113,72.491]],["name/39-41",[]],["text/39-41",[]],["component/39-41",[]],["keyword/39-41",[]],["title/39-42",[889,23.447]],["name/39-42",[]],["text/39-42",[]],["component/39-42",[]],["keyword/39-42",[]],["title/39-43",[1708,30.266,4114,56.91]],["name/39-43",[]],["text/39-43",[]],["component/39-43",[]],["keyword/39-43",[]],["title/39-44",[87,20.898,1708,25.714,3903,40.481]],["name/39-44",[]],["text/39-44",[]],["component/39-44",[]],["keyword/39-44",[]],["title/39-45",[1448,27.715,1461,31.064,1727,36.894,4115,42.028]],["name/39-45",[]],["text/39-45",[]],["component/39-45",[]],["keyword/39-45",[]],["title/39-46",[1287,22.423,1448,24.51,1461,27.472,1727,32.628,4115,37.168]],["name/39-46",[]],["text/39-46",[]],["component/39-46",[]],["keyword/39-46",[]],["title/39-47",[397,22.423,1154,23.745,1155,37.168,1708,19.767,4116,38.962]],["name/39-47",[]],["text/39-47",[]],["component/39-47",[]],["keyword/39-47",[]],["title/39",[1013,30.279,1363,22.93,1708,25.714]],["name/39",[771,0.82]],["text/39",[0,0.735,1,1.114,3,0.298,6,1.271,7,1.722,8,1.546,9,2.125,11,3.925,15,1.631,16,1.7,20,1.017,26,0.673,28,0.459,34,1.508,36,0.427,37,0.352,41,0.239,45,1.431,50,2.124,51,2.235,52,0.421,54,1.743,55,0.378,57,0.547,62,1.419,67,0.891,69,0.459,70,0.421,75,1.108,77,0.288,78,0.627,80,0.201,81,0.427,87,0.842,89,1.355,91,0.854,96,2.054,97,0.378,101,3.322,103,0.879,113,1.008,117,1.295,120,1.854,125,1.725,126,1.167,128,0.43,138,2.183,142,3.843,144,0.276,146,1.566,148,0.473,153,3.687,154,0.506,163,0.558,164,1.384,165,1.217,166,3.088,167,0.519,170,0.921,172,0.352,175,2.155,176,0.258,178,1.766,188,0.642,189,0.903,190,0.946,198,2.862,199,0.642,200,1.874,203,0.203,206,0.718,207,1.757,216,0.276,217,0.21,218,0.28,223,0.483,224,0.55,228,0.754,232,0.364,234,0.823,235,0.288,241,0.95,249,0.364,264,0.352,265,0.237,279,0.255,304,0.317,310,0.272,334,0.982,335,0.918,338,0.421,344,2.439,345,2.889,346,0.519,350,0.5,354,1.873,359,2.196,364,0.398,368,0.55,370,0.276,371,0.631,378,0.396,382,0.963,386,0.224,388,0.284,389,0.197,391,0.258,394,2.157,395,0.62,396,2.087,399,0.783,400,2.217,402,2.831,403,0.31,409,0.293,420,0.908,421,0.438,685,0.298,690,0.898,691,0.288,692,2.565,694,0.298,695,2.432,700,0.627,702,1.93,708,1.371,710,0.249,711,2.565,721,0.288,723,0.304,724,0.976,725,1.689,726,0.304,727,0.84,728,0.976,730,0.304,731,0.378,734,0.396,738,0.627,754,2.188,759,0.276,761,1.675,764,1.067,766,1.135,771,0.61,778,3.68,779,2.71,789,0.918,790,0.631,792,2.526,797,2.585,798,0.252,802,0.541,804,0.613,805,0.249,815,0.324,817,1.596,821,5.776,822,0.247,823,0.55,829,0.816,831,1.631,840,1.026,843,1.126,845,1.184,846,0.265,851,0.787,854,1.462,855,0.735,857,4.25,858,2.272,861,0.83,862,2.605,864,0.789,866,1.135,867,3.359,870,3.983,877,0.293,879,0.28,881,0.304,882,0.293,883,4.603,885,4.205,889,2.168,890,0.478,894,1.775,895,0.31,896,0.268,898,2.053,901,1.698,902,1.586,903,2.999,907,0.589,911,0.288,912,0.284,913,0.506,915,0.317,925,0.768,939,1.904,941,1.08,948,4.324,952,0.898,953,1.706,955,1.107,957,2.341,958,0.759,959,0.247,963,0.219,966,0.873,968,0.396,969,0.541,972,0.332,973,2.392,974,1.874,975,0.667,977,2.817,978,0.912,980,1.343,985,0.879,986,0.626,987,0.873,988,2.343,989,1.398,994,0.293,1000,0.332,1003,0.324,1006,0.288,1013,1.686,1014,0.252,1016,0.324,1018,1.066,1019,2.43,1022,0.704,1040,0.304,1044,1.026,1045,0.228,1048,0.324,1055,0.252,1063,3.923,1065,0.842,1069,2.693,1070,0.255,1072,2.273,1073,0.421,1081,2.991,1086,0.252,1089,1.128,1092,0.228,1096,0.681,1100,2.423,1101,0.255,1103,0.228,1109,0.352,1122,2.458,1123,0.28,1125,0.21,1128,1.466,1134,0.378,1135,2.125,1138,0.396,1139,0.732,1143,0.506,1150,0.681,1152,1.939,1154,2.688,1155,1.064,1158,0.6,1166,2.492,1167,0.96,1170,1.023,1174,0.284,1177,2.67,1180,0.483,1187,0.879,1192,0.473,1195,0.341,1199,0.378,1201,0.28,1205,1.566,1212,0.578,1213,0.483,1219,0.304,1221,3.04,1224,1.552,1225,0.332,1227,0.237,1231,0.332,1234,3.181,1239,0.601,1240,0.442,1260,0.284,1263,0.396,1264,0.378,1265,0.332,1266,0.891,1267,2.856,1272,1.962,1281,0.918,1285,1.128,1287,1.175,1291,0.94,1295,1.712,1297,0.95,1306,0.57,1311,0.276,1316,0.304,1321,0.284,1323,0.815,1344,0.5,1353,0.224,1355,0.68,1356,2.344,1358,0.244,1359,0.304,1362,0.912,1363,1.166,1364,3.112,1365,1.544,1369,0.293,1373,1.87,1374,2.587,1378,0.317,1391,0.66,1395,0.317,1396,0.265,1402,0.304,1404,0.856,
11405,2.312,1412,0.643,1419,0.31,1426,0.324,1427,0.583,1429,0.812,1430,1.078,1432,0.506,1434,0.304,1435,0.454,1441,0.237,1444,0.298,1446,1.672,1447,0.332,1448,1.621,1450,0.341,1451,0.568,1461,0.787,1462,0.352,1468,0.396,1479,0.288,1480,2.125,1481,0.364,1500,0.364,1506,2.803,1515,0.249,1518,0.787,1520,0.488,1533,0.288,1537,0.378,1540,0.396,1544,1.086,1545,0.304,1550,1.208,1554,0.284,1556,3.172,1561,2.425,1571,2.063,1573,0.276,1577,1.106,1583,0.255,1591,0.378,1597,0.288,1605,0.396,1607,0.627,1613,0.613,1620,0.421,1624,1.603,1629,0.317,1632,0.28,1667,0.396,1668,0.341,1669,0.304,1674,0.681,1693,2.458,1703,1.106,1704,5.761,1706,0.55,1708,5.618,1715,0.681,1722,1.179,1724,1.033,1725,1.796,1727,3.957,1728,0.341,1738,0.31,1747,0.255,1752,0.31,1762,1.274,1764,0.352,1794,1.812,1796,0.589,1821,0.989,1822,2.714,1829,3.437,1842,1.241,1845,0.613,1848,0.519,1855,0.519,1866,0.324,1880,2.161,1903,1.606,1906,0.84,1907,1.466,1931,0.272,2001,0.589,2002,3.386,2003,1.466,2011,0.276,2015,0.378,2029,4.432,2030,0.324,2054,1.597,2058,0.324,2062,1.85,2082,1.419,2087,0.643,2100,0.341,2101,0.31,2123,0.332,2124,0.364,2125,0.68,2127,0.687,2130,3.374,2133,0.673,2152,0.815,2154,0.293,2158,1.329,2159,0.815,2165,0.341,2175,0.341,2176,0.681,2181,0.681,2190,0.272,2264,0.589,2269,0.396,2273,0.324,2291,0.298,2310,0.799,2314,0.989,2316,2.363,2324,1.106,2325,0.918,2338,0.288,2339,0.681,2348,0.332,2353,0.627,2387,1.751,2433,0.352,2447,0.341,2485,1.873,2502,1.064,2506,0.589,2536,2.735,2549,0.768,2550,0.396,2562,0.31,2611,0.812,2612,0.989,2621,0.421,2637,0.568,2659,1.552,2676,0.364,2679,0.284,2706,0.364,2717,0.66,2787,0.341,2815,0.66,2816,0.324,2830,0.304,2836,0.284,2880,0.66,2882,4.065,2884,0.704,2896,0.378,2897,0.768,3010,0.317,3021,1.94,3041,6.202,3079,0.396,3089,0.934,3094,1.757,3112,2.916,3133,0.396,3152,0.396,3161,0.341,3180,1.466,3262,2.284,3276,0.341,3324,4.052,3361,0.341,3364,0.66,3373,0.396,3374,0.341,3403,0.364,3473,3.329,3495,0.332,3533,0.421,3544,0.31,3556,1.993,3566,0.341,3621,0.378,3622,4.207,3829,0.31,3834,2.21,3863,0.364,3896,0.396,3903,0.891,3920,0.815,3937,0.613,3944,0.378,3997,0.768,4039,0.989,4053,1.812,4102,0.396,4103,7.004,4104,2.823,4105,5.9,4106,0.815,4107,5.573,4108,1.064,4109,2.21,4111,0.815,4112,0.396,4113,0.396,4114,1.064,4115,1.377,4116,0.768,4117,0.815,4118,0.458,4119,3.261,4120,0.458,4121,0.458,4122,0.421,4123,1.064,4124,2.042,4125,0.815,4126,1.606,4127,3.128,4128,0.815,4129,4.784,4130,0.458,4131,1.116,4132,0.458,4133,2.589,4134,0.421,4135,1.289,4136,5.324,4137,0.396,4138,0.458,4139,0.815,4140,1.667,4141,0.396,4142,1.185,4143,0.458,4144,0.732,4145,2.735,4146,0.458,4147,0.887,4148,0.815,4149,0.887,4150,0.458,4151,0.421,4152,0.458,4153,1.289,4154,0.458,4155,0.458,4156,0.458,4157,4.047,4158,0.396,4159,0.458,4160,0.352,4161,0.421,4162,0.815,4163,1.631,4164,0.421,4165,0.458,4166,0.421,4167,6.343,4168,0.378,4169,0.458,4170,0.458,4171,0.378,4172,1.532,4173,0.458,4174,0.458,4175,0.887,4176,0.396,4177,0.458,4178,2.997,4179,0.421,4180,0.364,4181,0.396,4182,0.458,4183,0.458,4184,0.396,4185,0.421,4186,0.324,4187,3.531,4188,0.887,4189,0.458,4190,0.458,4191,0.912,4192,0.768,4193,0.887,4194,0.887,4195,2.461,4196,4.313,4197,0.887,4198,0.458,4199,0.887,4200,1.289,4201,0.768,4202,0.887,4203,1.532,4204,0.458,4205,0.887,4206,0.887,4207,0.421,4208,2.997,4209,0.732,4210,0.421,4211,0.815,4212,0.421,4213,0.421,4214,0.421,4215,0.421,4216,0.421,4217,0.421,4218,0.458,4219,0.458,4220,0.458,4221,2.976,4222,2.735,4223,2.976,4224,4.682,4225,2.363,4226,2.976,4227,5.28,4228,4.504,4229,2.976,4230,0.458,4231,0.887,4232,0.458,4233,0.458,4234,0.458,4235,0.458,4236,0.458,4237,0.421,4238,0.458,4239,0.815,4240,0.421,4241,0.396,4242,1.185,4243,0.458,4244,0.458,4245,0.421,4246,0.421,4247,0.421,4248,0.458,4249,0.421,4250,0.887,4251,0.887,4252,0.364,4253,0.421,4254,0.421,4255,0.458,4256,1.185,4257,0.732,4258,0.458,4259,0.815,4260,0.458,4261,0.421,4262,0.458,4263,0.458,4264,0.421,4265,0.458,4266,0.815,4267,0.458,4268,0.421,4269,0.458,4270,0.458,4271,0.421,4272,0.458,4273,0.421,4274,0.458,4275,0.815,4276,0.458,4277,0.458,4278,0.421,4279,0.458,4280,1.443,4281,2.359,4282,0.458,4283,2.023,4284,0.887,4285,0.458,4286,0.421,4287,0.458,4288,0.458,4289,0.458,4290,0.458,4291,0.458,4292,0.458,4293,1.289,4294,0.458,4295,0.458,4296,0.458,4297,0.458,4298,0.887,4299,0.458,4300,0.887,4301,0.887,4302,0.458,4303,0.458,4304,0.887,4305,0.458,4306,0.458,4307,0.421,4308,0.458,4309,0.887,4310,0.815,4311,0.887,4312,0.887,4313,0.887,4314,0.887,4315,0.458,4316,0.887,4317,0.887,4318,0.458,4319,0.458,4320,0.458,4321,0.458,4322,0.396,4323,0.364,4324,0.421,4325,0.458,4326,0.458,4327,0.458,4328,0.458,4329,0.458,4330,0.887,4331,0.458,4332,0.887,4333,0.458,4334,0.887,4335,0.887,4336,0.458,4337,0.458,4338,0.458,4339,0.458,4340,0.421,4341,1.185,4342,0.815,4343,0.421,4344,0.421,4345,0.421,4346,0.421,4347,0.815,4348,0.421,4349,0.421,4350,0.352,4351,0.887,4352,0.458,4353,0.458,4354,0.378,4355,0.458,4356,0.378,4357,0.458,4358,0.421,4359,0.421,4360,0.458,4361,0.421,4362,0.458,4363,0.458,4364,0.815,4365,0.458,4366,0.421,4367,0.458,4368,0.458,4369,0.421,4370,0.458,4371,0.458,4372,0.421,4373,0.458,4374,0.458,4375,0.458,4376,0.421,4377,0.458,4378,1.751,4379,0.421,4380,0.458,4381,0.458,4382,0.458,4383,0.421,4384,0.458,4385,0.421,4386,0.458,4387,0.458,4388,0.458,4389,1.116,4390,1.185,4391,0.421,4392,0.458,4393,0.421,4394,0.458,4395,0.768,4396,0.887,4397,0.421,4398,0.458,4399,0.458,4400,0.458,4401,0.458,4402,0.458,4403,0.421,4404,0.458,4405,0.396,4406,0.421]],["component/39",[7,0.29]],["keyword/39",[]],["title/40-1",[16,23.34,889,16.393,2503,38.862]],["name/40-1",[]],["text/40-1",[]],["component/40-1",[]],["keyword/40-1",[]],["title/40-2",[89,16.646,259,17.447,355,18.05,889,10.235,952,13.913,955,12.413,1396,21.119]],["name/40-2",[]],["text/40-2",[]],["component/40-2",[]],["keyword/40-2",[]],["title/40-3",[364,26.271,1202,35.737,3006,40.481]],["name/40-3",[]],["text/40-3",[]],["component/40-3",[]],["keyword/40-3",[]],["title/40-4",[16,20.288,87,18.166,939,25.585,2503,33.781]],["name/40-4",[]],["text/40-4",[]],["component/40-4",[]],["keyword/40-4",[]],["title/40",[87,24.598,2503,45.742]],["name/40",[87,0.336,2503,0.626]],["text/40",[7,1.982,11,3.183,16,4.098,20,2.734,28,3.502,36,2.156,50,3.061,51,3.374,54,2.212,57,1.901,69,2.317,75,2.104,77,2.82,87,2.914,89,2.04,103,3.573,125,2.04,126,1.954,148,2.388,189,3.934,198,4.156,201,2.695,203,1.981,217,2.055,259,2.138,293,2.495,308,3.336,344,2.666,355,2.212,359,2.439,364,3.039,371,3.315,382,3.912,396,2.193,399,2.104,402,3.912,782,2.868,792,3.969,797,2.193,811,2.556,862,3.897,867,3.741,870,4.913,883,1.981,885,4.344,889,3.211,896,2.622,903,2.995,939,3.404,941,2.732,944,2.894,952,3.72,953,2.357,955,2.3,1063,4.45,1088,3.168,1091,2.82,1092,3.374,1123,4.984,1125,3.107,1166,1.927,1172,2.525,1201,2.734,1202,2.734,1240,3.374,1298,2.868,1306,4.025,1319,3.097,1321,2.776,1345,2.919,1364,4.068,1365,2.121,1396,3.912,1427,3.061,1446,2.121,1479,5.73,1501,3.033,1509,2.919,1544,2.919,1545,2.973,1624,3.648,1706,2.776,1747,2.495,1752,4.584,1774,2.868,1779,3.336,1982,4.117,1983,3.557,1984,3.557,1985,3.557,1986,3.878,1987,3.878,1991,6.616,2058,4.79,2127,2.388,2133,4.264,2265,4.909,2454,3.168,2501,5.645,2503,8.196,2613,4.717,2678,3.699,3005,6.266,3006,5.645,3010,6.292,3023,4.117,3024,7.068,3025,4.117,3026,4.117,3029,3.557,3031,4.117,3032,5.197,3033,4.117,3044,4.117,3045,3.878,3360,5.592,3618,5.06,4252,3.557,4407,4.48,4408,4.117,4409,8.165,4410,4.48,4411,4.48,4412,4.48,4413,4.48,4414,4.48,4415,4.48,4416,3.878,4417,4.48,4418,4.48,4419,4.48,4420,4.117,4421,4.48]],["component/40",[7,0.29]],["keyword/40",[]],["title/41-1",[889,19.296,1375,42.708]],["name/41-1",[]],["text/41-1",[]],["component/41-1",[]],["keyword/41-1",[]],["title/41-2",[344,20.187,903,30.481]],["name/41-2",[]],["text/41-2",[]],["component/41-2",[]],["keyword/41-2",[]],["title/41-3",[344,20.187,884,41.457]],["name/41-3",[]],["text/41-3",[]],["component/41-3",[]],["keyword/41-3",[]],["title/41-4",[198,22.797,1669,38.862,1830,38.147]],["name/41-4",[]],["text/41-4",[]],["component/41-4",[]],["keyword/41-4",[]],["title/41-5",[344,14.908,903,22.51,989,26.58,1044,25.823]],["name/41-
15",[]],["text/41-5",[]],["component/41-5",[]],["keyword/41-5",[]],["title/41-6",[885,24.291,989,26.58,1044,25.823,1427,23.004]],["name/41-6",[]],["text/41-6",[]],["component/41-6",[]],["keyword/41-6",[]],["title/41-7",[344,20.187,1192,36.734]],["name/41-7",[]],["text/41-7",[]],["component/41-7",[]],["keyword/41-7",[]],["title/41-8",[233,26.58,344,14.908,345,24.094,944,21.748]],["name/41-8",[]],["text/41-8",[]],["component/41-8",[]],["keyword/41-8",[]],["title/41-9",[889,19.296,1473,52.89]],["name/41-9",[]],["text/41-9",[]],["component/41-9",[]],["keyword/41-9",[]],["title/41-10",[233,26.58,989,26.58,1044,25.823,1473,39.059]],["name/41-10",[]],["text/41-10",[]],["component/41-10",[]],["keyword/41-10",[]],["title/41-11",[7,13.285,164,29.253]],["name/41-11",[]],["text/41-11",[]],["component/41-11",[]],["keyword/41-11",[]],["title/41-12",[725,24.53,953,20.376,1365,27.718]],["name/41-12",[]],["text/41-12",[]],["component/41-12",[]],["keyword/41-12",[]],["title/41-13",[259,19.256,355,19.921,725,16.903,953,14.04,1019,20.864,1365,19.1]],["name/41-13",[]],["text/41-13",[]],["component/41-13",[]],["keyword/41-13",[]],["title/41-14",[7,11.287,1025,27.281,1437,40.481]],["name/41-14",[]],["text/41-14",[]],["component/41-14",[]],["keyword/41-14",[]],["title/41-15",[7,13.285,1358,36.734]],["name/41-15",[]],["text/41-15",[]],["component/41-15",[]],["keyword/41-15",[]],["title/41-16",[1358,36.734,2783,56.91]],["name/41-16",[]],["text/41-16",[]],["component/41-16",[]],["keyword/41-16",[]],["title/41-17",[7,11.287,1358,31.208,2130,30.279]],["name/41-17",[]],["text/41-17",[]],["component/41-17",[]],["keyword/41-17",[]],["title/41-18",[164,24.853,1239,27.281,1430,31.208]],["name/41-18",[]],["text/41-18",[]],["component/41-18",[]],["keyword/41-18",[]],["title/41-19",[350,38.842,399,32.366]],["name/41-19",[]],["text/41-19",[]],["component/41-19",[]],["keyword/41-19",[]],["title/41",[7,11.287,164,24.853,1430,31.208]],["name/41",[771,0.82]],["text/41",[0,0.802,2,0.311,6,0.271,7,2.33,11,3.289,15,0.972,16,1.278,19,1.252,20,1.763,28,0.26,34,0.792,36,3.234,39,1.535,41,0.734,45,0.355,50,1.713,51,1.439,57,3.816,62,0.583,68,0.415,74,0.621,75,2.246,80,0.426,81,0.676,83,0.316,86,0.34,87,0.179,89,0.64,91,1.307,95,0.462,101,1.154,103,0.512,108,0.632,113,0.414,117,1.634,119,0.277,120,0.475,125,0.442,126,0.791,127,0.722,128,0.244,138,0.224,144,0.302,148,0.268,149,0.423,152,0.364,153,0.871,154,0.802,163,0.611,164,4.445,165,0.583,166,0.749,167,0.823,170,1.847,172,1.391,175,2.631,177,0.956,178,0.575,181,1.228,182,0.327,185,5.431,188,1.888,189,4.629,190,1.023,198,4.283,199,1.439,203,0.429,206,1.609,207,0.757,208,1.314,210,1.456,211,0.257,215,0.462,217,1.171,228,0.568,229,0.283,231,3.049,233,5.289,241,0.851,250,0.257,259,0.865,262,0.56,265,0.937,267,0.792,279,0.54,280,0.703,293,0.54,299,0.703,304,0.67,308,3.211,310,0.575,334,0.471,339,0.67,343,3.201,344,3.345,345,3.982,346,0.568,350,0.547,355,1.426,359,4.964,362,0.327,363,0.611,364,0.225,367,0.29,369,0.294,370,1.535,374,0.34,386,1.074,388,0.311,389,0.78,391,0.283,394,0.364,395,0.872,396,1.414,397,0.483,399,0.66,406,1.634,420,1.573,421,1.083,690,0.271,691,0.316,692,0.302,693,0.347,698,0.483,701,0.774,702,1.508,705,1.282,708,1.124,710,0.274,712,0.722,721,0.316,724,0.294,725,3.557,726,0.333,727,0.327,728,0.294,738,0.686,741,0.307,759,0.583,761,1.551,762,0.435,766,1.056,767,0.265,772,0.415,774,1.307,778,0.479,789,0.534,790,0.887,792,1.113,795,0.364,797,0.246,798,1.208,801,0.34,802,0.307,803,0.355,805,0.528,811,0.287,812,0.355,815,0.355,817,3.873,820,1.106,822,3.382,825,0.294,829,1.414,834,0.722,835,0.386,841,0.232,843,1.047,844,0.435,845,0.568,846,0.56,857,0.688,858,0.283,862,0.671,864,2.155,866,1.823,867,1.965,870,1.762,877,0.322,883,2.115,884,0.845,885,4.435,889,2.399,890,0.976,894,0.487,896,0.823,898,0.885,902,0.966,903,3.72,904,0.462,906,0.517,907,0.644,909,1.497,911,1.141,912,1.123,913,0.553,914,0.522,915,0.347,917,0.583,926,0.601,935,0.311,941,2.258,944,1.498,947,0.364,951,0.34,952,0.369,953,2.927,954,1.861,955,0.329,957,1.597,958,1.162,959,1.182,963,0.671,975,0.727,977,0.459,980,1.694,981,0.355,985,1.157,986,0.471,987,0.34,988,3.955,989,5.228,995,0.744,997,0.386,1003,0.355,1009,0.355,1011,0.512,1014,0.998,1018,1.713,1019,2.586,1023,1.497,1025,1.765,1027,2.46,1029,0.374,1031,0.302,1034,0.327,1044,4.094,1045,0.25,1052,0.77,1063,0.442,1065,1.062,1066,
10.386,1067,0.583,1070,0.28,1072,0.268,1081,0.592,1082,0.298,1086,1.405,1090,0.676,1091,5.08,1092,4.108,1094,0.462,1098,0.783,1100,1.325,1101,1.609,1103,0.7,1114,0.302,1120,2.345,1123,0.307,1125,3.205,1127,0.415,1130,0.34,1135,0.399,1141,0.517,1149,0.333,1166,2.766,1169,0.364,1173,0.801,1174,1.36,1177,0.821,1179,0.298,1187,0.512,1192,1.169,1203,0.34,1210,0.307,1213,0.528,1227,0.26,1231,1.019,1239,3.194,1240,3.604,1247,0.621,1260,0.311,1261,0.316,1272,0.583,1278,0.322,1281,0.277,1287,1.597,1296,0.575,1298,1.405,1303,2.019,1306,0.802,1312,0.621,1321,1.36,1322,0.355,1325,0.364,1326,2.327,1335,0.734,1344,0.547,1351,0.265,1353,1.074,1354,0.271,1355,1.157,1358,4.251,1359,0.644,1363,2.685,1365,4.193,1369,0.322,1373,0.248,1374,0.277,1375,2.963,1376,0.744,1383,0.534,1384,0.327,1385,0.287,1388,0.568,1404,0.933,1406,0.703,1412,0.364,1425,1.047,1427,4.063,1430,3.08,1431,0.497,1432,0.553,1435,2.449,1437,0.67,1438,0.386,1441,0.937,1443,0.553,1446,1.518,1448,0.765,1457,0.307,1458,0.72,1464,0.386,1472,0.67,1473,3.494,1478,1.684,1479,2.554,1480,1.43,1501,0.34,1520,1.208,1521,0.744,1538,0.435,1542,0.722,1553,1.405,1556,1.869,1557,0.364,1558,0.374,1571,0.274,1573,1.32,1582,4.015,1583,2.401,1596,0.801,1597,2.019,1598,0.374,1611,0.891,1612,2.655,1613,0.347,1614,0.399,1618,0.322,1621,3.309,1622,3.309,1623,3.309,1624,0.976,1625,3.728,1626,3.962,1629,2.805,1630,2.386,1631,0.644,1633,0.435,1634,0.801,1635,0.703,1636,0.415,1638,0.994,1640,1.292,1642,1.742,1643,1.391,1645,0.801,1646,0.415,1647,0.801,1648,1.116,1649,1.116,1651,0.435,1653,0.415,1660,0.703,1661,0.462,1662,0.891,1663,1.079,1664,0.462,1665,0.415,1666,0.435,1669,3.95,1671,1.282,1672,0.435,1673,0.415,1674,0.744,1677,0.686,1684,0.462,1698,0.644,1702,0.744,1703,0.333,1704,0.283,1706,0.311,1724,0.871,1725,0.774,1733,0.632,1738,1.956,1764,0.386,1775,0.801,1810,0.333,1822,0.56,1824,0.686,1829,0.885,1830,0.632,1839,0.302,1857,0.386,1858,0.327,1865,0.77,1866,0.355,1873,0.307,1880,0.287,1888,0.462,1899,0.283,1905,0.435,1906,1.181,1908,0.386,1923,0.268,1934,0.347,1967,0.462,1975,0.386,2001,0.333,2003,1.019,2004,0.722,2005,1.217,2007,1.85,2027,0.744,2030,4.087,2031,0.322,2054,0.656,2059,0.374,2082,0.583,2088,0.9,2112,0.355,2121,0.386,2130,1.494,2143,0.722,2153,0.656,2155,0.722,2165,0.374,2174,0.823,2187,0.386,2190,0.575,2193,0.355,2208,0.347,2240,1.35,2271,2.541,2279,0.839,2296,4.446,2314,2.461,2324,0.333,2325,1.93,2331,0.462,2333,0.435,2338,2.019,2375,0.839,2376,0.415,2406,2.822,2408,0.462,2409,1.812,2410,0.891,2418,0.462,2419,1.666,2430,1.292,2431,0.435,2432,0.462,2433,0.386,2435,0.462,2442,0.374,2445,0.722,2454,0.686,2459,0.462,2460,0.462,2461,3.129,2462,0.891,2463,0.462,2470,0.462,2471,0.415,2474,1.899,2475,0.462,2477,0.462,2478,0.34,2479,0.415,2493,0.722,2496,0.801,2506,1.203,2532,0.327,2537,0.327,2543,1.666,2611,0.611,2616,0.399,2679,0.311,2691,0.374,2724,0.656,2782,0.435,2783,0.801,2787,0.722,2825,0.322,2831,0.399,2868,0.399,2882,0.374,2903,0.621,2967,0.462,2996,1.116,2999,0.801,3066,3.97,3089,0.703,3094,0.722,3134,1.217,3135,0.462,3165,0.462,3178,0.462,3180,3.3,3492,0.462,3503,0.801,3504,0.399,3519,0.415,3566,0.374,3567,0.462,3614,0.355,3694,0.839,3718,0.333,3743,1.684,3811,1.666,3926,0.891,4039,0.744,4053,1.227,4137,0.435,4139,0.462,4148,0.462,4160,0.744,4196,0.703,4241,1.569,4252,0.399,4422,0.839,4423,0.502,4424,2.889,4425,0.97,4426,1.405,4427,0.502,4428,1.569,4429,0.435,4430,0.502,4431,0.502,4432,0.502,4433,0.462,4434,0.502,4435,0.502,4436,0.502,4437,0.502,4438,0.97,4439,0.502,4440,1.405,4441,0.502,4442,0.97,4443,1.813,4444,1.813,4445,0.502,4446,0.502,4447,0.502,4448,0.502,4449,0.502,4450,0.502,4451,0.502,4452,0.502,4453,0.502,4454,0.502,4455,0.502,4456,0.502,4457,0.462,4458,0.502,4459,0.502,4460,0.415,4461,0.502,4462,0.502,4463,0.502,4464,1.405,4465,0.502,4466,0.502,4467,0.502,4468,0.502,4469,0.502,4470,0.502,4471,0.502,4472,0.502,4473,0.502,4474,0.502,4475,0.502,4476,0.97,4477,0.502,4478,0.502,4479,0.502,4480,0.502,4481,0.97,4482,0.502,4483,0.502,4484,0.97,4485,0.502,4486,0.374,4487,0.502,4488,1.292,4489,0.502,4490,0.502,4491,4.435,4492,2.194,4493,1.391,4494,0.502,4495,0.502,4496,0.502,4497,2.194,4498,1.813,4499,0.502,4500,1.813,4501,7.655,4502,1.813,4503,2.552,4504,0.97,4505,0.97,4506,0.97,4507,0.97,4508,0.502,4509,0.502,4510,2.194,4511,1.405,4512,1.405,4513,1.405,4514,1.405,4515,1.405,4516,1.405,4517,1.405,4518,1.405,4519,1.405,4520,1.405,4521,5.597,4522,1.405,4523,0.97,4524,0.97,4525,1.813,4526,0.891,4527,0.97,4528,0.97,4529,3.789,4530,0.462,4531,2.194,4532,0.502,4533,0.502,4534,1.813,4535,0.97,4536,0.502,4537,0.502,4538,0.502,4539,0.502,4540,0.462,4541,1.405,4542,0.97,4543,0.502,4544,0.97,4545,2.016,4546,0.97,4547,0.502,4548,0.502,4549,2.655,4550,0.502,4551,0.502,4552,0.502,4553,0.502,4554,0.364,4555,0.502,4556,0.502,4557,1.116,4558,0.502,4559,0.891,4560,0.502,4561,0.415,4562,0.502,4563,0.502,4564,0.502,4565,0.502,4566,0.502,4567,0.502,4568,0.502,4569,0.97,4570,0.435,4571,0.502,4572,0.502,4573,0.462,4574,1.666,4575,1.405,4576,0.462,4577,0.502,4578,0.891,4579,0.462,4580,0.502,4581,0.355,4582,0.502,4583,1.405,4584,2.194,4585,1.813,4586,0.502,4587,0.502,4588,0.502,4589,0.502,4590,0.502,4591,0.502,4592,0.502,4593,0.502,4594,0.502,4595,0.97,4596,0.502,4597,0.502,4598,0.435,4599,0.97,4600,0.502,4601,0.502,4602,0.502,4603,0.462,4604,0.891,4605,0.502,4606,0.502,4607,0.502,4608,0.502,4609,0.502,4610,0.502,4611,0.502,4612,0.502,4613,0.502,4614,0.374,4615,0.502,4616,0.97,4617,0.891,4618,0.502,4619,0.502,4620,0.97,4621,0.502,4622,0.502,4623,2.194,4624,2.194,4625,0.502,4626,0.502,4627,0.502,4628,0.502,4629,0.502,4630,0.386,4631,0.502,4632,0.502,4633,0.502,4634,0.502,4635,0.502,4636,0.502,4637,0.502,4638,0.502,4639,0.435,4640,0.502,4641,0.502,4642,0.502,4643,0.502,4644,0.891,4645,0.502,4646,0.502,4647,0.97,4648,0.502,4649,0.502,4650,0.502,4651,0.502,4652,0.502,4653,0.502,4654,0.502,4655,0.502,4656,0.502,4657,0.502,4658,0.502,4659,0.502,4660,0.502,4661,0.502,4662,0.502,4663,0.502,4664,0.502,4665,0.502]],["component/41",[7,0.29]],["keyword/41",[]],["title/42-1",[0,39.317,2088,44.12]],["name/42-1",[]],["text/42-1",[]],["component/42-1",[]],["keyword/42-1",[]],["title/42-2",[2088,44.12,2089,54.716]],["name/42-2",[]],["text/42-2",[]],["component/42-2",[]],["keyword/42-2",[]],["title/42-3",[2088,44.12,2607,56.91]],["name/42-3",[]],["text/42-3",[]],["component/42-3",[]],["keyword/42-3",[]],["title/42",[0,39.317,7,13.285]],["name/42",[771,0.82]],["text/42",[0,3.169,7,1.946,11,3.943,16,2.214,19,1.981,20,2.119,28,2.872,57,3.367,80,4.064,87,1.239,125,2.529,149,1.514,188,1.73,189,3.984,198,3.378,203,1.536,211,1.778,217,1.593,218,2.119,223,3.78,233,1.813,241,4.074,265,2.872,267,3.13,279,3.094,334,2.696,345,2.629,350,1.957,364,1.558,695,1.657,698,1.73,702,1.494,708,1.778,710,3.025,715,2.401,725,3.323,761,1.536,766,3.341,792,3.027,816,2.401,817,1.569,825,2.032,867,3.566,872,4.41,884,2.089,889,2.221,890,2.992,895,2.351,9
106,3.7,941,4.072,953,1.208,957,1.73,958,3.161,977,1.644,989,3.625,1044,3.522,1055,1.912,1063,1.581,1086,1.912,1088,2.456,1090,2.673,1100,1.593,1130,2.351,1141,4.228,1152,2.262,1153,2.757,1172,1.957,1174,4.302,1187,1.832,1216,5.873,1231,2.517,1240,2.767,1248,4.799,1272,2.089,1287,1.73,1297,2.608,1306,1.536,1335,1.813,1352,1.934,1427,2.511,1443,4.525,1472,2.401,1520,1.912,1577,3.687,1582,4.842,1618,2.223,1704,5.215,1762,2.186,1836,2.456,1858,4.523,1873,2.119,1906,4.523,1907,2.517,1923,4.624,2003,2.517,2022,3.191,2047,3.191,2050,3.191,2087,5.032,2088,8.262,2089,9.18,2125,2.93,2127,3.7,2133,4.143,2154,2.223,2174,2.032,2187,4.263,2202,6.009,2210,3.84,2211,4.237,2216,2.456,2221,2.665,2264,2.305,2321,3.006,2354,2.586,2428,3.006,2485,5.511,2502,2.867,2561,5.032,2607,8.815,2633,3.687,2636,5.908,2867,2.665,3032,5.327,3094,2.586,3161,2.586,3212,3.191,3213,5.104,3276,2.586,3374,2.586,3399,3.191,3571,5.104,3600,3.191,3842,3.191,3852,2.517,3863,4.41,4053,5.37,4310,6.379,4422,3.006,4491,5.327,4545,7.29,4644,3.191,4666,8.675,4667,3.191,4668,3.006,4669,5.554,4670,3.472,4671,3.472,4672,3.472,4673,3.472,4674,3.472,4675,4.808,4676,5.554,4677,6.942,4678,3.472,4679,6.942,4680,3.472,4681,3.472,4682,3.472,4683,3.472,4684,3.472,4685,3.472,4686,3.472,4687,3.472,4688,3.472,4689,3.472,4690,3.472,4691,3.472,4692,2.867,4693,5.554]],["component/42",[7,0.29]],["keyword/42",[]],["title/43-1",[343,44.12,970,51.326]],["name/43-1",[]],["text/43-1",[]],["component/43-1",[]],["keyword/43-1",[]],["title/43-2",[344,14.908,953,17.712,1365,24.094,4694,46.772]],["name/43-2",[]],["text/43-2",[]],["component/43-2",[]],["keyword/43-2",[]],["title/43-3",[343,37.483,889,16.393,964,37.483]],["name/43-3",[]],["text/43-3",[]],["component/43-3",[]],["keyword/43-3",[]],["title/43",[7,9.811,11,17.801,164,21.604,343,32.582]],["name/43",[164,0.4,343,0.603]],["text/43",[7,2.281,11,2.909,16,1.506,18,2.747,19,2.846,50,2.685,57,2.847,83,1.377,85,3.961,89,0.996,91,1.12,103,3.538,120,1.071,125,1.721,126,0.954,138,0.974,144,1.316,148,2.014,164,4.262,169,1.298,170,2.272,182,1.425,188,2.485,189,1.91,198,3.983,199,1.883,207,2.036,210,2.508,217,1.734,223,1.191,228,1.28,229,2.812,233,5.431,234,1.08,259,2.835,262,2.183,341,2.01,343,8.081,344,3.775,345,4.654,355,4.107,359,5.227,363,1.377,367,1.264,370,4.035,376,1.481,383,3.829,399,2.79,420,1.696,695,2.381,698,1.883,702,1.626,708,2.555,713,1.452,723,1.452,725,4.285,741,1.335,757,2.613,766,2.401,767,1.994,789,1.205,790,1.85,792,2.925,801,1.481,816,2.613,817,4.701,829,1.071,843,3.201,854,4.548,857,1.85,861,1.09,864,3.175,866,2.401,867,0.899,883,1.671,889,2.329,890,2.688,896,1.28,902,1.166,903,2.627,909,6.497,914,1.178,917,1.316,926,1.356,941,3.767,944,3.362,952,1.899,953,1.736,954,3.077,955,2.017,958,0.996,959,1.178,970,2.815,977,1.036,989,3.833,1009,2.673,1014,2.747,1018,0.989,1027,1.248,1044,3.723,1063,3.054,1065,0.911,1067,1.316,1070,1.218,1086,2.081,1090,1.053,1091,3.141,1092,5.002,1100,1.004,1125,3.994,1157,1.481,1166,0.941,1177,0.819,1182,3.271,1192,4.194,1201,1.335,1213,1.191,1221,1.218,1227,1.131,1287,1.09,1332,1.452,1335,1.142,1363,0.857,1365,5.371,1369,1.4,1383,1.205,1404,1.452,1420,1.4,1427,1.708,1430,2.014,1434,1.452,1436,3.102,1438,1.679,1446,1.789,1448,4.285,1502,2.419,1520,2.081,1521,1.679,1556,2.659,1586,2.508,1624,1.178,1669,2.508,1704,1.233,1738,1.481,1746,2.815,1747,1.218,1834,4.107,1873,1.335,1880,1.248,1906,3.251,1907,3.617,2001,2.508,2011,1.316,2014,2.01,2061,1.894,2082,1.316,2109,2.01,2174,2.212,2190,1.298,2216,1.547,2271,4.862,2296,5.44,2325,5.142,2406,1.629,2461,4.905,2471,5.538,2480,2.01,2482,3.473,2483,4.585,2484,2.01,2585,1.586,2696,1.737,2746,4.424,3011,1.512,3277,2.74,3503,1.806,3544,2.558,3614,1.547,3852,1.586,3899,1.737,4433,3.473,4486,3.716,4530,2.01,4549,2.01,4559,2.01,4570,5.142,4598,1.894,4694,7.231,4695,3.779,4696,6.707,4697,2.188,4698,2.188,4699,2.188,4700,4.319,4701,1.894,4702,2.188,4703,1.679,4704,4.989,4705,2.188,4706,2.188,4707,2.188,4708,3.779,4709,1.806,4710,4.989,4711,2.01,4712,1.737,4713,2.01,4714,2.188,4715,2.188]],["component/43",[7,0.29]],["keyword/43",[]],["title/44-1",[7,11.287,1240,29.169,1368,40.481]],["name/44-1",[]],["text/44-1",[]],["component/44-1",[]],["keyword/44-1",[]],["title/44-2",[889,23.447]],["name/44-2",[]],["text/44-2",[]],["component/44-2",[]],["keyword/44-2",[]],["title/44-3",[1582,51.114]],["name/44-3",[]],["text/44-3",[]],["component/44-3",[]],["keyword/44-3",[]],["title/44-4",[80,36.778]],["name/44-4",[]],["text/44-4",[]],["component/44-4",[]],["keyword/44-4",[]],["title/44-5",[1297,39.329]],["name/44-5",[]],["text/44-5",[]],["component/44-5",[]],["keyword/44-5",[]],["title/44-6",[]],["name/44-6",[]],["text/44-6",[]],["component/44-6",[]],["keyword/44-6",[]],["title/44-7",[867,34.421]],["name/44-7",[]],["text/44-7",[]],["component/44-7",[]],["keyword/44-7",[]],["title/44-8",[1724,42.708,2158,38.842]],["name/44-8",[]],["text/44-8",[]],["component/44-8",[]],["keyword/44-8",[]],["title/44-9",[2082,50.376]],["name/44-9",[]],["text/44-9",[]],["component/44-9",[]],["keyword/44-9",[]],["title/44-10",[1783,49.958,2273,48.742]],["name/44-10",[]],["text/44-10",[]],["component/44-10",[]],["keyword/44-10",[]],["title/44-11",[2008,64.269]],["name/44-11",[]],["text/44-11",[]],["component/44-11",[]],["keyword/44-11",[]],["title/44-12",[885,39.969]],["name/44-12",[]],["text/44-12",[]],["component/44-12",[]],["keyword/44-12",[]],["title/44-13",[4716,72.491]],["name/44-13",[]],["text/44-13",[]],["component/44-13",[]],["keyword/44-13",[]],["title/44-14",[2007,60.706]],["name/44-14",[]],["text/44-14",[]],["component/44-14",[]],["keyword/44-14",[]],["title/44-15",[1072,36.734,4717,63.334]],["name/44-15",[]],["text/44-15",[]],["component/44-15",[]],["keyword/44-15",[]],["title/44-16",[1362,59.228]],["name/44-16",[]],["text/44-16",[]],["component/44-16",[]],["keyword/44-16",[]],["title/44",[7,13.285,1240,34.333]],["name/44",[771,0.82]],["text/44",[7,1.809,11,2.701,19,0.75,26,1.731,36,1.595,51,2.373,57,3.151,71,1.085,80,4.247,86,0.889,87,0.469,91,2.096,113,2.286,115,0.952,116,1.137,126,0.573,128,0.638,145,1.564,149,1.785,167,0.769,169,0.779,170,2.436,189,4.761,190,1.641,198,0.935,210,0.872,217,0.603,233,0.686,265,0.679,280,3.878,293,5.14,334,2.596,344,1.718,361,0.741,371,4.147,374,0.889,382,0.759,386,1.622,389,2.05,393,1.966,395,1.155,399,1.556,402,2.364,685,2.666,690,1.785,695,1.582,702,3.193,710,0.715,721,0.827,725,4.292,761,1.466,777,2.054,790,1.622,797,1.175,798,0.724,805,0.715,811,0.75,816,2.291,829,0.643,843,1.146,862,1.582,866,2.822,867,3.388,870,4.987,883,2.795,885,4.145,889,3.365,890,0.708,896,0.769,897,2.335,898,3,902,2.851,941,3.115,944,0.561,952,1.261,953,2.782,955,1.125,958,1.093,959,2.205,969,0.802,975,1.714,977,0.622,986,1.165,994,2.122,1011,3.094,1017,1.788,1019,2.116,1025,1.118,1045,2.665,1062,0.779,1063,3.64,1065,0.547,1068,0.814,1072,4.261,1089,0.889,1090,1.595,1098,0.732,1101,0.732,1114,0.79,1115,4.733,1125,1.101,1128,0.952,1166,3.898,1171,1.207,1172,0.741,1187,3.334,1201,1.465,1221,5.905,1224,1.008,1227,0.679,1240,5.321,1265,2.967,1267,4.972,1269,3.934,1270,3.37,1273,0.75,1281,0.724,1287,0.655,1291,0.741,1297,5.258,1335,0.686,1339,2.344,1353,1.175,1355,1.266,1360,0.856,1362,6.931,1364,1.651,1365,0.622,1368,0.908,1369,0.841,1373,0.649,1379,1.307,1388,1.405,1393,0.827,1394,0.841,1427,4.631,1436,0.686,1441,1.241,1444,0.856,1446,3.655,1502,3.754,1505,1.207,1509,6.013,1510,6.013,1511,6.247,1512,6.247,1513,0.952,1515,0.715,1520,1.825,1523,0.929,1526,5.808,1573,0.79,1575,2.543,1582,5.032,1610,0.929,1618,1.537,1692,2.344,1699,1.137,1704,2.307,1722,0.929,1724,2.536,1747,1.337,1779,6.873,1783,2.967,1810,0.872,1855,1.405,1899,0.741,1922,3.249,1981,0.889,2007,1.74,2008,4.501,2027,2.543,2030,4.148,2032,1.137,2081,1.207,2082,2.866,2124,1.043,2127,3.3
169,2148,1.008,2153,0.889,2154,3.05,2158,2.685,2190,0.779,2193,0.929,2265,8.325,2273,4.47,2324,2.716,2338,0.827,2344,1.085,2364,1.906,2390,2.206,2411,0.952,2422,1.207,2423,3.045,2452,4.843,2454,0.929,2616,3.783,2787,1.788,2815,0.979,2836,2.054,2864,1.982,2910,2.543,3002,1.207,3011,0.908,3079,2.869,3094,3.048,3622,1.085,3639,2.543,3760,1.207,3829,2.771,3903,2.291,3966,5.471,4069,1.137,4158,1.137,4186,0.929,4324,1.207,4486,0.979,4581,0.929,4712,2.631,4716,2.078,4717,2.206,4718,1.314,4719,1.314,4720,1.008,4721,1.314,4722,4.093,4723,4.093,4724,4.093,4725,1.314,4726,1.314,4727,1.314,4728,1.314,4729,1.314,4730,1.314,4731,1.207,4732,3.314,4733,1.314,4734,3.761,4735,4.501,4736,3.314,4737,1.314,4738,2.4,4739,1.207,4740,1.314,4741,2.4,4742,1.314,4743,1.314,4744,1.314,4745,1.314,4746,1.314,4747,1.314,4748,1.314,4749,1.314,4750,3.314,4751,3.314,4752,1.314,4753,1.314,4754,1.314,4755,1.314,4756,1.314,4757,1.314,4758,1.207,4759,1.314,4760,1.314,4761,1.314,4762,1.314,4763,1.314,4764,1.207,4765,4.093,4766,1.207,4767,1.314,4768,2.4,4769,1.314,4770,3.314,4771,1.314,4772,1.314,4773,1.314,4774,1.314,4775,1.314,4776,2.4,4777,1.314,4778,1.314,4779,2.4,4780,1.137,4781,1.314,4782,1.314,4783,1.314,4784,1.314,4785,1.314,4786,1.314,4787,1.314,4788,3.314,4789,2.4,4790,2.4,4791,1.314,4792,1.314,4793,1.314,4794,1.314,4795,1.314,4796,1.314,4797,1.314,4798,1.314,4799,2.4,4800,1.314,4801,1.314,4802,1.314,4803,1.137,4804,1.314,4805,1.314,4806,1.314,4807,1.314,4808,1.314,4809,1.314,4810,1.314,4811,1.314,4812,1.314,4813,1.314,4814,1.314,4815,1.314]],["component/44",[7,0.29]],["keyword/44",[]],["title/45-1",[7,11.287,953,20.376,2287,36.284]],["name/45-1",[]],["text/45-1",[]],["component/45-1",[]],["keyword/45-1",[]],["title/45-2",[953,20.376,2287,36.284,4816,53.808]],["name/45-2",[]],["text/45-2",[]],["component/45-2",[]],["keyword/45-2",[]],["title/45-3",[903,25.896,1239,27.281,1303,36.864]],["name/45-3",[]],["text/45-3",[]],["component/45-3",[]],["keyword/45-3",[]],["title/45-4",[7,9.811,814,33.159,1448,27.715,1461,31.064]],["name/45-4",[]],["text/45-4",[]],["component/45-4",[]],["keyword/45-4",[]],["title/45-5",[857,22.032,903,19.907,1239,20.972,1303,28.339,3829,30.47]],["name/45-5",[]],["text/45-5",[]],["component/45-5",[]],["keyword/45-5",[]],["title/45-6",[903,22.51,1239,23.714,1303,32.044,2249,46.772]],["name/45-6",[]],["text/45-6",[]],["component/45-6",[]],["keyword/45-6",[]],["title/45-7",[1303,43.391,2130,35.64]],["name/45-7",[]],["text/45-7",[]],["component/45-7",[]],["keyword/45-7",[]],["title/45-8",[47,43.391,1361,33.734]],["name/45-8",[]],["text/45-8",[]],["component/45-8",[]],["keyword/45-8",[]],["title/45-9",[3264,62.368]],["name/45-9",[]],["text/45-9",[]],["component/45-9",[]],["keyword/45-9",[]],["title/45",[47,52.726]],["name/45",[771,0.82]],["text/45",[0,1.183,7,2.348,9,1.351,11,3.517,16,0.827,26,1.884,41,4.438,47,5.104,51,1.033,54,1.781,57,2.754,75,0.974,81,0.998,89,0.944,91,1.062,94,1.712,101,2.165,103,1.094,111,0.99,113,1.542,119,1.142,120,1.766,125,2.608,126,1.573,128,1.006,138,2.133,142,2.17,144,1.247,149,0.904,162,1.23,163,1.306,164,2.754,166,1.105,167,2.112,177,1.094,178,1.23,185,3.387,188,1.033,189,3.602,190,1.447,198,1.405,199,1.033,206,2.01,211,1.062,216,1.247,218,1.266,228,1.214,231,1.467,233,4.233,237,0.998,250,1.848,334,1.006,335,2.637,344,2.678,345,3.072,346,1.214,350,2.033,359,1.965,363,3.605,364,1.619,370,1.247,371,1.766,386,1.015,389,3.063,396,2.803,398,2.17,399,1.694,404,2.769,406,3.567,420,1.619,421,2.365,690,1.117,691,1.306,695,2.286,698,1.033,702,2.06,705,1.467,708,1.062,710,1.965,717,3.242,722,1.795,724,1.214,726,1.376,741,1.266,757,2.494,759,1.247,760,1.503,761,1.596,766,0.998,767,4.483,774,1.062,775,1.544,778,1.024,781,1.712,789,1.142,792,2.497,797,1.015,801,3.242,804,1.434,814,1.351,817,2.165,826,1.404,840,1.831,841,3,842,1.503,843,2.286,852,1.351,857,1.015,861,1.033,862,2.286,866,0.998,870,1.814,880,3.801,883,0.917,884,2.881,885,2.286,889,1.993,890,2.58,895,1.404,903,4.918,906,1.923,914,1.943,915,1.434,917,1.247,935,1.285,941,1.456,942,1.142,944,0.886,951,1.404,952,1.373,953,3.961,955,1.225,958,1.643,963,0.99,977,2.267,981,1.467,986,1.751,988,1.884,989,4.233,999,1.404,1008,3.311,1011,1.094,1018,1.631,1019,1.072,1022,1.646,1025,3.317,1027,1.183,1044,3.612,1045,1.033,1055,1.142,1063,3.242,1064,1.285,1067,1.247,1079,1.467,1081,1.266,1086,1.987,1090,1.736,1091,2.272,1092,2.386,1098,1.155,1114,3.445,1125,4.056,1149,1.376,1152,1.351,1166,0.892,1174,1.285,1177,2.144,1205,1.376,1213,1.129,1219,1.376,1225,1.503,1234,1.404,1239,5.265,1252,1.646,1255,1.306,1287,1.033,1291,2.699,1292,1.544,1294,1.105,1303,7.449,1306,0.917,1311,1.247,1316,1.376,1319,1.434,1322,1.467,1325,5.547,1331,4.664,1335,1.083,1352,1.155,1353,2.344,1354,1.117,1355,1.903,1358,1.105,1363,0.812,1372,1.306,1373,1.024,1375,2.968,1378,1.434,1385,3.267,1397,1.351,1419,1.404,1424,2.395,1427,2.588,1431,1.848,1436,1.884,1442,1.591,1446,2.711,1447,1.503,1448,3.118,1451,1.327,1457,1.266,1461,2.202,1469,1.795,1523,1.467,1536,1.266,1550,3.472,1554,1.285,1555,1.591,1556,3.052,1571,1.129,1582,1.266,1583,1.155,1586,1.376,1621,1.591,1622,1.591,1623,1.591,1638,1.467,1642,3.802,1643,2.769,1645,2.979,1646,1.712,1647,1.712,1648,1.646,1649,1.646,1660,1.503,1665,1.712,1677,2.552,1725,1.142,1733,1.351,1747,1.155,1796,1.376,1829,1.306,1834,1.434,1848,1.214,1880,2.732,2030,1.467,2059,1.544,2125,3.021,2127,3.052,2130,5.375,2137,1.591,2138,1.351,2144,1.712,2145,1.712,2174,3.797,2213,2.494,2216,1.467,2287,5.267,2296,4.486,2326,1.795,2382,1.544,2406,2.687,2442,1.544,2506,1.376,2508,3.801,2522,1.306,2617,1.646,2657,1.306,2820,2.058,3001,1.591,3099,1.591,3175,1.906,3177,1.906,3203,1.214,3264,2.687,3265,1.712,3268,1.23,3346,1.591,3361,1.544,3417,2.769,3438,3.123,3461,4.957,3503,1.712,3544,2.442,3835,1.712,3899,1.646,3903,1.434,3939,2.979,4180,1.646,4195,
11.266,4201,1.795,4323,1.646,4350,1.591,4429,1.795,4501,1.906,4576,1.906,4817,3.955,4818,1.906,4819,2.074,4820,2.074,4821,4.401,4822,2.074,4823,2.074,4824,2.074,4825,3.316,4826,1.646,4827,3.608,4828,2.074,4829,2.074,4830,3.608,4831,2.074,4832,2.074,4833,3.608,4834,2.074,4835,5.726,4836,3.316,4837,3.608,4838,2.074,4839,2.074,4840,2.074,4841,3.608,4842,2.074,4843,2.074,4844,2.074,4845,2.074,4846,1.467,4847,1.795,4848,1.906]],["component/45",[7,0.29]],["keyword/45",[]],["title/46-1",[7,11.287,2820,33.403,4849,48.349]],["name/46-1",[]],["text/46-1",[]],["component/46-1",[]],["keyword/46-1",[]],["title/46-2",[7,9.811,138,22.671,2613,29.403,2820,29.036]],["name/46-2",[]],["text/46-2",[]],["component/46-2",[]],["keyword/46-2",[]],["title/46-3",[7,11.287,2613,33.826,2820,33.403]],["name/46-3",[]],["text/46-3",[]],["component/46-3",[]],["keyword/46-3",[]],["title/46-4",[7,11.287,138,26.081,2820,33.403]],["name/46-4",[]],["text/46-4",[]],["component/46-4",[]],["keyword/46-4",[]],["title/46-5",[7,11.287,2820,33.403,4850,50.683]],["name/46-5",[]],["text/46-5",[]],["component/46-5",[]],["keyword/46-5",[]],["title/46-6",[7,8.677,1354,24.246,2820,25.678,2825,28.815,4554,32.628]],["name/46-6",[]],["text/46-6",[]],["component/46-6",[]],["keyword/46-6",[]],["title/46-7",[4851,62.368]],["name/46-7",[]],["text/46-7",[]],["component/46-7",[]],["keyword/46-7",[]],["title/46-8",[4852,59.228]],["name/46-8",[]],["text/46-8",[]],["component/46-8",[]],["keyword/46-8",[]],["title/46-9",[4853,69.153]],["name/46-9",[]],["text/46-9",[]],["component/46-9",[]],["keyword/46-9",[]],["title/46",[7,11.287,1351,30.888,2820,33.403]],["name/46",[4493,1.329]],["text/46",[1,1.168,3,0.748,7,1.39,9,0.39,11,2.708,16,0.845,18,0.632,19,2.46,20,1.009,27,0.475,32,0.446,33,0.494,34,0.647,36,0.288,41,0.313,50,1.663,54,1.261,57,1.254,74,1.634,75,0.281,80,1.759,81,0.288,87,0.214,89,0.966,91,2.209,92,0.911,101,0.519,103,0.872,104,0.326,110,1.644,111,1.012,112,0.33,113,3.409,120,0.562,125,1.675,126,2.626,127,0.446,128,0.557,138,4.227,142,2.767,146,2.344,148,0.319,149,0.925,154,0.342,162,2.376,164,1.561,166,0.612,175,2.032,176,4.431,177,1.347,178,0.681,188,1.272,189,4.989,190,1.475,198,0.644,203,0.508,207,1.142,211,0.847,216,0.691,221,1.041,223,0.326,224,1.582,237,2.075,241,1.728,250,2.052,265,1.722,267,0.647,279,0.639,334,0.557,346,0.35,350,0.337,368,0.371,369,0.35,371,3.134,379,1.199,386,0.809,389,2.096,393,3.449,395,1.02,396,0.809,397,1.272,399,0.539,409,0.735,420,1.146,421,0.567,685,1.925,690,1.793,694,1.925,698,1.659,701,1.406,702,0.912,708,1.086,710,0.625,711,0.36,715,0.414,725,2.041,728,0.672,730,0.397,741,0.365,747,1.142,749,0.446,757,0.414,761,1.129,766,1.602,767,1.119,774,1.086,778,4.622,789,1.168,790,1.446,792,0.925,794,0.423,795,2.142,797,1.038,798,0.911,801,0.405,802,0.365,804,0.414,805,0.625,811,0.342,817,0.271,822,0.323,826,1.435,829,1.25,841,1.366,843,2.325,846,2.962,855,0.655,857,1.25,858,0.337,861,0.298,862,2.196,866,1.02,867,1.049,871,0.794,879,5.448,881,0.762,889,0.463,890,2.158,894,1.485,895,0.405,897,1.21,901,0.655,906,0.612,913,0.655,914,4.235,939,0.301,940,0.405,941,2.966,942,3.525,948,2,953,2.228,954,1.838,955,1.36,958,1.824,959,1.793,963,1.219,964,0.383,969,0.365,973,1.514,974,0.723,977,5.208,985,0.606,986,1.785,987,0.405,994,0.383,1000,0.434,1003,0.812,1006,1.041,1007,0.832,1011,2.427,1013,0.594,1018,2.721,1025,0.988,1027,0.342,1031,3.368,1034,0.39,1040,0.397,1045,4.56,1053,0.794,1054,0.494,1063,0.273,1068,2.28,1070,0.921,1072,0.319,1076,0.46,1079,0.812,1081,0.365,1082,0.355,1086,0.911,1090,2.075,1092,1.272,1098,0.639,1100,0.527,1115,4.062,1121,0.414,1125,1.356,1143,0.342,1149,1.098,1152,0.39,1153,0.475,1154,0.316,1158,1.435,1159,0.855,1166,1.582,1169,0.434,1175,0.777,1177,0.794,1179,0.981,1180,0.625,1181,1.358,1192,0.319,1201,0.701,1210,2.445,1212,1.077,1213,0.326,1214,1.435,1227,2.895,1231,0.434,1247,1.059,1248,0.414,1255,0.377,1260,0.711,1261,2.715,1267,2.95,1272,1.276,1273,4.417,1278,2.564,1281,2.957,1283,0.377,1285,0.405,1287,0.572,1294,3.099,1295,1.336,1297,3.798,1298,0.383,1306,2.476,1307,0.46,1308,1.466,1311,2.594,1312,0.735,1328,0.55,1330,0.383,1335,1.107,1344,0.337,1345,0.748,1351,0.606,1352,0.921,1353,0.293,1354,1.592,1355,0.606,1356,0.762,1357,0.735,1358,1.13,1363,0.648,1364,1.056,1371,3.335,1373,1.459,1374,0.632,1379,0.326,1383,2.026,1385,1.686,1386,0.748,1394,0.383,1397,1.077,1398,4.282,1405,0.365,1412,0.434,1424,1.407,1429,0.377,1431,0.588,1435,0.307,1436,1.333,1439,0.691,1440,1.435,1444,1.077,1446,0.543,1451,1.358,1458,3.693,1459,0.39,1522,4.64,1553,1.059,1556,1.13,1558,0.446,1571,0.326,1572,0.397,1573,0.691,1594,0.735,1610,0.812,1613,0.414,1618,0.735,1624,0.323,1631,2.21,1632,2.032,1703,0.397,1704,0.647,1706,1.025,1725,0.632,1733,0.39,1760,0.911,1771,0.434,1822,1.923,1824,0.812,1839,1.536,1848,0.35,1855,2.344,1860,1.925,1866,0.423,1880,0.342,1899,2.43,1909,0.397,1910,1.634,1931,2.376,1934,1.466,1935,0.434,1936,0.475,1975,0.46,2011,1.536,2054,0.405,2062,0.414,2082,0.36,2112,0.812,2125,1.559,2127,1.361,2133,0.313,2134,1.009,2137,0.881,2148,0.46,2153,0.405,2174,0.672,2190,3.321,2193,4.113,2208,0.794,2253,0.434,2264,3.716,2310,1.025,2324,0.397,2327,1.901,2338,0.377,2353,1.5,2429,0.518,2442,0.446,2497,0.446,2508,0.397,2512,0.518,2514,1.231,2522,5.287,2529,1.119,2530,4.208,2532,0.39,2537,1.925,2554,2.268,2562,1.728,2611,0.723,2613,4.081,2633,2.8
162,2657,3.067,2678,0.494,2679,2.063,2699,0.911,2720,5.429,2724,0.777,2765,1.295,2788,1.365,2812,2.44,2817,0.55,2820,3.063,2825,1.059,2844,4.169,2853,0.405,2854,0.446,2901,0.994,2903,2.355,3011,0.414,3052,0.434,3082,0.812,3099,0.46,3137,1.199,3152,0.518,3180,1.537,3249,1.806,3268,5.197,3272,2.003,3276,0.446,3302,0.55,3346,0.46,3356,0.762,3384,0.494,3502,0.812,3556,0.446,3618,1.025,3639,0.46,3722,0.475,3728,0.46,3738,0.46,3797,0.494,3814,0.911,3850,0.475,3852,1.537,3897,0.948,3944,0.494,4069,0.518,4160,0.46,4168,0.948,4171,0.494,4180,5.358,4191,0.423,4195,1.009,4307,2.346,4323,0.475,4428,2.558,4554,1.851,4557,1.684,4581,1.5,4614,1.231,4712,0.475,4720,0.881,4739,0.55,4817,0.494,4821,0.55,4849,3.799,4850,3.982,4851,4.331,4852,5.56,4853,2.44,4854,1.52,4855,1.055,4856,0.599,4857,0.599,4858,0.599,4859,4.234,4860,0.599,4861,0.434,4862,1.751,4863,0.599,4864,0.599,4865,1.148,4866,0.599,4867,0.55,4868,1.148,4869,0.599,4870,0.599,4871,0.599,4872,1.431,4873,0.599,4874,0.599,4875,0.599,4876,0.518,4877,1.055,4878,0.55,4879,0.475,4880,3.584,4881,0.599,4882,1.148,4883,1.148,4884,0.994,4885,0.599,4886,0.599,4887,2.553,4888,0.599,4889,0.599,4890,0.599,4891,1.148,4892,1.836,4893,2.558,4894,0.599,4895,0.599,4896,3.561,4897,0.994,4898,1.431,4899,2.558,4900,1.836,4901,3.381,4902,0.475,4903,0.475,4904,0.494,4905,1.52,4906,0.599,4907,1.148,4908,0.599,4909,0.599,4910,0.599,4911,2.749,4912,0.599,4913,0.599,4914,0.599,4915,0.599,4916,0.832,4917,0.599,4918,0.599,4919,0.46,4920,0.446,4921,1.148,4922,0.599,4923,0.397,4924,1.148,4925,0.599,4926,0.494,4927,0.599,4928,0.599,4929,0.599,4930,0.55,4931,0.518,4932,1.148,4933,0.518,4934,1.055,4935,0.46,4936,0.494,4937,2.553,4938,2.268,4939,1.148,4940,1.654,4941,1.148,4942,0.599,4943,3.531,4944,4.935,4945,0.599,4946,0.599,4947,3.467,4948,0.599,4949,2.21,4950,0.599,4951,1.148,4952,1.148,4953,0.599,4954,0.599,4955,0.599,4956,0.599,4957,0.55,4958,0.518,4959,0.599,4960,0.599,4961,0.599,4962,1.148,4963,1.055,4964,0.599,4965,0.599,4966,0.55,4967,1.098,4968,1.52,4969,1.055,4970,1.148,4971,0.46,4972,0.599,4973,0.518,4974,1.836,4975,0.599,4976,2.108,4977,0.599,4978,0.948,4979,1.949,4980,0.55,4981,0.55,4982,0.599,4983,0.832,4984,1.148,4985,1.654,4986,6.892,4987,2.268,4988,0.55,4989,0.55,4990,0.599,4991,0.599,4992,1.654,4993,0.55,4994,1.148,4995,1.055,4996,0.55,4997,0.599,4998,1.654,4999,0.599,5000,1.148,5001,2.121,5002,1.654,5003,1.654,5004,1.751,5005,2.479,5006,1.654,5007,1.148,5008,0.599,5009,1.148,5010,1.579,5011,1.055,5012,1.055,5013,0.599,5014,0.599,5015,0.518,5016,0.599,5017,0.494,5018,0.599,5019,0.599,5020,0.599,5021,0.599,5022,0.55,5023,0.475,5024,0.599,5025,2.955,5026,0.599,5027,0.599,5028,0.948,5029,0.911,5030,1.901,5031,0.599,5032,0.599,5033,0.599,5034,0.599,5035,0.599,5036,1.148,5037,0.599,5038,1.654,5039,0.599,5040,0.911,5041,0.55,5042,0.599,5043,1.148,5044,1.055,5045,0.599,5046,0.599,5047,0.599,5048,0.599,5049,0.599,5050,3.963,5051,2.558,5052,2.44,5053,1.148,5054,0.855,5055,1.148,5056,0.599,5057,1.52,5058,0.599,5059,0.599,5060,0.599,5061,0.599,5062,0.599,5063,0.599,5064,1.148,5065,0.518,5066,0.494,5067,0.599,5068,0.599,5069,0.599,5070,0.599,5071,0.599,5072,0.599,5073,1.148,5074,1.148,5075,1.148,5076,0.599,5077,0.599,5078,0.599,5079,0.599,5080,0.518,5081,0.599,5082,0.832,5083,0.518,5084,0.599,5085,0.599,5086,1.148,5087,0.599,5088,1.148,5089,0.55,5090,0.599,5091,0.55,5092,0.599,5093,1.148,5094,0.599,5095,0.599,5096,0.599,5097,0.55,5098,0.599,5099,1.148,5100,0.599]],["component/46",[7,0.29]],["keyword/46",[]],["title/47-1",[7,11.287,694,38.147,1025,27.281]],["name/47-1",[]],["text/47-1",[]],["component/47-1",[]],["keyword/47-1",[]],["title/47-2",[7,11.287,1025,27.281,1353,28.66]],["name/47-2",[]],["text/47-2",[]],["component/47-2",[]],["keyword/47-2",[]],["title/47-3",[5101,76.96]],["name/47-3",[]],["text/47-3",[]],["component/47-3",[]],["keyword/47-3",[]],["title/47-4",[5102,72.491]],["name/47-4",[]],["text/47-4",[]],["component/47-4",[]],["keyword/47-4",[]],["title/47-5",[5103,76.96]],["name/47-5",[]],["text/47-5",[]],["component/47-5",[]],["keyword/47-5",[]],["title/47",[7,11.287,1025,27.281,1351,30.888]],["name/47",[1345,1.128]],["text/47",[7,1.583,11,2.491,16,0.644,32,1.204,47,1.018,50,0.731,57,2.34,80,3.848,81,1.394,87,0.577,91,2.824,113,3.744,120,3,125,0.736,126,0.705,128,0.785,138,0.72,149,0.705,154,0.922,164,4.597,169,6.728,178,2.842,184,1.094,189,4.964,190,0.648,198,1.128,203,0.715,213,3.804,216,0.973,218,0.987,221,1.018,223,5.988,224,1.002,233,0.844,241,1.36,370,0.973,389,1.246,391,0.911,393,3.27,394,1.172,397,0.805,402,0.934,421,0.798,652,1.486,681,5.325,690,1.56,694,6.132,695,0.772,701,0.89,702,1.692,710,0.88,711,2.882,724,0.946,725,3.671,741,2.925,767,0.853,790,0.791,792,0.705,804,1.118,805,0.88,817,0.731,829,0.791,841,0.747,843,2.287,854,1.002,855,0.922,857,2.345,862,4.924,877,1.035,879,2.401,894,0.813,901,2.244,902,0.862,907,1.922,911,1.018,912,1.002,935,2.437,941,1.168,952,0.615,953,3.276,954,2.198,955,2.887,958,2.182,959,1.56,973,1.718,974,1.018,985,2.075,986,1.909,1013,4.08,1018,0.731,1025,5.627,1027,0.922,1029,1.204,1031,0.973,1064,1.795,1068,3.798,1072,2.554,1079,1.143,1082,1.718,1090,1.893,1092,3.318,1100,4.478,1115,3.486,1125,0.742,1134,6.218,1152,1.053,1154,0.853,1166,3.769,1177,0.605,1192,4.797,1201,1.768,1227,0.836,1239,0.753,1267,3.614,1273,4.999,1278,3.924,1287,0.805,1294,4.206,1297,1.847,1306,2.119,1308,1.118,1330,1.035,1331,2.908,1335,0.844,1345,7.056,1346,8.468,1347,2.507,1348,4.772,1349,4.377,1350,1.241,1351,0.853,1353,4.02,1358,4.912,1359,2.611,1361,0.791,1363,1.54,1364,0.805,1372,6.569,1379,1.577,1385,0.922,1386,1.053,1388,0.946,1400,1.335,1405,3.365,1425,2.272,1435,0.828,1436,1.512,1441,0.836,1458,4.488,1472,2.002,1556,0.862,1586,1.073,1631,6.116,1677,2.782,1692,1.143,1726,5.237,1738,1.094,1747,0.901,1810,6.247,1822,3.185,1836,2.782,1855,0.946,1899,4.628,1910,3.067,2011,0.973,2054,2.663,2136,2.507,2137,1.241,2138,1.053,2142,3.123,2213,2.002,2287,2.437,2291,1.053,2442,2.157,2508,2.611,2633,4.068,2724,1.094,2746,5.876,2765,1.469,2825,1.035,2899,1.335,3082,1.143,3346,1.241,3718,3.659,3829,3.244,4163,5.678,4570,2.507,4758,3.615,4817,1.335,4826,4.866,4846,2.782,4879,1.284,4880,1.854,5101,4.403,5102,3.405,5103,2.661,5104,1.204,5105,1.617,5106,1.486,5107,1.617,5108,1.617,5109,1.617,5110,2.896,5111,1.617,5112,5.513,5113,5.513,5114,2.896,5115,2.896,5116,3.933,5117,3.933,5118,3.933,5119,2.896,5120,3.933,5121,3.933,5122,3.933,5123,3.933,5124,3.933,5125,1.617,5126,1.617,5127,1.617,5128,1.617,5129,1.617,5130,1.486,5131,1.617,5132,1.61
17,5133,3.405,5134,1.617,5135,1.617,5136,1.335,5137,1.486,5138,1.617,5139,1.617,5140,2.896,5141,1.617,5142,5.513,5143,1.617,5144,1.617,5145,2.896,5146,2.896,5147,2.896,5148,1.617,5149,1.486,5150,1.617,5151,1.617,5152,1.617,5153,1.617,5154,2.896,5155,1.617,5156,2.661,5157,1.486]],["component/47",[7,0.29]],["keyword/47",[]],["title/48-1",[87,20.898,903,25.896,1331,30.888]],["name/48-1",[]],["text/48-1",[]],["component/48-1",[]],["keyword/48-1",[]],["title/48-2",[695,24.291,903,22.51,1331,26.849,2130,26.32]],["name/48-2",[]],["text/48-2",[]],["component/48-2",[]],["keyword/48-2",[]],["title/48-3",[695,24.291,1202,31.064,1331,26.849,2130,26.32]],["name/48-3",[]],["text/48-3",[]],["component/48-3",[]],["keyword/48-3",[]],["title/48-4",[364,20.195,695,21.482,1331,23.745,2130,23.276,2134,27.472]],["name/48-4",[]],["text/48-4",[]],["component/48-4",[]],["keyword/48-4",[]],["title/48-5",[389,14.376,695,15.949,1236,20.397,1331,17.629,1355,17.629,2130,17.281,2131,27.595,2132,24.888]],["name/48-5",[]],["text/48-5",[]],["component/48-5",[]],["keyword/48-5",[]],["title/48-6",[7,11.287,361,33,1331,30.888]],["name/48-6",[]],["text/48-6",[]],["component/48-6",[]],["keyword/48-6",[]],["title/48-7",[5158,76.96]],["name/48-7",[]],["text/48-7",[]],["component/48-7",[]],["keyword/48-7",[]],["title/48-8",[5159,76.96]],["name/48-8",[]],["text/48-8",[]],["component/48-8",[]],["keyword/48-8",[]],["title/48-9",[5160,76.96]],["name/48-9",[]],["text/48-9",[]],["component/48-9",[]],["keyword/48-9",[]],["title/48-10",[1063,38.134]],["name/48-10",[]],["text/48-10",[]],["component/48-10",[]],["keyword/48-10",[]],["title/48",[7,11.287,87,20.898,1331,30.888]],["name/48",[1331,0.914]],["text/48",[1,2.445,7,1.646,10,0.636,11,3.168,16,2.196,18,1.21,26,0.623,28,1.962,47,0.751,48,0.778,50,1.381,51,1.095,54,0.589,57,1.297,62,0.718,69,0.617,74,0.764,80,4.108,81,0.574,87,1.787,89,0.543,91,1.565,103,0.63,108,0.778,113,1.305,119,0.657,122,2.623,125,1.728,128,1.067,138,3.713,148,1.171,164,0.933,169,1.304,170,1.001,175,1.864,177,0.63,181,0.574,189,4.857,190,1.225,198,2.32,199,0.595,203,0.528,206,1.224,207,1.645,216,1.322,217,1.741,218,0.728,223,4.007,233,1.148,319,1.902,335,4.803,345,0.565,361,5.272,362,3.882,364,0.986,369,0.698,371,2.917,374,0.808,377,1.554,379,0.865,389,3.036,393,2.251,395,1.47,396,0.584,400,0.889,403,0.808,404,3.407,420,0.986,421,0.589,690,3.427,695,3.643,698,0.595,702,1.632,708,1.126,710,1.197,716,1.407,721,0.751,724,0.698,725,3.727,757,0.825,761,0.972,764,0.764,766,1.058,767,1.611,774,0.611,778,0.589,790,2.173,792,1.936,794,2.16,805,2.417,811,1.254,816,1.519,817,1.381,829,1.076,840,0.606,843,1.458,845,3.225,857,1.076,861,1.522,862,0.57,864,1.04,866,2.652,867,1.256,870,3.547,874,0.825,883,2.214,885,2.63,889,2.137,894,0.6,896,1.788,903,2.814,914,0.643,917,3.012,939,0.6,941,2.404,943,1.637,944,2.139,953,3.678,955,0.746,957,1.89,958,1.391,972,0.865,975,1.58,977,1.04,980,0.792,986,1.067,989,0.623,990,0.889,994,0.764,999,1.488,1006,0.751,1011,0.63,1013,1.58,1014,1.21,1016,0.844,1018,0.539,1025,3.428,1031,0.718,1040,0.792,1041,0.889,1044,0.606,1045,3.169,1052,0.948,1053,0.825,1057,0.889,1058,1.033,1063,3.063,1067,1.838,1070,1.224,1072,2.022,1079,2.16,1082,0.708,1085,1.687,1090,1.826,1092,1.89,1098,1.224,1100,1.741,1103,2.212,1115,3.114,1125,0.548,1141,0.636,1143,0.681,1147,1.097,1161,2.795,1166,1.632,1177,0.447,1192,1.628,1195,0.889,1202,2.71,1208,0.916,1211,1.362,1213,1.197,1214,2.068,1219,0.792,1221,3.746,1225,4.612,1236,2.316,1253,2.282,1261,2.795,1266,0.825,1267,3.228,1269,1.815,1270,2.16,1272,1.322,1273,2.165,1281,2.445,1287,1.095,1294,1.628,1297,1.032,1298,2.842,1306,3.376,1311,0.718,1331,5.868,1333,0.825,1344,0.673,1345,4.382,1349,0.948,1351,0.63,1353,1.857,1354,0.643,1355,4.398,1372,2.795,1373,1.508,1378,0.825,1379,3,1386,0.778,1394,2.842,1405,1.341,1427,2.007,1430,0.636,1434,0.792,1435,0.611,1436,0.623,1439,0.718,1441,1.137,1443,0.681,1444,1.432,1446,2.102,1458,0.611,1472,0.825,1473,0.916,1501,3.005,1518,1.341,1536,0.728,1556,0.636,1569,2.02,1571,1.663,1576,1.902,1577,0.792,1583,3.544,1586,2.518,1616,1.815,1704,1.239,1706,0.74,1725,3.503,1726,2.027,1733,0.778,1762,0.751,1848,0.698,1860,0.778,1899,1.239,1910,0.764,1912,2.569,1931,1.812,1981,0.808,2007,1.593,2031,2.842,2088,1.407,2125,2.002,2127,1.628,2130,4.511,2131,5.253,2132,3.306,2133,1.148,2134,3.363,2136,4.334,2138,3.262,2140,10.175,2142,5.34,2144,0.985,2145,3.133,2146,1.097,2147,0.916,2148,0.916,2149,2.807,2151,5.822,2154,1.407,2157,7.216,2160,6.181,2161,1.097,2162,1.097,2163,3.487,2164,3.487,2165,0.889,2166,3.487,2167,3.487,2168,5.847,2169,1.097,2170,1.097,2171,3.133,2172,1.097,2173,1.097,2175,0.889,2176,0.916,2177,0.808,2178,2.344,2179,1.033,2180,1.033,2181,2.344,2183,0.948,2184,1.097,2185,1.097,2186,2.02,2187,0.916,2188,1.097,2206,1.097,2207,2.807,2211,0.728,2212,3.59,2213,2.623,2214,1.687,2215,2.344,2216,1.554,2217,4.08,2223,0.916,2226,2.02,2227,1.097,2351,3.005,2382,0.889,2445,0.889,2454,0.844,2561,0.865,2679,0.74,2765,1.55,2797,1.097,3006,1.519,3032,0.916,3211,2.344,3356,0.792,3405,0.948,3544,1.488,3618,0.74,4186,1.554,4195,1.341,4196,0.865,4709,1.815,4766,1.097,4846,0.844,4861,2.214,4880,1.956,4911,4.134,4923,2.027,4971,0.916,5065,1.033,5102,1.033,5156,7.845,5157,1.097,5158,3.487,5159,2.02,5160,2.02,5161,1.193,5162,1.193,5163,1.193,5164,0.916,5165,0.764,5166,1.193,5167,0.778,5168,1.193,5169,4.439,5170,3.794,5171,1.193,5172,8.12,5173,1.193,5174,1.097,5175,3.794,5176,3.055,5177,3.055,5178,3.055,5179,3.055,5180,3.055,5181,3.055,5182,1.193,5183,1.193,5184,1.193,5185,1.193,5186,3.055,5187,1.193,5188,2.198,5189,2.198,5190,3.055,5191,1.193,5192,1.097,5193,1.193,5194,1.033,5195,0.985,5196,2.198,5197,1.193,5198,1.193,5199,1.193,5200,1.193,5201,2.198,5202,1.193,5203,1.193,5204,1.193,5205,1.193,5206,1.193,5207,1.193,5208,1.193,5209,1.193,5210,1.193,5211,0.948,5212,2.198,5213,1.193,5214,1.193,5215,1.193,5216,1.193,5217,1.193,5218,1.097,5219,2.198,5220,1.193,5221,1.193,5222,1.193,5223,1.097,5224,1.193,5225,5.51,5226,1.193,5227,1.193,5228,1.193,5229,2.198,5230,1.193,5231,1.193,5232,2.198,5233,2.198,5234,2.198,5235,1.193,5236,1.193,5237,1.193,5238,1.193,5239,1.193,5240,1.193,5241,1.193,5242,1.193,5243,1.193,5244,1.193,5245,1.097,5246,1.193,5247,1.193,5248,1.193,5249,1.193]],["component/48",[7,0.29]],["keyword/48",[]],["title/49",[7,13.285,1353,33.734]],["name/49",[1353,0.848]],["text/49",[7,1.8,11,3.267,36,3.388,54,3.476,89,4.773,101,4.221,125,3.206,138,4.16,164,2.988,189,3.575,190,2.823,203,3.114,211,3.606,681,4.979,741,5.701,782,4.507,790,3.446,811,4.016,817,3.182,841,4.846,894,3.539,906,4.978,941,2.84,953,3.647,955,2.391,958,3.206,1018,3.182,1025,5.939,1090,4.495,1125,4.285,1177,3.496,1201,4.297,1260,4.363,1294,5.586,1295,3.182,1306,4.636,1344,3.968,1351,3.714,1353,6.318,1358,3.752,1372,4.432,1385,5.979,1435,3.606,1457,4.297,1910,4.507,1997,4.979,2445,5.243,2508,6.957,3804,6.47,4163,4.867,4692,5.813,4880,4.507,5250,7.04,5251,7.04]],["component/49",[7,0.29]],["keyword/49",[]],["title/50-1",[1397,44.901,2830,45.742]],["name/50-1",[]],["text/50-1",[]],["component/50-1",[]],["keyword/50-1",[]],["title/50-2",[944,25.019,1267,29.707,1397,38.147]],["name/50-2",[]],["text/50-2",[]],["component/50-2",[]],["keyword/50-2",[]],["title/50-3",[75,32.366,2830,45.742]],["name/50-3",[]],["text/50-3",[]],["component/50-3",[]],["keyword/50-3",[]],["title/50-4",[75,27.497,944,25.019,1267,29.707]],["name/50-4",[]],["text/50-4",[]],["component/50-4",[]],["keyword/50-4",[]],["title/50",[7,11.287,87,20.898,2830,38.862]],["name/50",[2830,1.15]],["text/50",[7,1.603,11,3.357,16,1.989,26,4.722,28,1.131,34,1.233,36,1.819,48,1.425,50,2.685,57,3.34,75,3.906,80,3.455,87,1.349,89,1.721,113,3.554,114,1.737,123,1.806,125,0.996,139,3.473,149,1.648,166,2.659,181,1.053,182,1.425,189,5.018,199,1.883,203,2.966,224,1.356,241,1.027,335,5.286,361,1.233,367,1.264,386,1.85,388,1.356,389,0.941,393,2.242,426,3.121,685,3.251,708,2.555,711,1.316,725,4.716,747,2.688,772,1.806,773,2.673,790,2.908,792,1.648,820,2.307,862,3.755,864,2.362,870,1.9,877,2.419,883,2.207,889,2.055,894,3.689,898,4.954,906,3.166,914,2.036,935,3.681,941,0.883,944,2.132,954,3.816,958,0.996,973,1.298,974,5.237,975,2.58,977,2.362,986,1.834,1011,1.154,1027,1.248,1031,1.316,1032,1.737,1045,2.485,1067,1.316,1072,2.659,1090,1.819,1115,4.261,1121,2.613,1154,1.994,1172,1.233,1191,2.01,1227,1.131,1260,2.342,1261,3.141,1267,6.276,1269,1.806,1270,1.547,1273,2.846,1287,1.883,1297,1.775,1298,2.419,1302,1.737,1312,4.294,1327,2.01,1349,1.737,1350,1.679,1354,2.036,1391,4.424,1397,6.254,1425,3.875,1427,0.989,1436,1.142,1458,3.042,1468,1.894,1515,1.191,1556,1.166,1561,2.419,1619,2.01,1624,1.178,1692,1.547,1783,5.703,2029,2.815,2127,5.24,2158,4.136,2253,1.586,2379,4.995,2411,1.586,2442,1.629,2522,2.379,2657,3.74,2720,2.342,2724,1.481,2829,1.586,2830,8.378,2939,2.01,2996,3,3133,1.894,3202,3.121,3556,1.629,3639,2.9,3718,1.452,4053,1.481,4186,1.547,4195,2.307,4201,1.894,4486,1.629,4803,1.894,4861,6.03,4911,1.806,4938,5.147,4986,3.311,5149,2.01,5164,1.679,5165,1.4,5167,1.425,5252,2.01,5253,2.188,5254,2.188,5255,7.827,5256,2.188,5257,3.779,5258,4.3
119,5259,2.188,5260,3.779,5261,3.779,5262,3.779,5263,2.188,5264,3.473,5265,2.01,5266,3.473,5267,2.188,5268,2.188,5269,2.188,5270,2.188,5271,2.188,5272,2.188,5273,2.188,5274,2.188,5275,2.188,5276,2.188,5277,2.01,5278,3.779,5279,4.989,5280,2.188,5281,3.779,5282,5.94,5283,5.94,5284,2.188,5285,3.779,5286,4.989,5287,3.779,5288,4.989,5289,3.779,5290,2.188,5291,2.188,5292,2.188,5293,2.188,5294,2.188,5295,3.779,5296,3.779,5297,2.188,5298,2.188,5299,2.188,5300,3.779,5301,2.188,5302,2.188,5303,2.188,5304,2.188,5305,2.188,5306,2.188,5307,2.188,5308,2.188,5309,3.779,5310,3.779,5311,2.188,5312,2.188,5313,2.188,5314,2.188,5315,2.188,5316,5.94,5317,3.779,5318,2.188,5319,2.188,5320,2.188,5321,2.188,5322,2.188,5323,2.188,5324,2.188,5325,2.188,5326,2.188,5327,2.188,5328,2.188,5329,2.188,5330,2.188,5331,2.188,5332,2.188,5333,2.188,5334,4.989,5335,2.188,5336,2.188,5337,2.188,5338,2.188,5339,2.188,5340,2.188,5341,3.779,5342,2.188,5343,2.188,5344,3.779,5345,3.779,5346,2.188,5347,2.188,5348,2.188,5349,2.188,5350,2.188,5351,2.188]],["component/50",[7,0.29]],["keyword/50",[]],["title/51-1",[2765,34.967,5352,49.958]],["name/51-1",[]],["text/51-1",[]],["component/51-1",[]],["keyword/51-1",[]],["title/51-2",[164,29.253,2765,34.967]],["name/51-2",[]],["text/51-2",[]],["component/51-2",[]],["keyword/51-2",[]],["title/51-3",[1358,36.734,2765,34.967]],["name/51-3",[]],["text/51-3",[]],["component/51-3",[]],["keyword/51-3",[]],["title/51-4",[1351,36.357,2765,34.967]],["name/51-4",[]],["text/51-4",[]],["component/51-4",[]],["keyword/51-4",[]],["title/51-5",[138,26.081,1385,33.403,2765,29.707]],["name/51-5",[]],["text/51-5",[]],["component/51-5",[]],["keyword/51-5",[]],["title/51-6",[138,26.081,1166,25.188,3364,43.606]],["name/51-6",[]],["text/51-6",[]],["component/51-6",[]],["keyword/51-6",[]],["title/51-7",[1018,26.464,1177,21.918,2765,29.707]],["name/51-7",[]],["text/51-7",[]],["component/51-7",[]],["keyword/51-7",[]],["title/51-8",[190,23.48,350,33,2765,29.707]],["name/51-8",[]],["text/51-8",[]],["component/51-8",[]],["keyword/51-8",[]],["title/51-9",[190,23.48,942,32.241,2765,29.707]],["name/51-9",[]],["text/51-9",[]],["component/51-9",[]],["keyword/51-9",[]],["title/51-10",[190,20.41,942,28.025,1227,26.32,2765,25.823]],["name/51-10",[]],["text/51-10",[]],["component/51-10",[]],["keyword/51-10",[]],["title/51-11",[1177,21.918,1295,26.464,1353,28.66]],["name/51-11",[]],["text/51-11",[]],["component/51-11",[]],["keyword/51-11",[]],["title/51-12",[397,29.169,963,27.945,1177,21.918]],["name/51-12",[]],["text/51-12",[]],["component/51-12",[]],["keyword/51-12",[]],["title/51-13",[397,29.169,963,27.945,1295,26.464]],["name/51-13",[]],["text/51-13",[]],["component/51-13",[]],["keyword/51-13",[]],["title/51-14",[1177,25.799,3203,40.335]],["name/51-14",[]],["text/51-14",[]],["component/51-14",[]],["keyword/51-14",[]],["title/51-15",[138,30.699,396,33.734]],["name/51-15",[]],["text/51-15",[]],["component/51-15",[]],["keyword/51-15",[]],["title/51-16",[138,30.699,1294,36.734]],["name/51-16",[]],["text/51-16",[]],["component/51-16",[]],["keyword/51-16",[]],["title/51-17",[889,19.296,2765,34.967]],["name/51-17",[]],["text/51-17",[]],["component/51-17",[]],["keyword/51-17",[]],["title/51-18",[889,16.393,2134,35.737,2765,29.707]],["name/51-18",[]],["text/51-18",[]],["component/51-18",[]],["keyword/51-18",[]],["title/51-19",[2765,34.967,5353,59.657]],["name/51-19",[]],["text/51-19",[]],["component/51-19",[]],["keyword/51-19",[]],["title/51-20",[889,14.25,2134,31.064,2221,39.059,2765,25.823]],["name/51-20",[]],["text/51-20",[]],["component/51-20",[]],["keyword/51-20",[]],["title/51-21",[889,12.602,1306,19.907,2134,27.472,2212,29.325,2765,22.837]],["name/51-21",[]],["text/51-21",[]],["component/51-21",[]],["keyword/51-21",[]],["title/51-22",[87,20.898,2637,37.483,2765,29.707]],["name/51-22",[]],["text/51-22",[]],["component/51-22",[]],["keyword/51-22",[]],["title/51-23",[1063,26.662,1130,39.636,2637,37.483]],["name/51-23",[]],["text/51-23",[]],["component/51-23",[]],["keyword/51-23",[]],["title/51-24",[1577,38.862,1703,38.862,2637,37.483]],["name/51-24",[]],["text/51-24",[]],["component/51-24",[]],["keyword/51-24",[]],["title/51-25",[821,42.708,1774,44.12]],["name/51-25",[]],["text/51-25",[]],["component/51-25",[]],["keyword/51-25",[]],["title/51-26",[87,20.898,2133,30.578,2765,29.707]],["name/51-26",[]],["text/51-26",[]],["component/51-26",[]],["keyword/51-26",[]],["title/51-27",[87,18.166,2133,26.58,2765,25.823,5354,44.056]],["name/51-27",[]],["text/51-27",[]],["component/51-27",[]],["keyword/51-27",[]],["title/51-28",[87,20.898,2229,35.221,2765,29.707]],["name/51-28",[]],["text/51-28",[]],["component/51-28",[]],["keyword/51-28",[]],["title/51-29",[87,20.898,2229,35.221,5355,53.808]],["name/51-29",[]],["text/51-29",[]],["component/51-29",[]],["keyword/51-29",[]],["title/51-30",[87,18.166,1363,19.932,2133,26.58,2229,30.616]],["name/51-30",[]],["text/51-30",[]],["component/51-30",[]],["keyword/51-30",[]],["title/51-31",[2765,29.707,3203,34.268,3937,40.481]],["name/51-31",[]],["text/51-31",[]],["component/51-31",[]],["keyword/51-31",[]],["title/51-32",[250,35.298,3203,40.335]],["name/51-32",[]],["text/51-32",[]],["component/51-32",[]],["keyword/51-32",[]],["title/51-33",[111,32.893,3203,40.335]],["name/51-33",[]],["text/51-33",[]],["component/51-33",[]],["keyword/51-33",[]],["title/51-34",[112,37.949,3203,40.335]],["name/51-34",[]],["text/51-34",[]],["component/51-34",[]],["keyword/51-34",[]],["title/51-35",[258,46.654,3203,40.335]],["name/51-35",[]],["text/51-35",[]],["component/51-35",[]],["keyword/51-35",[]],["title/51-36",[2,42.708,3203,40.335]],["name/51-36",[]],["text/51-36",[]],["component/51-36",[]],["keyword/51-36",[]],["title/51",[1306,30.48
11,1363,26.99]],["name/51",[1363,0.678]],["text/51",[1,2.048,2,1.469,3,0.758,7,0.811,9,0.928,11,3.407,16,2.16,18,1.055,19,0.664,20,0.19,28,0.461,34,1.08,36,0.686,39,1.153,41,0.466,43,0.403,48,0.396,50,2.1,51,0.71,54,0.44,57,0.711,67,0.616,74,0.571,75,0.146,80,4.159,81,0.292,83,0.382,86,0.21,87,2.566,89,1.079,91,2.154,101,0.14,103,0.614,108,0.396,111,3.322,112,3.343,113,2.551,117,0.199,119,2.559,120,1.736,125,0.978,126,1.622,128,0.565,138,4.219,142,0.536,144,0.365,145,0.202,146,0.522,149,1.765,154,0.177,163,0.382,164,1.097,165,0.536,166,1.145,170,2.467,172,0.238,175,0.371,176,1.336,177,0.32,178,0.529,181,0.429,189,4.891,190,1.973,198,0.347,199,0.444,201,0.187,202,0.561,203,1.322,207,1.157,210,0.206,211,0.159,213,0.247,216,0.536,217,1.186,218,0.71,221,0.382,224,0.721,233,0.317,236,0.382,237,3.495,241,0.669,250,3.11,251,0.844,258,2.154,265,0.737,267,0.175,272,0.256,279,0.338,293,0.338,310,0.845,334,1.254,335,0.641,343,0.389,344,0.341,345,0.422,346,0.182,350,0.803,352,0.604,357,0.247,364,1.063,367,0.179,368,0.552,369,0.182,371,2.133,374,0.21,376,0.21,379,0.225,382,0.351,385,0.256,386,0.938,388,1.729,389,2.058,391,0.342,393,0.36,395,2.367,396,1.366,397,1.489,398,0.365,399,0.285,403,0.21,409,1.517,420,1.887,421,0.44,465,2.235,565,0.247,605,0.238,682,0.604,685,0.928,688,0.664,690,0.167,693,0.42,695,1.233,698,0.444,700,0.22,701,1.423,702,1.999,708,2.073,710,0.634,711,1.292,715,0.805,716,0.912,718,0.631,721,0.195,723,0.206,724,0.834,725,1.887,727,0.758,728,1.121,737,0.452,741,0.544,747,0.48,758,0.247,760,0.225,761,2.055,766,3.149,767,3.255,774,1.63,778,0.575,779,0.466,789,1.055,790,1.16,792,1.034,797,0.436,798,0.641,805,0.776,810,0.466,811,0.664,812,0.43,815,0.22,816,0.42,817,0.14,819,0.167,820,0.19,821,1.038,822,0.768,823,0.552,824,0.466,825,0.981,826,0.411,829,1.051,834,0.452,841,2.45,843,1.607,845,0.182,846,0.179,851,0.371,852,0.202,854,0.883,855,0.956,857,1.82,858,1.573,861,0.58,862,1.775,864,1.679,866,0.56,867,1.529,869,1.067,870,1.191,874,0.42,879,1.942,881,0.206,882,0.571,883,1.719,884,1.008,888,0.42,889,1.971,890,0.327,894,1.693,897,0.347,898,0.195,901,0.509,902,1.982,903,1.322,906,0.475,907,0.206,911,0.382,912,0.721,913,0.813,914,2.347,915,0.215,936,0.466,939,0.963,941,2.675,942,2.918,944,1.013,948,0.788,952,0.443,953,3.318,954,0.409,955,2.416,957,2.922,958,2.116,959,0.327,963,4.054,964,0.571,969,0.19,973,0.184,974,0.733,975,2.677,977,1.506,978,0.22,980,0.206,985,1.363,986,1.544,987,0.604,989,0.162,994,0.199,1000,1.214,1001,0.924,1003,0.22,1006,0.382,1007,0.44,1008,1.485,1011,0.884,1013,0.737,1014,0.334,1015,0.231,1018,2.833,1019,0.161,1020,1.454,1025,0.415,1027,0.347,1031,0.536,1032,4.302,1034,0.202,1041,0.231,1042,0.225,1044,0.452,1045,2.095,1048,1.185,1053,0.215,1055,0.491,1058,0.269,1060,0.708,1062,0.529,1063,1.533,1066,0.238,1067,0.365,1068,0.376,1070,1.554,1072,0.324,1081,0.87,1082,0.184,1086,1.182,1088,0.22,1090,1.62,1092,1.39,1098,0.648,1100,0.409,1101,0.173,1104,1.972,1106,0.247,1109,0.238,1112,0.215,1115,1.16,1121,0.215,1122,0.256,1123,0.371,1125,2.317,1127,0.256,1130,0.788,1141,1.263,1143,0.347,1149,0.403,1150,0.238,1152,0.396,1157,0.21,1161,0.561,1166,2.116,1172,1.08,1173,0.961,1174,0.552,1177,4.111,1179,0.69,1180,0.331,1181,0.389,1189,0.844,1190,0.502,1192,1.021,1195,0.231,1201,0.19,1202,0.371,1203,0.604,1205,0.403,1208,0.238,1210,1.169,1211,2.879,1212,0.396,1213,0.485,1214,0.21,1216,2.949,1219,0.206,1221,0.497,1224,0.238,1227,0.866,1236,1.023,1238,0.231,1248,0.805,1255,0.382,1260,0.376,1261,0.561,1264,0.256,1266,0.42,1267,1.416,1272,0.187,1273,1.592,1278,0.389,1281,0.491,1283,0.195,1285,0.411,1287,0.58,1288,0.247,1291,0.342,1294,2.95,1295,4.415,1296,2.206,1297,1.581,1298,0.571,1302,0.247,1306,3.858,1308,0.42,1309,0.526,1311,0.857,1312,0.389,1319,0.215,1322,0.22,1326,0.206,1330,0.745,1335,0.608,1339,1.008,1344,0.656,1345,0.396,1350,0.238,1352,0.497,1353,2.133,1354,0.627,1355,1.25,1356,0.403,1358,1.145,1363,3.588,1365,1.122,1369,0.389,1373,0.575,1374,0.171,1379,0.169,1383,0.171,1384,1.544,1385,2.122,1394,0.571,1398,0.883,1405,0.71,1406,1.557,1412,0.44,1419,0.21,1420,0.199,1425,0.179,1427,2.036,1429,0.382,1430,0.62,1431,3.258,1432,2.486,1434,0.772,1435,0.311,1436,1.561,1439,1.008,1440,0.411,1441,0.602,1442,0.238,1443,1.352,1444,0.581,1446,1.991,1448,0.485,1450,0.231,1451,1.073,1453,0.247,1455,1.519,1458,1.324,1459,0.202,1462,0.238,1474,0.269,1480,0.202,1502,0.571,1508,0.225,1515,0.485,1516,0.238,1518,0.19,1520,0.334,1522,1.038,1527,0.526,1533,0.195,1536,1.311,1544,0.581,1553,1.375,1554,0.376,1556,1.263,1558,0.452,1561,0.199,1564,0.684,1571,1.169,1572,0.772,1577,0.592,1583,0.497,1597,0.561,1601,1.47,1607,0.22,1618,0.199,1624,0.167,1631,0.206,1632,1.169,1657,0.466,1696,0.924,1702,0.238,1703,0.403,1704,1.08,1706,0.376,1708,0.392,1714,0.924,1724,0.376,1725,2.559,1732,0.452,1733,0.202,1747,0.794,1762,0.195,1774,2.381,1775,0.961,1791,0.736,1792,0.526,1796,0.403,1836,0.22,1838,0.247,1839,0.857,1845,0.215,1848,1.862,1855,0.981,1857,0.238,1866,0.22,1873,0.371,1880,0.347,1890,0.238,1899,0.175,1909,2.989,1910,0.571,1912,0.21,1917,0.247,1923,1.145,1931,0.529,1934,1.485,1935,2.696,1936,0.247,198
11,0.21,1991,0.21,1997,0.631,2011,0.857,2058,0.631,2062,0.215,2082,0.187,2087,0.44,2088,0.571,2101,0.21,2112,0.43,2125,1.472,2127,0.893,2130,0.461,2132,0.231,2133,3.223,2134,2.659,2135,0.256,2137,0.238,2139,0.256,2143,0.231,2155,0.452,2165,0.231,2174,0.522,2175,0.231,2177,0.604,2183,0.708,2187,0.466,2190,0.69,2199,0.285,2208,1.158,2211,0.19,2212,2.073,2214,0.238,2215,0.684,2221,0.238,2229,4.187,2235,0.256,2264,0.206,2291,0.202,2307,1.297,2318,0.466,2321,0.269,2324,0.206,2325,0.171,2327,0.231,2328,0.238,2344,0.502,2351,0.788,2353,0.43,2379,0.231,2411,1.214,2438,0.247,2447,0.452,2478,1.604,2488,2.374,2490,1.889,2491,1.131,2492,0.924,2500,1.158,2509,2.304,2514,0.664,2522,1.352,2528,0.285,2529,1.134,2530,1.454,2532,1.248,2537,0.202,2559,0.269,2561,1.214,2562,0.604,2564,1.33,2585,0.646,2593,0.269,2595,0.269,2598,0.285,2611,0.733,2633,0.206,2636,1.925,2637,4.649,2657,1.492,2658,0.256,2666,2.154,2679,1.853,2691,0.231,2699,0.247,2706,0.482,2717,1.427,2720,1.729,2765,4.984,2813,0.256,2815,0.231,2816,0.43,2820,1.474,2825,2.037,2831,0.247,2833,1.055,2836,0.192,2844,0.452,2853,1.297,2856,1.389,2867,0.466,2880,0.452,2896,0.256,2906,0.42,2911,0.256,2927,0.526,2929,0.285,2996,0.924,3005,0.238,3011,0.616,3032,0.238,3041,0.867,3062,0.526,3065,0.269,3066,0.482,3082,1.828,3096,0.269,3115,1.45,3136,1.705,3137,0.844,3140,0.256,3180,0.225,3203,4.794,3240,1.383,3267,0.558,3268,0.845,3272,2.529,3324,0.238,3356,1.112,3361,0.664,3364,1.599,3367,0.452,3405,0.247,3410,0.269,3417,0.238,3467,0.269,3488,0.482,3502,0.22,3504,0.247,3519,0.256,3525,0.558,3526,0.558,3544,0.788,3550,0.482,3556,2.227,3557,0.466,3566,0.231,3614,0.22,3615,2.216,3618,0.192,3639,0.238,3649,0.269,3652,0.558,3653,0.269,3719,0.256,3728,0.238,3738,0.238,3739,0.736,3744,0.285,3751,0.285,3795,0.269,3814,0.247,3828,0.285,3852,0.225,3871,0.805,3899,0.247,3911,0.231,3930,0.269,3937,0.42,3939,0.256,3940,0.256,4030,0.452,4037,0.247,4042,0.256,4053,1.889,4114,0.736,4163,0.42,4168,0.256,4184,0.269,4191,0.22,4195,0.371,4196,0.225,4225,0.247,4280,0.269,4405,0.526,4554,0.44,4561,0.256,4581,0.43,4614,0.452,4630,0.684,4668,1.007,4700,0.269,4720,0.238,4734,0.819,4803,0.269,4846,0.631,4850,0.269,4851,1.427,4852,0.823,4859,0.736,4876,0.269,4879,1.882,4880,0.912,4903,2.374,4904,1.582,4905,0.285,4926,2.928,4938,0.466,4971,0.238,4978,0.256,4981,0.285,4983,0.646,4986,2.989,5005,0.231,5010,0.664,5015,0.269,5017,0.256,5023,0.924,5028,0.256,5029,0.708,5030,0.452,5041,0.285,5050,0.285,5052,0.256,5054,0.231,5066,0.256,5080,0.269,5104,3.245,5164,0.238,5165,0.745,5167,0.758,5192,0.285,5211,0.247,5245,0.285,5266,0.285,5352,0.225,5353,1.233,5354,0.526,5355,0.285,5356,0.558,5357,0.558,5358,0.31,5359,0.31,5360,0.31,5361,0.256,5362,0.31,5363,0.31,5364,0.31,5365,0.31,5366,0.607,5367,0.285,5368,0.285,5369,0.285,5370,0.31,5371,0.607,5372,1.164,5373,1.164,5374,1.425,5375,0.607,5376,0.892,5377,0.31,5378,0.31,5379,2.147,5380,0.31,5381,0.31,5382,0.31,5383,0.31,5384,0.31,5385,0.31,5386,0.31,5387,0.892,5388,0.607,5389,1.309,5390,0.31,5391,0.607,5392,0.607,5393,0.607,5394,0.607,5395,0.607,5396,0.502,5397,0.31,5398,0.31,5399,0.31,5400,0.892,5401,0.247,5402,0.31,5403,0.256,5404,1.675,5405,2.37,5406,0.31,5407,0.31,5408,0.31,5409,0.31,5410,0.31,5411,0.31,5412,0.31,5413,0.607,5414,1.675,5415,0.31,5416,1.659,5417,0.558,5418,0.607,5419,0.819,5420,0.31,5421,0.607,5422,5.191,5423,0.31,5424,0.31,5425,0.961,5426,0.256,5427,0.892,5428,0.31,5429,0.31,5430,0.607,5431,0.607,5432,0.607,5433,0.607,5434,0.31,5435,0.31,5436,0.31,5437,0.892,5438,0.31,5439,0.31,5440,0.285,5441,0.31,5442,0.31,5443,0.31,5444,0.31,5445,0.31,5446,1.675,5447,0.31,5448,0.269,5449,0.736,5450,0.31,5451,0.31,5452,0.31,5453,0.31,5454,0.31,5455,0.558,5456,0.269,5457,0.607,5458,0.526,5459,2.178,5460,1.425,5461,0.31,5462,0.31,5463,0.31,5464,0.607,5465,0.31,5466,0.31,5467,0.31,5468,0.31,5469,0.31,5470,0.31,5471,0.607,5472,0.31,5473,0.31,5474,0.31,5475,0.31,5476,0.607,5477,0.31,5478,0.31,5479,0.31,5480,0.892,5481,0.285,5482,0.31,5483,0.31,5484,0.31,5485,0.607,5486,0.31,5487,1.675,5488,0.31,5489,0.31,5490,0.31,5491,0.31,5492,0.31,5493,0.31,5494,0.31,5495,0.31,5496,0.31,5497,0.31,5498,0.31,5499,0.31,5500,1.675,5501,0.607,5502,0.31,5503,0.31,5504,0.607,5505,0.31,5506,0.31,5507,0.285,5508,0.31,5509,0.285,5510,0.31,5511,1.164,5512,0.772,5513,0.31,5514,0.31,5515,0.31,5516,0.819,5517,0.31,5518,0.31,5519,0.285,5520,0.269,5521,0.558,5522,0.819,5523,0.285,5524,0.285,5525,0.285,5526,0.285,5527,0.285,5528,0.285,5529,0.736,5530,0.285,5531,0.285,5532,0.502,5533,0.482,5534,0.285,5535,
10.607,5536,0.31,5537,0.31,5538,0.607,5539,0.892,5540,0.31,5541,0.31,5542,0.31,5543,0.31,5544,0.31,5545,0.607,5546,0.31,5547,0.31,5548,0.31,5549,0.607,5550,0.31,5551,0.31,5552,0.31,5553,0.31,5554,0.31,5555,0.31,5556,0.892,5557,0.607,5558,0.607,5559,0.269,5560,0.31,5561,0.31,5562,0.31,5563,0.31,5564,0.31,5565,0.607,5566,0.607,5567,0.31,5568,0.31,5569,0.31,5570,0.31,5571,0.892,5572,0.892,5573,0.31,5574,1.54,5575,0.31,5576,0.607,5577,0.31,5578,0.31,5579,0.31,5580,0.31,5581,0.31,5582,0.285,5583,0.238,5584,0.31,5585,0.607,5586,0.31,5587,0.607,5588,0.31,5589,0.31,5590,1.916,5591,0.31,5592,0.31,5593,0.31,5594,0.31,5595,2.147,5596,0.31,5597,0.31,5598,0.31,5599,0.31,5600,0.31,5601,0.31,5602,0.31,5603,0.31,5604,0.892,5605,1.164,5606,0.31,5607,0.607,5608,0.285,5609,0.285,5610,0.31,5611,0.31,5612,0.269,5613,0.285,5614,0.31,5615,0.31,5616,0.31,5617,0.31,5618,0.31,5619,0.31,5620,0.31,5621,0.31,5622,0.558,5623,0.269,5624,1.425,5625,0.607,5626,0.558,5627,0.558,5628,0.819,5629,0.607,5630,0.819,5631,2.99,5632,0.31,5633,0.772,5634,0.31,5635,0.31,5636,0.819,5637,0.607,5638,1.007,5639,0.285,5640,0.269,5641,0.31,5642,0.285,5643,0.607,5644,0.285,5645,0.31,5646,0.31,5647,1.383,5648,0.31,5649,0.31,5650,0.31,5651,0.31,5652,0.31,5653,0.607,5654,0.31,5655,0.285,5656,0.31,5657,0.31,5658,1.286,5659,1.675,5660,0.31,5661,0.502,5662,0.31,5663,1.069,5664,0.285,5665,0.31,5666,0.285,5667,0.607,5668,0.31,5669,0.31,5670,0.31,5671,0.31,5672,0.892,5673,0.31,5674,0.607,5675,0.607,5676,0.31,5677,0.31,5678,0.285,5679,0.31,5680,0.285,5681,0.31,5682,0.285,5683,2.924,5684,0.285,5685,0.31,5686,0.31,5687,0.558,5688,0.31,5689,0.269,5690,0.31,5691,0.31,5692,0.285,5693,0.285,5694,0.285,5695,1.069,5696,0.558,5697,0.285,5698,0.558,5699,0.285,5700,0.285,5701,0.31,5702,0.31,5703,1.164,5704,0.892,5705,0.558,5706,0.31,5707,0.772,5708,0.31,5709,0.31,5710,0.31,5711,0.31,5712,0.31,5713,0.31,5714,0.31,5715,0.31,5716,0.607,5717,0.607,5718,0.607,5719,0.31,5720,0.31,5721,0.31,5722,0.31,5723,0.31,5724,0.31,5725,0.31,5726,0.31,5727,0.31,5728,0.31,5729,0.31,5730,0.31,5731,0.31,5732,0.31,5733,0.285,5734,0.892,5735,0.607,5736,0.31,5737,0.31,5738,0.31,5739,0.31,5740,0.31,5741,0.31,5742,0.285,5743,0.607,5744,1.007,5745,0.31,5746,0.31,5747,0.607,5748,0.31,5749,0.607,5750,0.607,5751,0.607,5752,0.285,5753,0.31,5754,0.269,5755,1.007,5756,0.892,5757,0.31,5758,0.31,5759,1.164,5760,0.607,5761,0.31,5762,0.31,5763,0.31,5764,0.31,5765,0.31,5766,0.269,5767,0.892,5768,0.31,5769,0.31,5770,0.892,5771,0.558,5772,0.607,5773,0.31,5774,0.607,5775,0.285,5776,0.31,5777,0.31,5778,0.31,5779,0.31,5780,1.425,5781,0.31,5782,0.31,5783,0.31,5784,0.607,5785,0.31,5786,0.558,5787,0.607,5788,0.892,5789,0.892,5790,0.892,5791,0.607,5792,0.31,5793,0.31,5794,0.31,5795,0.31,5796,0.607,5797,0.31,5798,0.31,5799,0.31,5800,0.31,5801,0.31,5802,0.31,5803,0.31,5804,0.31,5805,0.31,5806,0.285,5807,0.31,5808,0.31,5809,0.31,5810,0.31,5811,0.31,5812,0.31,5813,0.31,5814,0.607,5815,0.269,5816,0.31,5817,0.285,5818,0.269,5819,0.558,5820,0.31,5821,0.31,5822,1.916,5823,3.182,5824,0.31,5825,0.31,5826,0.607,5827,0.31,5828,0.31,5829,0.892,5830,0.607,5831,0.31,5832,1.164,5833,2.37,5834,0.31,5835,0.31,5836,0.526,5837,0.607,5838,0.31,5839,1.069,5840,0.558,5841,0.558,5842,0.558,5843,0.558,5844,0.558,5845,0.31,5846,0.607,5847,0.31,5848,0.31,5849,0.31,5850,0.31,5851,0.31,5852,1.675,5853,0.607,5854,0.31,5855,0.31,5856,0.31,5857,0.31,5858,0.31,5859,0.285,5860,0.31,5861,1.675,5862,0.31,5863,0.31,5864,0.31,5865,0.31,5866,0.31,5867,0.31,5868,0.31,5869,0.31,5870,0.31,5871,0.31,5872,0.607]],["component/51",[7,0.29]],["keyword/51",[]],["title/52-1",[822,37.124,2348,49.958]],["name/52-1",[]],["text/52-1",[]],["component/52-1",[]],["keyword/52-1",[]],["title/52-2",[906,36.734,1522,42.708]],["name/52-2",[]],["text/52-2",[]],["component/52-2",[]],["keyword/52-2",[]],["title/52-3",[822,31.54,906,31.208,1522,36.284]],["name/52-3",[]],["text/52-3",[]],["component/52-3",[]],["keyword/52-3",[]],["title/52-4",[822,31.54,906,31.208,1522,36.284]],["name/52-4",[]],["text/52-4",[]],["component/52-4",[]],["keyword/52-4",[]],["title/52-5",[822,31.54,2348,42.443,5873,48.349]],["name/52-5",[]],["text/52-5",[]],["component/52-5",[]],["keyword/52-5",[]],["title/52-6",[841,31.863,1385,39.317]],["name/52-6",[]],["text/52-6",[]],["component/52-6",[]],["keyword/52-6",[]],["title/52-7",[841,27.07,1385,33.403,1997,41.41]],["name/52-7",[]],["text/52-7",[]],["component/52-7",[]],["keyword/52-7",[]],["title/52-8",[889,19.296,1390,51.326]],["name/52-8",[]],["text/52-8",[]],["component/52-8",[]],["keyword/52-8",[]],["title/52-9",[840,34.967,841,31.863]],["name/52-9",[]],["text/52-9",[]],["component/52-9",[]],["keyword/52-9",[]],["title/52-10",[87,18.166,840,25.823,841,23.531,1390,37.904]],["name/52-10",[]],["text/52-10",[]],["component/52-10",[]],["keyword/52-10",[]],["title/52-11",[87,18.166,840,25.823,841,23.531,5874,46.772]],["name/52-11",[]],["text/52-11",[]],["component/52-11",[]],["keyword/52-11",[]],["title/52-12",[840,29.707,841,27.07,5875,50.683]],["name/52-12",[]],["text/52-12",[]],["component/52-12",[]],["keyword/52-12",[]],["title/52-13",[57,17.125,840,20.47,841,18.653,1643,30.962,2602,32.031,5875,34.924]],["name/52-13",[]],["text/52-13",[]],["component/52-13",[]],["keyword/52-13",[]],["title/52",[7,11.287,841,27.07,1351,30.888]],["name/52",[841,0.801]],["text/52",[3,1.658,7,1.57,9,1.177,11,3.423,16,0.385,34,0.545,41,0.505,50,2.156,54,1.579,57,2.521,67,0.668,75,0.454,77,0.609,80,3.854,8
11,1.819,83,1.602,87,0.908,91,1.303,93,0.609,97,1.492,103,0.51,104,2.83,111,0.863,113,3.136,115,1.31,119,1.401,120,0.885,122,2.211,125,1.958,126,2.591,128,0.469,132,2.021,138,0.805,144,1.531,149,1.395,163,0.609,164,0.41,167,0.566,170,0.44,177,1.343,178,0.573,189,4.115,190,0.725,199,0.482,203,3.344,206,0.538,207,1.723,211,0.926,216,0.581,217,1.168,224,0.599,233,0.505,234,0.477,237,1.819,241,2.241,250,0.495,265,0.935,267,1.019,299,0.701,304,0.668,345,0.458,346,1.058,350,2.929,363,0.609,365,1.564,367,1.044,369,1.489,371,0.473,375,4.89,377,0.684,386,1.85,388,0.599,389,0.416,391,1.019,395,0.87,397,1.883,399,0.849,420,0.434,421,0.477,471,1.278,690,1.723,691,0.609,692,0.581,693,0.668,698,0.482,700,0.684,701,1.401,702,0.777,708,0.926,711,1.087,715,1.249,717,4.445,724,1.058,727,2.462,728,1.872,729,1.31,737,0.72,741,1.952,747,1.371,755,0.888,756,0.837,761,0.427,766,2.501,774,1.638,778,1.257,779,1.387,782,2.047,788,0.654,789,1.401,790,0.473,792,0.422,797,0.473,798,0.532,803,8.294,804,0.668,807,0.767,811,1.031,817,3.967,818,0.837,821,2.342,822,5.059,824,0.742,828,1.845,829,1.85,835,1.387,840,5.053,841,5.872,843,1.526,855,2.722,857,1.246,858,1.434,861,1.593,864,0.856,865,0.837,866,3.739,867,1.961,869,2.657,870,3.689,874,3.299,879,0.59,880,1.199,882,1.629,883,2.904,884,0.581,885,0.863,888,1.249,889,2.281,890,0.521,894,5.195,901,1.452,902,2.014,903,0.799,906,5.758,913,0.551,914,0.973,939,0.486,941,2.528,942,4.486,953,3.102,955,1.765,957,0.482,958,1.456,969,0.59,972,1.31,973,1.072,977,1.205,978,0.684,985,0.953,989,0.505,995,2.454,996,0.798,1007,0.701,1011,0.51,1014,0.995,1016,0.684,1018,1.445,1019,0.5,1025,2.768,1044,1.918,1045,1.268,1053,1.249,1055,0.995,1062,0.573,1063,1.456,1064,1.577,1070,1.007,1086,0.532,1090,2.296,1092,1.268,1098,0.538,1100,0.443,1106,1.435,1112,1.249,1125,1.734,1140,0.668,1143,0.551,1149,1.199,1152,0.63,1153,0.767,1154,1.343,1166,0.777,1167,1.895,1169,3.768,1177,2.458,1179,0.573,1192,0.515,1199,0.798,1212,3.386,1213,0.526,1219,1.199,1227,1.654,1234,0.654,1247,0.619,1261,2.708,1267,0.49,1272,2.587,1283,0.609,1285,1.223,1291,1.019,1294,1.704,1297,2.241,1306,2.299,1316,1.199,1322,0.684,1330,3.054,1344,0.545,1351,1.343,1352,2.396,1354,0.973,1358,1.356,1363,0.997,1379,1.741,1383,0.995,1385,3.575,1386,1.658,1388,1.872,1389,2.339,1390,6.825,1398,3.461,1405,0.59,1412,0.701,1424,2.122,1427,1.15,1429,0.609,1434,0.642,1435,0.495,1436,2.246,1446,0.856,1447,0.701,1448,3.235,1450,1.346,1456,0.72,1461,0.59,1472,0.668,1474,0.837,1502,0.619,1515,1.386,1516,0.742,1520,0.532,1522,6.559,1523,0.684,1533,0.609,1544,1.177,1553,1.157,1554,1.12,1571,1.741,1572,2.855,1613,2.211,1624,0.521,1643,0.742,1704,0.545,1714,0.767,1733,0.63,1738,0.654,1746,0.72,1756,0.767,1822,1.847,1824,1.8,1839,1.087,1842,2.382,1848,1.872,1860,1.177,1873,0.59,1880,1.031,1913,0.798,1931,1.072,1997,4.201,2000,0.767,2011,0.581,2054,0.654,2059,0.72,2091,2.102,2123,1.31,2125,0.51,2138,0.63,2139,0.798,2154,0.619,2174,1.058,2176,0.742,2177,2.165,2183,0.767,2190,0.573,2216,0.684,2287,0.599,2291,1.658,2310,2.957,2324,0.642,2325,5.286,2348,3.118,2353,0.684,2376,0.798,2447,1.346,2454,0.684,2478,1.223,2493,1.895,2497,3.553,2498,5.786,2508,0.642,2532,3.108,2533,3.723,2537,1.177,2547,0.837,2550,2.768,2551,1.661,2571,0.888,2602,1.435,2657,0.609,2676,0.767,2691,0.72,2696,0.767,2699,0.767,2733,1.953,2765,2.834,2812,1.492,2813,1.492,2814,1.564,2816,0.684,2819,2.203,2820,1.824,2825,0.619,2844,3.203,2847,4.286,2856,0.701,3011,1.249,3096,1.564,3199,0.837,3272,0.581,3303,0.798,3315,2.768,3324,1.387,3334,0.888,3337,2.339,3365,0.837,3375,0.888,3483,0.888,3491,0.798,3504,0.767,3507,2.102,3544,1.223,3556,0.72,3618,1.12,3722,0.767,3728,0.742,3806,0.798,3814,0.767,3850,0.767,3899,1.435,3928,0.837,3944,0.798,4042,0.798,4191,0.684,4385,0.888,4574,0.888,4764,0.888,4818,0.888,4825,0.888,4855,0.888,4879,1.435,4896,6.06,4919,1.387,4920,1.346,4923,0.642,4967,2.122,4971,0.742,4978,1.492,4983,3.768,5015,0.837,5104,3.203,5258,0.837,5401,0.767,5416,0.837,5417,0.888,5425,0.798,5426,2.641,5449,0.798,5481,0.888,5582,0.888,5583,2.454,5622,1.661,5647,1.492,5755,0.837,5873,1.492,5874,4.776,5875,4.13,5876,0.967,5877,1.807,5878,0.967,5879,0.967,5880,0.767,5881,0.967,5882,0.888,5883,0.967,5884,1.807,5885,0.967,5886,0.967,5887,1.807,5888,1.807,5889,1.807,5890,1.807,5891,0.888,5892,2.339,5893,0.967,5894,0.9
167,5895,0.967,5896,0.888,5897,1.807,5898,0.888,5899,1.492,5900,0.888,5901,0.967,5902,0.967,5903,0.967,5904,0.967,5905,0.967,5906,0.967,5907,4.771,5908,1.492,5909,0.967,5910,3.779,5911,0.967,5912,0.967,5913,0.888,5914,1.807,5915,1.807,5916,1.807,5917,0.967,5918,0.967,5919,0.967,5920,0.967,5921,0.967,5922,0.967,5923,1.807,5924,0.967,5925,0.967,5926,0.967,5927,0.967,5928,6.843,5929,0.967,5930,1.807,5931,0.888,5932,2.545,5933,4.771,5934,0.967,5935,0.967,5936,2.939,5937,0.967,5938,0.967,5939,0.798,5940,0.967,5941,4.301,5942,0.967,5943,1.807,5944,0.967,5945,1.807,5946,0.967,5947,0.967,5948,0.967,5949,0.967,5950,0.888,5951,0.967,5952,0.967,5953,3.198,5954,2.545,5955,0.967,5956,0.967,5957,0.967,5958,0.967,5959,0.967,5960,0.967,5961,1.807,5962,1.661,5963,0.967,5964,0.967,5965,0.967,5966,0.967,5967,0.888,5968,0.888,5969,4.301,5970,7.1,5971,0.888,5972,0.967,5973,0.967,5974,0.967]],["component/52",[7,0.29]],["keyword/52",[]],["title/53-1",[83,43.391,4903,54.716]],["name/53-1",[]],["text/53-1",[]],["component/53-1",[]],["keyword/53-1",[]],["title/53-2",[111,27.945,1140,40.481,1571,31.884]],["name/53-2",[]],["text/53-2",[]],["component/53-2",[]],["keyword/53-2",[]],["title/53-3",[138,30.699,953,23.984]],["name/53-3",[]],["text/53-3",[]],["component/53-3",[]],["keyword/53-3",[]],["title/53-4",[889,19.296,1708,30.266]],["name/53-4",[]],["text/53-4",[]],["component/53-4",[]],["keyword/53-4",[]],["title/53-5",[1177,25.799,1431,35.298]],["name/53-5",[]],["text/53-5",[]],["component/53-5",[]],["keyword/53-5",[]],["title/53-6",[1295,31.15,1923,36.734]],["name/53-6",[]],["text/53-6",[]],["component/53-6",[]],["keyword/53-6",[]],["title/53-7",[1177,21.918,1295,26.464,4916,42.443]],["name/53-7",[]],["text/53-7",[]],["component/53-7",[]],["keyword/53-7",[]],["title/53-8",[111,27.945,1923,31.208,5975,46.486]],["name/53-8",[]],["text/53-8",[]],["component/53-8",[]],["keyword/53-8",[]],["title/53-9",[1210,42.064,1708,30.266]],["name/53-9",[]],["text/53-9",[]],["component/53-9",[]],["keyword/53-9",[]],["title/53-10",[111,27.945,1294,31.208,1353,28.66]],["name/53-10",[]],["text/53-10",[]],["component/53-10",[]],["keyword/53-10",[]],["title/53",[111,27.945,954,26.864,1306,25.896]],["name/53",[1384,1.128]],["text/53",[1,0.497,2,0.559,7,0.326,11,2.761,16,0.954,18,4.022,28,0.876,32,1.261,34,0.508,36,0.815,47,0.568,48,0.587,50,1.845,51,0.844,54,0.836,75,0.423,80,4.072,81,0.815,87,0.854,89,0.771,91,0.462,94,0.745,101,0.408,111,4.475,113,2.696,120,0.441,125,1.629,126,3.186,138,3.517,142,0.542,146,0.528,149,0.738,162,1.42,164,1.016,166,0.481,176,1.349,177,0.893,181,0.434,185,0.638,188,0.449,189,4.985,190,2.411,198,0.351,203,1.335,207,0.486,216,1.019,217,0.777,236,0.568,237,1.452,334,1.162,335,1.318,345,0.427,346,0.991,368,1.049,371,2.613,377,0.638,382,1.383,389,0.388,393,1.004,395,0.434,396,0.829,397,2.262,398,1.019,399,0.795,409,1.533,420,1.605,421,0.836,465,2.003,471,1.198,681,1.198,688,2.248,692,0.542,694,0.587,695,0.808,698,0.844,702,1.298,708,1.226,710,1.644,711,1.44,716,0.577,721,0.568,724,0.528,725,1.264,761,0.749,767,2.395,773,0.638,774,2.091,776,0.745,778,0.445,782,1.084,788,1.621,789,1.318,792,1.316,797,0.829,825,0.528,826,0.61,829,1.172,843,1.441,846,0.521,852,2.958,855,0.966,857,0.441,858,0.508,861,0.449,862,0.808,864,0.802,867,0.371,869,0.502,871,1.171,879,1.461,880,0.598,883,0.399,884,0.542,889,1.495,890,1.626,894,1.203,901,0.514,902,0.903,913,1.366,914,1.927,939,0.851,941,2.425,942,2.248,953,3.362,954,1.873,955,3.073,957,0.844,958,1.374,959,0.486,963,3.265,964,0.577,966,1.146,974,0.568,977,0.427,985,0.476,986,1.736,1006,0.568,1007,0.654,1011,1.592,1013,0.466,1014,0.497,1018,1.082,1027,0.514,1031,1.019,1045,2.47,1048,1.693,1055,0.932,1063,0.411,1082,0.535,1086,1.662,1090,1.722,1100,1.098,1101,0.502,1104,5.456,1115,3.349,1125,1.098,1140,6.088,1141,1.276,1143,0.514,1154,5.574,1157,0.61,1158,0.61,1166,0.728,1175,0.61,1177,3.471,1180,1.948,1181,7.065,1186,1.344,1187,0.476,1189,2.188,1210,3.851,1213,0.491,1216,1.146,1239,1.115,1255,1.066,1261,0.568,1267,2.709,1273,3.429,1281,2.73,1283,1.066,1285,0.61,1287,0.449,1291,0.954,1294,3.204,1295,3.791,1296,3.375,1297,2.328,1306,3.836,1308,0.623,1311,0.542,1316,2.375,1336,0.587,1352,0.502,1353,2.427,1354,0.486,1355,1.888,1358,1.907,1363,2.228,1369,0.577,1373,0.836,1374,0.932,1384,0.587,1385,0.514,1402,0.598,1419,0.61,1420,0.577,1425,
10.521,1426,0.638,1427,1.082,1430,0.481,1431,4.948,1432,2.041,1436,1.869,1439,0.542,1441,0.466,1443,1.366,1446,2.15,1451,0.577,1458,3.741,1459,1.966,1501,2.764,1515,0.922,1516,0.692,1522,4.527,1536,1.842,1554,0.559,1555,1.3,1556,1.276,1557,0.654,1571,4.795,1594,1.932,1598,6.356,1624,1.29,1704,0.508,1708,4.616,1771,1.227,1774,0.577,1822,3.084,1855,1.766,1873,0.55,1880,1.722,1923,4.301,1997,1.198,2011,1.019,2029,1.261,2125,1.263,2127,1.276,2133,0.471,2135,1.398,2154,0.577,2177,0.61,2190,0.535,2208,0.623,2229,0.542,2310,1.483,2318,0.692,2351,0.61,2354,0.672,2379,1.783,2494,0.716,2514,0.672,2522,2.859,2529,1.146,2530,4.794,2532,0.587,2537,0.587,2611,1.066,2637,0.577,2645,1.198,2657,1.507,2666,1.146,2679,1.483,2720,5.608,2724,0.61,2816,0.638,2825,1.932,2829,1.227,2833,7.022,2869,0.781,3052,0.654,3119,1.783,3203,1.401,3207,0.716,3249,1.198,3268,3.167,3272,3.422,3277,0.654,3356,1.589,3502,1.693,3558,0.781,3614,0.638,3654,0.745,3669,4.924,3718,1.124,3803,5.799,3829,1.146,3871,1.171,3911,1.783,3937,0.623,4133,0.716,4163,1.171,4186,0.638,4191,1.198,4354,1.977,4557,0.716,4581,0.638,4614,2.665,4703,0.692,4880,2.907,4903,6.536,4916,2.96,4935,1.3,4986,1.589,4987,0.692,5028,0.745,5030,3.041,5040,0.716,5051,0.781,5052,0.745,5054,1.783,5082,0.654,5104,0.672,5165,0.577,5167,0.587,5211,0.716,5361,0.745,5403,0.745,5458,0.781,5583,0.692,5612,0.781,5658,2.746,5818,0.781,5836,1.466,5899,0.745,5975,6.406,5976,0.745,5977,0.781,5978,0.829,5979,0.902,5980,0.902,5981,1.693,5982,0.902,5983,0.902,5984,0.781,5985,0.745,5986,3.288,5987,1.466,5988,1.556,5989,1.556,5990,1.556,5991,2.2,5992,0.829,5993,0.829,5994,2.072,5995,1.556,5996,3.752,5997,3.097,5998,2.774,5999,3.018,6000,3.018,6001,4.291,6002,3.018,6003,0.902,6004,0.902,6005,0.829,6006,0.829,6007,1.556,6008,0.745,6009,0.902,6010,0.902,6011,0.902,6012,2.492,6013,2.492,6014,1.398,6015,0.829,6016,1.977,6017,0.781,6018,1.693,6019,1.556,6020,1.693,6021,3.372,6022,1.556,6023,4.541,6024,1.693,6025,6.507,6026,0.829,6027,0.745,6028,0.829,6029,1.693,6030,4.083,6031,3.578,6032,1.693,6033,0.829,6034,0.672,6035,0.692,6036,1.556,6037,0.829,6038,1.556,6039,0.829,6040,0.902,6041,0.829,6042,0.902,6043,0.902,6044,0.829,6045,0.829,6046,0.829,6047,3.097,6048,0.781,6049,1.693,6050,2.394,6051,1.693,6052,0.745,6053,0.902,6054,3.288,6055,0.829,6056,0.829,6057,4.964,6058,1.693,6059,4.906,6060,2.774,6061,2.2,6062,3.288,6063,2.2,6064,0.781,6065,2.072,6066,1.556,6067,0.829,6068,0.829,6069,0.829,6070,0.829,6071,0.829,6072,0.829,6073,0.829,6074,0.829,6075,0.902,6076,0.902,6077,0.829,6078,0.829,6079,1.693,6080,0.902,6081,1.693,6082,1.693,6083,1.556,6084,0.829,6085,0.745,6086,0.829,6087,0.902,6088,0.902,6089,0.902,6090,0.902,6091,0.902,6092,0.902,6093,0.902,6094,0.902,6095,0.902,6096,2.774,6097,0.902,6098,0.781,6099,2.394,6100,2.394,6101,1.693,6102,0.902,6103,1.693,6104,0.902,6105,0.902,6106,0.829,6107,0.902,6108,0.902,6109,0.829,6110,0.902,6111,0.902,6112,0.902,6113,0.902,6114,0.902,6115,0.902,6116,0.902,6117,0.781,6118,1.693,6119,1.693,6120,0.902,6121,0.902]],["component/53",[7,0.29]],["keyword/53",[]],["title/54",[954,31.62,1306,30.481]],["name/54",[771,0.82]],["text/54",[6,3.551,7,1.723,8,3.808,16,2.628,110,5.006,111,5.188,112,5.986,128,3.199,162,5.301,190,2.643,203,2.915,211,3.376,223,4.866,224,4.085,237,3.172,250,4.577,258,4.462,345,3.12,389,2.836,409,4.22,421,3.255,465,7.541,767,6.18,778,3.255,789,4.921,790,3.226,792,3.897,805,3.589,815,4.662,841,3.047,881,4.375,889,1.846,911,4.15,912,4.085,941,4.386,942,3.63,944,2.817,953,2.294,954,5.592,955,3.858,958,3.002,974,4.15,983,4.778,1090,3.172,1177,3.795,1227,3.409,1236,4.023,1294,3.513,1306,5.654,1351,4.714,1363,4.257,1398,4.085,1402,4.375,1446,3.12,1923,5.404,2229,3.965,2657,4.15,2820,3.76,3550,5.233,3739,5.443,3753,5.443,4938,5.059,6122,5.233]],["component/54",[7,0.29]],["keyword/54",[]],["title/55-1",[83,43.391,4904,56.91]],["name/55-1",[]],["text/55-1",[]],["component/55-1",[]],["keyword/55-1",[]],["title/55-2",[138,30.699,953,23.984]],["name/55-2",[]],["text/55-2",[]],["component/55-2",[]],["keyword/55-2",[]],["title/55-3",[889,19.296,1708,30.266]],["name/55-3",[]],["text/55-3",[]],["component/55-3",[]],["keyword/55-3",[]],["title/55-4",[1177,25.799,1431,35.298]],["name/55-4",[]],["text/55-4",[]],["component/55-4",[]],["keyword/55-4",[]],["title/55-5",[1295,31.15,1923,36.734]],["name/55-5",[]],["text/55-5",[]],["component/55-5",[]],["keyword/55-5",[]],["title/55-6",[1177,21.918,1295,26.464,1597,36.864]],["name/55-6",[]],["text/55-6",[]],["component/55-6",[]],["keyword/55-6",[]],["title/55-7",[1210,42.064,1708,30.266]],["name/55-7",[]],["text/55-7",[]],["component/55-7",[]],["keyword/55-7",[]],["title/55",[112,32.241,954,26.864,1306,25.896]],["name/55",[2500,1.197]],["text/55",[1,0.802,2,0.903,7,0.989,11,2.837,16,1.051,18,3.157,28,1.364,36,1.269,48,0.949,50,2.591,51,1.314,54,0.72,57,2.433,75,0.684,80,4.391,81,1.739,87,1.29,91,0.746,101,0.659,112,5.574,113,1.894,125,1.645,126,2.5,128,1.28,138,4.116,142,0.877,144,0.877,146,1.544,149,2.238,154,0.831,162,0.864,164,1.881,166,0.777,170,0.664,176,0.821,177,0.769,181,0.701,185,1.031,188,0.726,189,4.946,190,1.777,203,1.167,217,0.669,233,1.377,236,1.661,237,2.759,240,1.056,241,2.082,334,1.28,335,0.802,343,2.313,344,1.298,345,0.69,346,0.853,352,1.786,371,3.488,382,2.087,386,0.713,389,0.627,395,0.701,398,1.587,399,1.239,409,1.689,420,1.183,421,0.72,465,2.398,565,2.094,605,1.118,681,1.865,692,0.877,693,1.008,695,2.986,698,0.726,701,1.452,702,2.207,708,1.85,710,1.436,711,3.086,725,2.149,727,0.949,728,1.544,760,1.056,761,0.645,767,2.707,773,1.031,782,0.933,792,1.576,797,1.291,817,0.659,825,2.114,826,1.786,829,0.713,843,0.696,852,0.949,855,1.505,857,0.713,858,0.821,862,1.259,864,3.374,867,1.084,871,1.008,877,0.933,879,2.705,883,0.645,889,2.097,890,0.785,894,0.733,902,0.777,903,1.96,913,2.061,914,2.388,939,1.326,941,2.07,942,1.452,953,3.67,954,3.722,955,2.655,958,1.645,963,3.401,966,0.987,977,0.69,985,0.769,986,2.49,989,0.761,990,1.085,1008,4.645,1011,0.769,1013,0.754,1014,0.802,1018,2.319,1027,0.831,1044,0.739,1045,0.726,1055,1.452,1063,0.664,1064,0.903,1070,0.812,1086,1.452,1090,1.739,1092,0.726,1098,0.812,1100,1.21,1101,0.812,1104,6.028,1115,3.288,1125,0.669,1154,3.024,1157,0.987,1158,0.987,1166,1.554,1177,3.642,1180,1.436,1181,6.864,1192,0.777,1210,4.1,1213,0.794,1216,1.786,1255,1.661,1273,3.57,1281,0.802,1283,1.661,1291,0.821,1294,3.056,1295,3.898,1296,3.401,1297,3.155,1306,4.236,1308,1.824,1311,0.877,1312,0.933,1336,0.949,1353,0.713,1354,0.785,1355,0.769,1358,1.926,1363,2.45,1365,1.249,1369,0.933,1373,1.302,1374,1.452,1385,0.831,1402,0.967,1425,
10.842,1426,1.031,1427,1.192,1430,0.777,1431,4.531,1432,2.061,1435,1.351,1436,1.887,1439,0.877,1441,0.754,1442,1.118,1446,1.71,1458,3.65,1501,1.786,1515,0.794,1522,0.903,1536,3.499,1556,1.926,1557,1.056,1597,2.275,1607,1.031,1624,1.946,1708,4.058,1733,0.949,1774,0.933,1822,0.842,1848,1.544,1855,2.594,1923,3.335,2011,1.587,2031,1.689,2125,1.391,2127,1.406,2133,0.761,2135,1.203,2177,0.987,2310,1.634,2325,0.802,2354,1.085,2443,2.178,2500,1.008,2522,1.661,2532,0.949,2611,0.918,2637,0.933,2645,1.031,2666,1.786,2679,1.634,2720,0.903,2829,2.619,2833,7.062,2853,6.374,2854,1.964,2855,4.802,2856,5.43,2903,0.933,3052,1.056,3119,1.085,3203,1.544,3249,1.865,3272,2.173,3502,2.555,3614,1.031,3618,0.903,3716,4.073,3718,1.751,3829,0.987,3871,2.498,3937,1.008,4037,1.157,4163,1.824,4186,1.031,4354,2.983,4557,1.157,4581,1.031,4614,3.301,4703,1.118,4846,1.031,4852,1.031,4880,2.838,4904,6.185,4935,1.118,4936,1.203,4986,3.405,4987,1.118,4988,2.424,4989,2.424,5005,1.085,5010,1.085,5051,1.262,5052,1.203,5165,2.838,5167,2.888,5361,2.178,5403,1.203,5529,2.983,5532,2.178,5533,3.519,5658,3.402,5836,2.283,5839,1.339,5840,1.339,5841,1.339,5842,1.339,5844,4.073,5976,1.203,5977,1.262,5984,1.262,5985,1.203,5995,1.339,5996,6.174,5997,3.837,6005,1.339,6006,1.339,6008,1.203,6012,2.178,6013,3.66,6014,2.178,6015,1.339,6016,2.178,6017,1.262,6021,4.237,6022,2.424,6026,1.339,6027,1.203,6028,1.339,6033,1.339,6034,1.085,6035,1.118,6036,1.339,6037,1.339,6038,1.339,6039,1.339,6041,1.339,6046,1.339,6047,2.283,6048,1.262,6052,1.203,6056,1.339,6057,2.983,6096,4.073,6123,1.339,6124,3.32,6125,1.262,6126,1.339,6127,1.262,6128,1.339,6129,1.339,6130,1.339,6131,1.339,6132,1.339,6133,1.339,6134,1.339,6135,1.339,6136,1.339,6137,1.339,6138,1.339,6139,1.339,6140,1.339,6141,1.457,6142,1.457,6143,1.457,6144,1.457,6145,1.457,6146,1.457,6147,1.457,6148,3.127,6149,4.432,6150,6.257,6151,2.424,6152,1.457,6153,2.424,6154,5.75,6155,2.638,6156,4.432,6157,3.519,6158,2.638,6159,2.424,6160,5.131,6161,7.126,6162,2.638,6163,1.457,6164,1.339,6165,1.339,6166,1.457,6167,1.457,6168,1.457,6169,1.339,6170,1.339,6171,1.457,6172,1.339,6173,1.457,6174,2.638,6175,1.457,6176,1.457,6177,1.457]],["component/55",[7,0.29]],["keyword/55",[]],["title/56-1",[841,27.07,1911,48.349,2027,44.934]],["name/56-1",[]],["text/56-1",[]],["component/56-1",[]],["keyword/56-1",[]],["title/56-2",[841,27.07,1018,26.464,1295,26.464]],["name/56-2",[]],["text/56-2",[]],["component/56-2",[]],["keyword/56-2",[]],["title/56-3",[1295,26.464,1353,28.66,4967,38.862]],["name/56-3",[]],["text/56-3",[]],["component/56-3",[]],["keyword/56-3",[]],["title/56-4",[1295,26.464,3272,35.221,4967,38.862]],["name/56-4",[]],["text/56-4",[]],["component/56-4",[]],["keyword/56-4",[]],["title/56",[841,27.07,1306,25.896,1351,30.888]],["name/56",[841,0.801]],["text/56",[7,1.926,16,1.66,51,2.074,57,1.768,75,3.666,80,2.813,91,2.133,113,3.745,122,2.879,125,1.896,138,1.855,142,2.505,149,3.404,189,4.7,190,1.67,210,2.764,224,2.58,241,3.008,265,4.037,334,3.788,335,2.293,389,1.791,395,2.004,403,2.819,420,1.868,421,3.854,702,1.791,708,2.133,726,2.764,747,2.243,761,1.842,766,2.004,778,2.056,781,3.439,790,2.038,792,1.816,803,7.065,817,1.882,818,3.605,822,2.243,841,5.094,845,2.437,883,2.833,889,2.649,890,4.721,941,2.584,942,6.067,954,1.911,955,3.212,974,2.622,985,2.197,1011,5.489,1018,3.528,1027,2.376,1045,3.889,1063,1.896,1086,3.527,1090,2.004,1098,2.319,1115,2.038,1125,1.911,1177,4.211,1227,3.312,1267,2.113,1273,2.376,1281,2.293,1294,4.161,1295,4.98,1306,4.418,1351,4.118,1353,5.393,1354,2.243,1363,1.631,1373,2.056,1420,2.666,1427,4.276,1431,4.489,1435,2.133,1458,2.133,1525,2.879,1536,2.542,1556,2.22,1572,2.764,1725,3.527,1794,6.404,1911,7.812,1912,2.819,2147,3.196,2156,3.605,2174,2.437,2181,3.196,2216,2.945,2291,2.713,2612,3.196,2765,5.59,2820,2.376,3082,2.945,3203,2.437,3268,5.926,3272,6.009,3803,5.085,4160,4.916,4846,2.945,4851,4.77,4852,2.945,4879,5.085,4880,2.666,4926,5.289,4967,7.466,4986,5.181,5004,3.439,5005,3.101,5010,3.101,5396,3.439,5459,3.827,5574,3.827,5608,3.827,5880,5.085,5908,3.439,6178,4.164,6179,4.164,6180,4.164,6181,4.164,6182,6.405,6183,3.827,6184,5.886,6185,4.164,6186,4.164,6187,4.164,6188,4.164,6189,4.164,6190,3.827,6191,4.164]],["component/56",[7,
10.29]],["keyword/56",[]],["title/57-1",[2903,44.12,3203,40.335]],["name/57-1",[]],["text/57-1",[]],["component/57-1",[]],["keyword/57-1",[]],["title/57-2",[87,20.898,1909,38.862,1935,42.443]],["name/57-2",[]],["text/57-2",[]],["component/57-2",[]],["keyword/57-2",[]],["title/57-3",[87,24.598,858,38.842]],["name/57-3",[]],["text/57-3",[]],["component/57-3",[]],["keyword/57-3",[]],["title/57-4",[237,33.166,2903,44.12]],["name/57-4",[]],["text/57-4",[]],["component/57-4",[]],["keyword/57-4",[]],["title/57",[1306,25.896,1351,30.888,2820,33.403]],["name/57",[4493,0.723,6192,0.866]],["text/57",[1,3.681,7,1.218,11,3.155,16,2.359,18,2.071,36,0.568,46,1.085,50,0.534,54,0.583,57,0.924,75,1.767,80,4.26,83,0.743,87,1.773,89,0.538,101,0.534,103,1.148,111,0.563,112,1.666,113,2.856,125,0.538,126,2.167,133,0.816,138,4.211,146,1.273,149,0.515,154,0.673,162,2.231,164,0.924,166,0.629,170,1.713,188,1.084,189,5.032,190,1.508,199,0.588,203,0.522,206,0.658,207,1.172,228,0.691,233,0.617,237,4.089,241,0.554,250,1.114,310,0.7,329,1.577,335,1.666,346,0.691,357,0.937,364,0.53,368,1.348,369,0.691,371,1.481,375,0.879,386,1.065,389,1.302,391,0.665,393,2.231,395,0.568,396,0.578,397,3.149,398,0.71,399,0.554,409,3.502,465,5.039,649,0.975,690,1.63,695,1.038,698,1.084,702,0.936,708,0.605,710,1.648,713,0.784,721,0.743,724,0.691,725,1.845,726,0.784,728,2.202,730,0.784,731,0.975,747,1.63,761,2.198,764,0.756,766,1.456,767,4.759,778,2.174,792,0.515,797,0.578,798,1.198,802,0.721,805,1.185,811,0.673,815,0.835,817,0.534,819,1.172,826,1.473,829,1.841,841,1.739,843,1.038,857,2.432,858,2.8,859,1.022,861,0.588,862,2.102,866,0.568,867,1.546,874,2.092,879,3.339,883,2.419,889,2.049,894,2.214,896,0.691,902,0.629,906,1.16,914,1.172,940,0.799,941,2.55,942,2.736,944,0.93,948,0.799,952,0.449,953,2.957,954,2.02,955,1.687,957,1.874,958,1.713,964,0.756,977,2.59,985,0.623,990,0.879,1000,0.856,1007,0.856,1011,0.623,1013,0.61,1014,1.666,1018,1.7,1025,3.269,1031,1.309,1034,0.769,1042,0.856,1044,4.577,1045,2.475,1062,1.291,1064,1.348,1067,0.71,1068,1.875,1070,1.212,1086,0.65,1090,2.391,1098,0.658,1115,3.716,1125,2.02,1141,1.16,1143,0.673,1166,3.375,1177,1.133,1187,2.323,1189,1.577,1210,3.339,1212,0.769,1227,1.945,1248,2.092,1255,0.743,1261,2.772,1265,0.856,1266,0.816,1267,1.909,1273,4.174,1281,1.198,1285,0.799,1291,1.226,1294,2.648,1306,4.181,1307,1.67,1312,1.393,1335,0.617,1344,2.482,1351,0.623,1353,1.065,1354,3.601,1355,3.335,1357,3.789,1363,1.185,1364,3.495,1371,1.577,1373,1.494,1374,1.666,1379,0.643,1383,2.071,1385,2.146,1388,1.273,1390,2.801,1397,1.972,1398,3.39,1402,0.784,1427,1.7,1429,1.37,1431,0.605,1435,2.255,1436,0.617,1443,1.241,1444,0.769,1458,3.424,1459,0.769,1515,1.185,1520,0.65,1522,3.667,1536,1.328,1553,0.756,1556,1.16,1577,0.784,1631,2.497,1694,0.879,1725,2.425,1747,2.095,1822,3.652,1848,3.699,1855,1.273,1858,1.418,1880,0.673,1899,2.12,1908,0.906,1909,4.437,1910,1.393,1911,1.797,1923,1.613,1934,6.004,1935,4.846,1981,0.799,2027,0.906,2060,0.835,2092,1.085,2123,0.856,2125,2.323,2127,2.648,2134,1.847,2138,0.769,2153,1.473,2158,0.665,2181,0.906,2190,1.291,2192,0.975,2253,0.856,2310,2.331,2324,1.444,2351,1.473,2411,0.856,2498,2.801,2515,0.975,2522,1.37,2530,2.981,2532,1.418,2611,2.368,2613,4.227,2633,2.009,2706,0.937,2720,4.705,2820,1.727,2822,1.085,2825,3.502,2836,0.732,2853,2.981,2901,1.022,2903,4.047,3041,1.62,3052,1.577,3203,6.123,3249,1.539,3268,2.612,3303,1.797,3356,1.444,3541,2.194,3615,0.937,3618,1.875,3718,1.444,3738,0.906,3745,1.022,3797,1.797,3806,0.975,3818,1.085,3871,0.816,3903,0.816,3911,1.62,3912,3.106,3939,0.975,4030,0.879,4039,1.67,4158,1.022,4180,5.809,4186,0.835,4192,1.022,4709,1.797,4849,1.797,4859,2.499,4861,2.727,4867,2.781,4872,2.62,4877,5.809,4880,2.408,4892,3.256,4893,2.62,4896,5.22,4897,2.62,4898,2.62,4899,3.256,4900,3.256,4930,2,4931,1.883,4933,1.883,4934,2,5030,0.879,5054,1.62,5104,7.849,5211,1.727,5356,1.085,5357,1.085,5638,1.022,5642,1.085,5655,2,5658,2.323,5663,2.781,5666,1.085,5678,1.085,5680,1.085,5682,1.085,5683,2,5684,1.085,5819,2,5843,1.085,5896,1.085,5962,2,6065,1.883,6148,2.62,6193,1.181,6194,1.181,6195,1.181,6196,3.762,6197,1.181,6198,1.181,6199,1.181,6200,1.181,6201,1.181,6202,1.181,6203,1.181,6204,4.969,6205,1.181,6206,2.176,6207,3.026,6208,1.181,6209,1.181,62
110,1.181,6211,1.181,6212,1.181,6213,2.176,6214,1.181,6215,1.181,6216,1.181,6217,1.181,6218,1.181,6219,1.181,6220,1.181,6221,2.176,6222,1.181,6223,0.975,6224,1.181,6225,1.181,6226,1.181,6227,1.181,6228,3.026,6229,2.176,6230,1.181,6231,3.026,6232,1.181,6233,4.969,6234,3.026,6235,1.181,6236,3.026,6237,3.026,6238,3.026,6239,3.026,6240,1.085,6241,2.176,6242,1.181,6243,3.762,6244,4.403,6245,3.762,6246,2.176,6247,3.762,6248,2.176,6249,2.176,6250,2.176,6251,2.176,6252,2.176,6253,2.176,6254,3.026,6255,2.176,6256,3.026,6257,2.176,6258,2.176,6259,2.176,6260,1.181,6261,2.176,6262,2,6263,2.176,6264,2.176,6265,2,6266,2.176,6267,1.181,6268,2.781,6269,1.181,6270,1.181,6271,1.181]],["component/57",[7,0.29]],["keyword/57",[]],["title/58-1",[164,29.253,4902,54.716]],["name/58-1",[]],["text/58-1",[]],["component/58-1",[]],["keyword/58-1",[]],["title/58-2",[1358,36.734,4902,54.716]],["name/58-2",[]],["text/58-2",[]],["component/58-2",[]],["keyword/58-2",[]],["title/58-3",[138,26.081,1725,32.241,2130,30.279]],["name/58-3",[]],["text/58-3",[]],["component/58-3",[]],["keyword/58-3",[]],["title/58-4",[11,24.104,250,35.298]],["name/58-4",[]],["text/58-4",[]],["component/58-4",[]],["keyword/58-4",[]],["title/58-5",[11,24.104,111,32.893]],["name/58-5",[]],["text/58-5",[]],["component/58-5",[]],["keyword/58-5",[]],["title/58-6",[944,21.748,1177,19.052,1363,19.932,1632,31.064]],["name/58-6",[]],["text/58-6",[]],["component/58-6",[]],["keyword/58-6",[]],["title/58-7",[1295,23.004,1363,19.932,1632,31.064,2632,37.904]],["name/58-7",[]],["text/58-7",[]],["component/58-7",[]],["keyword/58-7",[]],["title/58-8",[7,11.287,110,28.911,1351,30.888]],["name/58-8",[]],["text/58-8",[]],["component/58-8",[]],["keyword/58-8",[]],["title/58-9",[110,34.029,2613,39.814]],["name/58-9",[]],["text/58-9",[]],["component/58-9",[]],["keyword/58-9",[]],["title/58-10",[110,28.911,1294,31.208,3272,35.221]],["name/58-10",[]],["text/58-10",[]],["component/58-10",[]],["keyword/58-10",[]],["title/58-11",[1353,33.734,2613,39.814]],["name/58-11",[]],["text/58-11",[]],["component/58-11",[]],["keyword/58-11",[]],["title/58-12",[977,27.718,1180,31.884,2833,36.864]],["name/58-12",[]],["text/58-12",[]],["component/58-12",[]],["keyword/58-12",[]],["title/58-13",[361,38.842,2613,39.814]],["name/58-13",[]],["text/58-13",[]],["component/58-13",[]],["keyword/58-13",[]],["title/58-14",[977,27.718,1180,31.884,2833,36.864]],["name/58-14",[]],["text/58-14",[]],["component/58-14",[]],["keyword/58-14",[]],["title/58-15",[110,34.029,1708,30.266]],["name/58-15",[]],["text/58-15",[]],["component/58-15",[]],["keyword/58-15",[]],["title/58-16",[889,19.296,1708,30.266]],["name/58-16",[]],["text/58-16",[]],["component/58-16",[]],["keyword/58-16",[]],["title/58-17",[1154,36.357,1431,35.298]],["name/58-17",[]],["text/58-17",[]],["component/58-17",[]],["keyword/58-17",[]],["title/58-18",[190,23.48,1431,29.989,2833,36.864]],["name/58-18",[]],["text/58-18",[]],["component/58-18",[]],["keyword/58-18",[]],["title/58-19",[1431,35.298,6272,63.334]],["name/58-19",[]],["text/58-19",[]],["component/58-19",[]],["keyword/58-19",[]],["title/58-20",[1210,42.064,1708,30.266]],["name/58-20",[]],["text/58-20",[]],["component/58-20",[]],["keyword/58-20",[]],["title/58",[110,34.029,1306,30.481]],["name/58",[110,0.855]],["text/58",[1,3.115,2,0.723,7,0.782,9,1.952,11,3.245,16,0.669,18,2.234,34,0.658,36,0.293,47,0.735,48,0.397,50,1.354,51,0.837,54,0.576,74,0.747,75,0.286,80,3.315,87,0.599,89,1.364,91,1.535,92,0.484,101,0.527,103,0.616,110,5.759,111,2.902,113,2.762,119,0.642,120,1.054,125,1.988,126,3.172,128,0.566,138,3.476,142,0.366,144,0.366,145,0.397,146,1.754,149,1.769,162,1.777,163,0.383,164,1.582,165,0.366,166,0.325,170,0.277,175,0.372,176,1.213,181,0.293,184,0.412,188,1.29,189,4.991,190,2.731,198,0.654,199,0.303,202,0.383,203,0.269,206,0.339,211,0.312,216,1.558,217,0.771,218,1.314,223,0.915,224,2.309,236,1.886,237,1.442,241,1.585,250,1.535,251,0.846,255,0.527,256,0.527,257,0.527,265,1.549,267,2.1,279,1.443,286,0.503,293,0.339,304,0.807,310,1.536,334,1.637,343,0.39,344,0.492,345,0.795,346,0.683,350,1.46,361,3.311,367,0.97,369,0.356,370,1.01,371,3.56,384,2.242,386,1.054,389,0.262,393,2.761,396,0.298,397,0.581,398,0.366,399,0.548,403,0.412,420,0.524,421,1.063,682,3.151,689,0.527,690,2.007,691,0.383,694,0.397,695,0.557,698,0.303,701,0.642,702,1.289,708,1.327,711,0.702,716,1.658,721,0.383,725,2.985,728,0.356,732,0.503,747,0.629,756,0.527,757,1.161,761,1.325,766,1.952,767,0.321,7
174,1.909,778,0.576,789,1.426,790,1.054,792,2.367,794,0.431,797,0.822,802,0.372,805,0.332,811,1.228,825,0.356,826,2.523,829,1.467,840,0.592,841,2.152,843,0.557,845,0.683,854,1.041,855,0.958,857,1.268,858,1.689,862,2.083,864,0.795,867,0.48,870,0.844,871,0.421,872,0.484,874,0.807,879,2.059,883,0.516,884,0.366,888,0.421,889,2.076,890,1.159,894,0.587,895,0.79,901,0.666,902,1.147,907,0.404,911,0.735,912,0.723,914,4.136,939,1.082,940,0.79,941,2.37,942,3.349,944,1.442,945,1.709,953,2.627,955,1.673,957,1.072,958,1.697,959,0.328,963,1.027,966,0.412,969,0.372,974,0.383,977,1.764,980,0.404,983,0.441,985,1.136,986,1.045,1003,1.522,1006,0.383,1007,2.172,1011,1.78,1013,0.315,1014,0.335,1018,0.973,1025,0.284,1027,0.347,1031,0.702,1040,0.404,1045,2.455,1053,0.421,1055,0.335,1056,0.963,1063,0.277,1067,0.702,1068,0.723,1070,0.65,1072,1.381,1076,2.299,1081,1.581,1086,0.335,1090,0.808,1092,0.303,1098,1.199,1100,0.771,1101,0.339,1103,0.581,1104,0.723,1114,0.366,1115,4.838,1125,1.188,1141,3.016,1145,1.01,1148,0.484,1149,1.719,1152,0.397,1154,3.503,1166,1.289,1172,0.658,1175,1.753,1177,1.634,1180,5.701,1181,5.145,1187,
10.321,1201,0.372,1203,0.79,1205,0.404,1208,0.895,1210,3.945,1212,1.402,1213,0.332,1214,0.412,1221,0.339,1227,2.098,1236,1.581,1239,0.544,1247,0.39,1253,0.366,1255,0.735,1260,2.705,1261,1.057,1267,0.592,1270,0.431,1272,0.702,1273,5.124,1278,1.075,1281,0.642,1283,0.735,1287,0.837,1291,0.947,1294,5.58,1295,1.525,1296,0.692,1297,0.789,1306,2.859,1308,0.807,1311,1.802,1312,1.918,1316,1.429,1320,0.503,1326,0.404,1330,0.747,1335,0.877,1351,0.321,1353,1.054,1354,0.905,1356,0.404,1358,1.381,1361,0.571,1363,2.216,1365,0.552,1369,1.658,1373,1.666,1374,1.65,1379,0.635,1385,0.347,1398,1.334,1404,0.404,1424,1.115,1427,1.171,1429,0.383,1430,0.622,1431,4.516,1432,2.126,1434,0.774,1436,1.124,1440,0.79,1441,1.339,1446,1.019,1448,0.635,1451,0.39,1455,1.188,1458,3.996,1515,0.915,1523,0.431,1536,1.314,1553,0.747,1554,1.334,1556,0.325,1561,0.747,1571,1.41,1572,0.404,1586,1.115,1594,0.747,1597,0.735,1624,2.508,1632,2.664,1657,0.895,1668,3.021,1702,0.895,1703,0.404,1704,0.658,1708,4.364,1728,0.454,1747,0.65,1771,0.441,1772,0.484,1822,0.97,1839,1.295,1845,0.421,1848,1.975,1855,1.516,1873,0.372,1880,0.958,1899,0.343,1923,4.654,2030,0.431,2125,1.78,2127,2.162,2130,2.926,2133,0.318,2138,0.397,2158,0.658,2178,0.467,2190,0.361,2208,0.421,2216,0.431,2229,0.702,2253,0.846,2310,1.334,2327,0.869,2328,0.467,2344,0.503,2364,0.484,2429,0.527,2443,0.963,2445,0.454,2447,0.454,2478,0.412,2522,3.265,2529,1.753,2530,2.284,2532,0.397,2537,0.397,2547,0.527,2562,0.412,2611,1.057,2613,5.277,2632,1.603,2633,1.115,2637,1.075,2645,1.522,2657,2.554,2679,1.334,2717,0.454,2720,3.768,2724,1.137,2733,0.895,2765,3.615,2786,0.503,2787,0.454,2820,0.347,2825,1.378,2829,0.441,2833,3.417,2838,1.543,2842,0.56,2867,0.467,2868,0.484,2903,0.747,2906,0.807,3029,0.926,3052,0.441,3082,0.431,3083,0.527,3180,0.441,3203,1.26,3249,4.001,3262,0.467,3268,4.039,3272,5.45,3277,0.441,3361,1.251,3488,0.926,3509,0.503,3544,0.412,3558,2.594,3614,0.431,3618,1.334,3621,0.503,3718,0.774,3719,0.503,3722,1.709,3723,0.56,3803,0.926,3829,0.412,3850,2.056,3860,0.56,3871,1.161,3903,0.421,4053,0.79,4171,0.503,4176,1.863,4181,0.527,4191,0.431,4195,2.275,4225,0.484,4323,0.484,4486,0.454,4554,2.172,4581,0.431,4675,0.527,4713,0.56,4720,0.467,4846,1.832,4880,2.386,4902,6.553,4903,2.056,4916,0.441,4935,0.895,4938,0.895,4943,0.467,4944,2.379,4947,1.01,4949,0.527,4974,0.527,4976,0.503,4986,3.271,4987,0.467,5017,0.963,5023,2.056,5029,0.926,5030,0.454,5054,1.929,5104,1.251,5165,0.39,5167,0.397,5218,0.56,5361,0.503,5367,0.56,5368,1.072,5369,0.56,5389,1.072,5583,0.467,5609,1.543,5623,0.527,5626,0.56,5630,0.56,5633,0.527,5647,0.963,5689,0.527,5744,1.01,5771,0.56,5786,0.56,5806,3.728,5818,2.594,5939,0.503,5968,0.56,5998,2.38,6001,2.242,6048,1.863,6106,1.072,6117,1.01,6157,0.926,6223,0.963,6265,1.072,6272,1.072,6273,0.56,6274,0.609,6275,1.167,6276,2.59,6277,0.609,6278,0.609,6279,2.152,6280,0.609,6281,1.072,6282,5.658,6283,1.68,6284,2.59,6285,2.59,6286,1.167,6287,1.072,6288,1.167,6289,0.609,6290,1.167,6291,0.609,6292,0.609,6293,0.609,6294,0.609,6295,0.609,6296,0.609,6297,1.68,6298,0.609,6299,0.56,6300,0.609,6301,1.68,6302,0.56,6303,1.072,6304,1.072,6305,0.609,6306,1.167,6307,0.609,6308,0.56,6309,2.59,6310,1.454,6311,0.609,6312,0.609,6313,1.68,6314,4.765,6315,0.609,6316,1.167,6317,0.609,6318,3.374,6319,3.374,6320,2.152,6321,0.609,6322,1.167,6323,3.727,6324,1.167,6325,0.527,6326,0.609,6327,6.081,6328,2.59,6329,0.609,6330,0.609,6331,1.68,6332,1.167,6333,2.152,6334,1.072,6335,1.167,6336,1.167,6337,0.609,6338,4.655,6339,2.152,6340,2.996,6341,1.167,6342,1.167,6343,1.167,6344,1.167,6345,1.167,6346,1.167,6347,1.167,6348,2.152,6349,0.609,6350,1.167,6351,2.152,6352,0.609,6353,1.167,6354,0.609,6355,0.609,6356,0.609,6357,0.609,6358,3.727,6359,0.609,6360,1.167,6361,0.609,6362,0.609,6363,0.609,6364,1.167,6365,1.167,6366,1.167,6367,0.609,6368,1.167,6369,0.609,6370,0.609,6371,0.609,6372,0.609,6373,0.609,6374,0.609,6375,0.609,6376,0.609,6377,0.609,6378,0.609,6379,0.609,6380,0.609,6381,0.609,6382,0.609,6383,0.609,6384,0.609,6385,0.609,6386,0.609,6387,0.609,6388,0.609,6389,1.167,6390,0.609,6391,0.609,6392,0.609,6393,1.68,6394,0.609,6395,0.609,6396,0.609,6397,1.68,6398,1.167,6399,0.609,6400,0.609,6401,0.609,6402,0.609,6403,0.609,6404,0.609,6405,0.609,6406,0.609,6407,0.527,6408,0.609,6409,0.609,6410,0.609,6411,0.609,6412,0.609,6413,1.167,6414,1.167,6415,1.167,6416,0.609,6417,0.609,6418,1.167,6419,0.609,6420,0.609,6421,0.56,6422,0.609,6423,0.609,6424,0.609,6425,0.609,6426,0.609,6427,0.609,6428,0.609,6429,0.609,6430,0.609,6431,0.609,6432,0.609,6433,0.609,6434,0.609,6435,0.609,6436,0.609]],["component/58",[7,0.29]],["keyword/58",[]],["title/59-1",[7,9.811,11,17.801,181,24.493,754,31.539]],["name/59-1",[]],["text/59-1",[]],["component/59-1",[]],["keyword/59-1",[]],["title/59-2",[725,24.53,1166,25.188,6437,48.349]],["name/59-2",[]],["text/59-2",[]],["component/59-2",[]],["keyword/59-2",[]],["title/59-3",[868,40.481,1166,25.188,6438,46.486]],["name/59-3",[]],["text/59-3",[]],["component/59-3",[]],["keyword/59-3",[]],["title/59-4",[754,31.539,817,23.004,819,27.416,6437,42.028]],["name/59-4",[]],["text/59-4",[]],["component/59-4",[]],["keyword/59-4",[]],["title/59-5",[7,7.047,10,19.485,181,17.592,259,17.447,355,18.05,952,13.913,955,12.413]],["name/59-5",[]],["text/59-5",[]],["component/59-5",[]],["keyword/59-5",[]],["title/59-6",[234,34.029,1166,29.647]],["name/59-6",[]],["text/59-6",[]],["component/59-6",[]],["keyword/59-6",[]],["title/59-7",[868,40.481,1166,25.188,6438,46.486]],["name/59-7",[]],["text/59-7",[]],["component/59-7",[]],["keyword/59-7",[]],["title/59-8",[817,23.004,819,27.416,952,19.371,955,17.282]],["name/59-8",[]],["text/59-8",[]],["component/59-8",[]],["keyword/59-8",[]],["title/59-9",[198,22.797,819,31.54,1392,33.826]],["name/59-9",[]],["text/59-9",[]],["component/59-9",[]],["keyword/59-9",[]],["title/59",[11,24.104,181,33.166]],["name/59",[7,0.125,181,0.312,6437,0.535]],["text/59",[0,3.434,2,1.75,7,1.972,8,6.356,10,2.501,11,3.898,14,6.07,26,1.474,28,1.46,66,1.997,80,2.06,109,7.195,113,1.206,114,3.725,117,1.807,167,1.652,181,5.583,182,1.839,188,1.407,189,4.615,198,3.764,199,2.337,201,1.698,203,1.249,217,1.295,218,1.723,229,1.591,234,4.774,259,2.239,262,1.631,293,2.613,345,
11.337,355,2.317,363,1.778,388,1.75,389,1.215,391,2.644,395,1.359,396,1.382,399,1.326,420,2.105,691,1.778,698,2.337,701,1.555,702,3.347,705,1.997,725,2.938,745,2.167,747,1.521,758,2.242,762,2.444,777,1.75,778,1.394,787,2.444,792,2.046,801,1.911,810,2.167,812,1.997,817,3.169,819,5.018,820,1.723,822,3.243,823,1.75,842,2.047,848,4.779,850,2.595,857,1.382,861,1.407,862,2.873,864,4.72,867,1.928,868,1.952,885,3.347,889,2.179,897,1.611,906,1.505,926,2.907,935,3.73,940,1.911,941,1.139,943,2.103,952,3.545,953,2.44,955,2.851,958,1.286,963,4.007,976,4.483,979,3.401,986,2.277,988,3.144,989,3.144,997,3.601,1013,3.113,1019,1.46,1020,1.911,1045,1.407,1063,3.193,1065,1.953,1078,2.595,1081,1.723,1092,1.407,1103,1.407,1115,2.297,1123,1.723,1125,1.295,1143,5.837,1149,1.874,1166,3.612,1177,1.756,1240,1.407,1253,3.621,1267,1.432,1273,1.611,1278,1.807,1287,1.407,1295,3.169,1352,2.613,1361,1.382,1373,2.317,1383,3.861,1392,3.478,1429,1.778,1435,1.446,1437,1.952,1458,1.446,1501,1.911,1509,1.839,1510,1.839,1533,1.778,1583,1.573,1588,6.426,1594,1.807,1595,2.242,1697,2.167,1705,2.242,1752,3.176,1779,2.103,1848,1.652,1899,2.644,1983,4.779,1984,2.242,1985,2.242,1986,2.444,1987,2.444,2101,1.911,2158,2.644,2277,2.331,2633,1.874,2887,4.061,3268,3.571,3495,2.047,3557,2.167,3732,2.444,4195,1.723,4322,2.444,4862,2.331,4919,2.167,4920,2.103,4923,1.874,4983,2.047,5164,2.167,5165,3.004,5426,3.874,6034,5.222,6035,5.381,6122,3.725,6157,4.779,6437,3.874,6438,2.242,6439,2.595,6440,2.823,6441,2.595,6442,2.823,6443,4.692,6444,2.823,6445,6.02,6446,4.692,6447,2.823,6448,4.692,6449,2.823,6450,2.823,6451,2.595,6452,2.823,6453,2.823,6454,2.595,6455,4.312,6456,2.595,6457,2.103,6458,2.595,6459,2.595,6460,2.595,6461,2.444,6462,2.444,6463,2.595,6464,2.595,6465,2.595,6466,2.595,6467,2.595,6468,6.444,6469,4.692,6470,4.692,6471,4.692,6472,4.692,6473,4.692,6474,4.692,6475,4.692,6476,4.692,6477,4.692,6478,4.692,6479,2.823,6480,4.692,6481,2.823,6482,4.692,6483,2.242,6484,4.692,6485,2.595,6486,2.823,6487,4.061,6488,2.823,6489,2.823,6490,2.823,6491,4.692,6492,2.823,6493,4.312,6494,2.823,6495,2.823,6496,2.823,6497,2.823,6498,2.595,6499,2.823,6500,2.823,6501,2.331,6502,2.595,6503,2.595,6504,2.823,6505,2.823,6506,2.823,6507,2.823,6508,2.823,6509,2.823,6510,2.823,6511,4.692,6512,2.823,6513,2.823,6514,2.823,6515,2.823,6516,2.823,6517,2.823,6518,2.595,6519,2.823,6520,2.444,6521,2.444,6522,2.242,6523,2.823]],["component/59",[7,0.29]],["keyword/59",[]],["title/60-1",[889,23.447]],["name/60-1",[]],["text/60-1",[]],["component/60-1",[]],["keyword/60-1",[]],["title/60-2",[717,39.636,819,31.54,6524,50.683]],["name/60-2",[]],["text/60-2",[]],["component/60-2",[]],["keyword/60-2",[]],["title/60-3",[235,32.044,1392,29.403,6524,44.056,6525,42.028]],["name/60-3",[]],["text/60-3",[]],["component/60-3",[]],["keyword/60-3",[]],["title/60",[7,9.811,109,33.781,181,24.493,6526,42.028]],["name/60",[7,0.095,109,0.327,181,0.237,6526,0.407]],["text/60",[7,1.481,8,2.659,10,1.471,11,2.903,16,1.1,19,2.626,31,2.279,34,1.555,36,2.215,39,1.66,54,1.362,57,2.514,62,1.66,75,4.644,91,1.413,108,2.999,109,7.884,125,1.257,126,2.007,128,1.339,137,2.536,149,1.203,154,2.626,169,1.637,170,3.148,176,1.555,181,4.44,188,1.375,189,3.37,198,4.194,199,2.293,203,1.22,206,1.537,217,2.112,220,2.191,221,1.737,234,4.348,235,6.668,259,1.317,262,5.33,334,2.234,355,2.273,359,4.184,362,3.858,394,2,695,1.317,698,1.375,702,2.974,717,3.116,725,3.219,759,3.562,769,5.148,774,2.358,777,1.71,792,2.007,795,2,797,1.351,811,1.574,817,1.247,819,3.19,822,5.803,829,1.351,848,2.191,855,1.574,862,1.317,864,3.272,866,1.328,867,1.892,870,5.638,883,5.062,889,3.174,926,1.71,941,2.389,952,1.752,955,0.937,957,1.375,973,4.1,978,1.952,979,6.383,980,1.831,987,1.868,988,2.404,994,4.919,996,6.854,1011,2.428,1014,1.519,1018,2.081,1019,1.427,1031,1.66,1044,2.335,1100,2.717,1101,1.537,1163,7.081,1248,1.908,1253,1.66,1270,1.952,1335,1.441,1365,1.306,1373,4.098,1374,2.535,1378,1.908,1383,2.535,1392,6.317,1395,3.182,1396,5.866,1425,1.594,1437,3.182,1439,2.769,1444,1.798,1446,1.306,1476,2.055,1480,3.858,1508,3.337,1518,1.684,1520,1.519,1533,4.352,1542,2.055,1572,1.831,1575,3.533,1583,2.564,1602,5.488,1610,1.952,1705,3.654,1752,1.868,1762,2.898,1772,5.488,1796,1.831,1839,1.66,1845,3.182,1931,1.637,2012,4.545,2082,5.297,2125,1.456,2127,2.453,2232,3.984,2235,2.279,2255,2.536,2258,2.536,2291,2.999,2339,2.118,2397,4.89,2409,2.279,3161,2.055,3364,3.428,4089,2.279,4157,2.279,4196,2,4460,2.279,4711,2.536,5165,4.425,5167,3.858,6487,7.185,6520,2.389,6521,5.126,6524,2.389,6525,6.344,6526,8.385,6527,4.603,6528,4.603,6529,4.603,6530,2.759,6531,2.536,6532,2.536,6533,2.759,6534,2.536,6535,2.759,6536,2.536,6537,4.23,6538,2.759,6539,2.759,6540,4.603,6541,2.759,6542,2.536,6543,2.759,6544,2.759,6545,2.759,6546,2.536,6547,2.536,6548,2.759,6549,2.759,6550,2.759,6551,2.759,6552,2.759,6553,2.759,6554,4.23,6555,5.442,6556,2.759,6557,2.759,6558,2.759,6559,4.603,6560,2.759,6561,2.759,6562,2.759,6563,2.536,6564,7.628,6565,4.23,6566,5.442,6567,2.759,6568,2.759,6569,2.7
159,6570,2.759,6571,2.759,6572,2.536,6573,2.759,6574,2.536,6575,2.759,6576,2.759,6577,2.759,6578,2.759,6579,2.759,6580,2.759,6581,2.759,6582,2.759,6583,2.759,6584,2.759,6585,2.759]],["component/60",[7,0.29]],["keyword/60",[]],["title/61-1",[869,25.07,889,12.602,952,17.131,955,15.284,1187,23.745]],["name/61-1",[]],["text/61-1",[]],["component/61-1",[]],["keyword/61-1",[]],["title/61-2",[869,25.07,883,19.907,889,12.602,953,15.664,1187,23.745]],["name/61-2",[]],["text/61-2",[]],["component/61-2",[]],["keyword/61-2",[]],["title/61-3",[7,7.777,104,21.97,190,16.179,869,22.472,963,19.256,1187,21.284]],["name/61-3",[]],["text/61-3",[]],["component/61-3",[]],["keyword/61-3",[]],["title/61",[869,32.613,963,27.945,1187,30.888]],["name/61",[889,0.181,1187,0.342,1260,0.401]],["text/61",[7,2.068,9,5.214,11,3.751,16,3.19,89,2.561,101,2.542,104,3.063,189,4.565,190,2.255,199,2.802,223,3.063,371,4.561,389,2.419,395,2.707,688,5.96,702,4.008,724,4.684,725,2.356,790,2.753,855,3.209,858,3.17,862,3.82,866,2.707,867,3.829,869,6.209,883,4.744,885,2.684,889,3.003,894,2.827,897,3.209,898,6.391,942,3.097,952,3.863,953,3.532,955,3.447,963,4.447,1018,2.542,1055,3.097,1121,3.888,1154,2.967,1187,6.521,1221,3.133,1260,3.485,1261,6.391,1287,2.802,1291,3.17,1296,3.336,1306,2.487,1319,3.888,1364,3.987,1393,3.541,1397,5.214,1431,2.881,1522,3.485,1550,4.077,1554,3.485,2062,3.888,2091,4.644,2125,4.222,2158,3.17,2266,4.465,2529,5.418,2635,4.465,2720,3.485,2836,5.774,2839,4.644,2847,4.316,3011,5.533,3232,4.189,4043,5.169,4046,7.355,4047,7.355,4356,6.609,4630,4.316,6586,5.624,6587,8.003,6588,4.465,6589,10.15,6590,9.317,6591,5.624,6592,5.624,6593,4.868,6594,5.624,6595,5.169,6596,5.624,6597,5.624,6598,5.624,6599,5.624,6600,8.003]],["component/61",[7,0.29]],["keyword/61",[]],["title/62-1",[817,31.15,861,34.333]],["name/62-1",[]],["text/62-1",[]],["component/62-1",[]],["keyword/62-1",[]],["title/62-2",[87,24.598,769,51.326]],["name/62-2",[]],["text/62-2",[]],["component/62-2",[]],["keyword/62-2",[]],["title/62-3",[1065,28.688,2325,37.949]],["name/62-3",[]],["text/62-3",[]],["component/62-3",[]],["keyword/62-3",[]],["title/62-4",[754,51.896]],["name/62-4",[]],["text/62-4",[]],["component/62-4",[]],["keyword/62-4",[]],["title/62-5",[2296,57.899]],["name/62-5",[]],["text/62-5",[]],["component/62-5",[]],["keyword/62-5",[]],["title/62-6",[7,13.285,200,43.391]],["name/62-6",[]],["text/62-6",[]],["component/62-6",[]],["keyword/62-6",[]],["title/62-7",[889,19.296,1344,38.842]],["name/62-7",[]],["text/62-7",[]],["component/62-7",[]],["keyword/62-7",[]],["title/62-8",[952,15.356,955,13.7,1100,18.511,1480,40.726,1730,33.315]],["name/62-8",[]],["text/62-8",[]],["component/62-8",[]],["keyword/62-8",[]],["title/62-9",[6522,66.488]],["name/62-9",[]],["text/62-9",[]],["component/62-9",[]],["keyword/62-9",[]],["title/62-10",[889,23.447]],["name/62-10",[]],["text/62-10",[]],["component/62-10",[]],["keyword/62-10",[]],["title/62-11",[1392,39.814,6522,54.716]],["name/62-11",[]],["text/62-11",[]],["component/62-11",[]],["keyword/62-11",[]],["title/62-12",[889,23.447]],["name/62-12",[]],["text/62-12",[]],["component/62-12",[]],["keyword/62-12",[]],["title/62-13",[6601,72.491]],["name/62-13",[]],["text/62-13",[]],["component/62-13",[]],["keyword/62-13",[]],["title/62-14",[889,23.447]],["name/62-14",[]],["text/62-14",[]],["component/62-14",[]],["keyword/62-14",[]],["title/62-15",[1392,39.814,6601,59.657]],["name/62-15",[]],["text/62-15",[]],["component/62-15",[]],["keyword/62-15",[]],["title/62-16",[889,23.447]],["name/62-16",[]],["text/62-16",[]],["component/62-16",[]],["keyword/62-16",[]],["title/62-17",[6602,76.96]],["name/62-17",[]],["text/62-17",[]],["component/62-17",[]],["keyword/62-17",[]],["title/62-18",[889,23.447]],["name/62-18",[]],["text/62-18",[]],["component/62-18",[]],["keyword/62-18",[]],["title/62-19",[952,22.285,1240,29.169,6603,53.808]],["name/62-19",[]],["text/62-19",[]],["component/62-19",[]],["keyword/62-19",[]],["title/62-20",[889,23.447]],["name/62-20",[]],["text/62-20",[]],["component/62-20",[]],["keyword/62-20",[]],["title/62-21",[11,20.478,1392,33.826,6525,48.349]],["name/62-21",[]],["text/62-21",[]],["component/62-21",[]],["keyword/62-21",[]],["title/62-22",[109,38.862,181,28.177,1392,33.826]],["name/62-22",[]],["text/62-22",[]],["component/62-22",[]],["keyword/62-22",[]],["title/62-23",[109,33.781,181,24.493,1287,25.355,1392,29.403]],["name/62-23",[]],["text/62-23",[]],["component/62-23",[]],["keyword/62-23",[]],["title/62-24",[364,26.271,867,24.066,889,16.393]],["name/62-24",[]],["text/62-24",[]],["component/62-24",[]],["keyword/62-24",[]],["title/62-25",[11,14.111,169,23.933,939,20.282,952,15.356,955,13.7,988,21.07]],["name/62-25",[]],["text/62-25",[]],["component/62-25",[]],["keyword/62-25",[]],["title/62-26",[50,20.344,126,19.63,817,20.344,952,17.131,955,15.284]],["name/62-26",[]],["text/62-26",[]],["component/62-26",[]],["keyword/62-26",[]],["title/62-27",[6522,66.488]],["name/62-27",[]],["text/62-27",[]],["component/62-27",[]],["keyword/62-27",[]],["title/62-28",[866,28.177,867,24.066,885,27.945]],["name/62-28",[]],["text/62-28",[]],["component/62-28",[]],["keyword/62-28",[]],["title/62-29",[866,24.493,885,24.291,1427,23.004,6438,40.408]],["name/62-29",[]],["text/62-29",[]],["component/62-29",[]],["keyword/62-29",[]],["title/62-30",[198,19.817,866,24.493,885,24.291,1427,23.004]],["name/62-30",[]],["text/62-30",[]],["component/62-30",[]],["keyword/62-30",[]],["title/62",[7,9.811,11,17.801,109,33.781,181,24.493]],["name/62",[7,0.125,109,0.43,181,0.312]],["text/62",[0,0.278,2,0.302,3,0.89,7,2.176,8,3.737,10,0.728,11,3.838,16,0.852,19,1.006,24,0.402,26,1.934,28,0.252,36,1.648,41,0.255,43,1.418,45,0.666,50,
11.793,51,1.976,54,0.871,57,0.207,62,2.227,75,1.739,80,1.092,81,0.657,86,0.33,87,0.336,89,1.133,91,0.25,93,1.345,101,2.858,103,1.312,108,0.614,109,6.786,113,0.402,120,2.181,125,0.973,126,1.73,128,0.856,132,1.085,138,0.217,142,0.566,146,0.285,148,0.26,149,0.411,154,0.278,164,2.168,165,1.496,167,0.285,169,0.289,170,0.222,175,0.575,181,4.649,188,1.404,189,2.361,190,0.997,198,4.021,199,2.333,200,1.566,202,0.307,203,1.755,205,0.353,206,0.761,207,0.507,208,0.353,211,0.25,216,0.293,218,0.575,221,0.307,223,0.265,228,0.551,229,0.275,233,1.299,234,1.828,235,1.345,241,0.442,259,1.494,262,2.831,265,0.252,279,0.271,291,0.448,334,2.574,335,0.268,344,0.917,345,3.428,346,0.551,352,1.446,355,1.055,359,4.285,361,1.588,362,4.718,364,0.219,367,0.544,369,0.8,370,0.566,371,0.669,385,0.402,386,0.461,388,0.302,389,0.588,391,2.512,395,0.657,396,1.812,397,0.243,399,0.229,402,0.544,420,2.464,421,0.241,691,0.307,692,1.061,694,1.392,700,0.345,701,0.519,702,1.07,705,3.152,708,0.482,715,0.337,717,1.194,723,0.323,724,1.032,725,2.826,726,0.625,727,0.318,728,1.25,730,0.323,741,0.297,747,0.507,753,0.448,754,0.584,759,4.213,761,1.384,764,0.603,769,5.997,774,3.079,777,0.847,778,0.465,787,1.183,789,0.268,790,0.669,792,1.73,797,1.676,798,1.37,802,1.518,805,0.96,811,0.278,817,3.826,819,3.323,820,0.297,822,3.561,823,3.037,824,0.374,829,0.461,840,0.478,842,0.683,843,0.449,845,0.285,846,1.628,848,1.975,851,0.297,852,0.318,854,2.762,855,0.278,857,2.065,861,2.101,862,1.767,864,3.482,866,2.893,867,3.599,868,1.219,870,2.24,882,0.312,883,4.332,884,0.566,885,3.456,889,3.006,890,0.736,894,1.721,895,1.446,897,1.419,903,0.604,906,0.26,907,0.323,913,0.278,917,0.293,926,4.876,936,0.723,939,0.473,941,2.722,944,1.063,947,0.353,952,4.328,953,0.614,955,3.711,957,1.239,958,0.222,963,0.652,969,0.297,973,0.81,977,1.177,979,3.702,980,0.323,985,1.127,986,1.662,988,2.77,989,3.222,994,1.592,1011,1.312,1013,0.252,1016,0.666,1018,2.397,1019,0.706,1025,0.439,1044,2.787,1057,1.017,1062,1.046,1063,2.231,1064,0.302,1065,2.863,1067,0.566,1072,1.825,1079,0.666,1081,0.297,1089,0.33,1092,1.706,1098,1.19,1100,2.433,1101,1.385,1103,1.706,1106,1.085,1123,0.297,1125,0.627,1130,0.637,1148,0.387,1150,0.723,1159,0.701,1163,0.723,1166,0.21,1167,0.701,1172,2.087,1177,0.8,1180,0.744,1192,0.502,1203,0.33,1211,0.584,1212,0.318,1216,2.118,1221,2.349,1224,2.162,1225,0.353,1227,0.706,1234,0.925,1238,0.701,1239,0.822,1240,2.544,1253,0.822,1255,0.86,1267,0.693,1270,1.993,1287,0.243,1291,0.994,1296,0.289,1297,1.003,1312,0.875,1313,0.865,1321,0.584,1325,0.353,1326,2.633,1332,0.625,1335,1.299,1344,0.275,1352,1.907,1353,1.676,1355,1.806,1358,3.37,1360,2.039,1361,0.239,1362,1.247,1363,0.535,1364,3.223,1365,3.933,1368,0.651,1373,1.691,1374,1.552,1378,0.337,1379,0.744,1380,2.153,1383,0.519,1386,0.89,1388,0.285,1392,5.209,1393,0.307,1396,4.313,1402,2.273,1425,1.437,1426,1.247,1427,2.482,1435,1.603,1437,0.944,1439,0.566,1440,0.33,1441,0.487,1446,1.177,1451,0.312,1456,0.701,1457,0.575,1458,1.443,1459,0.614,1464,0.374,1479,1.774,1480,4.563,1481,1.085,1483,0.701,1484,0.297,1490,0.865,1491,0.448,1492,0.448,1500,0.387,1502,2.003,1506,0.387,1508,1.803,1515,0.744,1518,0.575,1523,0.666,1524,1.849,1533,3.981,1535,1.909,1542,3.319,1543,1.963,1545,0.625,1553,0.603,1554,1.093,1556,1.326,1561,2.37,1564,0.374,1571,1.163,1573,3.891,1575,0.374,1582,1.076,1584,2.153,1594,0.603,1595,0.387,1596,0.402,1597,1.566,1598,0.701,1602,0.748,1607,0.666,1615,0.402,1618,0.312,1624,0.507,1632,0.297,1658,0.363,1673,0.402,1677,0.966,1692,0.666,1697,0.374,1702,0.374,1703,0.625,1704,0.275,1705,2.237,1722,1.511,1724,0.584,1725,0.268,1726,0.323,1729,2.718,1730,0.778,1738,0.637,1747,0.761,1756,0.387,1762,0.86,1772,1.696,1783,0.99,1796,1.87,1810,0.907,1821,1.048,1822,0.789,1824,0.966,1827,5.67,1834,0.651,1839,1.285,1842,0.363,1858,0.318,1860,0.614,1866,0.345,1880,0.537,1903,0.387,1923,0.502,1925,0.387,1931,0.559,1978,0.448,1981,0.33,2000,0.387,2001,2.633,2007,1.549,2008,1.909,2010,0.865,2012,0.374,2029,0.701,2030,1.511,2031,1.368,2059,1.017,2082,0.566,2112,1.993,2114,1.353,2121,0.374,2125,4.425,2127,0.94,2148,0.374,2154,0.312,2158,0.531,2193,0.966,2213,1.477,2232,1.849,2233,0.422,2240,1.591,2260,2.286,2265,3.981,2269,0.422,2277,0.402,2291,0.614,2296,4.266,2310,0.302,2314,0.374,2318,0.723,2325,2.454,2327,1.591,2338,1.345,2364,0.387,2409,1.764,2450,1.621,2452,0.402,2501,1.72,2505,0.701,2515,0.402,2527,0.387,2549,0.422,2561,0.683,2585,0.353,2612,0.723,2659,0.374,2669,0.422,2676,0.748,2679,1.746,2733,1.048,2746,0.701,2786,0.402,2787,0.363,2836,1.324,2880,0.363,2906,0.651,3003,0.387,3005,1.048,3010,0.337,3089,0.353,3099,0.374,3130,0.387,3136,0.387,3161,0.363,3180,2.684,3363,1.183,3364,2.098,3367,0.363,3374,0.701,3482,0.448,3491,0.402,3495,1.803,3537,0.422,3566,1.313,3954,0.448,3966,0.422,4039,0.374,4053,0.33,4088,0.422,4142,0.448,4144,0.778,4157,3.058,4163,0.651,4172,1.621,4196,0.683,4257,1.764,4350,1.048,4422,0.422,4486,0.363,4491,1.64,4554,0.99,4573,0.448,4598,0.422,4604,0.865,4630,0.374,4639,0.815,4675,1.183,4701,0.422,4716,2.153,4780,0.422,4876,0.422,4971,0.374,4973,3.205,5040,0.387,5130,0.865,5136,0.402,5165,2.37,5167,2.231,5899,0.402,6122,2.237,6438,3.15,6439,0.448,6441,0.448,6468,2.876,6485,0.448,6487,3.651,6493,0.865,6520,0.815,6521,2.709,6522,4.641,6525,2.054,6531,0.448,6532,0.865,6534,0.448,6536,1.255,6537,0.448,6542,1.621,6546,1.621,6547,1.621,6554,0.448,6555,0.448,6563,0.865,6564,3.403,6565,0.448,6566,2.876,6572,0.865,6601,3.651,6602,0.865,6603,0.448,6604,0.487,6605,0.448,6606,0.487,6607,0.942,6608,0.448,6609,0.487,6610,0.487,6611,0.487,6612,0.487,6613,0.487,6614,0.487,6615,0.487,6616,
10.942,6617,0.487,6618,0.487,6619,2.137,6620,0.942,6621,0.487,6622,3.703,6623,0.487,6624,0.448,6625,2.487,6626,0.487,6627,0.487,6628,0.942,6629,0.487,6630,0.487,6631,0.942,6632,0.487,6633,0.865,6634,1.366,6635,0.487,6636,0.487,6637,0.487,6638,0.487,6639,0.487,6640,0.487,6641,0.487,6642,0.487,6643,0.942,6644,0.487,6645,0.487,6646,0.487,6647,0.448,6648,0.942,6649,0.487,6650,0.487,6651,0.487,6652,0.448,6653,0.487,6654,0.448,6655,0.487,6656,0.942,6657,0.487,6658,1.764,6659,2.487,6660,1.366,6661,0.942,6662,2.137,6663,2.137,6664,2.137,6665,2.137,6666,0.942,6667,1.366,6668,0.942,6669,2.137,6670,2.137,6671,1.764,6672,0.487,6673,0.487,6674,1.764,6675,1.366,6676,0.942,6677,2.137,6678,2.137,6679,2.137,6680,3.403,6681,2.137,6682,0.487,6683,2.137,6684,0.942,6685,0.942,6686,2.487,6687,1.366,6688,0.865,6689,1.366,6690,1.366,6691,0.487,6692,0.487,6693,0.487,6694,0.487,6695,0.487,6696,0.487,6697,0.487,6698,0.487,6699,0.487,6700,0.487,6701,0.487,6702,0.487,6703,0.487,6704,0.487,6705,1.366,6706,1.366,6707,0.942,6708,0.487,6709,0.487,6710,0.942,6711,0.487,6712,0.942,6713,0.487,6714,0.487,6715,0.487,6716,0.487,6717,0.487,6718,0.487,6719,0.487,6720,2.818,6721,1.366,6722,0.942,6723,0.942,6724,0.487,6725,0.487,6726,0.487,6727,0.487,6728,0.487,6729,0.487,6730,0.487,6731,0.487,6732,0.487,6733,0.487,6734,0.487,6735,0.942,6736,0.487,6737,0.487,6738,0.487,6739,0.487,6740,0.487,6741,0.942,6742,0.487,6743,0.487,6744,0.487,6745,0.487,6746,0.487,6747,0.487,6748,0.487,6749,0.942,6750,0.487,6751,0.487,6752,2.487,6753,1.366,6754,1.764,6755,1.366,6756,0.942,6757,1.366,6758,2.487,6759,0.942,6760,1.764,6761,1.366,6762,0.487,6763,0.487,6764,0.487,6765,0.942,6766,0.487,6767,0.487,6768,0.487,6769,0.487,6770,0.487,6771,0.487,6772,0.487,6773,0.487,6774,0.487,6775,0.487,6776,0.487,6777,0.487,6778,0.487,6779,0.942,6780,0.942,6781,0.487,6782,0.487,6783,0.487,6784,0.487,6785,0.448,6786,0.487,6787,0.487,6788,0.942,6789,0.942,6790,0.487,6791,0.487,6792,0.487,6793,0.487,6794,0.487,6795,0.487,6796,0.487,6797,0.487,6798,0.487,6799,0.487,6800,0.487,6801,0.942,6802,0.487,6803,0.487,6804,0.487,6805,0.487,6806,0.487]],["component/62",[7,0.29]],["keyword/62",[]],["title/63-1",[7,9.811,104,27.715,364,22.836,889,14.25]],["name/63-1",[]],["text/63-1",[]],["component/63-1",[]],["keyword/63-1",[]],["title/63-2",[259,24.291,355,25.131,364,22.836,889,14.25]],["name/63-2",[]],["text/63-2",[]],["component/63-2",[]],["keyword/63-2",[]],["title/63-3",[113,29.449,3004,51.326]],["name/63-3",[]],["text/63-3",[]],["component/63-3",[]],["keyword/63-3",[]],["title/63-4",[113,29.449,2133,35.992]],["name/63-4",[]],["text/63-4",[]],["component/63-4",[]],["keyword/63-4",[]],["title/63-5",[113,29.449,2501,47.648]],["name/63-5",[]],["text/63-5",[]],["component/63-5",[]],["keyword/63-5",[]],["title/63",[7,13.285,364,30.922]],["name/63",[771,0.82]],["text/63",[3,0.934,7,1.283,11,3.763,16,1.744,28,5.268,51,0.714,54,0.708,80,4.522,87,0.512,89,3.216,91,0.734,104,2.761,113,4.353,120,0.701,126,1.908,138,0.638,149,1.133,163,0.902,164,0.608,165,0.862,166,1.899,177,1.88,178,0.85,184,2.962,188,2.18,189,4.837,190,2.668,198,2.411,201,1.563,203,1.935,206,1.447,217,4.213,236,1.636,259,3.175,267,0.808,327,1.241,352,0.97,355,3.058,364,4.404,371,4.495,386,1.744,395,1.715,396,0.701,397,0.714,420,3.168,695,4.087,701,0.789,702,3.038,710,0.78,721,0.902,725,2.375,729,1.883,747,1.399,764,0.917,766,1.25,774,4.703,778,3.285,789,0.789,790,1.744,805,1.415,807,2.063,819,0.772,861,0.714,867,0.589,883,1.935,885,0.684,888,4.282,889,2.518,901,1.482,906,0.764,915,0.991,926,1.61,935,1.61,939,0.72,941,3.128,952,3.064,953,3.13,955,2.984,957,0.714,958,0.653,959,0.772,975,2.263,976,1.067,977,3.15,985,0.756,1000,1.039,1009,1.014,1018,1.978,1025,1.21,1045,2.18,1046,2.063,1067,1.563,1090,0.69,1098,0.798,1100,1.635,1104,3.142,1115,1.272,1125,3.24,1129,8.913,1154,3.725,1161,0.902,1172,4.185,1174,3.514,1177,4.027,1187,0.756,1202,3.461,1203,1.759,1205,0.951,1211,1.61,1212,1.693,1213,1.415,1214,0.97,1227,0.741,1248,3.505,1281,0.789,1287,0.714,1295,3.972,1297,2.381,1306,1.576,1333,0.991,1335,0.748,1356,0.951,1360,4.335,1361,3.031,1363,3.152,1365,4.43,1372,1.636,1373,1.283,1383,0.789,1391,1.067,1393,3.192,1394,2.802,1406,1.039,1427,1.174,1430,1.385,1431,0.734,1432,2.033,1435,2.904,1436,0.748,1443,1.482,1446,4.16,1458,1.331,1515,0.78,1573,0.862,1657,4.351,1706,0.888,1733,0.934,1752,1.759,1774,0.917,1796,1.724,1810,1.724,1822,1.501,1862,1.317,1899,1.464,1906,0.934,1907,1.039,1923,0.764,1931,0.85,2082,4.002,2088,2.802,2133,5.53,2154,3.965,2158,3.75,2200,4.022,2202,2.249,2212,0.934,2411,2.583,2501,4.282,2503,0.951,2636,6.195,2645,1.014,2819,2.249,2906,1.796,2940,1.317,3003,7.14,3004,6.839,3006,6.877,3010,1.796,3082,1.837,3089,2.583,3115,4.389,3203,4.711,3232,1.935,3268,2.596,3541,1.039,3852,1.039,4038,5.282,4195,1.586,4416,1.241,4668,1.241,4923,2.905,5065,1.241,5082,1.883,5354,1.241,5449,1.183,5533,5.282,5687,2.387,5755,2.249,5766,4.389,6262,2.387,6457,1.935,6624,1.317,6807,4.908,6808,3.274,6809,1.317,6810,1.433,6811,2.387,6812,1.433,6813,2.598,6814,1.433,6815,2.598,6816,4.908,6817,7.426,6818,5.691,6819,1.994,6820,2.598,6821,2.387,6822,7.426,6823,2.598,6824,4.376,6825,4.022,6826,4.022,6827,2.387,6828,3.563,6829,1.433,6830,1.433,6831,2.145,6832,2.598,6833,2.598,6834,4.376,6835,2.598,6836,2.598,6837,1.433,6838,4.376,6839,2.598,6840,2.598,6841,4.376,6842,1.433,6843,2.598,6844,2.598,6845,2.598,6846,2.598,6847,2.598,6848,1.433,6849,6.114,6850,2.598,6851,2.598,6852,2.598,6853,8.049,6854,2.598,6855,1.433,6856,3.563,6857,1.433,6858,1.433,6859,2.598,6860,2.598,6861,2.598,6862,1.317,6863,1.433,6864,1.433,6865,1.433,6866,1.433,6867,1.433,6868,2.598,6869,1.433,6870,2.598,6871,1.433,6872,1.433,6873,1.317,6874,1.433,6875,1.433,6876,1.317,6877,1.433,6878,2.598,6879,1.241,6880,1.241,6881,2.387,6882,1.317,6883,1.433,6884,1.433,6885,2.387,6886,1.433,6887,1.433,6888,1.433,6889,1.433]],["component/63",[7,0.29]],["keyword/63",[]],["title/64-1",[5352,60.706]],["name/64-1",[]],["text/64-1",[]],["component/64-1",[]],["keyword/64-1",[]],["title/64-2",[87,29.89]],["name/64-2",[]],["text/64-2",[]],["component/64-2",[]],["keyword/64-2",[]],["title/64-3",[350,47.199]],["name/64-3",[]],["text/64-3",[]],["component/64-3",[]],["keyword/64-3",[]],["title/64-4",[903,30.481,6890,56.91]],["name/64-4",[]],["text/64-4",[]],["component/64-4",[]],["keyword/64-4",[]],["title/64-5",[889,23.447]],["name/64-5",[]],["text/64-5",[]],["component/64-5",[]],["keyword/64-5",[]],["title/64-6",[2501,47.648,4735,52.89]],["name/64-6",[]],["text/64-6",[]],["component/64-6",[]],["keyword/64-6",[]],["title/64-7",[113,29.449,955,23.402]],["name/64-7",[]],["text/64-7",[]],["component/64-7",[]],["keyword/64-7",[]],["title/64-8",[364,26.271,889,16.393,1361,28.66]],["name/64-8",[]],["text/64-8",[]],["component/64-8",[]],["keyword/64-8",[]],["title/64-9",[201,35.221,941,23.623,3010,40.481]],["name/64-9",[]],["text/64-9",[]],["component/64-9",[]],["keyword/64-9",[]],["title/64",[87,24.598,6890,56.91]],["name/64",[87,0.336,6890,0.778]],["text/64",[7,1.717,11,3.115,16,3.22,28,5.058,34,1.299,36,1.902,43,1.53,51,1.148,57,0.978,75,1.856,77,3.873,80,3.317,81,1.109,87,1.411,104,2.152,108,2.575,113,2.217,125,1.049,126,1.005,128,1.118,138,1.027,148,3.279,182,1.501,189,4.675,190,0.924,198,0.897,199,1.148,201,4.164,202,1.451,203,1.019,206,2.201,207,1.241,216,1.386,223,2.152,237,1.902,238,1.716,262,2.998,279,1.284,335,3.388,344,0.675,345,1.091,348,2.118,359,1.255,371,1.935,389,0.991,391,1.299,395,1.109,397,1.148,398,1.386,402,3.999,712,1.716,721,1.451,754,2.449,761,1.019,766,1.109,792,1.005,820,1.407,851,2.412,867,3.503,869,1.284,870,1.987,883,3.34,889,2.859,895,1.56,898,3.873,903,2.295,9
114,1.241,917,5.73,941,0.93,942,1.269,951,1.56,952,0.877,953,2.409,954,1.057,955,1.762,958,1.8,963,1.1,973,1.367,975,2.684,976,1.716,977,1.871,985,1.216,1018,1.786,1019,1.192,1020,1.56,1045,1.148,1055,1.269,1070,1.284,1072,1.228,1086,1.269,1088,2.795,1090,1.109,1091,1.451,1092,3.065,1098,1.284,1100,3.176,1103,1.148,1112,1.593,1121,2.733,1154,1.216,1157,1.56,1161,6.301,1167,4.582,1169,1.671,1172,1.299,1174,1.428,1177,3.457,1179,1.367,1180,5.975,1187,3.245,1192,1.228,1195,2.944,1202,1.407,1208,5.313,1211,2.449,1260,2.449,1265,1.671,1295,1.786,1296,3.078,1297,3.547,1306,1.019,1307,1.769,1356,1.53,1365,4.509,1373,1.952,1374,2.857,1377,1.83,1383,2.176,1395,1.593,1396,1.331,1397,1.501,1427,2.346,1431,2.024,1439,3.122,1446,3.576,1513,1.671,1515,1.255,1571,1.255,1624,4.591,1708,1.012,1774,4.432,1794,1.56,1848,1.349,1880,1.315,1909,5.013,1990,7.506,1991,6.621,2046,2.118,2048,1.995,2125,2.738,2127,2.766,2133,5.514,2264,1.53,2266,1.83,2339,4.721,2354,1.716,2454,1.63,2478,2.676,2501,4.786,2503,1.53,2529,1.56,2613,2.283,2635,1.83,2659,1.769,2814,1.995,2836,1.428,2867,3.033,2884,3.138,2990,2.118,3003,1.83,3004,5.625,3006,1.593,3010,4.786,3089,1.671,3137,5.018,3161,1.716,3743,4.721,3769,2.118,3807,1.995,3940,1.903,3970,2.118,3998,3.632,4089,1.903,4092,2.118,4257,1.903,4406,3.632,4735,4.721,5507,5.654,5754,1.995,6027,1.903,6157,1.83,6593,1.995,6807,1.995,6808,2.118,6816,3.421,6825,2.118,6827,2.118,6849,2.118,6879,7.378,6880,8.245,6890,8.582,6891,2.305,6892,3.952,6893,4.769,6894,2.305,6895,2.305,6896,6.152,6897,2.305,6898,2.305,6899,2.305,6900,2.305,6901,9.236,6902,2.305,6903,2.305,6904,2.305,6905,2.305,6906,2.305,6907,2.305,6908,4.769,6909,2.305,6910,2.305,6911,2.305,6912,2.305,6913,2.305,6914,2.305,6915,2.305,6916,2.305,6917,2.305,6918,2.118,6919,2.305,6920,2.305,6921,2.305,6922,2.305,6923,2.305,6924,2.305,6925,2.305,6926,2.305,6927,2.305,6928,2.305,6929,2.305,6930,2.305,6931,2.305,6932,2.118,6933,2.118,6934,1.995,6935,2.118,6936,2.305,6937,2.305,6938,2.118,6939,2.305,6940,2.305,6941,2.305,6942,2.305,6943,2.118,6944,2.305,6945,3.632,6946,2.305,6947,2.305,6948,2.305,6949,2.305,6950,2.305,6951,3.952,6952,3.952,6953,2.305,6954,2.305,6955,2.305,6956,2.305,6957,2.305,6958,2.305,6959,2.305,6960,2.305,6961,2.305,6962,2.305,6963,3.952,6964,2.305,6965,3.952,6966,2.305,6967,7.553,6968,2.305,6969,2.305,6970,2.305,6971,2.305,6972,2.305,6973,2.305,6974,2.305,6975,5.189,6976,2.305,6977,2.305,6978,2.305,6979,2.305,6980,2.305,6981,2.305,6982,2.305,6983,2.305,6984,2.305,6985,2.305,6986,2.305,6987,2.305,6988,2.305,6989,2.305]],["component/64",[7,0.29]],["keyword/64",[]],["title/65-1",[889,19.296,1561,44.12]],["name/65-1",[]],["text/65-1",[]],["component/65-1",[]],["keyword/65-1",[]],["title/65-2",[7,13.285,889,19.296]],["name/65-2",[]],["text/65-2",[]],["component/65-2",[]],["keyword/65-2",[]],["title/65-3",[149,30.056,941,27.806]],["name/65-3",[]],["text/65-3",[]],["component/65-3",[]],["keyword/65-3",[]],["title/65-4",[350,38.842,955,23.402]],["name/65-4",[]],["text/65-4",[]],["component/65-4",[]],["keyword/65-4",[]],["title/65-5",[695,27.945,3029,46.486,6990,53.808]],["name/65-5",[]],["text/65-5",[]],["component/65-
15",[]],["keyword/65-5",[]],["title/65-6",[364,26.271,1202,35.737,3006,40.481]],["name/65-6",[]],["text/65-6",[]],["component/65-6",[]],["keyword/65-6",[]],["title/65",[87,24.598,2503,45.742]],["name/65",[87,0.336,2503,0.626]],["text/65",[7,1.898,10,1.58,11,3.444,16,3.625,27,2.354,28,5.244,36,1.427,51,1.477,54,1.464,77,1.867,80,4.454,81,2.351,87,1.744,89,1.35,93,1.867,101,1.34,104,3.935,113,1.267,120,1.451,138,3.56,146,1.735,148,3.852,189,5.012,190,1.959,201,4.807,217,3.315,237,1.427,308,2.208,327,2.567,334,1.439,345,3.783,352,2.007,364,2.192,367,1.713,382,1.713,396,1.451,397,3.6,402,3.6,420,1.33,692,1.784,695,3.449,702,1.275,725,1.242,754,1.837,792,1.293,820,3.803,843,1.415,845,1.735,861,2.434,862,2.332,864,1.404,867,2.97,883,1.311,885,1.415,889,2.839,898,1.867,903,1.311,911,1.867,912,1.837,913,1.691,917,1.784,941,2.915,944,1.267,952,2.372,955,2.714,1006,1.867,1013,1.533,1019,2.526,1034,1.932,1045,1.477,1055,1.633,1065,2.034,1068,1.837,1086,1.633,1100,1.36,1112,2.05,1115,1.451,1121,2.05,1161,3.923,1166,1.275,1177,2.333,1202,1.81,1221,3.471,1278,1.898,1281,3.431,1295,3.612,1306,3.803,1336,1.932,1361,3.05,1363,1.913,1365,2.313,1373,2.412,1374,1.633,1427,2.208,1432,3.555,1441,1.533,1446,2.95,1458,1.519,1501,2.007,1518,4.41,1561,1.898,1613,2.05,1624,5.118,1708,3.776,1774,5.505,1899,1.671,1910,3.128,2030,2.097,2125,2.577,2127,2.604,2133,5.737,2339,2.275,2364,2.354,2501,6.808,2503,7.393,2636,2.208,2659,2.275,2678,2.448,2765,2.479,3003,4.947,3004,2.208,3006,6.287,3020,4.49,3021,3.542,3022,2.725,3024,4.229,3029,2.354,3032,4.782,3037,4.49,3038,2.725,3232,2.208,3268,2.898,3360,2.448,3403,2.354,3495,2.149,3612,2.567,3618,4.952,3623,2.567,4038,2.354,4126,2.354,4195,1.81,4408,2.725,4416,6.255,4420,7.344,4735,3.749,4861,3.542,5082,2.149,5520,2.567,6457,2.208,6816,4.229,6819,2.275,6826,2.725,6876,4.49,6881,4.49,6908,2.725,6918,5.726,6938,2.725,6990,7.344,6991,2.965,6992,2.965,6993,2.965,6994,2.965,6995,4.886,6996,4.886,6997,4.886,6998,4.886,6999,2.965,7000,2.965,7001,2.965,7002,2.965,7003,2.965,7004,2.965,7005,2.965,7006,2.965,7007,2.965,7008,2.965,7009,6.231,7010,6.231,7011,2.965,7012,2.965,7013,2.965,7014,2.965,7015,2.965,7016,2.965,7017,2.965,7018,2.965,7019,2.965,7020,2.965,7021,2.965,7022,2.965,7023,2.448,7024,2.448,7025,2.965,7026,2.725,7027,2.965,7028,2.965,7029,6.231,7030,2.965,7031,2.965,7032,2.725,7033,2.965,7034,2.965,7035,2.965,7036,2.965,7037,2.965,7038,2.965,7039,2.965,7040,2.965,7041,2.965,7042,2.965]],["component/65",[7,0.29]],["keyword/65",[]],["title/66-1",[101,31.15,1025,32.111]],["name/66-1",[]],["text/66-1",[]],["component/66-1",[]],["keyword/66-1",[]],["title/66-2",[1065,34.86]],["name/66-2",[]],["text/66-2",[]],["component/66-2",[]],["keyword/66-2",[]],["title/66-3",[2133,43.736]],["name/66-3",[]],["text/66-3",[]],["component/66-3",[]],["keyword/66-3",[]],["title/66-4",[2490,56.691]],["name/66-4",[]],["text/66-4",[]],["component/66-4",[]],["keyword/66-4",[]],["title/66-5",[4967,55.583]],["name/66-5",[]],["text/66-5",[]],["component/66-5",[]],["keyword/66-5",[]],["title/66-6",[2853,56.691]],["name/66-6",[]],["text/66-6",[]],["component/66-6",[]],["keyword/66-6",[]],["title/66-7",[2830,55.583]],["name/66-7",[]],["text/66-7",[]],["component/66-7",[]],["keyword/66-7",[]],["title/66-8",[101,31.15,190,27.638]],["name/66-8",[]],["text/66-8",[]],["component/66-8",[]],["keyword/66-8",[]],["title/66-9",[2765,42.49]],["name/66-9",[]],["text/66-9",[]],["component/66-9",[]],["keyword/66-9",[]],["title/66-10",[4944,66.488]],["name/66-10",[]],["text/66-10",[]],["component/66-10",[]],["keyword/66-10",[]],["title/66-11",[4958,72.491]],["name/66-11",[]],["text/66-11",[]],["component/66-11",[]],["keyword/66-11",[]],["title/66-12",[7043,76.96]],["name/66-12",[]],["text/66-12",[]],["component/66-12",[]],["keyword/66-12",[]],["title/66-13",[110,41.35]],["name/66-13",[]],["text/66-13",[]],["component/66-13",[]],["keyword/66-13",[]],["title/66",[7,13.102,832,34.543,836,32.628,7044,32.628]],["name/66",[238,0.702,7045,0.942]],["text/66",[2,2.663,7,2.372,11,3.538,16,2.225,28,2.222,41,1.328,50,2.523,51,2.141,54,1.255,57,1.824,75,3.082,80,1.887,83,1.601,85,2.018,87,2.618,89,2.541,91,1.302,101,2.966,103,1.341,104,2.34,110,3.24,111,1.213,112,3.073,113,4.696,119,1.4,144,1.529,147,2.336,148,2.975,152,1.843,189,0.973,190,2.631,201,1.529,203,1.901,207,2.315,210,2.852,217,1.166,228,2.515,229,4.134,234,2.756,235,2.706,237,1.223,241,2.018,243,2.099,246,2.201,250,1.302,259,4.828,262,2.483,269,3.412,280,3.115,293,1.416,297,2.201,334,2.085,339,1.758,344,1.922,346,1.488,350,2.422,355,4.738,361,4.486,363,1.601,371,3.212,386,1.244,391,2.422,399,2.018,420,3.803,421,3.24,682,1.721,690,3.006,693,1.758,698,4.622,702,1.094,723,1.687,725,2.749,741,1.552,766,1.223,774,1.302,776,3.548,778,1.255,782,1.628,790,2.732,797,1.244,803,1.798,810,1.951,822,1.37,829,1.244,832,8.434,836,6.458,843,2.051,846,1.469,867,2.294,869,1.416,879,1.552,883,2.468,888,3.859,889,1.563,890,1.37,897,1.45,902,2.29,914,3.951,939,1.278,941,2.647,942,3.613,952,2.497,953,3.52,954,2.561,955,3.15,957,2.78,958,2.541,959,1.37,963,3.799,977,2.034,986,1.234,988,1.328,1006,2.706,1014,1.4,1018,3.315,1019,1.315,1025,3.709,1027,1.45,1045,2.141,1063,1.158,1065,2.323,1066,1.951,
11100,1.166,1104,1.575,1125,3.889,1154,1.341,1161,1.601,1177,0.952,1180,1.384,1186,2.018,1192,1.355,1208,1.951,1227,2.222,1287,2.78,1295,4.027,1297,3.082,1306,3.52,1311,2.585,1330,2.751,1335,2.244,1361,1.244,1371,3.115,1379,1.384,1394,1.628,1398,4.933,1424,1.687,1430,3.497,1435,3.361,1441,1.315,1446,3.106,1458,2.201,1516,1.951,1520,1.4,1553,2.751,1572,2.852,1592,2.201,1601,4.283,1624,1.37,1635,1.843,1706,4.066,1711,1.893,1798,3.412,1839,1.529,1981,1.721,2011,1.529,2100,1.893,2112,1.798,2125,1.341,2133,2.915,2138,1.656,2264,1.687,2338,1.601,2346,2.201,2348,1.843,2379,1.893,2490,6.031,2491,3.412,2492,3.412,2527,4.431,2530,4.442,2562,1.721,2564,5.209,2611,2.706,2613,1.469,2657,2.706,2825,3.573,2830,1.687,2836,1.575,2853,5.388,2854,1.893,2855,1.951,2856,3.115,2903,1.628,3268,1.508,3272,1.529,3738,1.951,3937,1.758,4030,1.893,4122,2.336,4191,3.039,4847,2.201,4851,1.893,4852,3.947,4884,4.831,4944,4.431,4958,4.831,4967,3.704,4976,5.418,4979,2.336,5029,2.018,5040,2.018,5066,2.099,5873,2.099,6183,2.336,6314,3.949,6421,5.129,6879,2.201,6880,2.201,6882,2.336,6893,2.336,6935,2.336,6943,2.336,7043,6.74,7046,2.542,7047,4.297,7048,2.542,7049,2.542,7050,3.72,7051,2.542,7052,2.542,7053,2.201,7054,2.201,7055,2.542,7056,2.542,7057,4.297,7058,2.542,7059,2.542,7060,2.542,7061,2.542,7062,2.336,7063,2.542,7064,2.542,7065,2.542,7066,2.542,7067,2.542,7068,5.581,7069,2.542,7070,2.542,7071,2.201,7072,2.542,7073,2.542,7074,4.297,7075,4.297,7076,2.542]],["component/66",[7,0.29]],["keyword/66",[]],["title/67-1",[57,21.604,101,23.004,170,23.176,217,23.351]],["name/67-1",[]],["text/67-1",[]],["component/67-1",[]],["keyword/67-1",[]],["title/67-2",[101,26.464,181,28.177,825,34.268]],["name/67-2",[]],["text/67-2",[]],["component/67-2",[]],["keyword/67-2",[]],["title/67-3",[101,26.464,725,24.53,7077,58.551]],["name/67-3",[]],["text/67-3",[]],["component/67-3",[]],["keyword/67-3",[]],["title/67-4",[7,11.287,101,26.464,344,17.151]],["name/67-4",[]],["text/67-4",[]],["component/67-4",[]],["keyword/67-4",[]],["title/67-5",[101,18.236,190,16.179,952,15.356,953,14.04,955,13.7,1398,25.001]],["name/67-5",[]],["text/67-5",[]],["component/67-5",[]],["keyword/67-5",[]],["title/67-6",[7,9.811,234,25.131,1361,24.912,7044,36.894]],["name/67-6",[]],["text/67-6",[]],["component/67-6",[]],["keyword/67-6",[]],["title/67-7",[190,23.48,1177,21.918,1361,28.66]],["name/67-7",[]],["text/67-7",[]],["component/67-7",[]],["keyword/67-7",[]],["title/67-8",[190,20.41,963,24.291,1177,19.052,1361,24.912]],["name/67-8",[]],["text/67-8",[]],["component/67-8",[]],["keyword/67-8",[]],["title/67-9",[190,23.48,1295,26.464,1361,28.66]],["name/67-9",[]],["text/67-9",[]],["component/67-9",[]],["keyword/67-9",[]],["title/67-10",[190,20.41,963,24.291,1295,23.004,1361,24.912]],["name/67-10",[]],["text/67-10",[]],["component/67-10",[]],["keyword/67-10",[]],["title/67-11",[101,31.15,190,27.638]],["name/67-11",[]],["text/67-11",[]],["component/67-11",[]],["keyword/67-11",[]],["title/67-12",[1361,40.991]],["name/67-12",[]],["text/67-12",[]],["component/67-12",[]],["keyword/67-12",[]],["title/67-13",[7078,68.918,7079,68.918]],["name/67-13",[]],["text/67-13",[]],["component/67-13",[]],["keyword/67-13",[]],["title/67-14",[7080,83.745]],["name/67-14",[]],["text/67-14",[]],["component/67-14",[]],["keyword/67-14",[]],["title/67-15",[2765,42.49]],["name/67-15",[]],["text/67-15",[]],["component/67-15",[]],["keyword/67-15",[]],["title/67-16",[110,41.35]],["name/67-16",[]],["text/67-16",[]],["component/67-16",[]],["keyword/67-16",[]],["title/67",[7,13.102,836,32.628,837,35.735,7044,32.628]],["name/67",[205,0.683,229,0.531]],["text/67",[7,2.208,9,0.927,11,2.459,16,1.228,41,0.391,50,0.643,54,0.37,57,0.604,78,1.006,80,2.351,83,1.278,85,0.595,91,0.728,101,1.6,104,2.565,109,1.712,110,3.889,113,0.867,117,1.299,119,0.413,126,2.199,142,2.833,146,0.439,149,3.067,153,0.881,170,0.341,176,0.422,177,0.395,181,1.242,188,1.535,189,5.067,190,3.953,198,0.292,202,0.472,203,0.897,205,6.27,207,0.404,217,0.344,220,0.595,229,4.263,234,3.565,235,0.895,236,4.657,237,0.977,240,0.543,259,2.076,293,0.792,334,2.111,337,1.757,344,0.594,346,0.439,350,0.422,361,0.802,369,0.832,371,2.761,379,0.543,386,0.367,389,0.873,391,0.422,396,2.129,397,0.373,398,0.451,399,2.212,409,0.48,420,0.336,421,1.002,465,0.497,682,0.507,685,0.927,695,0.679,698,1.285,701,0.783,710,0.7
174,711,0.451,723,0.497,725,1.973,737,0.558,759,0.855,766,0.361,767,0.75,777,0.881,778,3.889,797,0.696,798,0.413,805,0.408,810,0.575,817,0.339,819,0.766,836,1.87,837,2.048,840,0.38,843,0.358,845,1.51,854,0.464,867,1.06,870,2.535,877,0.91,879,3.267,881,0.497,885,0.358,889,0.21,898,1.624,902,0.758,903,0.331,906,1.375,907,0.497,913,0.428,914,4.32,926,0.881,936,0.575,940,0.507,942,2.396,948,2.086,952,1.173,953,2.633,955,1.477,957,0.708,958,0.341,963,4.824,977,3.03,986,1.718,988,0.391,1017,6.267,1018,2.279,1044,0.38,1045,4.13,1046,0.595,1048,1.006,1053,0.518,1055,0.413,1056,0.619,1062,0.445,1063,1.804,1064,0.464,1065,0.592,1067,0.855,1068,4.105,1070,0.417,1072,0.758,1076,0.575,1081,0.457,1090,0.361,1104,2.696,1115,4.119,1123,0.457,1125,3.039,1143,0.428,1145,1.231,1154,0.395,1163,0.575,1166,0.322,1176,0.575,1177,3.903,1180,0.408,1187,0.395,1203,3.623,1213,0.408,1221,0.792,1227,1.594,1239,0.349,1240,0.373,1255,0.472,1261,1.94,1267,2.01,1273,2.687,1278,4.24,1281,2.396,1295,4.889,1296,0.445,1297,2.043,1306,3.271,1308,0.518,1330,0.48,1332,0.944,1334,2.371,1335,0.743,1344,3.331,1355,1.07,1358,0.399,1360,0.488,1361,3.926,1363,1.844,1364,1.764,1365,1.459,1367,0.575,1373,3.96,1379,1.678,1384,2.008,1398,1.599,1405,1.881,1406,1.031,1425,1.172,1427,0.339,1429,0.472,1430,0.399,1431,0.728,1435,1.813,1436,0.391,1441,0.735,1458,4.178,1463,0.649,1484,6.132,1489,1.757,1520,0.413,1544,0.488,1556,0.758,1577,0.497,1618,0.91,1624,0.404,1632,0.457,1635,1.031,1708,1.133,1722,0.53,1725,0.413,1747,1.437,1771,4.089,1774,0.91,1794,0.507,1810,0.497,1822,0.433,1855,0.832,1857,0.575,1860,0.488,1873,0.868,1899,0.802,1922,0.595,1923,0.399,2000,1.129,2054,0.507,2101,0.507,2124,0.595,2125,2.09,2127,3.53,2130,0.735,2158,0.422,2174,1.51,2178,0.575,2229,1.221,2243,1.307,2245,1.865,2264,0.944,2277,0.619,2307,0.507,2338,6.206,2407,0.689,2414,1.865,2474,2.233,2500,2.13,2505,0.558,2522,2.495,2562,0.963,2585,0.543,2607,0.619,2637,2.536,2657,0.895,2666,0.507,2679,0.464,2720,0.464,2765,0.38,2790,1.307,2844,1.059,2853,1.746,2855,1.091,2880,1.059,2902,0.619,2906,2.448,3011,2.448,3119,4.59,3143,1.307,3169,0.558,3203,1.803,3268,6.32,3272,1.221,3277,0.543,3363,1.231,3517,0.689,3555,0.649,3557,0.575,3719,0.619,3753,1.676,3903,0.983,4051,1.921,4053,1.374,4195,4.292,4222,0.689,4486,0.558,4554,1.031,4667,6.462,4712,1.129,4720,0.575,4826,0.595,4851,1.921,4852,0.53,4853,1.676,4861,0.543,4902,0.595,4916,0.543,4935,1.091,4936,2.13,4943,0.575,4983,2.234,4986,3.553,5004,0.619,5005,0.558,5010,0.558,5011,0.689,5022,1.307,5023,2.447,5057,2.371,5082,3.414,5083,3.065,5089,0.689,5352,0.543,5403,0.619,5448,0.649,5512,1.231,5559,0.649,5661,0.619,5705,0.689,5707,0.649,5967,0.689,5975,0.595,6012,3.272,6013,0.619,6014,0.619,6034,0.558,6035,1.98,6085,1.174,6148,1.231,6287,0.689,6310,0.649,6325,0.649,6454,0.689,6457,5.089,6461,0.649,6462,0.649,6501,0.619,6526,1.174,6819,1.557,7023,0.619,7024,0.619,7026,0.689,7044,1.031,7053,0.649,7071,3.065,7081,1.422,7082,1.422,7083,3.082,7084,3.082,7085,1.422,7086,3.082,7087,3.082,7088,1.422,7089,6.401,7090,2.58,7091,2.58,7092,0.75,7093,0.75,7094,4.919,7095,3.962,7096,3.962,7097,0.75,7098,0.75,7099,0.75,7100,2.029,7101,1.422,7102,0.75,7103,0.75,7104,0.75,7105,0.75,7106,0.75,7107,0.75,7108,0.75,7109,0.75,7110,0.75,7111,0.75,7112,0.75,7113,0.75,7114,0.75,7115,1.422,7116,2.58,7117,0.75,7118,0.75,7119,1.422,7120,3.082,7121,0.75,7122,2.58,7123,2.58,7124,1.422,7125,3.082,7126,2.029,7127,3.082,7128,1.422,7129,1.422,7130,0.75,7131,0.75,7132,1.422,7133,0.75,7134,0.75,7135,1.422,7136,1.422,7137,0.75,7138,0.75,7139,0.75,7140,0.689,7141,0.75,7142,0.75,7143,0.75,7144,0.75,7145,0.75,7146,0.75,7147,0.75,7148,0.75,7149,0.75,7150,0.75,7151,0.75,7152,0.75,7153,0.75,7154,0.75,7155,0.75,7156,0.75,7157,0.75,7158,0.75,7159,0.689,7160,0.75,7161,0.75,7162,0.75,7163,0.75,7164,0.75,7165,0.689,7166,1.422,7167,0.75,7168,0.75,7169,0.689,7170,0.75,7171,0.75,7172,0.75,7173,0.75,7174,0.75,7175,0.689,7176,0.75,7177,0.75,7178,0.75,7179,1.865,7180,0.75,7181,0.75,7182,1.422,7183,0.75,7184,0.75,7185,0.75,7186,0.75,7187,0.75,7188,0.75,7189,0.689,7190,0.689,7191,1.422,7192,0.75,7193,0.75,7194,0.75,7195,0.75,7196,0.75,7197,0.75,7198,0.75,7199,0.75,7200,0.75,7201,0.75,7202,0.75,7203,0.75,7204,0.75,7205,0.75,7206,0.75,7207,0.75,7208,0.75,7209,0.75,7210,0.75,7211,0.75,7212,0.75,7213,0.75,7214,0.75,7215,0.75,7216,0.75,7217,0.75,7218,0.75,7219,0.689,7220,0.75,7221,0.75,7222,0.75,7223,0.75,7224,0.75,7225,0.75,7226,0.75,7227,0.75,7228,0.75,7229,0.75,7230,0.75,7231,0.75,7232,0.75,7233,0.75,7234,0.75,7235,0.689,7236,0.75,7237,1.422,7238,1.422,7239,0.75,7240,0.75,7241,0.75,7242,0.689,7243,0.689,7244,0.75,7245,0.75,7246,0.75,7247,
10.689,7248,1.307,7249,0.689,7250,0.689,7251,0.689,7252,0.689,7253,0.689,7254,0.689,7255,0.75,7256,1.422,7257,0.75,7258,0.75,7259,3.065,7260,0.75,7261,0.75,7262,0.75,7263,0.75,7264,0.75,7265,0.75,7266,0.75,7267,0.75,7268,0.75,7269,0.75,7270,1.307,7271,0.689,7272,0.689,7273,0.75,7274,0.75,7275,0.75,7276,0.75,7277,0.75,7278,0.75,7279,0.75,7280,0.75,7281,0.75,7282,0.75,7283,0.75,7284,0.75,7285,0.689,7286,0.75,7287,0.689,7288,0.75,7289,0.75,7290,0.689,7291,0.75,7292,0.75,7293,0.75,7294,0.75,7295,1.422,7296,1.422,7297,0.75,7298,0.75,7299,0.75,7300,0.75,7301,0.75,7302,0.75,7303,0.75,7304,0.75,7305,0.75,7306,0.75,7307,0.75,7308,1.422,7309,0.649,7310,0.75,7311,1.422,7312,1.422,7313,2.371,7314,1.865,7315,0.75,7316,0.75,7317,0.75,7318,1.307,7319,1.422,7320,0.75,7321,0.75,7322,0.75,7323,0.75,7324,0.689,7325,0.689,7326,0.75,7327,2.371,7328,0.75,7329,0.75,7330,0.75,7331,0.75,7332,0.689,7333,0.689,7334,0.75,7335,0.75,7336,0.75,7337,1.422,7338,0.75,7339,0.75,7340,0.75,7341,0.75,7342,0.75,7343,0.75,7344,0.689,7345,0.75,7346,0.75,7347,0.75,7348,0.75,7349,0.75,7350,0.75,7351,0.75,7352,0.75,7353,0.75,7354,0.75,7355,0.75,7356,0.75,7357,0.75,7358,0.75,7359,0.75,7360,0.75,7361,0.619,7362,0.595]],["component/67",[7,0.29]],["keyword/67",[]],["title/68-1",[57,21.604,101,23.004,170,23.176,217,23.351]],["name/68-1",[]],["text/68-1",[]],["component/68-1",[]],["keyword/68-1",[]],["title/68-2",[69,30.279,110,28.911,7044,42.443]],["name/68-2",[]],["text/68-2",[]],["component/68-2",[]],["keyword/68-2",[]],["title/68-3",[101,26.464,181,28.177,825,34.268]],["name/68-3",[]],["text/68-3",[]],["component/68-3",[]],["keyword/68-3",[]],["title/68-4",[101,26.464,725,24.53,1063,26.662]],["name/68-4",[]],["text/68-4",[]],["component/68-4",[]],["keyword/68-4",[]],["title/68-5",[149,30.056,941,27.806]],["name/68-5",[]],["text/68-5",[]],["component/68-5",[]],["keyword/68-5",[]],["title/68",[7,13.102,839,34.543,1233,37.168,7044,32.628]],["name/68",[228,0.552,7363,0.942]],["text/68",[7,2.432,36,2.912,48,3.943,57,3.577,80,3.701,101,4.739,110,4.787,181,2.912,189,4.912,190,3.379,217,2.777,229,3.411,293,3.371,351,6.959,725,4.062,825,3.542,839,8.459,864,2.865,953,3.649,973,3.59,1045,4.198,1063,2.756,1115,5.587,1233,9.102,1253,3.64,1267,4.276,1273,4.808,1306,4.637,1344,3.411,1458,5.37,1899,4.749,2060,5.96,2240,6.276,3440,7.744,4322,5.239,6299,5.562,7044,6.109,7094,10.975,7364,5.562,7365,8.427,7366,6.052,7367,6.052,7368,6.052,7369,6.052,7370,6.052,7371,6.052,7372,6.052,7373,6.052,7374,6.052,7375,6.052,7376,6.052,7377,6.052,7378,6.052,7379,6.052,7380,8.427,7381,6.052,7382,6.052,7383,8.427,7384,5.562,7385,6.052,7386,6.052,7387,8.427,7388,8.427,7389,5.239,7390,5.562,7391,5.562,7392,6.052,7393,6.052]],["component/68",[7,0.29]],["keyword/68",[]],["title/69-1",[747,31.54,1065,24.373,1583,32.613]],["name/69-1",[]],["text/69-1",[]],["component/69-1",[]],["keyword/69-1",[]],["title/69-2",[7,9.811,897,29.036,1065,21.186,1583,28.348]],["name/69-2",[]],["text/69-2",[]],["component/69-2",[]],["keyword/69-2",[]],["title/69-3",[7,9.811,104,27.715,1065,21.186,1583,28.348]],["name/69-3",[]],["text/69-3",[]],["component/69-3",[]],["keyword/69-3",[]],["title/69-4",[259,27.945,1065,24.373,1583,32.613]],["name/69-4",[]],["text/69-4",[]],["component/69-4",[]],["keyword/69-4",[]],["title/69-5",[939,34.645,1019,35.64]],["name/69-5",[]],["text/69-5",[]],["component/69-5",[]],["keyword/69-5",[]],["title/69",[952,22.285,955,19.882,1065,24.373]],["name/69",[1065,0.721]],["text/69",[7,2.081,11,2.567,43,1.134,48,1.113,50,0.772,54,0.844,57,1.292,80,4.821,89,1.873,104,5.228,113,0.73,144,1.028,149,1.327,164,2.43,177,0.901,181,0.822,183,2.796,184,3.875,189,5.01,190,2.295,198,3.39,199,0.851,203,0.756,217,2.911,234,2.464,241,3.447,259,4.02,262,4.241,265,3.281,267,0.963,334,0.829,344,1.205,345,2.71,355,0.844,359,0.931,362,1.113,389,0.735,399,0.803,421,0.844,694,4.134,702,2.959,716,1.094,725,4.022,729,1.239,747,1.639,761,0.756,766,0.822,792,0.745,811,0.975,825,1,829,0.836,843,0.816,852,3.729,861,0.851,862,2.382,864,2.363,866,1.979,867,2.051,883,2.207,885,1.963,889,2.51,897,4.419,925,1.479,926,4.262,939,0.859,941,2.309,951,1.157,952,4.544,953,3.971,954,1.887,955,4.028,975,2.127,986,1.477,988,4.913,1019,6.016,1025,2.956,1027,0.975,1046,1.357,1063,0.778,1065,5.067,1072,0.911,1082,2.44,1090,1.979,1103,1.516,1114,2.474,1115,0.836,1125,1.887,1166,4.276,1192,0.911,1240,2.486,1247,3.664,1272,1.028,1294,0.911,1295,1.375,1297,0.803,1335,2.148,1336,1.982,1358,0.911,1360,4.134,1361,1.489,1364,4.465,1365,3.667,1367,3.157,1372,1.076,1392,2.883,1393,1.076,1394,1.094,1396,2.376,1405,1.043,1427,1.375,1437,1.181,1441,0.884,1446,0.809,1448,2.24,1510,1.113,1511,1.157,1512,1.157,1515,1.657,1521,3.157,1583,4.514,1696,1.357,1698,1.134,1700,1.357,1711,4.263,1726,3.799,1747,1.695,1752,4.295,1763,1.57,1764,2.335,1765,1.57,1766,6.062,1767,1.57,1768,2.634,1800,1.479,1802,1.479,1826,1.479,1858,3.729,2001,1.134,2101,1.157,2154,1.094,2174,1,2192,1.411,2271,6.312,2291,1.113,2671,9.631,2746,1.273,2836,1.059,3169,7.006,3171,4.726,3172,1.479,3718,1.134,4491,6.219,4540,1.57,4923,3.799,4983,2.206,5164,1.311,5165,1.094,5167,1.113,7394,1.709,7395,1.709,7396,1.709,7397,1.709,7398,1.709,7399,4.955,7400,5.26,7401,5.724,7402,5.724,7403,5.724,7404,5.724,7405,6.345,7406,4.991,7407,1.709,7408,4.991,7409,4.991,7410,1.709,7411,1.709,7412,1.709,7413,1.709,7414,4.991,7415,1.709,7416,5.724,7417,4.113,7418,1.709,7419,1.709,7420,6.345,7421,3.043,7422,4.113,7423,1.709,7424,1.709,7425,1.709,7426,1.709,7427,3.043,7428,1.709,7429,4.113,7430,1.709,7431,1.709,7432,1.709,7433,3.043,7434,1.709,7435,1.709,7436,1.709,7437,1.709,7438,1.709,7439,1.709,7440,1.709,7441,1.709,7442,1.709,7443,3.043,7444,1.709,7445,1.709,7446,1.709,7447,1.709,7448,1.709,7449,1.709,7450,1.709,7451,1.709,7452,1.709]],["component/69",[7,0.29]],["keyword/69",[]],["title/70-1",[1363,22.93,228
11,39.636,2325,32.241]],["name/70-1",[]],["text/70-1",[]],["component/70-1",[]],["keyword/70-1",[]],["title/70-2",[1432,33.403,2281,39.636,2325,32.241]],["name/70-2",[]],["text/70-2",[]],["component/70-2",[]],["keyword/70-2",[]],["title/70-3",[234,25.131,1432,29.036,2281,34.454,2325,28.025]],["name/70-3",[]],["text/70-3",[]],["component/70-3",[]],["keyword/70-3",[]],["title/70-4",[2281,39.636,2325,32.241,2637,37.483]],["name/70-4",[]],["text/70-4",[]],["component/70-4",[]],["keyword/70-4",[]],["title/70-5",[2281,39.636,2325,32.241,2718,48.349]],["name/70-5",[]],["text/70-5",[]],["component/70-5",[]],["keyword/70-5",[]],["title/70",[953,20.376,2281,39.636,2325,32.241]],["name/70",[2281,1.172]],["text/70",[7,1.877,11,2.728,16,1.658,34,3.607,51,4.549,75,1.953,77,1.54,80,3.654,81,1.177,83,1.54,87,2.784,88,1.877,89,3.988,103,3.376,113,2.734,125,2.914,127,4.766,148,1.304,153,1.516,170,1.894,179,1.942,189,4.413,190,3.128,198,0.952,199,1.219,206,3.022,207,1.318,210,4.76,217,4.19,234,3.851,250,3.278,251,8.808,252,2.248,253,2.248,278,2.117,282,2.248,285,2.248,319,2.117,323,2.248,324,2.248,329,1.773,330,2.248,331,3.6,336,2.117,345,3.029,357,1.942,371,4.766,382,1.413,386,1.197,389,1.052,391,1.379,397,1.219,403,4.332,701,2.29,713,1.624,718,1.73,725,2.681,759,1.472,761,3.873,766,1.177,774,2.13,798,1.347,801,2.815,843,1.985,857,2.655,861,1.219,866,1.177,867,3.206,883,2.83,888,2.875,889,1.792,890,1.318,901,1.396,913,1.396,914,1.318,941,3.534,944,3.065,953,1.447,955,0.831,958,3.789,963,1.168,978,1.73,985,1.29,986,2.018,1018,1.106,1020,1.656,1029,1.822,1040,1.624,1045,1.219,1048,1.73,1054,4.48,1056,2.02,1063,2.914,1065,2.985,1086,1.347,1098,1.363,1101,1.363,1103,3.188,1104,2.577,1123,3.906,1148,1.942,1149,1.624,1154,2.194,1166,2.753,1177,2.031,1211,1.516,1227,1.265,1234,1.656,1278,1.566,1295,1.106,1319,1.691,1321,3.362,1339,1.73,1344,4.042,1363,3.576,1364,1.219,1365,4.727,1397,2.71,1403,2.248,1405,3.906,1427,1.88,1432,6.125,1436,1.278,1446,5.007,1455,1.73,1457,1.493,1527,2.117,1573,1.472,1618,3.473,1632,1.493,1839,1.472,1848,2.434,1852,3.822,1858,1.594,1908,1.877,1923,1.304,1932,2.248,2012,3.192,2062,1.691,2125,4.115,2147,1.877,2190,1.451,2259,2.248,2281,6.759,2325,5.825,2328,3.192,2537,1.594,2564,1.942,2637,4.097,2696,5.694,2717,1.822,2718,3.434,2864,9.37,2908,2.248,2909,2.248,2910,1.877,2911,8.866,2912,4.307,2913,2.248,2918,2.117,2920,2.248,2927,2.117,2938,4.986,2941,2.248,2944,2.248,2946,3.822,2947,2.248,2949,2.248,2956,3.822,2957,2.248,2958,2.248,2961,2.248,2963,3.822,2964,2.248,2965,2.248,2968,2.248,3045,2.117,3488,1.942,3555,2.117,3863,1.942,3864,2.248,4252,1.942,4350,1.877,4692,3.434,5449,2.02,5456,2.117,5742,2.248,5752,2.248,5815,2.117,6302,2.248,6407,2.117,6862,2.248,6934,3.6,7062,2.248,7453,7.8,7454,2.446,7455,2.446,7456,2.446,7457,2.446,7458,2.446,7459,2.446,7460,2.446,7461,2.446,7462,2.446,7463,2.446,7464,2.446,7465,2.446,7466,2.446,7467,6.399,7468,2.446,7469,2.446,7470,2.446,7471,2.446,7472,2.446,7473,4.159,7474,4.159,7475,2.446,7476,2.446,7477,2.446,7478,2.446,7479,2.446,7480,7.172,7481,2.446,7482,2.446,7483,2.446,7484,8.049,7485,2.446,7486,4.159,7487,2.446,7488,2.446,7489,2.446,7490,2.446,7491,2.446,7492,2.446,7493,2.446,7494,4.159,7495,2.446,7496,2.446,7497,2.446,7498,2.446,7499,2.446,7500,2.446,7501,2.446,7502,2.446,7503,2.446,7504,2.446,7505,2.446,7506,4.159,7507,2.446,7508,2.446,7509,2.446,7510,2.446,7511,2.446,7512,2.446,7513,2.446]],["component/70",[7,0.29]],["keyword/70",[]],["title/71-1",[1018,31.15,1177,25.799]],["name/71-1",[]],["text/71-1",[]],["component/71-1",[]],["keyword/71-1",[]],["title/71-2",[1018,26.464,1177,21.918,1294,31.208]],["name/71-2",[]],["text/71-2",[]],["component/71-2",[]],["keyword/71-2",[]],["title/71-3",[1177,25.799,1239,32.111]],["name/71-3",[]],["text/71-3",[]],["component/71-3",[]],["keyword/71-3",[]],["title/71-4",[944,29.449,1177,25.799]],["name/71-4",[]],["text/71-4",[]],["component/71-4",[]],["keyword/71-4",[]],["title/71-5",[2970,72.491]],["name/71-5",[]],["text/71-5",[]],["component/71-5",[]],["keyword/71-5",[]],["title/71-6",[7514,76.96]],["name/71-6",[]],["text/71-6",[]],["component/71-6",[]],["keyword/71-6",[]],["title/71-7",[7515,76.96]],["name/71-7",[]],["text/71-7",[]],["component/71-7",[]],["keyword/71-7",[]],["title/71-8",[7516,76.96]],["name/71-8",[]],["text/71-8",[]],["component/71-8",[]],["keyword/71-8",[]],["title/71-9",[7517,76.96]],["name/71-9",[]],["text/71-9",[]],["component/71-9",[]],["keyword/71-9",[]],["title/71-10",[7518,76.96]],["name/71-10",[]],["text/71-10",[]],["component/71-10",[]],["keyword/71-10",[]],["title/71-11",[953,23.984,1352,38.387]],["name/71-11",[]],["text/71-11",[]],["component/71-11",[]],["keyword/71-11",[]],["title/71-12",[2497,62.368]],["name/71-12",[]],["text/71-12",[]],["component/71-12",[]],["keyword/71-12",[]],["title/71-13",[2498,62.368]],["name/71-13",[]],["text/71-13",[]],["component/71-13",[]],["keyword/71-13",[]],["title/71-14",[939,34.645,1352,38.387]],["name/71-14",[]],["text/71-14",[]],["component/71-14",[]],["keyword/71-14",[]],["title/71-15",[138,30.699,869,38.387]],["name/71-15",[]],["text/71-15",[]],["component/71-15",[]],["keyword/71-15",[]],["title/71-16",[237,33.166,889,19.296]],["name/71-16",[]],["text/71-16",[]],["component/71-16",[]],["keyword/71-16",[]],["title/71-17",[250,29.989,1141,31.208,1443,33.403]],["name/71-17",[]],["text/71-17",[]],["component/71-17",[]],["keyword/71-17",[]],["title/71-18",[250,29.989,1363,22.93,3356,38.862]],["name/71-18",[]],["text/71-18",[]],["component/71-18",[]],["keyword/71-18",[]],["title/71-19",[111,27.945,
11141,31.208,1443,33.403]],["name/71-19",[]],["text/71-19",[]],["component/71-19",[]],["keyword/71-19",[]],["title/71-20",[111,32.893,3356,45.742]],["name/71-20",[]],["text/71-20",[]],["component/71-20",[]],["keyword/71-20",[]],["title/71-21",[112,46.114]],["name/71-21",[]],["text/71-21",[]],["component/71-21",[]],["keyword/71-21",[]],["title/71-22",[11,17.801,16,20.288,3378,35.996,3551,42.028]],["name/71-22",[]],["text/71-22",[]],["component/71-22",[]],["keyword/71-22",[]],["title/71-23",[11,15.742,16,17.942,3378,31.834,3552,37.168,3553,37.168]],["name/71-23",[]],["text/71-23",[]],["component/71-23",[]],["keyword/71-23",[]],["title/71-24",[1668,37.904,2211,31.064,2351,34.454,2507,39.059]],["name/71-24",[]],["text/71-24",[]],["component/71-24",[]],["keyword/71-24",[]],["title/71-25",[7,9.811,814,33.159,1448,27.715,1461,31.064]],["name/71-25",[]],["text/71-25",[]],["component/71-25",[]],["keyword/71-25",[]],["title/71-26",[953,23.984,1361,33.734]],["name/71-26",[]],["text/71-26",[]],["component/71-26",[]],["keyword/71-26",[]],["title/71-27",[7,13.285,1361,33.734]],["name/71-27",[]],["text/71-27",[]],["component/71-27",[]],["keyword/71-27",[]],["title/71-28",[1360,54.561]],["name/71-28",[]],["text/71-28",[]],["component/71-28",[]],["keyword/71-28",[]],["title/71-29",[3169,62.368]],["name/71-29",[]],["text/71-29",[]],["component/71-29",[]],["keyword/71-29",[]],["title/71-30",[189,19.48,897,29.036,963,24.291,3351,42.028]],["name/71-30",[]],["text/71-30",[]],["component/71-30",[]],["keyword/71-30",[]],["title/71-31",[7519,76.96]],["name/71-31",[]],["text/71-31",[]],["component/71-31",[]],["keyword/71-31",[]],["title/71-32",[7054,72.491]],["name/71-32",[]],["text/71-32",[]],["component/71-32",[]],["keyword/71-32",[]],["title/71-33",[7050,72.491]],["name/71-33",[]],["text/71-33",[]],["component/71-33",[]],["keyword/71-33",[]],["title/71-34",[1797,69.153]],["name/71-34",[]],["text/71-34",[]],["component/71-34",[]],["keyword/71-34",[]],["title/71-35",[3181,72.491]],["name/71-35",[]],["text/71-35",[]],["component/71-35",[]],["keyword/71-35",[]],["title/71-36",[7520,76.96]],["name/71-36",[]],["text/71-36",[]],["component/71-36",[]],["keyword/71-36",[]],["title/71-37",[3016,72.491]],["name/71-37",[]],["text/71-37",[]],["component/71-37",[]],["keyword/71-37",[]],["title/71-38",[2381,72.491]],["name/71-38",[]],["text/71-38",[]],["component/71-38",[]],["keyword/71-38",[]],["title/71-39",[3049,72.491]],["name/71-39",[]],["text/71-39",[]],["component/71-39",[]],["keyword/71-39",[]],["title/71-40",[189,17.228,1363,26.617,1774,28.815,7521,41.364]],["name/71-40",[]],["text/71-40",[]],["component/71-40",[]],["keyword/71-40",[]],["title/71-41",[2631,72.491]],["name/71-41",[]],["text/71-41",[]],["component/71-41",[]],["keyword/71-41",[]],["title/71-42",[3264,62.368]],["name/71-42",[]],["text/71-42",[]],["component/71-42",[]],["keyword/71-42",[]],["title/71-43",[3171,69.153]],["name/71-43",[]],["text/71-43",[]],["component/71-43",[]],["keyword/71-43",[]],["title/71-44",[2715,72.491]],["name/71-44",[]],["text/71-44",[]],["component/71-44",[]],["keyword/71-44",[]],["title/71-45",[3304,72.491]],["name/71-45",[]],["text/71-45",[]],["component/71-45",[]],["keyword/71-45",[]],["title/71-46",[2683,72.491]],["name/71-46",[]],["text/71-46",[]],["component/71-46",[]],["keyword/71-46",[]],["title/71-47",[2784,72.491]],["name/71-47",[]],["text/71-47",[]],["component/71-47",[]],["keyword/71-47",[]],["title/71-48",[1773,72.491]],["name/71-48",[]],["text/71-48",[]],["component/71-48",[]],["keyword/71-48",[]],["title/71-49",[7522,72.491]],["name/71-49",[]],["text/71-49",[]],["component/71-49",[]],["keyword/71-49",[]],["title/71-50",[3004,62.368]],["name/71-50",[]],["text/71-50",[]],["component/71-50",[]],["keyword/71-50",[]],["title/71-51",[7523,76.96]],["name/71-51",[]],["text/71-51",[]],["component/71-51",[]],["keyword/71-51",[]],["title/71-52",[7524,76.96]],["name/71-52",[]],["text/71-52",[]],["component/71-52",[]],["keyword/71-52",[]],["title/71-53",[7525,76.96]],["name/71-53",[]],["text/71-53",[]],["component/71-53",[]],["keyword/71-53",[]],["title/71-54",[7526,76.96]],["name/71-54",[]],["text/71-54",[]],["component/71-54",[]],["keyword/71-54",[]],["title/71-55",[190,23.48,234,28.911,1361,28.66]],["name/71-55",[]],["text/71-55",[]],["component/71-55",[]],["keyword/71-55",[]],["title/71-56",[6588,66.488]],["name/71-56",[]],["text/71-56",[]],["component/71-56",[]],["keyword/71-56",[]],["title/71-57",[1393,52.726]],["name/71-57",[]],["text/71-57",[]],["component/71-57",[]],["keyword/71-57",[]],["title/71-58",[725,24.53,1393,36.864,1448,31.884]],["name/71-58",[]],["text/71-58",[]],["component/71-58",[]],["keyword/71-58",[]],["title/71-59",[7527,76.96]],["name/71-59",[]],["text/71-59",[]],["component/71-59",[]],["keyword/71-59",[]],["title/71-60",[7,8.677,11,15.742,952,17.131,954,20.651,955,15.284]],["name/71-60",[]],["text/71-60",[]],["component/71-60",[]],["keyword/71-60",[]],["title/71-61",[189,17.228,234,22.225,897,25.678,963,21.482,7528,41.364]],["name/71-61",[]],["text/71-61",[]],["component/71-61",[]],["keyword/71-61",[]],["title/71-62",[113,29.449,1361,33.734]],["name/71-62",[]],["text/71-62",[]],["component/71-62",[]],["keyword/71-62",[]],["title/71-63",[1361,28.66,6034,43.606,6035,44.934]],["name/71-63",[]],["text/71-63",[]],["component/71-63",[]],["keyword/71-63",[]],["title/71-64",[1361,33.734,2585,49.958]],["name/71-64",[]],["text/71-64",[]],["component/71-64",[]],["keyword/71-64",[]],["title/71-65",[11,24.104,1177,25.799]],["name/71-65",[]],["text/71-65",[]],["component/71-65",[]],["keyword/71-65",[]],["title/71-66",[963,27.945,977,27.718,1177,21.918]],["name/71-66",[]],["text/71-66",[]],["component/71-66",[]],["keyword/71-66",[]],["title/71-67",[1177,25.799,1353,33.734]],["name/71-67",[]],["text/71-67",[]],["component/71-67",[]],["keyword/71-67",[]],["title/71-68",[11,24.104,1295,31.15]],["name/71-68",[]],["text/71-68",[]],["component/71-68",[]],["keyword/71-68",[]],["title/71-69",[778,28.911,963,27.945,1295,26.464]],["name/71-69",[]],["text/71-69",[]],["component/71-69",[]],["keyword/71-69",[]],["title/71-70",[1295,26.464,1431,29.989,7529,53.808]],["name/71-70",[]],["text/71-70",[]],["component/71-70",[]],["keyword/71-70",[]],["title/71-71",[87,20.898,1363,22.93,1708,25.714]],["name/71-71",[]],["text/71-71",[]],["component/71-71",[]],["keyword/71-71",[]],["title/71-72",[364,22.836,953,17.712,955,17.282,1363,19.932]],["name/71-72",[]],["text/71-72",[]],["component/71-72",[]],["keyword/71-72",[]],["title/71-73",[778,25.131,953,17.712,955,17.282,1363,19.932]],["name/71-73",[]],["text/71-73",[]],["component/71-73",[]],["keyword/71-73",[]],["title/71-74",[1295,26.464,1431,29.989,7530,53.808]],["name/71-74",[]],["text/71-74",[]],["component/71-74",[]],["keyword/71-74",[]],["title/71-75",[3,44.901,688,51.326]],["name/71-75",[]],["text/71-75",[]],["component/71-75",[]],["keyword/71-75",[]],["title/71-76",[1018,31.15,7531,63.334]],["name/71-76",[]],["text/71-76",[]],["component/71-76",[]],["keyword/71-76",[]],["title/71",[953,20.376,954,26.864,1363,22.93]],["name/71",[1363,0.678]],["text/71",[0,0.402,1,0.934,2,0.6,3,0.713,7,1.52,9,0.546,10,0.23,11,3.078,16,2.026,18,0.16,19,0.084,24,0.121,26,0.077,28,0.877,32,0.322,33,0.24,34,0.545,36,0.816,37,0.113,41,0.077,43,1.201,45,0.305,47,0.359,48,0.874,49,0.127,50,1.366,51,0.482,54,0.78,57,0.768,62,0.088,64,0.24,67,0.669,74,1.631,75,0.331,77,0.272,78,0.949,80,4.396,81,1.273,86,0.1,87,1.835,89,1.575,90,0.127,9
11,1.639,97,0.24,101,0.437,103,0.51,108,0.281,110,0.348,111,2.088,112,1.95,113,2.365,114,0.117,117,0.276,119,0.603,120,0.41,122,0.102,123,0.121,124,0.493,125,2.023,126,1.75,127,0.109,128,0.47,132,0.117,133,0.102,138,2.342,142,0.175,144,0.343,145,0.096,146,0.253,148,0.65,149,1.782,151,0.121,153,0.091,154,0.402,162,0.418,164,0.907,165,0.343,166,0.446,167,0.17,169,0.087,170,0.555,172,0.113,175,0.348,176,0.083,177,1.071,178,1.139,180,0.374,181,0.587,182,0.096,184,1.724,188,1.169,189,4.836,190,2.283,198,1.648,199,0.482,200,0.093,201,0.424,202,0.183,203,0.539,206,0.317,207,0.451,211,0.625,216,0.26,217,1.169,218,0.178,221,0.995,223,0.796,224,0.353,228,0.17,229,0.164,233,0.437,234,1.944,236,1.666,237,2.388,241,1.663,250,2.093,251,0.511,258,0.1,259,1.216,262,0.085,265,0.935,267,0.397,293,0.162,310,0.256,329,0.107,334,0.47,335,1.292,343,0.365,344,0.357,345,0.27,346,0.253,350,0.472,352,0.908,355,1.258,359,0.456,361,0.321,363,0.093,364,1.732,367,0.559,368,0.437,369,0.334,370,0.88,371,2.368,374,0.197,376,0.1,377,0.305,379,0.313,382,0.559,386,0.773,388,0.268,389,1.339,391,0.472,393,0.338,394,0.107,395,1.454,396,1.89,397,2.81,398,0.088,399,0.514,404,0.113,409,0.186,420,1.589,421,0.663,465,0.193,471,0.104,565,0.117,605,0.113,682,0.1,685,0.096,688,0.908,690,0.307,691,0.093,692,0.175,693,0.299,694,0.096,695,1.879,698,0.351,700,0.305,701,1.117,702,1.998,705,0.206,708,0.687,710,0.384,711,0.734,713,0.098,716,0.781,717,0.197,721,0.609,722,0.252,723,0.378,724,0.413,725,3.182,726,0.193,728,0.334,729,0.313,730,1.049,731,0.121,737,0.424,741,0.178,745,0.223,747,1.208,748,0.127,754,0.091,757,0.102,759,0.343,760,0.107,761,1.082,764,0.094,766,1.931,767,1.344,769,0.109,771,0.138,772,0.357,774,1.404,777,0.091,778,2.652,779,0.113,781,0.121,782,0.186,788,0.197,789,1.057,790,1.295,792,1.396,794,0.104,796,0.121,797,1.295,798,0.238,801,0.1,803,0.206,804,0.102,805,1.545,811,0.696,812,0.104,814,0.19,816,0.669,817,0.258,819,0.233,820,0.264,821,0.756,822,0.157,825,0.785,826,0.1,828,1.06,829,1.097,831,0.102,834,0.109,840,0.681,841,1.355,842,0.107,843,1.398,845,0.413,846,0.085,851,0.668,852,0.281,854,0.519,855,1.032,857,1.479,858,0.824,861,1.269,862,1.527,864,1.864,866,0.403,867,1.854,869,1.363,870,0.613,871,0.102,872,0.343,874,0.757,877,0.186,879,2.584,880,0.642,881,0.287,882,1.085,883,1.296,885,0.139,888,0.488,889,2.502,890,0.974,894,1.862,895,0.741,896,0.856,897,1.876,898,0.689,900,0.135,901,0.625,902,0.715,903,0.312,906,0.584,911,0.093,914,3.329,915,0.102,935,1.872,939,0.486,941,2.936,942,2.21,944,1.616,945,0.117,948,0.655,951,0.292,952,3.043,953,3.768,954,1.029,955,2.94,957,1.318,958,1.861,959,0.521,963,3.625,964,0.451,966,0.1,969,0.43,970,0.109,973,0.574,974,0.444,975,0.433,976,1.347,977,2.103,978,0.206,983,0.413,985,0.708,986,1.188,988,1.003,989,0.077,990,0.109,994,0.451,999,0.197,1000,0.701,1001,0.452,1003,0.305,1006,0.093,1007,0.107,1008,0.843,1009,0.403,1011,1.995,1013,0.817,1014,0.314,1015,0.322,1016,0.104,1017,0.322,1018,2.73,1020,0.477,1025,1.491,1027,0.084,1031,0.424,1034,0.096,1039,0.113,1040,0.287,1041,0.109,1042,0.107,1044,0.219,1045,3.101,1054,0.24,1055,0.461,1062,0.574,1063,0.499,1064,0.437,1065,1.019,1066,0.331,1067,0.424,1068,0.437,1070,0.747,1072,0.715,1076,0.113,1081,0.264,1082,0.087,1086,0.739,1090,2.037,1092,1.999,1096,0.113,1098,0.317,1100,1.214,1101,0.747,1103,0.608,1104,3.885,1109,0.113,1112,0.201,1114,0.175,1115,1.813,1121,0.102,1123,0.348,1125,2.007,1130,0.197,1140,0.201,1141,1.195,1143,0.246,1148,0.117,1149,0.098,1151,0.135,1152,0.281,1153,0.117,1154,1.127,1159,0.109,1166,2.471,1167,0.322,1169,0.211,1172,1.436,1174,0.091,1175,0.655,1177,4.218,1179,2.424,1180,0.456,1181,0.094,1187,1.071,1189,0.313,1192,1.659,1201,0.178,1202,0.964,1203,0.292,1205,0.193,1206,0.135,1210,0.264,1212,0.19,1213,0.596,1214,0.1,1216,2.397,1219,0.287,1221,0.747,1227,1.105,1234,0.292,1236,3.029,1238,0.217,1239,0.946,1247,0.451,1252,0.665,1253,1.221,1255,1.067,1260,0.268,1261,0.845,1265,0.511,1266,0.201,1267,1.796,1272,0.504,1273,0.901,1278,0.701,1281,0.314,1282,0.127,1283,0.272,1285,0.477,1287,0.728,1291,1.019,1292,0.109,1294,1.843,1295,4.34,1296,1.391,1297,1.288,1298,0.094,1302,0.117,1305,0.331,1306,2.753,1307,0.113,1308,0.299,1311,0.734,1312,0.365,1316,0.287,1320,0.121,1321,0.18,1322,0.104,1325,0.211,1326,0.378,1330,0.536,1331,0.51,1335,1.33,1336,0.459,1339,0.104,1344,1.082,1345,0.281,1350,0.84,1351,
10.301,1352,3.917,1353,1.964,1354,0.307,1355,2.117,1356,0.193,1357,2.214,1358,0.584,1359,0.642,1360,3.069,1361,4.248,1363,3.398,1364,3.055,1365,2.29,1366,0.267,1367,1.301,1369,0.094,1370,0.127,1371,0.107,1372,2.883,1373,2.326,1374,0.461,1379,0.31,1381,0.135,1382,0.121,1383,0.388,1384,0.371,1385,0.246,1386,3.35,1387,0.24,1388,0.253,1390,0.322,1391,0.322,1392,0.484,1393,1.412,1394,0.859,1396,0.329,1397,1.029,1398,0.437,1401,0.135,1402,0.378,1404,0.378,1405,0.09,1406,0.884,1412,0.413,1420,0.094,1424,0.468,1425,0.484,1426,0.206,1427,1.106,1428,0.127,1429,0.183,1430,0.304,1431,2.24,1432,2.76,1434,0.642,1435,0.496,1436,1.762,1437,0.102,1439,0.424,1440,0.292,1441,0.223,1442,0.113,1443,0.967,1444,0.096,1446,2.071,1447,0.211,1448,2.016,1450,0.217,1451,0.619,1453,0.117,1455,0.104,1456,0.217,1457,0.178,1458,2.131,1459,0.096,1461,1.035,1462,1.388,1465,0.24,1466,0.267,1472,0.201,1479,0.183,1483,0.109,1484,0.264,1489,0.127,1502,0.451,1510,0.096,1515,0.235,1518,0.668,1520,0.533,1521,0.113,1522,0.353,1525,0.102,1533,0.527,1534,0.121,1535,0.223,1536,0.591,1539,0.135,1542,0.217,1544,0.19,1545,0.098,1550,0.107,1553,0.536,1554,0.519,1556,0.904,1557,0.211,1564,0.113,1571,0.31,1572,0.193,1573,0.734,1577,0.193,1583,0.317,1586,0.378,1594,0.451,1597,0.272,1601,0.84,1610,0.305,1613,0.201,1615,0.121,1618,0.276,1624,0.657,1629,0.201,1631,0.098,1632,0.819,1657,0.113,1658,0.624,1659,0.127,1692,0.403,1694,0.109,1696,0.117,1697,0.113,1698,0.098,1699,0.127,1700,0.231,1702,0.223,1703,0.193,1704,0.321,1705,0.117,1706,0.519,1708,1.075,1714,0.117,1722,0.684,1725,1.292,1726,0.287,1727,0.107,1728,0.424,1731,0.121,1732,0.624,1733,0.19,1746,0.109,1747,0.679,1750,0.135,1751,2.846,1752,0.477,1756,0.117,1760,0.117,1769,0.135,1770,1.494,1771,0.107,1773,0.61,1774,1.567,1775,0.24,1792,0.252,1794,0.741,1796,0.378,1797,1.494,1798,1.346,1810,0.97,1822,0.559,1824,0.206,1829,0.183,1834,0.299,1836,1.939,1838,0.231,1839,1.02,1844,0.374,1846,0.397,1848,1.059,1855,1.124,1858,0.281,1860,0.459,1865,0.56,1873,0.511,1880,0.625,1890,0.84,1899,2.176,1906,0.371,1909,2.124,1910,0.451,1912,1.446,1913,0.471,1917,0.343,1922,0.117,1923,1.139,1925,0.117,1931,0.574,1934,1.692,1935,0.973,1936,0.665,1974,0.267,1975,0.113,1981,0.292,1990,0.437,1991,0.1,1997,0.403,2001,0.098,2002,0.343,2011,0.659,2031,0.451,2032,0.127,2043,0.252,2059,0.424,2060,0.104,2062,0.102,2082,0.343,2099,0.113,2101,0.567,2112,0.403,2121,0.113,2122,0.127,2123,0.313,2125,2.117,2127,1.082,2130,1.655,2132,0.322,2133,0.701,2134,2.67,2138,1.251,2139,0.121,2142,0.231,2143,0.109,2147,0.223,2153,0.1,2154,0.276,2158,0.397,2165,0.424,2174,0.253,2175,0.109,2176,0.113,2177,0.1,2187,0.223,2190,0.256,2192,0.24,2193,0.206,2210,0.394,2211,0.964,2212,0.371,2216,0.104,2221,0.113,2223,0.223,2229,3.516,2253,0.107,2264,0.378,2271,0.413,2273,0.104,2282,0.127,2296,0.102,2307,0.826,2310,1.928,2316,0.117,2318,0.113,2324,0.193,2325,0.461,2327,0.217,2328,0.113,2338,0.272,2349,0.117,2350,0.121,2351,2.045,2353,0.403,2378,0.135,2379,0.424,2381,1.368,2382,0.109,2411,0.313,2428,0.127,2431,0.127,2438,0.56,2442,0.109,2445,0.109,2447,0.109,2476,0.135,2478,0.292,2488,1.696,2489,1.494,2490,2.56,2491,0.56,2492,0.452,2493,0.217,2494,1.862,2496,0.471,2497,1.43,2498,1.347,2500,0.102,2504,0.127,2505,0.424,2506,0.193,2507,0.223,2508,0.098,2509,0.582,2512,0.374,2514,0.217,2515,0.121,2516,0.948,2522,0.689,2526,0.127,2527,0.343,2529,0.292,2532,0.953,2533,0.252,2537,1.461,2554,0.113,2559,0.493,2561,0.511,2562,0.477,2585,1.06,2593,0.127,2595,0.127,2611,2.015,2613,0.085,2617,0.56,2619,0.135,2630,0.889,2631,2.03,2632,1.089,2633,2.239,2634,0.135,2635,1.065,2637,0.859,2641,0.121,2644,0.397,2645,0.206,2657,1.067,2658,0.121,2659,0.113,2666,1.657,2676,0.343,2679,0.678,2683,1.85,2691,0.525,2694,0.135,2695,0.135,2696,0.343,2699,0.665,2706,0.231,2715,1.056,2716,0.397,2717,0.624,2718,0.582,2720,1.389,2724,0.477,2731,0.135,2733,0.113,2746,0.815,2765,1.084,2783,0.121,2784,1.056,2787,0.217,2795,0.524,2811,0.267,2812,0.24,2813,0.121,2816,0.305,2818,0.24,2820,0.402,2824,0.127,2825,2.214,2826,0.267,2830,0.193,2833,0.183,2836,0.268,2839,0.582,2844,0.217,2845,0.135,2847,0.541,2853,0.741,2855,0.437,2856,1.311,2864,3.058,2867,0.437,2868,0.343,2869,0.252,2873,0.267,2880,0.217,2882,0.109,2884,0.117,2887,0.493,2895,0.267,2899,0.121,2902,0.357,2903,0.276,2906,0.394,2910,0.113,2911,0.121,2912,0.56,2970,0.61,2995,0.135,2996,0.231,2997,0.471,3001,0.223,3004,0.322,3010,0.102,3016,0.61,3049,1.941,3060,0.252,3082,0.949,3112,0.12
11,3119,0.109,3136,0.117,3137,0.413,3138,0.135,3139,0.135,3140,0.471,3169,3.873,3171,0.904,3172,0.127,3181,0.493,3197,0.252,3202,0.24,3203,0.566,3207,0.117,3211,2.03,3232,0.109,3240,0.582,3249,0.104,3264,0.908,3265,0.121,3268,4.488,3272,0.343,3277,0.211,3280,0.127,3303,0.357,3304,0.948,3315,0.127,3324,0.113,3346,0.113,3351,1.007,3356,0.556,3367,0.109,3368,0.135,3374,0.109,3378,0.206,3401,0.117,3403,0.117,3405,0.343,3417,0.113,3418,0.61,3447,0.135,3467,0.493,3488,0.117,3495,0.107,3502,0.104,3507,0.24,3509,0.357,3510,0.135,3515,0.267,3518,0.135,3519,0.121,3537,0.252,3541,0.701,3544,0.386,3550,0.117,3551,1.108,3552,0.799,3553,0.799,3554,0.374,3557,0.223,3566,0.217,3615,0.56,3616,0.135,3618,1.578,3619,0.397,3620,0.135,3622,0.121,3623,0.493,3635,0.648,3639,0.643,3649,0.252,3653,0.252,3654,0.121,3718,0.098,3722,0.231,3725,0.135,3728,0.437,3738,0.113,3743,0.113,3752,0.127,3797,0.799,3800,0.135,3805,0.127,3806,0.24,3807,0.127,3812,0.135,3814,0.231,3829,0.1,3833,0.267,3834,0.24,3835,0.471,3836,0.267,3837,0.135,3838,0.267,3840,0.127,3850,0.231,3852,0.107,3871,0.394,3897,0.24,3903,0.201,3909,0.267,3911,0.217,3912,0.692,3930,0.127,3937,0.201,3940,0.121,3943,0.135,4030,0.322,4037,0.117,4042,0.582,4053,0.908,4080,0.252,4089,0.121,4126,0.56,4133,0.231,4137,0.127,4144,0.692,4160,0.643,4161,0.135,4168,0.121,4171,0.121,4176,0.127,4181,0.127,4191,0.104,4195,1.673,4196,0.107,4209,0.692,4225,0.452,4350,0.113,4356,0.121,4378,0.127,4403,0.397,4428,0.252,4491,0.742,4493,0.113,4557,0.117,4561,0.121,4581,0.206,4603,0.267,4614,0.109,4617,0.135,4630,0.84,4692,0.357,4700,0.252,4709,0.24,4720,0.223,4731,0.135,4735,0.113,4780,0.127,4826,0.343,4846,1.435,4847,0.374,4849,0.582,4851,0.624,4853,0.692,4854,0.135,4859,0.24,4862,0.121,4872,0.252,4878,0.135,4880,0.781,4884,0.252,4901,0.267,4911,0.24,4919,3.303,4920,3.099,4923,2.857,4926,0.121,4935,0.113,4936,0.24,4938,0.113,4943,0.223,4967,0.193,4968,0.267,4969,0.267,4971,0.223,4973,0.127,4978,0.121,4980,0.135,4983,0.313,4986,0.378,4987,0.541,4993,0.135,4996,0.135,5017,0.121,5023,0.231,5030,0.525,5044,0.135,5054,0.109,5066,0.121,5080,0.127,5082,0.607,5083,0.252,5104,0.322,5106,0.135,5133,0.127,5136,0.357,5137,0.267,5164,0.437,5165,0.936,5167,0.953,5174,0.267,5194,1.162,5195,1.108,5223,0.135,5255,0.725,5352,0.107,5353,0.61,5401,0.343,5416,0.127,5419,0.135,5422,0.135,5426,0.24,5440,0.135,5448,0.127,5455,0.135,5456,0.127,5512,0.127,5516,0.524,5520,0.127,5521,0.135,5522,0.524,5523,0.135,5524,0.135,5525,0.135,5526,0.135,5527,0.135,5528,0.135,5529,0.357,5530,0.135,5531,0.135,5532,0.24,5533,0.343,5534,0.135,5559,0.127,5583,0.113,5613,0.135,5623,0.127,5627,0.267,5628,0.135,5633,0.127,5636,0.135,5638,0.725,5639,0.135,5640,1.941,5644,0.135,5647,0.121,5664,0.135,5692,0.135,5693,0.135,5694,0.135,5695,0.648,5696,0.267,5697,0.135,5698,0.267,5699,0.135,5700,0.135,5707,0.61,5733,0.267,5744,0.252,5754,0.252,5766,0.127,5775,0.135,5815,0.127,5817,0.135,5859,0.267,5880,0.231,5891,0.397,5892,0.267,5898,0.267,5900,0.397,5913,0.267,5936,0.135,5939,0.121,5971,0.135,5977,0.127,5994,0.252,6012,0.357,6013,0.121,6014,0.121,6027,0.121,6034,0.424,6035,0.437,6085,0.471,6109,0.135,6117,0.61,6122,0.117,6125,0.127,6127,0.127,6157,0.231,6223,2.342,6281,0.135,6325,0.127,6334,0.135,6407,0.127,6451,0.267,6455,0.648,6456,
11.233,6457,1.67,6458,0.135,6459,0.267,6460,0.135,6461,0.252,6462,0.127,6463,0.135,6464,0.135,6465,0.135,6466,0.135,6467,0.397,6483,0.231,6498,0.267,6501,0.24,6574,0.135,6588,1.862,6595,0.267,6608,0.135,6652,0.135,6688,0.135,6807,0.127,6809,0.135,6818,0.524,6819,0.936,6821,0.135,6831,0.24,6873,0.397,6885,0.135,6932,0.267,6933,0.135,6934,0.127,7023,0.24,7024,0.357,7032,0.135,7050,2.536,7054,2.03,7071,0.252,7140,0.135,7159,0.135,7165,0.267,7169,0.135,7175,0.267,7179,0.397,7189,0.889,7190,0.135,7235,0.135,7247,0.135,7248,0.267,7249,0.135,7250,0.267,7251,0.135,7252,0.135,7253,0.135,7254,0.135,7259,0.493,7270,0.397,7271,0.135,7272,0.267,7285,0.267,7287,0.135,7290,0.135,7309,0.725,7313,0.267,7314,0.135,7318,0.135,7324,0.135,7325,0.267,7327,0.267,7332,0.135,7333,0.135,7344,0.524,7364,0.135,7399,0.374,7400,0.135,7484,0.135,7514,0.77,7515,0.267,7516,0.524,7517,0.889,7518,2.06,7519,1.121,7520,0.889,7521,0.889,7522,1.056,7523,1.121,7524,0.135,7525,1.233,7526,1.006,7527,0.524,7528,1.006,7529,1.558,7530,0.267,7531,0.77,7532,0.291,7533,0.147,7534,0.147,7535,0.147,7536,0.147,7537,0.147,7538,0.147,7539,0.147,7540,0.291,7541,0.147,7542,0.432,7543,0.291,7544,0.147,7545,0.147,7546,0.291,7547,0.147,7548,0.147,7549,0.147,7550,0.147,7551,0.147,7552,0.147,7553,0.147,7554,0.147,7555,0.147,7556,0.147,7557,0.147,7558,0.147,7559,0.291,7560,0.147,7561,0.291,7562,0.291,7563,0.705,7564,0.147,7565,0.838,7566,0.147,7567,0.648,7568,0.77,7569,0.291,7570,0.291,7571,0.147,7572,0.147,7573,0.838,7574,0.291,7575,0.147,7576,0.135,7577,0.135,7578,0.147,7579,0.147,7580,0.147,7581,0.77,7582,0.147,7583,0.147,7584,0.77,7585,0.291,7586,0.291,7587,0.267,7588,0.267,7589,0.432,7590,0.432,7591,0.397,7592,0.77,7593,0.397,7594,0.432,7595,0.397,7596,0.432,7597,0.147,7598,0.147,7599,0.147,7600,0.291,7601,0.147,7602,0.291,7603,0.291,7604,0.291,7605,0.147,7606,0.147,7607,0.147,7608,0.432,7609,0.147,7610,0.291,7611,0.291,7612,0.147,7613,0.147,7614,0.147,7615,0.147,7616,0.147,7617,0.147,7618,0.147,7619,0.147,7620,0.291,7621,0.291,7622,0.147,7623,0.147,7624,0.147,7625,0.147,7626,0.147,7627,0.147,7628,0.147,7629,0.147,7630,0.147,7631,0.147,7632,0.147,7633,0.147,7634,0.147,7635,0.432,7636,0.147,7637,0.147,7638,0.147,7639,0.147,7640,0.147,7641,0.147,7642,0.147,7643,0.147,7644,0.291,7645,0.147,7646,0.147,7647,0.267,7648,1.342,7649,0.432,7650,2.242,7651,1.095,7652,0.705,7653,0.432,7654,0.397,7655,0.147,7656,0.147,7657,0.147,7658,0.147,7659,0.147,7660,0.291,7661,0.147,7662,0.147,7663,0.291,7664,0.291,7665,0.147,7666,0.147,7667,0.432,7668,0.291,7669,0.147,7670,0.147,7671,0.147,7672,0.291,7673,0.147,7674,0.291,7675,0.147,7676,0.147,7677,0.147,7678,0.147,7679,0.147,7680,0.147,7681,0.147,7682,0.432,7683,0.147,7684,0.291,7685,0.147,7686,0.147,7687,0.147,7688,0.147,7689,0.432,7690,0.147,7691,0.147,7692,0.147,7693,0.147,7694,0.147,7695,0.291,7696,0.291,7697,0.147,7698,0.291,7699,0.267,7700,0.267,7701,1.006,7702,0.291,7703,0.147,7704,0.291,7705,0.291,7706,0.291,7707,0.147,7708,0.147,7709,0.147,7710,0.135,7711,0.705,7712,0.57,7713,0.705,7714,0.291,7715,0.147,7716,0.432,7717,0.432,7718,0.147,7719,0.147,7720,0.147,7721,0.147,7722,1.558,7723,1.095,7724,0.291,7725,0.889,7726,0.968,7727,0.147,7728,0.432,7729,0.432,7730,0.147,7731,0.147,7732,0.291,7733,0.147,7734,0.147,7735,0.291,7736,0.291,7737,0.147,7738,0.147,7739,0.147,7740,0.147,7741,0.135,7742,0.291,7743,0.147,7744,0.147,7745,0.147,7746,1.809,7747,0.147,7748,0.147,7749,0.147,7750,0.147,7751,0.147,7752,0.147,7753,0.147,7754,0.147,7755,0.147,7756,0.147,7757,0.291,7758,0.57,7759,0.147,7760,0.147,7761,0.147,7762,0.147,7763,0.147,7764,0.147,7765,0.147,7766,0.147,7767,0.147,7768,0.147,7769,0.291,7770,0.147,7771,0.147,7772,0.147,7773,0.147,7774,0.147,7775,0.147,7776,0.147,7777,0.147,7778,0.147,7779,0.147,7780,0.147,7781,0.147,7782,0.147,7783,0.147,7784,0.147,7785,0.291,7786,0.147,7787,0.147,7788,0.147,7789,0.147,7790,0.147,7791,0.147,7792,0.147,7793,0.147,7794,0.147,7795,0.147,7796,0.147,7797,0.135,7798,0.147,7799,0.147,7800,0.147,7801,0.147,7802,0.147,7803,0.147,7804,0.147,7805,0.147,7806,0.147,7807,0.147,7808,0.147,7809,0.147,7810,0.432,7811,0.147,7812,0.147,7813,0.147,7814,0.147,7815,0.147,7816,0.147,7817,0.147,7818,0.147,7819,0.147,7820,0.147,7821,0.147,7822,0.267,7823,0.57,7824,0.147,7825,0.147,7826,0.147,7827,0.147,7828,0.147,7829,0.147,7830,0.291,7831,0.147,7832,0.147,7833,0.147,7834,0.147,7835,0.432,7836,0.432,7837,0.432,7838,0.432,7839,0.147,7840,0.147,7841,0.432,7842,0.147,7843,0.147,7844,0.147,7845,0.291,7846,0.147,7847,0.147,7848,0.648,7849,0.291,7850,0.432,7851,0.147,7852,0.147,7853,0.147,7854,0.147,7855,0.147,7856,0.147,7857,0.147,7858,0.147,7859,0.147,7860,0.135,7861,0.147,7862,0.147,7863,0.147,7864,0.147,7865,0.147,7866,0.147,7867,0.147,7868,0.147,7869,0.147,7870,0.147,7871,0.147,7872,0.147,7873,0.147,7874,0.147,7875,0.147,7876,0.147,7877,0.432,7878,0.147,7879,0.147,7880,0.147,7881,1.095,7882,0.291,7883,0.432,7884,0.147,7885,0.135,7886,0.147,7887,0.147,7888,0.147,7889,0.147,7890,0.147,7891,0.147,7892,0.147,7893,0.147,7894,0.147,7895,0.147,7896,0.291,7897,0.147,7898,0.291,7899,0.147,7900,0.147,7901,0.147,7902,0.147,7903,0.147,7904,0.147,7905,0.135,7906,0.291,7907,0.147,7908,0.432,7909,0.147,7910,0.432,7911,0.291,7912,0.291,7913,0.147,7914,0.147,7915,0.147,7916,0.648,7917,0.147,7918,0.147,7919,0.147,7920,0.147,7921,0.147,7922,0.147,7923,0.432,7924,0.147,7925,0.147,7926,0.147,7927,0.147,7928,0.147,7929,0.147,7930,0.147,7931,0.147,7932,0.147,7933,0.147,7934,0.147,7935,0.147,7936,0.147,7937,0.968,7938,0.147,7939,0.147,7940,0.135,7941,0.147,7942,0.147,7943,0.147,7944,0.147,7945,
10.291,7946,0.147,7947,0.267,7948,0.127,7949,0.147,7950,0.135,7951,0.147,7952,0.147,7953,0.147,7954,0.432,7955,0.147,7956,0.147,7957,0.147,7958,0.147,7959,0.291,7960,0.291,7961,0.147,7962,0.291,7963,0.291,7964,0.432,7965,0.432,7966,0.432,7967,0.147,7968,0.147,7969,0.147,7970,0.147,7971,0.147,7972,0.147,7973,0.147,7974,0.147,7975,0.147,7976,0.147,7977,0.291,7978,0.147,7979,0.291,7980,0.291,7981,0.147,7982,0.291,7983,0.147,7984,0.147,7985,0.147,7986,0.147,7987,0.147,7988,0.147,7989,0.147,7990,0.147,7991,0.147,7992,0.147,7993,0.432,7994,0.291,7995,0.147,7996,0.147,7997,0.291,7998,0.147,7999,0.147,8000,0.147,8001,0.147,8002,0.147,8003,0.968,8004,0.147,8005,0.147,8006,0.147,8007,0.135,8008,0.147,8009,0.147,8010,0.147,8011,0.291,8012,0.57,8013,0.147,8014,0.432,8015,0.147,8016,0.147,8017,0.705,8018,0.147,8019,0.135,8020,0.147,8021,0.291,8022,0.147,8023,0.291,8024,0.147,8025,0.291,8026,0.147,8027,0.147,8028,0.147,8029,0.147,8030,0.147,8031,0.147,8032,0.147,8033,0.147,8034,0.147,8035,0.432,8036,0.147,8037,0.147,8038,0.147,8039,0.432,8040,0.291,8041,0.147,8042,0.147,8043,0.147,8044,0.291,8045,0.57,8046,0.147,8047,0.147,8048,0.147,8049,0.147,8050,0.147,8051,0.147,8052,0.397,8053,0.147,8054,0.147,8055,0.147,8056,0.147,8057,0.147,8058,0.147,8059,0.147,8060,0.432,8061,0.147,8062,0.147,8063,0.147,8064,0.147,8065,0.291,8066,0.147,8067,0.147,8068,0.147,8069,0.147,8070,0.57,8071,0.147,8072,0.147,8073,0.147,8074,0.147,8075,0.147,8076,0.291,8077,0.147,8078,0.147,8079,0.147,8080,0.147,8081,0.291,8082,0.432,8083,0.432,8084,0.432,8085,0.432,8086,0.147,8087,0.147,8088,0.147,8089,0.147,8090,0.147,8091,0.147,8092,0.267,8093,0.432,8094,0.147,8095,0.147,8096,0.147,8097,0.147,8098,0.147,8099,0.147,8100,0.291,8101,0.147,8102,0.147,8103,0.147,8104,0.147,8105,0.147,8106,0.147,8107,0.147,8108,0.291,8109,0.147,8110,0.147,8111,0.147,8112,0.147,8113,0.147,8114,0.147,8115,0.147,8116,0.147,8117,0.147,8118,0.147,8119,0.127,8120,0.147,8121,0.147,8122,0.147,8123,0.147,8124,0.147,8125,0.147,8126,0.147,8127,0.291,8128,0.291,8129,0.147,8130,0.147,8131,0.147,8132,0.147,8133,0.291,8134,0.147,8135,0.147,8136,0.147,8137,0.147,8138,0.147,8139,0.147,8140,0.147,8141,0.147,8142,0.147,8143,0.57,8144,0.147,8145,0.147,8146,0.147,8147,0.147,8148,0.147,8149,0.147,8150,0.147,8151,0.147,8152,0.135,8153,0.432,8154,0.147,8155,0.291,8156,0.147,8157,0.291,8158,0.147,8159,0.147,8160,0.147,8161,0.147,8162,0.432,8163,0.147,8164,0.147,8165,0.147,8166,0.147]],["component/71",[7,0.29]],["keyword/71",[]],["title/72",[258,39.636,953,20.376,954,26.864]],["name/72",[258,1.172]],["text/72",[1060,8.428]],["component/72",[7,0.29]],["keyword/72",[]],["title/73-1",[5352,60.706]],["name/73-1",[]],["text/73-1",[]],["component/73-1",[]],["keyword/73-1",[]],["title/73-2",[111,27.945,1140,40.481,1571,31.884]],["name/73-2",[]],["text/73-2",[]],["component/73-2",[]],["keyword/73-2",[]],["title/73-3",[953,23.984,1583,38.387]],["name/73-3",[]],["text/73-3",[]],["component/73-3",[]],["keyword/73-3",[]],["title/73-4",[1177,25.799,1923,36.734]],["name/73-4",[]],["text/73-4",[]],["component/73-4",[]],["keyword/73-4",[]],["title/73-5",[1295,31.15,1431,35.298]],["name/73-5",[]],["text/73-5",[]],["component/73-5",[]],["keyword/73-5",[]],["title/73-6",[1177,25.799,4916,49.958]],["name/73-6",[]],["text/73-6",[]],["component/73-6",[]],["keyword/73-6",[]],["title/73-7",[111,27.945,774,29.989,5975,46.486]],["name/73-7",[]],["text/73-7",[]],["component/73-7",[]],["keyword/73-7",[]],["title/73",[111,27.945,953,20.376,954,26.864]],["name/73",[1384,1.128]],["text/73",[11,1.748,16,1.215,18,2.753,32,0.887,34,0.671,36,0.573,48,0.776,50,1.378,51,1.093,54,1.083,75,1.432,80,4.272,81,0.573,87,1.784,89,0.999,111,4.461,113,3.14,125,1.388,126,3.074,138,2.65,146,0.697,149,0.519,162,1.808,164,0.931,165,0.716,176,1.236,177,0.628,181,0.573,189,5.013,190,0.477,198,0.464,202,0.75,203,0.97,207,0.641,211,0.61,217,1.006,236,2.385,237,1.467,241,0.559,334,1.48,345,1.038,346,0.697,367,0.688,368,0.738,371,2.447,383,0.914,389,0.943,393,1.301,395,1.055,396,1.492,397,2.741,398,0.716,399,0.559,409,1.404,420,1.368,421,1.083,465,2.514,471,1.551,681,0.842,688,2.821,695,1.047,698,1.093,702,0.512,708,0.61,716,0.762,721,0.75,761,0.527,767,2.637,773,0.842,774,1.123,776,0.983,778,0.588,782,0.762,788,2.064,789,1.208,792,0.956,825,0.697,829,1.492,843,1.455,846,0.688,852,2.468,857,0.583,858,0.671,861,0.593,862,0.568,864,1.038,867,2.611,871,0.823,880,1.456,883,0.527,884,0.716,889,0.614,890,1.181,894,1.904,902,0.635,903,0.97,914,1.181,939,1.102,940,1.485,941,2.563,944,0.937,953,3.531,954,2.293,955,3.262,957,1.093,958,0.999,959,0.641,963,4.07,974,0.75,977,0.564,986,1.064,987,0.806,1006,
10.75,1011,1.998,1013,0.616,1014,1.208,1028,1.094,1045,4.509,1048,1.551,1055,0.656,1082,0.706,1086,0.656,1090,1.467,1092,0.593,1100,1.006,1101,0.663,1104,4.725,1115,3.45,1125,1.006,1140,6.725,1143,0.679,1154,5.809,1166,1.629,1174,0.738,1177,4.079,1179,2.965,1180,2.413,1181,6.609,1187,0.628,1195,0.887,1205,0.79,1210,0.727,1239,0.555,1247,0.762,1255,0.75,1267,3.019,1273,2.852,1281,4.047,1283,0.75,1287,0.593,1291,1.236,1294,4.645,1295,4.225,1296,3.263,1297,2.081,1306,3.772,1311,0.716,1316,2.941,1335,0.622,1352,1.222,1353,1.073,1357,0.762,1358,0.635,1361,0.583,1363,2.76,1373,2.188,1374,1.208,1379,0.648,1384,1.986,1386,1.986,1402,0.79,1419,0.806,1420,0.762,1426,0.842,1431,4.921,1432,0.679,1436,1.592,1441,0.616,1446,1.793,1458,4.155,1515,0.648,1516,0.914,1522,5.161,1554,0.738,1555,1.683,1571,5.297,1594,2.425,1598,7.155,1704,0.671,1708,4.042,1747,0.663,1771,1.59,1822,3.67,1873,0.727,1880,0.679,1923,4.439,1931,1.301,1997,1.551,2011,1.319,2029,2.821,2114,0.914,2143,0.887,2158,0.671,2177,0.806,2190,0.706,2208,0.823,2229,0.716,2310,1.359,2354,0.887,2379,0.887,2447,0.887,2478,0.806,2514,0.887,2522,3.147,2530,5.162,2532,1.429,2537,0.776,2611,1.381,2645,0.842,2657,1.919,2666,1.485,2679,0.738,2720,6.164,2724,0.806,2816,0.842,2825,1.404,2829,0.863,2833,6.553,3052,0.863,3119,0.887,3268,2.965,3272,3.579,3277,0.863,3614,0.842,3654,0.983,3669,5.815,3718,1.456,3803,6.612,3829,0.806,3871,2.108,3911,2.27,4133,0.945,4163,1.516,4186,0.842,4191,1.551,4195,0.727,4703,0.914,4880,1.404,4916,2.21,4919,0.914,4920,0.887,4923,0.79,4986,0.79,5028,0.983,5040,0.945,5054,0.887,5165,0.762,5167,0.776,5458,1.031,5583,0.914,5612,1.031,5658,0.914,5661,1.811,5899,0.983,5975,4.368,5976,0.983,5978,1.094,5985,0.983,5986,4.073,5987,1.898,5988,2.015,5989,2.015,5990,2.015,5991,2.802,5992,1.094,5993,1.094,5994,2.639,6007,2.802,6008,0.983,6016,4.543,6017,1.031,6019,2.802,6021,3.66,6025,7.838,6044,1.094,6045,1.094,6047,2.639,6052,1.811,6054,2.015,6055,1.094,6057,5.82,6059,5.839,6060,3.481,6061,2.015,6062,4.073,6063,2.802,6064,1.031,6065,2.639,6066,2.015,6067,1.094,6068,1.094,6069,1.094,6070,1.094,6071,1.094,6072,1.094,6073,1.094,6074,1.094,6077,1.094,6078,1.094,6083,1.094,6084,2.015,6085,0.983,6086,2.015,6098,1.031,6240,1.094,6483,0.945,8119,2.639,8167,1.191,8168,1.191,8169,8.889,8170,5.468,8171,3.049,8172,1.191,8173,1.191,8174,1.191,8175,1.094,8176,1.094,8177,1.191,8178,1.094,8179,2.015,8180,1.191,8181,4.432,8182,4.073,8183,1.191,8184,2.802,8185,2.015,8186,1.094,8187,2.015,8188,1.094,8189,2.193,8190,2.193,8191,1.191,8192,1.094,8193,1.094,8194,1.094,8195,2.015,8196,1.094,8197,1.094,8198,1.191,8199,1.191,8200,3.049,8201,1.191,8202,1.191,8203,3.049,8204,1.191,8205,1.191,8206,1.191,8207,1.191,8208,3.049,8209,1.191,8210,1.191,8211,1.191,8212,1.191,8213,1.191,8214,1.191,8215,1.191,8216,2.193,8217,1.191,8218,1.191,8219,1.191,8220,1.191,8221,1.191,8222,1.191]],["component/73",[7,0.29]],["keyword/73",[]],["title/74-1",[5352,60.706]],["name/74-1",[]],["text/74-1",[]],["component/74-1",[]],["keyword/74-1",[]],["title/74-2",[953,23.984,1583,38.387]],["name/74-2",[]],["text/74-2",[]],["component/74-2",[]],["keyword/74-2",[]],["title/74-3",[1177,25.799,1923,36.734]],["name/74-3",[]],["text/74-3",[]],["component/74-3",[]],["keyword/74-3",[]],["title/74-4",[1295,31.15,1431,35.298]],["name/74-4",[]],["text/74-4",[]],["component/74-4",[]],["keyword/74-4",[]],["title/74-5",[1177,25.799,1597,43.391]],["name/74-5",[]],["text/74-5",[]],["component/74-5",[]],["keyword/74-5",[]],["title/74",[112,32.241,953,20.376,954,26.864]],["name/74",[2500,1.197]],["text/74",[7,0.73,11,2.697,16,1.51,18,1.529,36,0.743,48,1.005,50,2.092,51,1.887,57,2.525,75,1.778,80,4.353,81,0.743,87,1.352,112,5.669,113,2.768,125,1.265,126,1.211,128,1.348,138,3.579,144,0.928,146,2.709,149,2.018,154,0.88,164,1.607,170,0.703,176,0.87,177,0.814,181,0.743,189,5.015,190,0.619,202,0.972,203,1.675,211,0.79,217,0.708,233,1.451,236,2.914,237,2.863,240,1.119,241,2.174,334,1.348,343,2.424,344,1.356,345,1.315,352,1.88,364,0.692,367,0.892,371,2.912,383,1.184,386,0.755,389,0.664,393,0.915,395,1.337,397,1.887,398,0.928,399,0.725,409,1.778,420,0.692,421,0.762,465,3.072,565,2.205,605,1.184,681,1.964,693,1.067,695,3.313,698,0.769,701,0.85,702,1.629,708,0.79,711,2.278,725,1.939,727,1.005,728,1.626,760,1.119,761,1.228,767,3.139,773,1.091,790,0.755,792,1.652,817,0.698,825,2.216,829,0.755,852,1.005,857,0.755,858,0.87,862,0.737,864,3.479,867,2.195,877,0.988,879,1.695,882,0.988,889,1.495,894,1.396,902,0.823,903,2.047,913,0.88,914,0.831,939,1.396,940,1.88,941,2.614,942,0.85,944,1.187,953,3.693,954,3.821,955,2.729,958,1.265,963,4.101,966,1.045,977,1.315,986,1.348,987,1.045,989,0.806,990,1.149,1008,4.799,1011,0.814,1013,0.798,1014,1.529,1018,1.255,1044,0.783,1045,3.841,1055,1.529,1064,0.956,1070,0.86,1086,1.529,1090,1.822,1092,0.769,1100,1.274,1101,0.86,1104,5.848,1115,4.205,1154,3.417,1158,1.045,1166,1.991,1177,4.291,1179,3.168,1180,1.512,1181,6.73,1192,0.823,1195,1.149,1203,1.045,1205,1.024,1210,1.695,1212,1.005,1239,0.719,1247,0.988,1255,0.972,1267,0.783,1272,1.671,1273,4.192,1281,2.085,1283,1.749,1291,0.87,1294,4.579,1295,4.414,1296,2.246,1297,2.794,1306,3.41,1311,0.928,1335,0.806,1352,2.109,1353,0.755,1354,0.831,1357,0.988,1361,0.755,1363,3.147,1365,1.315,1373,1.371,1374,0.85,1379,0.84,1402,1.024,1426,1.091,1430,0.823,1431,3.764,1432,2.16,1435,1.423,1436,1.451,1441,0.798,1442,1.184,1446,0.731,1458,4.523,1515,0.84,1522,2.868,1536,2.825,1597,0.972,1598,1.149,1624,0.831,1708,4.063,1733,1.005,1747,0.86,1822,1.605,1848,0.903,1923,2.467,1931,1.648,2011,1.671,2031,1.778,2114,1.184,2158,0.87,2177,1.045,2310,1.721,2325,0.85,2351,2.564,2354,1.149,2443,2.293,2478,1.045,2500,2.618,2522,1.749,2529,1.045,2530,4.028,2532,1.005,2611,1.749,2666,1.88,2679,1.721,2691,1.149,2720,1.721,2829,2.745,2833,5.941,2853,6.611,2854,2.068,2855,4.972,2856,5.59,2903,0.988,3052,1.119,3119,1.149,3211,2.131,3249,1.964,3272,2.784,3502,1.091,3614,1.091,3618,0.956,3718,1.843,3829,1.045,3871,3.692,4037,1.225,4163,1.92,4186,1.091,4578,1.418,4579,1.418,4703,1.184,4846,1.091,4852,1.964,4880,0.988,4920,1.149,4923,1.024,4986,3.544,4987,1.184,5005,2.068,5010,2.068,5091,1.418,5165,2.963,5167,3.015,5194,1.336,5195,1.274,5529,3.127,5532,2.293,5533,3.674,5658,1.184,5661,2.293,5976,1.274,5984,1.336,5985,1.274,6008,1.274,6016,3.822,6021,5.731,6052,1.274,6057,4.913,6064,2.404,6098,1.336,6123,1.418,6124,3.48,6125,1.336,6126,1.418,6127,1.336,6128,1.418,6129,1.418,6130,1.418,6131,1.418,6132,1.418,6133,1.418,6134,1.418,6135,1.418,6136,1.418,6137,1.418,6138,1.418,6139,1.418,614
10,1.418,6151,1.418,6153,2.552,6154,3.48,6159,1.418,6164,1.418,6165,1.418,6169,2.552,6170,1.418,6172,2.552,6483,2.205,7581,2.552,7591,1.418,7592,2.552,7593,1.418,7595,1.418,8119,1.336,8170,5.953,8175,1.418,8176,1.418,8178,1.418,8179,1.418,8182,3.48,8184,2.552,8185,1.418,8186,1.418,8187,1.418,8188,1.418,8192,1.418,8193,1.418,8194,1.418,8195,2.552,8196,1.418,8197,1.418,8223,1.543,8224,1.543,8225,1.543,8226,1.543,8227,9.437,8228,1.543,8229,1.543,8230,2.777,8231,1.543,8232,1.543,8233,1.543,8234,1.543,8235,1.543,8236,8.327,8237,4.628,8238,4.628,8239,1.543,8240,2.777,8241,1.543,8242,2.777,8243,2.777,8244,1.543,8245,1.543]],["component/74",[7,0.29]],["keyword/74",[]],["title/75-1",[138,26.081,1166,25.188,1357,37.483]],["name/75-1",[]],["text/75-1",[]],["component/75-1",[]],["keyword/75-1",[]],["title/75-2",[1357,44.12,3618,42.708]],["name/75-2",[]],["text/75-2",[]],["component/75-2",[]],["keyword/75-2",[]],["title/75-3",[389,19.363,727,29.325,1357,28.815,1834,31.119,2720,27.892]],["name/75-3",[]],["text/75-3",[]],["component/75-3",[]],["keyword/75-3",[]],["title/75-4",[778,28.911,944,25.019,1357,37.483]],["name/75-4",[]],["text/75-4",[]],["component/75-4",[]],["keyword/75-4",[]],["title/75",[953,20.376,1351,30.888,2820,33.403]],["name/75",[4493,0.723,6192,0.866]],["text/75",[1,0.828,7,1.467,11,2.391,16,2.541,34,0.847,36,2.183,50,2.051,54,1.83,57,0.638,62,0.904,67,1.875,74,2.372,75,2.994,77,1.707,80,4.536,87,2.44,89,2.387,113,3.251,120,0.736,125,1.235,126,2.286,138,4.497,144,0.904,146,0.88,148,1.445,162,2.691,164,0.638,166,0.801,170,1.235,177,1.431,182,0.979,184,1.836,188,1.846,189,4.933,190,3.182,198,0.585,202,0.946,203,0.665,237,4.729,241,1.274,250,4.35,258,1.017,265,1.402,334,0.729,369,0.88,371,0.736,386,2.221,389,1.167,392,2.492,393,2.691,395,1.305,397,1.351,420,1.217,698,0.749,701,1.493,702,1.594,708,1.898,725,2.196,747,1.461,761,0.665,766,1.305,778,2.589,789,0.828,790,2.863,792,2.982,794,1.918,805,0.818,814,0.979,819,0.81,820,0.917,826,1.836,843,0.717,855,0.857,862,1.769,866,0.723,867,1.115,879,0.917,889,2.508,895,1.017,898,0.946,906,0.801,914,2.824,941,3.427,942,2.04,944,1.583,953,3.468,954,2.405,955,2.584,957,2.914,958,1.235,963,1.294,975,0.777,977,3.237,985,0.793,986,2.202,1011,1.955,1013,0.777,1018,2.882,1025,1.727,1031,2.229,1040,0.997,1041,1.119,1045,2.26,1048,1.063,1053,1.875,1062,0.891,1065,0.626,1067,0.904,1070,1.511,1072,1.445,1090,0.723,1115,3.121,1125,1.7,1139,1.241,1141,2.418,1143,0.857,1166,4.395,1175,1.017,1177,2.97,1179,0.891,1203,1.017,1210,0.917,1213,2.471,1214,1.017,1227,1.916,1248,1.039,1261,0.946,1267,1.376,1273,2.991,1278,0.962,1281,1.493,1291,0.847,1294,0.801,1295,2.051,1297,3.211,1308,1.039,1344,2.088,1351,1.431,1352,4.42,1353,3.121,1354,3.151,1355,3.822,1356,2.459,1357,7.063,1359,0.997,1363,3.79,1364,1.351,1365,0.711,1373,1.339,1379,1.477,1383,1.493,1386,6.089,1387,3.06,1397,4.154,1398,2.296,1402,2.459,1419,1.836,1425,1.567,1427,1.675,1429,1.707,1432,0.857,1435,0.77,1436,2.369,1441,0.777,1443,2.588,1444,0.979,1446,1.284,1448,1.477,1451,0.962,1458,3.265,1459,0.979,1461,1.655,1502,0.962,1536,2.769,1556,0.801,1573,1.631,1594,0.962,1631,0.997,1632,3.891,1694,2.02,1733,0.979,1822,1.567,1834,4.727,1839,0.904,1855,0.88,1858,0.979,1899,2.955,1909,3.882,1912,1.017,1923,1.445,1931,1.609,1934,6.333,1935,4.24,1936,4.644,1981,1.017,2011,0.904,2054,1.017,2060,1.918,2114,1.153,2125,2.766,2134,5.705,2153,1.017,2158,0.847,2171,1.241,2174,1.587,2190,1.609,2193,1.063,2229,2.229,2310,0.931,2351,1.836,2514,1.119,2522,0.946,2530,3.549,2613,3.379,2633,2.459,2657,2.856,2720,6.643,2788,2.239,2820,2.991,2830,3.882,2844,1.119,2906,1.039,2997,1.241,3001,1.153,3207,1.193,3211,3.482,3249,1.063,3268,3.782,3346,2.081,3356,3.882,3401,1.193,3409,1.381,3410,1.301,3502,1.063,3541,1.966,3544,1.017,3612,3.927,3615,1.193,3618,4.237,3897,1.241,3911,1.119,3912,1.241,4030,1.119,4180,4.162,4195,0.917,4405,1.301,4554,1.089,4614,2.76,4861,1.089,4880,0.962,4892,3.208,4893,2.347,4896,3.06,4897,1.301,4898,1.301,4899,3.208,4900,3.208,4919,2.844,4920,3.379,4923,3.011,4931,1.301,4933,1.301,4943,3.482,4944,2.942,4947,2.347,4949,1.301,4957,1.381,4963,1.381,4966,1.381,4974,1.301,4976,1.241,5030,1.119,5195,2.239,5255,2.347,5264,1.381,5265,1.381,5277,1.381,5640,6.868,6034,1.119,6268,4.818,7567,5.859,7568,2.492,7576,1.381,7577,1.381,7584,1.381,7587,1.381,7588,1.381,7647,4.818,7654,1.381,8246,1.503,8247,2.712,8248,2.712,8249,2.712,8250,2.712,8251,7.246,8252,1.503,8253,2.712,8254,2.712,8255,1.503,8256,1.503,8257,1.503,8258,1.503,8259,2.712,8260,1.503,8261,1.503,8262,5.242,8263,5.849,8264,2.712,8265,1.503,8266,1.503,8267,2.712,8268,1.503,8269,1.503,8270,2.712,8271,1.503,8272,1.503,8273,1.503,8274,1.503,8275,1.503,8276,2.712,8277,1.503,8278,1.503,8279,3.706,8280,1.503,8281,1.503,8282,1.503,8283,1.503]],["component/75",[7,0.29]],["keyword/75",[]],["title/76",[953,23.984,954,31.62]],["name/76",[771,0.82]],["text/76",[6,4.379,7,2.225,8,3.321,11,2.843,16,3.24,75,3.818,87,3.86,110,5.
1061,111,4.892,112,5.645,128,2.79,162,4.822,164,2.44,170,2.618,223,3.131,237,3.912,250,2.945,329,4.168,389,4.41,397,4.05,409,3.681,421,2.839,465,7.178,725,2.409,761,4.534,767,5.923,778,4.014,789,3.166,792,2.507,805,3.131,841,2.658,843,2.744,889,1.61,902,4.333,911,3.62,912,3.563,941,3.805,944,2.457,953,4.319,954,5.501,955,3.812,962,4.977,983,4.168,1018,2.599,1027,3.28,1062,3.41,1090,2.767,1101,3.202,1141,3.064,1177,3.043,1181,5.204,1236,3.509,1306,2.543,1351,4.288,1354,4.379,1363,4.695,1398,5.844,1443,3.28,1446,2.722,1708,3.57,1858,3.746,1923,3.064,2138,3.746,2229,4.89,2613,3.321,2820,3.28,2833,5.118,3356,3.816,3367,4.282,3541,4.168,3739,4.747,3740,5.283,3741,5.283,3743,4.412,3753,4.747,4184,4.977,6122,7.487,6308,5.283]],["component/76",[7,0.29]],["keyword/76",[]],["title/77-1",[1351,36.357,1708,30.266]],["name/77-1",[]],["text/77-1",[]],["component/77-1",[]],["keyword/77-1",[]],["title/77-2",[4123,69.153]],["name/77-2",[]],["text/77-2",[]],["component/77-2",[]],["keyword/77-2",[]],["title/77-3",[4141,72.491]],["name/77-3",[]],["text/77-3",[]],["component/77-3",[]],["keyword/77-3",[]],["title/77-4",[4124,72.491]],["name/77-4",[]],["text/77-4",[]],["component/77-4",[]],["keyword/77-4",[]],["title/77-5",[113,25.019,944,25.019,4123,48.349]],["name/77-5",[]],["text/77-5",[]],["component/77-5",[]],["keyword/77-5",[]],["title/77-6",[4126,66.488]],["name/77-6",[]],["text/77-6",[]],["component/77-6",[]],["keyword/77-6",[]],["title/77-7",[2554,64.269]],["name/77-7",[]],["text/77-7",[]],["component/77-7",[]],["keyword/77-7",[]],["title/77-8",[4127,69.153]],["name/77-8",[]],["text/77-8",[]],["component/77-8",[]],["keyword/77-8",[]],["title/77-9",[4389,72.491]],["name/77-9",[]],["text/77-9",[]],["component/77-9",[]],["keyword/77-9",[]],["title/77-10",[4395,72.491]],["name/77-10",[]],["text/77-10",[]],["component/77-10",[]],["keyword/77-10",[]],["title/77-11",[113,25.019,944,25.019,4127,48.349]],["name/77-11",[]],["text/77-11",[]],["component/77-11",[]],["keyword/77-11",[]],["title/77-12",[821,42.708,8284,68.918]],["name/77-12",[]],["text/77-12",[]],["component/77-12",[]],["keyword/77-12",[]],["title/77-13",[4129,69.153]],["name/77-13",[]],["text/77-13",[]],["component/77-13",[]],["keyword/77-13",[]],["title/77-14",[944,29.449,4129,56.91]],["name/77-14",[]],["text/77-14",[]],["component/77-14",[]],["keyword/77-14",[]],["title/77-15",[8285,76.96]],["name/77-15",[]],["text/77-15",[]],["component/77-15",[]],["keyword/77-15",[]],["title/77-16",[8286,76.96]],["name/77-16",[]],["text/77-16",[]],["component/77-16",[]],["keyword/77-16",[]],["title/77-17",[8287,76.96]],["name/77-17",[]],["text/77-17",[]],["component/77-17",[]],["keyword/77-17",[]],["title/77-18",[8288,76.96]],["name/77-18",[]],["text/77-18",[]],["component/77-18",[]],["keyword/77-18",[]],["title/77-19",[8289,76.96]],["name/77-19",[]],["text/77-19",[]],["component/77-19",[]],["keyword/77-19",[]],["title/77-20",[8290,76.96]],["name/77-20",[]],["text/77-20",[]],["component/77-20",[]],["keyword/77-20",[]],["title/77-21",[8291,76.96]],["name/77-21",[]],["text/77-21",[]],["component/77-21",[]],["keyword/77-21",[]],["title/77-22",[8292,76.96]],["name/77-22",[]],["text/77-22",[]],["component/77-22",[]],["keyword/77-22",[]],["title/77-23",[8293,76.96]],["name/77-23",[]],["text/77-23",[]],["component/77-23",[]],["keyword/77-23",[]],["title/77-24",[987,56.691]],["name/77-24",[]],["text/77-24",[]],["component/77-24",[]],["keyword/77-24",[]],["title/77-25",[889,23.447]],["name/77-25",[]],["text/77-25",[]],["component/77-25",[]],["keyword/77-25",[]],["title/77-26",[4131,72.491]],["name/77-26",[]],["text/77-26",[]],["component/77-26",[]],["keyword/77-26",[]],["title/77",[1013,30.279,1363,22.93,1708,25.714]],["name/77",[1708,0.761]],["text/77",[0,0.661,1,0.225,3,0.267,7,1.18,8,1.721,9,0.518,11,3.677,16,2.09,26,2.051,28,0.411,34,0.847,45,1.918,48,0.267,50,2.826,51,2.261,54,1.83,66,0.289,75,0.706,80,3.785,81,0.382,87,1.62,88,0.314,89,1.356,90,0.354,91,0.21,96,0.61,101,1.963,103,0.216,104,1.477,113,2.24,120,0.895,125,0.833,126,1.616,128,0.386,138,0.815,142,3.602,146,0.465,148,0.218,149,1.183,153,1.508,164,1.757,165,0.697,166,0.975,167,0.239,170,0.186,177,0.965,178,2.061,188,1.066,189,3.525,190,0.858,198,1.443,199,0.577,200,0.5,203,0.513,206,0.443,207,2.116,211,0.77,217,0.365,218,0.707,220,0.631,223,0.223,228,1.424,234,3.023,241,0.544,264,0.61,279,0.228,310,0.243,334,1.316,344,0.12,345,1.96,346,0.239,352,0.277,362,0.518,363,0.946,364,0.357,367,0.868,368,0.492,369,0.465,371,2.997,376,0.277,382,0.669,386,1.328,388,0.253,389,0.92,391,1.529,394,3.148,395,0.558,396,2.126,397,0.577,399,0.544,400,0.592,402,4.584,420,2.861,
1685,0.755,690,0.428,691,0.258,692,2.23,694,1.941,695,1.543,698,1.61,700,0.562,702,1.281,708,0.77,710,0.223,711,2.09,716,0.262,718,1.721,724,0.678,725,1.354,727,0.518,728,0.678,732,0.656,734,0.354,749,1.593,751,0.376,754,0.932,757,0.283,759,0.246,760,0.297,761,1.537,764,0.262,766,1.433,771,0.866,773,0.289,778,1.471,786,2.236,789,1.178,790,0.895,792,2.139,797,1.328,798,0.638,802,1.117,804,0.801,805,0.819,810,0.314,815,0.82,817,1.226,820,0.25,821,5.011,823,0.253,829,1.047,831,1.682,840,1.234,843,1.021,845,1.424,851,0.25,852,0.755,854,0.932,855,0.233,857,4.189,858,1.205,861,1.484,862,2.502,864,0.194,866,0.382,867,3.128,870,2.281,877,0.509,880,0.271,881,0.271,882,1.736,883,3.812,884,0.246,885,0.553,889,2.617,890,0.81,894,1.747,898,2.473,901,2.362,902,0.975,903,1.2,906,0.424,907,0.527,913,0.233,915,0.549,917,0.246,926,0.932,939,1.497,940,1.448,941,1.752,944,1.04,947,0.297,948,2.509,952,0.441,953,2.864,954,0.188,955,0.726,957,2.354,958,0.528,959,0.22,966,1.018,969,0.485,973,1.918,977,0.549,978,0.562,980,1.214,985,0.611,986,1.181,987,1.018,988,0.415,994,0.262,1001,1.193,1003,1.063,1006,0.258,1008,0.549,1011,0.611,1013,0.946,1014,0.438,1018,0.185,1019,3.536,1022,0.325,1025,0.37,1029,0.863,1032,0.325,1034,0.267,1039,0.314,1040,0.271,1042,0.297,1045,0.749,1053,1.682,1055,0.828,1059,1.766,1063,3.747,1064,0.253,1065,1.013,1068,0.253,1069,3.418,1070,0.228,1072,1.975,1079,0.82,1081,1.818,1082,0.243,1088,0.82,1089,1.018,1092,1.61,1100,1.116,1101,1.511,1103,0.204,1109,2.082,1112,0.549,1115,1.047,1123,1.485,1125,0.365,1128,2.159,1134,1.766,1139,2.46,1143,1.547,1149,0.271,1152,0.518,1154,3.01,1155,0.957,1157,1.448,1158,0.277,1166,3.54,1167,0.863,1170,0.631,1172,0.448,1174,0.253,1177,2.19,1180,0.223,1187,0.419,1201,0.485,1205,1.8,1211,1.681,1212,0.267,1213,0.819,1221,2.527,1227,2.794,1232,0.376,1234,1.238,1236,0.25,1239,0.54,1240,0.204,1249,0.354,1255,0.258,1263,0.354,1264,0.338,1266,0.283,1267,1.763,1270,0.289,1272,2.95,1273,0.453,1281,0.828,1283,0.258,1285,0.277,1287,0.577,1291,0.448,1294,0.618,1295,1.461,1297,1.741,1298,2.069,1302,0.325,1306,0.513,1316,2.607,1321,1.134,1322,0.289,1326,0.271,1330,0.262,1331,0.419,1332,0.271,1335,0.605,1344,0.448,1345,3.52,1353,0.567,1355,0.419,1356,1.977,1359,0.271,1361,0.389,1362,0.82,1363,0.454,1364,4.841,1365,1.755,1369,0.962,1373,1.471,1374,0.638,1377,0.325,1379,0.433,1383,0.225,1391,0.592,1393,2.188,1394,0.262,1395,0.283,1396,1.567,1398,0.253,1404,0.769,1405,0.707,1412,0.84,1420,0.262,1424,0.271,1427,0.524,1429,0.73,1430,2.419,1431,0.21,1435,0.937,1436,0.214,1438,0.314,1439,0.478,1441,0.411,1446,0.866,1448,3.026,1450,1.812,1457,0.25,1458,0.21,1461,1.656,1479,1.708,1480,0.267,1481,0.325,1500,0.92,1501,1.018,1502,0.262,1506,1.452,1508,1.09,1515,1.325,1518,0.485,1520,0.638,1522,0.253,1533,0.258,1540,0.354,1544,0.267,1550,0.84,1553,0.509,1554,0.932,1555,0.889,1556,2.518,1571,1.622,1573,0.478,1577,0.998,1583,0.228,1605,0.688,1607,1.063,1610,0.289,1613,1.039,1624,0.22,1659,3.208,1668,0.592,1677,0.289,1693,0.957,1703,0.769,1704,4.598,1706,0.253,1708,5.416,1722,1.294,1724,0.253,1725,1.913,1727,4.71,1733,1.585,1738,1.018,1746,0.305,1747,0.443,1760,0.631,1762,0.5,1794,0.538,1796,0.527,1821,3.177,1822,0.868,1824,2.778,1829,5.737,1834,1.039,1839,0.246,1842,2.02,1845,0.549,1848,1.424,1855,1.424,1860,2.106,1866,0.82,1873,0.25,1880,3.337,1899,0.653,1903,0.631,1906,0.518,1907,0.84,1909,0.271,1910,0.962,1990,2.082,1991,0.538,2001,0.271,2002,3.751,2003,0.297,2007,0.297,2011,0.478,2012,0.314,2015,1.766,2029,0.592,2054,0.784,2058,0.289,2060,2.286,2062,2.716,2082,0.246,2099,0.889,2100,0.305,2123,0.576,2124,0.325,2125,2.587,2127,0.618,2130,1.917,2133,0.415,2138,0.267,2150,0.376,2153,0.784,2154,0.509,2158,0.847,2165,0.305,2190,0.471,2208,0.283,2264,0.271,2265,1.966,2273,0.289,2282,2.348,2291,1.767,2307,0.538,2310,0.492,2316,1.932,2318,0.314,2324,1.615,2325,1.007,2338,0.258,2348,0.576,2353,0.289,2382,0.305,2478,0.538,2494,0.631,2508,0.271,2532,1.394,2554,0.61,2611,0.5,2612,0.314,2637,3.357,2645,0.289,2679,0.932,2717,0.863,2782,0.354,2788,0.338,2815,0.305,2816,0.82,2818,0.338,2824,0.354,2830,0.271,2836,0.718,2882,4.46,2884,0.631,2896,0.338,2897,2.106,3010,0.283,3011,0.801,3021,1.764,3041,6.18,3089,0.84,3094,1.362,3099,0.314,3112,3.747,3169,0.592,3180,0.297,3202,0.338,3262,1.867,3276,
10.305,3324,2.667,3361,0.305,3364,0.305,3365,0.354,3367,0.863,3373,0.688,3473,3.418,3491,0.656,3495,0.297,3541,0.84,3566,0.305,3621,0.338,3743,0.314,3745,0.354,3805,0.354,3834,0.338,3835,0.338,3840,0.354,3871,0.283,3896,0.354,3903,0.283,3931,0.376,3937,0.283,3997,0.688,4036,0.354,4039,3.014,4088,0.354,4103,5.064,4104,1.003,4105,4.25,4107,0.325,4108,0.656,4109,2.669,4112,2.798,4113,0.354,4114,0.338,4115,2.24,4116,0.354,4117,0.376,4123,2.009,4124,2.106,4125,0.376,4126,5.159,4127,4.712,4128,1.065,4129,5.265,4131,1.584,4133,1.932,4134,0.376,4136,4.507,4141,2.578,4144,0.338,4145,2.971,4151,0.376,4157,0.656,4162,0.73,4163,2.059,4164,0.376,4166,0.376,4167,3.804,4178,3.406,4179,2.493,4185,0.376,4192,0.354,4195,0.485,4196,0.297,4203,0.73,4207,0.376,4208,3.804,4209,0.957,4210,0.376,4211,1.065,4212,0.376,4213,0.376,4214,0.376,4215,0.376,4216,0.376,4217,0.376,4224,2.493,4225,0.325,4228,1.966,4237,0.376,4239,1.381,4240,0.376,4241,0.688,4242,1.065,4245,0.376,4246,0.376,4247,0.73,4249,1.966,4252,0.325,4253,0.376,4254,0.376,4256,0.376,4257,0.656,4259,0.376,4261,0.73,4264,0.73,4266,1.065,4268,0.73,4271,0.73,4273,0.73,4275,1.381,4278,0.73,4280,2.578,4286,0.376,4340,0.376,4341,0.73,4342,0.376,4343,0.376,4344,0.376,4345,0.376,4346,0.376,4347,0.73,4348,0.376,4349,0.376,4354,1.511,4356,0.338,4358,0.376,4359,0.376,4361,0.376,4364,1.065,4366,0.376,4369,0.73,4372,0.376,4376,0.376,4378,2.348,4379,7.293,4383,0.376,4389,4.539,4390,0.376,4391,1.381,4393,1.065,4395,3.4,4397,0.376,4460,1.766,4561,0.338,4581,0.289,4639,1.003,4701,0.354,4703,0.61,4735,1.154,4916,0.297,4983,0.297,5029,0.325,5136,0.338,5211,0.325,5252,0.376,5401,0.325,5519,0.73,5689,1.301,5873,0.656,5931,0.376,5939,0.656,5950,1.381,5987,0.354,5997,0.354,6588,0.325,6605,0.376,6633,0.73,6647,0.376,6654,0.73,6680,0.73,6785,0.376,6811,0.376,7044,0.297,7219,0.73,7399,0.354,7710,1.966,7797,0.376,7822,0.73,7860,0.376,7885,0.376,8019,1.381,8052,0.376,8152,0.376,8285,1.065,8286,2.236,8287,3.804,8288,1.681,8289,1.681,8290,1.065,8291,1.966,8292,4.342,8293,2.236,8294,0.409,8295,0.409,8296,0.409,8297,5.706,8298,3.475,8299,0.409,8300,0.409,8301,0.409,8302,0.409,8303,0.409,8304,0.409,8305,0.795,8306,0.409,8307,0.795,8308,0.795,8309,0.409,8310,0.409,8311,0.795,8312,0.409,8313,0.409,8314,0.409,8315,0.409,8316,0.409,8317,0.409,8318,0.409,8319,0.409,8320,0.409,8321,0.409,8322,0.409,8323,0.409,8324,0.409,8325,0.409,8326,0.409,8327,1.159,8328,0.409,8329,0.409,8330,0.409,8331,0.409,8332,0.409,8333,0.409,8334,0.409,8335,1.829,8336,0.409,8337,0.409,8338,1.829,8339,0.409,8340,0.409,8341,0.409,8342,0.409,8343,1.503,8344,0.409,8345,0.409,8346,0.409,8347,0.409,8348,0.795,8349,0.409,8350,0.409,8351,0.409,8352,0.795,8353,0.409,8354,0.409,8355,0.409,8356,0.409,8357,0.409,8358,0.409,8359,0.409,8360,0.409,8361,0.409,8362,0.409,8363,0.409,8364,0.409,8365,0.409,8366,0.409,8367,0.409,8368,0.409,8369,0.409,8370,0.409,8371,0.409,8372,0.409,8373,0.409,8374,0.409,8375,0.409,8376,0.409,8377,0.409,8378,0.409,8379,0.409,8380,0.409,8381,2.433,8382,1.159,8383,0.409,8384,0.409,8385,0.409,8386,1.065,8387,0.409,8388,0.409,8389,0.795,8390,0.795,8391,0.409,8392,0.409,8393,0.409,8394,0.409,8395,0.409,8396,0.409,8397,0.409,8398,0.409,8399,3.928,8400,0.795,8401,1.829,8402,0.409,8403,0.409,8404,0.409,8405,1.503,8406,1.159,8407,1.503,8408,1.503,8409,1.829,8410,1.829,8411,0.795,8412,0.795,8413,0.795,8414,0.409,8415,0.409,8416,0.409,8417,0.409,8418,0.409,8419,0.409,8420,0.409,8421,0.409,8422,0.409,8423,0.409,8424,0.409,8425,4.343,8426,0.795,8427,0.795,8428,0.409,8429,2.433,8430,2.139,8431,2.139,8432,2.433,8433,2.139,8434,5.85,8435,2.139,8436,0.409,8437,0.409,8438,0.409,8439,0.409,8440,0.409,8441,0.409,8442,0.409,8443,0.409,8444,0.409,8445,0.409,8446,0.409,8447,0.409,8448,2.712,8449,0.409,8450,0.409,8451,0.409,8452,1.159,8453,0.795,8454,1.159,8455,1.159,8456,1.159,8457,0.795,8458,0.409,8459,0.409,8460,0.409,8461,0.409,8462,0.409,8463,0.409,8464,0.409,8465,0.409,8466,0.409,8467,0.409,8468,0.409,8469,0.409,8470,0.409,8471,0.409,8472,0.409,8473,0.409,8474,0.409,8475,0.409,8476,0.409,8477,0.409,8478,0.409,8479,0.409,8480,0.409,8481,0.409,8482,0.409,8483,0.409,8484,0.409,8485,0.409,8486,0.409,8487,0.409,8488,0.409,8489,0.409,8490,0.409,8491,0.409,8492,0.795,8493,0.409,8494,0.409,8495,0.409,8496,0.409,8497,0.409,8498,0.409,8499,0.409,8500,0.409,8501,0.409,8502,0.409,8503,0.409,8504,0.409,8505,0.409,8506,0.409,8507,0.795,8508,0.795,8509,0.795,8510,1.159,8511,0.795,8512,0.409,8513,2.139,8514,0.409,8515,0.409,8516,0.409,8517,0.409,8518,0.409,8519,0.795,8520,0.409,8521,0.795,8522,0.409,8523,0.409,8524,0.409,8525,0.409,8526,0.409,8527,0.409,8528,0.409,8529,0.795,8530,0.409,8531,0.409,8532,1.159,8533,0.409,8534,0.409,8535,0.409,8536,0.409,8537,0.409,8538,0.409,8539,0.409,8540,0.795,8541,0.795,8542,0.409,8543,0.409,8544,0.409,8545,0.409,8546,0.409,8547,0.409,8548,0.795,8549,0.795,8550,0.409,8551,0.795,8552,0.795,8553,0.795,8554,0.795,8555,0.795,8556,0.409,8557,0.409,8558,0.409,8559,0.409,8560,0.409,8561,0.795,8562,0.409,8563,0.409,8564,0.409,856
15,0.409,8566,0.409,8567,0.409,8568,0.409,8569,0.409,8570,0.409,8571,0.409,8572,0.409,8573,0.409,8574,0.409,8575,0.409,8576,0.409,8577,1.829,8578,0.409,8579,0.409,8580,0.409,8581,0.409,8582,0.409,8583,0.409,8584,0.409,8585,0.409,8586,0.409,8587,0.409,8588,0.409,8589,0.409,8590,0.409,8591,0.409,8592,0.409,8593,0.409,8594,0.409,8595,0.409,8596,0.409,8597,0.409,8598,0.409,8599,0.409,8600,0.409,8601,0.409,8602,0.409,8603,0.795,8604,0.409,8605,0.409,8606,0.409,8607,0.409,8608,0.409,8609,0.409,8610,0.409,8611,1.159,8612,0.409,8613,0.409,8614,0.409]],["component/77",[7,0.29]],["keyword/77",[]],["title/78-1",[1361,28.66,1372,36.864,4967,38.862]],["name/78-1",[]],["text/78-1",[]],["component/78-1",[]],["keyword/78-1",[]],["title/78-2",[4967,45.742,8615,56.91]],["name/78-2",[]],["text/78-2",[]],["component/78-2",[]],["keyword/78-2",[]],["title/78-3",[1177,21.918,3272,35.221,4967,38.862]],["name/78-3",[]],["text/78-3",[]],["component/78-3",[]],["keyword/78-3",[]],["title/78",[841,27.07,953,20.376,1351,30.888]],["name/78",[841,0.801]],["text/78",[7,1.242,11,1.778,50,2.913,51,2.533,54,1.537,75,1.462,80,3.268,110,3.674,113,3.968,125,1.417,126,2.217,148,1.659,149,2.811,164,1.321,189,5.01,190,1.248,241,4.133,265,4.241,334,3.128,363,1.959,386,1.523,395,3.101,397,2.533,420,1.396,421,2.51,702,2.187,708,1.594,725,2.13,747,2.738,789,1.714,790,3.642,803,6.224,807,4.036,817,1.407,841,1.439,862,2.426,867,2.649,890,3.471,901,1.775,935,3.15,941,3.309,942,5.333,952,2.453,953,3.813,955,2.988,957,1.55,963,1.485,977,1.473,1011,4.898,1018,3.707,1027,1.775,1045,4.384,1068,1.929,1115,4.308,1125,1.428,1140,2.152,1172,1.754,1177,4.031,1180,1.695,1213,1.695,1227,3.848,1236,1.899,1267,1.579,1273,1.775,1278,1.992,1281,1.714,1295,3.978,1351,1.642,1360,7.016,1361,5.583,1363,3.636,1372,6.31,1373,3.674,1420,1.992,1427,4.378,1441,1.609,1458,3.811,1525,2.152,1572,2.066,1703,2.066,1751,6.441,1756,2.471,1810,4.277,1899,4.193,2174,2.975,2291,3.312,2613,2.937,2724,2.107,2733,2.388,3089,3.685,3169,4.799,3268,6.388,3272,5.294,3618,3.15,4195,3.933,4209,2.57,4826,5.117,4852,2.201,4967,7.956,4986,4.277,5004,2.57,5005,2.318,5010,2.318,5082,4.672,5396,2.57,5880,4.036,5882,2.86,5908,7.267,6184,4.672,6190,2.86,6457,4.799,6819,4.946,6831,4.198,7242,2.86,7243,2.86,7362,5.117,7522,5.578,7699,5.922,7700,2.86,7701,4.672,7722,8.087,7725,2.86,7848,2.86,7916,2.86,7940,2.86,7947,2.86,8092,2.86,8615,7.267,8616,5.084,8617,2.86,8618,3.112,8619,3.112,8620,3.112,8621,3.112,8622,3.112,8623,2.86,8624,3.112,8625,3.112,8626,3.112,8627,3.112,8628,3.112,8629,2.86,8630,5.084,8631,3.112,8632,3.112,8633,3.112,8634,3.112]],["component/78",[7,0.29]],["keyword/78",[]],["title/79-1",[8635,83.745]],["name/79-1",[]],["text/79-1",[]],["component/79-1",[]],["keyword/79-1",[]],["title/79-2",[113,25.019,190,23.48,1103,29.169]],["name/79-2",[]],["text/79-2",[]],["component/79-2",[]],["keyword/79-2",[]],["title/79-3",[861,29.169,867,24.066,8636,53.808]],["name/79-3",[]],["text/79-3",[]],["component/79-3",[]],["keyword/79-3",[]],["title/79-4",[889,19.296,2613,39.814]],["name/79-4",[]],["text/79-4",[]],["component/79-4",[]],["keyword/79-4",[]],["title/79-5",[110,34.029,1455,48.742]],["name/79-5",[]],["text/79-5",[]],["component/79-5",[]],["keyword/79-5",[]],["title/79-6",[889,16.393,964,37.483,8637,53.808]],["name/79-6",[]],["text/79-6",[]],["component/79-6",[]],["keyword/79-6",[]],["title/79-7",[110,25.131,113,21.748,190,20.41,8638,46.772]],["name/79-7",[]],["text/79-7",[]],["component/79-7",[]],["keyword/79-7",[]],["title/79-8",[861,29.169,867,24.066,7361,48.349]],["name/79-8",[]],["text/79-8",[]],["component/79-8",[]],["keyword/79-8",[]],["title/79-9",[889,19.296,2613,39.814]],["name/79-9",[]],["text/79-9",[]],["component/79-9",[]],["keyword/79-9",[]],["title/79-10",[11,24.104,7361,56.91]],["name/79-10",[]],["text/79-10",[]],["component/79-10",[]],["keyword/79-10",[]],["title/79-11",[11,24.104,7389,59.657]],["name/79-11",[]],["text/79-11",[]],["component/79-11",[]],["keyword/79-11",[]],["title/79-12",[7,11.154,11,12.785,104,19.907,113,15.62,190,23.205]],["name/79-12",[]],["text/79-12",[]],["component/79-12",[]],["keyword/79-12",[]],["title/79-13",[861,29.169,867,24.066,7362,46.486]],["name/79-13",[]],["text/79-13",[]],["component/79-13",[]],["keyword/79-13",[]],["title/79-14",[11,17.801,1583,28.348,4712,40.408,8615,42.028]],["name/79-14",[]],["text/79-14",[]],["component/79-14",[]],["keyword/79-14",[]],["title/79-15",[11,17.801,1583,28.348,3011,35.188,7362,40.408]],["name/79-15",[]],["text/79-15",[]],["component/79-15",[]],["keyword/79-15",[]],["title/79-16",[110,34.029,2613,39.814]],["name/79-16",[]],["text/79-16",[]],["component/79-16",[]],["keyword/79-16",[]],["title/79-17",[944,25.019,2158,33,7948,50.683]],["name/79-17",[]],["text/79-17",[]],["component/79-17",[]],["keyword/79-17",[]],["title/79",[110,34.029,953,23.984]],["name/79",[110,0.855]],["text/79",[1,0.942,7,1.917,8,0.359,11,3.639,16,2.531,41,0.325,50,1.377,54,1.301,57,0.505,62,0.374,67,0.43,74,0.398,8
10,4.041,81,1.466,87,0.611,89,2.275,91,2.816,93,0.391,103,1.607,104,0.648,110,6.101,113,3.257,119,0.655,120,1.073,125,0.998,126,2.769,128,0.302,133,0.43,138,0.277,142,0.374,145,0.405,148,1.624,149,2.498,163,0.749,164,3.489,170,0.779,176,0.35,177,1.156,178,1.015,181,1.65,188,1.092,189,4.859,190,4.173,198,0.242,203,0.275,211,0.318,224,1.06,228,0.696,229,1.717,234,2.594,237,2.272,241,1.029,259,4.114,262,1.266,265,0.615,267,0.67,273,0.463,279,0.663,286,0.982,293,0.953,297,0.538,303,0.571,308,0.463,310,0.706,321,0.571,334,0.302,335,0.655,339,1.183,344,0.348,345,0.294,355,4.004,359,0.338,361,2.32,364,0.534,367,0.988,370,1.585,371,1.491,374,0.805,386,0.582,389,1.134,391,0.67,395,2.131,396,1.678,397,1.092,399,0.804,420,0.768,682,0.421,691,0.391,692,2.277,695,0.817,698,0.31,701,0.342,702,2.031,708,0.876,710,0.338,716,0.398,725,3.016,747,1.18,761,0.526,766,1.055,778,2.033,782,0.398,788,0.421,790,1.29,792,3.072,797,1.073,798,0.342,805,0.338,817,0.281,819,0.641,823,0.385,825,3.075,829,0.304,843,1.636,851,2.31,854,1.888,861,3.73,862,2.508,864,3.669,867,3.077,870,0.312,871,0.43,877,0.762,882,0.398,883,1.821,889,2.654,890,1.641,894,0.598,896,1.001,901,0.679,902,2.017,913,1.25,939,0.312,940,0.421,941,2.12,944,0.936,952,3.316,953,3.562,955,3.218,957,0.31,958,1.387,959,0.335,964,2.423,969,0.726,970,0.463,977,0.563,979,1.24,980,1.454,985,0.628,986,1.279,988,0.894,1006,0.391,1011,1.607,1018,0.99,1025,1.597,1044,0.315,1045,2.617,1051,0.571,1062,0.706,1063,2.392,1065,1.843,1068,0.385,1070,0.953,1081,0.379,1082,0.369,1086,0.655,1090,1.466,1092,1.313,1098,0.663,1100,2.032,1103,2.854,1114,2.062,1115,1.678,1123,0.726,1125,2.913,1130,0.805,1140,0.43,1141,0.912,1159,0.463,1166,3.892,1169,0.45,1172,2.815,1174,0.737,1177,3.471,1180,0.932,1186,0.944,1187,0.328,1211,1.06,1213,0.338,1221,0.953,1227,0.321,1240,0.31,1247,0.398,1253,0.374,1267,0.315,1272,0.374,1273,1.25,1278,1.403,1281,2.084,1282,0.538,1283,0.391,1285,1.158,1291,0.67,1294,0.634,1295,2.258,1297,1.934,1298,3.198,1306,0.969,1307,0.913,1311,1.029,1312,1.095,1330,0.398,1336,0.775,1339,0.44,1344,0.964,1351,0.903,1353,2.445,1354,0.335,1355,2.772,1360,3.732,1361,2.445,1363,2.819,1364,3.509,1365,4.356,1368,1.183,1369,0.398,1371,0.45,1373,1.301,1378,0.43,1379,1.193,1383,1.677,1386,3.255,1393,2.972,1394,3.364,1395,0.43,1396,1.981,1398,1.358,1404,0.412,1425,0.359,1427,1.711,1430,0.634,1432,3.83,1434,1.454,1435,2.268,1436,0.325,1439,1.029,1440,0.421,1441,0.885,1446,1.949,1455,6.656,1456,0.463,1457,1.337,1458,1.56,1459,3.255,1473,0.477,1482,0.513,1509,0.405,1515,0.338,1518,0.726,1520,2.439,1525,0.822,1533,1.38,1534,0.513,1535,1.313,1541,0.944,1544,0.405,1545,1.454,1553,0.398,1554,0.385,1556,0.912,1564,1.682,1571,0.932,1573,0.374,1583,0.663,1594,1.095,1614,0.944,1629,2.106,1632,3.496,1658,0.463,1671,2.154,1703,0.412,1704,0.964,1706,0.385,1708,0.273,1732,0.463,1747,1.91,1752,0.805,1771,0.862,1779,0.463,1810,0.412,1855,0.364,1857,0.477,1860,1.115,1873,0.379,1880,1.25,1884,2.281,1899,2.32,1910,2.423,1912,0.421,1920,0.571,1923,0.331,1934,0.43,1983,0.493,1984,0.493,1985,0.493,1988,0.571,1990,2.022,1991,2.062,2060,0.841,2114,0.477,2123,0.45,2125,1.607,2127,1.404,2130,0.321,2133,0.325,2143,0.463,2153,0.421,2154,2.195,2158,4.057,2174,1.001,2175,0.463,2178,0.477,2266,0.944,2267,1.093,2307,0.421,2438,0.944,2527,0.493,2529,1.784,2530,0.421,2537,0.405,2564,0.493,2585,5.708,2613,5.745,2632,1.632,2633,0.79,2641,0.982,2666,0.421,2775,1.093,2818,0.513,2868,0.493,2899,0.513,2910,0.477,2912,0.493,3082,1.21,3136,0.944,3137,0.862,3268,1.807,3272,1.585,3360,0.513,3367,2.269,3502,0.841,3509,0.513,3541,0.45,3556,0.463,3557,0.477,3694,0.538,3728,0.477,3732,0.538,3752,0.538,3831,0.571,3851,0.571,3852,0.45,3928,1.03,4067,3.151,4080,4.086,4102,1.03,4160,1.313,4195,0.726,4350,1.313,4861,0.45,4862,0.513,4923,3.316,5012,0.571,5082,0.45,5133,0.538,5165,1.95,5167,1.985,5396,1.809,5425,0.982,5509,0.571,6001,0.538,6223,0.513,6273,2.014,6303,1.093,6304,0.571,6310,0.538,6457,0.463,6483,1.358,6501,2.831,6502,0.571,6503,1.093,6518,2.014,6588,6.69,6593,2.968,6819,0.477,6831,1.413,7023,0.982,7024,0.513,7053,0.538,7259,0.538,7309,1.03,7361,5.817,7362,5.041,7384,1.572,7389,5.958,7390,1.093,7391,1.572,7741,4.07,7905,1.572,7948,0.538,7950,1.572,8007,0.571,8615,4.54,8617,0.571,8623,1.093,8629,4.338,8636,6.17,8637,7.553,8638,2.422,8639,3.785,8640,0.621,8641,0.621,8642,0.621,8643,1.19,8644,1.19,8645,2.635,8646,5.254,8647,1.19,8648,3.785,8649,1.19,8650,1.711,8651,1.19,8652,0.621,8653,0.621,8654,1.19,8655,0.621,8656,0.621,8657,0.621,8658,1.19,8659,1.19,8660,1.19,8661,1.19,8662,1.19,8663,0.621,8664,0.621,8665,2.191,8666,1.711,8667,0.621,8668,0.621,8669,0.621,8670,1.19,8671,1.19,8672,0.621,8673,0.621,8674,1.19,8675,0.621,8676,0.621,8677,0.621,8678,0.621,8679,0.621,8680,0.621,8681,3.046,8682,2.635,8683,1.711,8684,0.621,8685,0.621,8686,1.19,8687,1.711,8688,1.19,8689,1.19,8690,1.19,8691,2.635,8692,2.635,8693,1.19,8694,0.621,8695,0.621,8696,1.711,8697,0.621,8698,1.19,8699,0.621,8700,0.621,8701,0.621,8702,1.711,8703,0.621,8704,0.621,8705,0.621,8706,0.621,8707,0.621,8708,0.621,8709,0.621,8710,0.621,8711,0.621,8712,0.621,8713,0.621,8714,0.621,8715,0.621,8716,0.621,8717,1.711,8718,1.711,8719,0.621,8720,0.621,8721,1.19,8722,1.711,8723,1.19,8724,0.621,8725,0.621,8726,0.621,8727,0.62
11,8728,0.621,8729,1.19,8730,0.621,8731,0.621,8732,0.621,8733,0.621,8734,0.621,8735,0.621,8736,1.19,8737,1.19,8738,0.621,8739,1.711,8740,0.621,8741,0.621,8742,0.621,8743,0.621,8744,0.621,8745,0.621,8746,0.621,8747,0.621,8748,0.621,8749,0.621,8750,0.621,8751,0.621,8752,0.621,8753,0.621,8754,0.621]],["component/79",[7,0.29]],["keyword/79",[]],["title/80",[1303,43.391,2130,35.64]],["name/80",[1303,1.09]],["text/80",[0,4.341,7,2.098,57,4.621,126,3.319,138,3.39,149,3.319,166,4.056,189,2.913,233,3.974,237,3.662,345,3.602,386,3.725,388,6.09,389,4.228,399,3.574,402,6.289,725,3.188,754,4.716,757,5.261,784,6.587,792,3.319,801,5.151,817,3.439,903,4.814,941,3.965,955,3.907,985,4.014,989,5.133,1044,3.861,1170,6.041,1239,3.546,1294,5.238,1303,8.002,1355,4.014,1365,3.602,1379,4.144,1439,4.577,1523,5.382,1725,4.19,1923,4.056,2130,5.629,2382,5.667,2829,5.516,3001,5.84,3417,5.84,3544,5.151,4836,9.032,8755,7.61,8756,7.61,8757,7.61,8758,7.61]],["component/80",[7,0.29]],["keyword/80",[]],["title/81-1",[953,17.712,1025,23.714,2287,31.539,4816,46.772]],["name/81-1",[]],["text/81-1",[]],["component/81-1",[]],["keyword/81-1",[]],["title/81-2",[389,21.894,710,27.715,1331,26.849,2287,31.539]],["name/81-2",[]],["text/81-2",[]],["component/81-2",[]],["keyword/81-2",[]],["title/81-3",[396,28.66,421,28.911,1388,34.268]],["name/81-3",[]],["text/81-3",[]],["component/81-3",[]],["keyword/81-3",[]],["title/81-4",[941,27.806,2287,42.708]],["name/81-4",[]],["text/81-4",[]],["component/81-4",[]],["keyword/81-4",[]],["title/81",[7,11.287,1025,27.281,2287,36.284]],["name/81",[1025,0.439,2287,0.584]],["text/81",[6,0.637,7,1.709,9,0.77,10,0.63,11,1.74,14,1.024,16,0.471,18,0.651,34,0.666,41,1.583,54,0.584,57,0.925,80,0.957,91,0.606,101,0.534,126,1.322,128,0.574,138,2.216,144,0.711,146,0.692,149,0.516,153,0.733,164,3.524,169,1.798,177,1.15,178,1.798,185,2.144,189,5.217,190,0.474,198,0.46,199,2.478,206,2.456,211,1.116,221,0.745,231,0.836,233,0.618,237,0.569,241,1.423,250,0.606,265,1.127,267,1.228,272,0.976,279,1.214,293,1.214,299,1.58,304,1.507,310,1.293,344,0.346,350,0.666,361,0.666,363,0.745,370,1.311,371,0.579,386,0.579,389,0.937,396,2.681,397,1.086,399,0.555,404,0.908,406,2.805,420,0.978,421,1.076,690,2.375,695,0.564,698,0.589,700,0.836,701,1.2,710,1.187,713,0.785,714,2.003,725,0.495,726,0.785,747,0.637,775,2.257,790,0.579,797,0.579,817,0.985,822,0.637,829,2.158,834,0.881,841,3.513,843,1.447,846,0.683,855,2.149,857,1.484,858,0.666,862,1.447,866,1.049,867,0.896,883,0.523,889,1.966,896,0.692,906,0.63,914,0.637,935,1.878,941,0.477,942,1.669,944,0.505,952,0.45,953,3.245,955,0.402,958,0.538,975,0.612,978,0.836,1011,0.624,1013,1.948,1019,0.612,1025,3.869,1062,0.701,1065,0.492,1072,0.63,1081,0.722,1090,1.049,1092,0.589,1100,0.543,1103,0.589,1114,1.311,1123,0.722,1125,1,1137,1.087,1141,0.63,1143,0.675,1179,0.701,1181,0.757,1201,0.722,1219,0.785,1221,1.214,1227,1.127,1239,0.551,1240,0.589,1253,3.564,1259,1.087,1267,0.6,1283,0.745,1291,0.666,1292,1.623,1305,1.672,1321,0.733,1322,1.541,1326,1.446,1329,1.087,1331,2.326,1335,0.618,1336,0.77,1345,0.77,1348,1.024,1349,0.939,1352,1.214,1353,1.067,1355,1.15,1358,0.63,1361,1.067,1363,0.463,1367,0.908,1372,3.984,1373,0.584,1374,0.651,1385,3.38,1388,1.275,1405,0.722,1435,0.606,1436,0.618,1440,0.801,1447,0.857,1448,0.644,1457,0.722,1459,0.77,1478,0.908,1480,0.77,1515,1.187,1544,1.975,1571,1.187,1572,1.446,1582,0.722,1583,0.659,1586,0.785,1621,0.908,1622,0.908,1623,0.908,1624,0.637,1642,2.991,1648,0.939,1649,0.939,1653,2.503,1668,0.881,1724,6.437,1783,1.58,1839,0.711,2082,0.711,2127,1.615,2134,0.722,2137,0.908,2142,2.991,2144,1.8,2145,1.8,2155,0.881,2158,1.228,2174,1.774,2213,0.818,2240,0.881,2271,0.857,2279,1.024,2287,5.689,2310,1.35,2326,1.886,2438,0.939,2445,1.623,2479,0.976,2497,1.623,2498,1.623,2506,0.785,2508,5.644,2516,1.024,2526,1.024,2554,0.908,2666,0.801,2724,0.801,2746,1.623,2765,0.6,2786,0.976,2793,1.087,2820,1.729,2821,1.087,2831,0.939,2833,0.745,2836,0.733,2847,1.672,2882,3.284,3176,2.785,3276,0.881,3316,1.087,3329,1.087,3361,1.623,3403,0.939,3481,1.087,4030,0.881,4038,0.939,4053,0.801,4323,0.939,4429,1.024,4457,1.087,4460,0.976,4488,1.087,4491,3.818,4493,0.908,4526,1.087,4630,0.908,4817,0.976,4923,1.446,4943,0.908,4995,1.087,5097,1.087,5258,1.024,5401,0.939,5425,1.8,5880,1.73,5908,0.976,6945,1.087,8386,1.087,8759,1.183,8760,1.183,8761,1.183,8762,1.183,8763,1.183,8764,3.031,8765,1.183,8766,1.183,8767,1.183,8768,1.183,8769,2.179,8770,1.183,8771,1.183,8772,1.183,8773,1.183,8774,1.183,8775,1.183,8776,1.183,8777,1.183,8778,1.183,8779,3.767,8780,2.179,8781,1.183,8782,1.183,8783,1.183,8784,2.179,8785,4.409,8786,1.183,8787,2.179,8788,1.183,8789,3.031,8790,1.183,8791,1.183,8792,1.183,8793,2.179,8794,2.179,8795,3.031,8796,1.183,8797,1.183,8798,2.179,8799,2.179,8800,2.179,8801,1.183,8802,10.388,8803,10.388,8804,1.183,8805,10.388,8806,10.937,8807,1.183,8808,1.183,8809,1.183,8810,1.183,8811,1.183,8812,1.183,8813,1.183,8814,1.183,8815,1.183,8816,1.183,8817,1.183,8818,1.183,8819,1.183,8820,1.183,8821,1.183,8822,1.183,8823,1.183,8824,1.183,8825,1.183,8826,1.183,8827,1.183,8828,1.183,8829,1.183,8830,1.183,8831,1.183,8832,1.183,8833,1.183,8834,1.183,8835,1.183,8836,1.183,8837,2.179,8838,1.183,8839,1.183,8840,1.183,8841,1.183,8842,1.183,8843,1.183,8844,1.183,8845,1.183,8846,1.183,8847,1.183,8848,1.183,8849,1.183,8850,1.183,8851,1.183,8852,1.183,8853,1.183,8854,1.183,8855,1.183,8856,1.183,8857,1.183,8858,1.183,8859,1.183,8860,1.183,8861,1.183,8862,1.183,8863,1.183,8864,1.183,8865,1.183,8866,1.183,8867,1.183,8868,1.183,8869,1.183,8870,1.183,8871,2.179,8872,1.183,8873,1.183,8874,1.183,8875,1.183,8876,1.183,8877,1.183,8878,2.179,8879,1.183,8880,1.183,8881,1.183,8882,1.183,8883,1.183,8884,1.183,8885,1.183,8886,1.183,8887,1.183,8888,1.183,8889,1.183,8890,1.183,8891,1.183,8892,1.183,8893,1.183,8894,1.183,8895,1.183,8896,1.183,8897,1.183,8898,1.183,8899,1.183,8900,1.183,8901,1.183,8902,2.179,8903,2.179,8904,2.179,8905,1.183,8906,1.183,8907,1.183,8908,1.183,8909,1.183,8910,1.183,8911,1.183,8912,1.183,8913,1.183,8914,1.183,8915,1.183,8916,1.183,8917,1.183,8918,1.183,8919,1.183,8920,1.183,8921,1.183,8922,1.183,8923,1.183,8924,1.183,8925,1.183,8926,1.183,8927,1.183,8928,1.183,8929,1.183,8930,1.183,8931,1.183,8932,1.183,8933,1.183,8934,4.409,8935,1.183,8936,1.183,8937,1.183,8938,1.183,8939,1.183,8940,1.183,8941,1.183,8942,1.183,8943,1.183,8944,1.183,8945,1.183,8946,1.183,8947,1.183,8948,1.183,8949,1.183,8950,2.179,8951,1.183]],["component/81",[7,0.29]],["keyword/81",[]],["title/82",[7,13.285,47,43.391]],["name/82",[771,0.82]],["text/82",[1060,8.385,5352,7.656]],["component/82",[7,0.29]],["keyword/82",[]],["title/83",[3264,62.368]],["name/83",[880,0.626,2508,0.626]],["text/83",[7,1.596,16,3.3,34,4.666,47,5.213,54,5.12,149,4.522,164,3.514,167,4.846,190,4.158,199,4.125,206,4.612,334,4.018,346,4.846,350,4.666,690,4.46,775,6.166,840,4.201,841,4.794,880,5.495,914,6.099,942,5.71,1011,4.368,1025,4.832,1177,3.882,1292,6.166,1335,4.324,1361,5.076,1372,6.529,1747,4.612,1834,5.724,2287,7.354,2397,6.837,2508,5.495,2657,5.213,3137,6.002,3264,7.723,3265,6.837,3268,6.151,4848,9.529]],["component/83",[7,0.29]],["keyword/83",[]],["title/84-1",[7,11.287,2031,37.483,2506,38.862]],["name/84-1",[]],["text/84-1",[]],["component/84-1",[]],["keyword/84-1",[]],["title/84",[1239,39.02]],["name/84",[1239,0.807]],["text/84",[7,2.44,10,2.814,11,3.449,16,3.049,50,2.386,57,3.246,81,2.541,101,2.386,111,2.52,113,3.268,126,2.303,145,3.44,152,3.827,167,4.476,189,3.774,190,3.067,198,4.075,344,2.24,388,3.272,402,3.05,725,4.829,737,3.932,752,4.852,757,5.288,761,3.383,767,5.521,778,2.607,790,2.584,792,3.336,817,2.386,823,3.272,825,3.09,842,3.827,866,4.328,867,3.144,883,2.335,885,3.65,889,3.055,894,2.654,903,3.977,907,3.504,941,3.086,953,1.837,954,2.422,955,1.793,964,3.38,977,3.621,986,2.562,989,2.757,999,3.574,1041,3.932,1042,3.827,1044,2.679,1067,3.176,1157,3.574,1239,5.79,1287,2.63,1291,2.976,1297,2.48,1303,7.086,1304,4.57,1306,3.383,1325,3.827,1365,5.166,1378,3.65,1405,3.223,1435,2.704,1436,2.757,1458,2.704,1472,3.65,1520,2.907,1638,6.973,1830,3.44,1873,3.223,2031,7.379,2100,3.932,2240,3.932,2433,4.052,2506,8.02,2616,4.192,3130,6.072,3131,6.316,3374,3.932,3461,4.57,8952,7.648,8953,5.28,8954,5.28,8955,5.28,8956,5.28,8957,5.28,8958,5.28]],["component/84",[7,0.29]],["keyword/84",[]],["title/85",[233,30.578,841,27.07,2287,36.284]],["name/85",[841,0.436,2287,0.584]],["text/85",[1060,8.428]],["component/85",[7,0.29]],["keyword/85",[]]],"invertedIndex":[["",{"_index":189,"title":{"24":{},"24-4":{},"71-30":{},"71-40":{},"71-61":{}},"name":{},"text":{"2":{},"5":{},"7":{},"8":{},"10":{},"12":{},"13":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{},"80":{},"81":{},"84":{}},"component":{},"keyword":{}}],["0",{"_index":1822,"title":{},"name":{},"text":{"22":{},"28":{},"31":{},"34":{},"39":{},"41":{},"46":{},"47":{},"52":{},"53":{},"55":{},"57":{},"58":{},"62":{},"63":{},"67":{},"71":{},"73":{},"74":{},"75":{},"77":{}},"component":{},"keyword":{}}],["0.0.0.0",{"_index":4214,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["0.9f",{"_index":4918,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["00",{"_index":3666,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["0000",{"_index":3522,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["0001",{"_index":6435,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["00805f499d93",{"_index":2305,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["00af",{"_index":6436,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["01",{"_index":3671,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}
1],["01.debug.log",{"_index":2656,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["0123456789abcdef",{"_index":6295,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["01:11",{"_index":1002,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["02",{"_index":1004,"title":{},"name":{},"text":{"8":{},"35":{}},"component":{},"keyword":{}}],["03",{"_index":3668,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["04",{"_index":3667,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["0400",{"_index":3106,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["044e",{"_index":2302,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["05",{"_index":3672,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["05t15:30:09+08:00",{"_index":1005,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["07",{"_index":3684,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["07t09:11:01.281z",{"_index":1646,"title":{},"name":{},"text":{"20":{},"35":{},"41":{},"45":{}},"component":{},"keyword":{}}],["09",{"_index":1642,"title":{},"name":{},"text":{"20":{},"35":{},"41":{},"45":{},"81":{}},"component":{},"keyword":{}}],["0@1da3cd",{"_index":8794,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["0a",{"_index":3663,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["0d",{"_index":3662,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetti",{"_index":1622,"title":{},"name":{},"text":{"20":{},"34":{},"35":{},"41":{},"45":{},"81":{}},"component":{},"keyword":{}}],["0l",{"_index":7806,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["0xcafe",{"_index":7295,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["1",{"_index":241,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"7":{},"10":{},"12":{},"13":{},"14":{},"19":{},"20":{},"22":{},"23":{},"26":{},"28":{},"29":{},"31":{},"33":{},"35":{},"36":{},"39":{},"41":{},"42":{},"46":{},"47":{},"50":{},"51":{},"52":{},"55":{},"56":{},"57":{},"58":{},"62":{},"66":{},"69":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{},"81":{}},"component":{},"keyword":{}}],["1,leaked=0,terminated=fals",{"_index":8805,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["1,t=59955ms,q=0}[oejut.reservedthreadexecutor@48bb62{capacity=16,threads=oejut.threadidpool@353352b6{capacity=16",{"_index":8921,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["1,t=59955ms,q=0}[oejut.reservedthreadexecutor@48bb62{capacity=16,threads=oejut.threadidpool@353352b6{capacity=16}}][pc=0,pic=0,pec=0,epc=0/0",{"_index":8919,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["1,t=59961ms,q=0}[oejut.reservedthreadexecutor@48bb62{capacity=16,threads=oejut.threadidpool@353352b6{capacity=16",{"_index":8874,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["1,t=59983ms,q=0}[oejut.reservedthreadexecutor@48bb62{capacity=16,threads=oejut.threadidpool@353352b6{capacity=16",{"_index":8780,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["1.0",{"_index":327,"title":{},"name":{},"text":{"2":{},"63":{},"65":{}},"component":{},"keyword":{}}],["1.1",{"_index":321,"title":{},"name":{},"text":{"2":{},"79":{}},"component":{},"keyword":{}}],["1.17.0.jar",{"_index":5531,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["1.2",{"_index":313,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["1.4",{"_index":307,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["1.5",{"_index":301,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["1.6",{"_index":296,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["1.7",{"_index":284,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["1.8",{"_index":276,"title":{},"name":{},"text":{"2":{},"28":{}},"component":{},"keyword":{}}],["1.85.jar",{"_index":3578,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["1.x",{"_index":3486,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["1/p/$2",{"_index":7788,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["10",{"_index":228,"title":{},"name":{"68":{}},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"30":{},"31":{},"33":{},"36":{},"39":{},"41":{},"43":{},"45":{},"57":{},"62":{},"66":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["10.0",{"_index":2487,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["10.0.0",{"_index":585,"title":{},"name":{},"text":{"3":{},"18":{}},"component":{},"keyword":{}}],["10.0.0.2",{"_index":1930,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["10.0.0.beta2",{"_index":592,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.0.beta3",{"_index":595,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.1",{"_index":576,"title":{},"name":{},"text":{"3":{},"18":{}},"component":{},"keyword":{}}],["10.0.10",{"_index":549,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.13",{"_index":538,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.14",{"_index":541,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.15",{"_index":517,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.16",{"_index":520,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.17",{"_index":507,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.18",{"_index":512,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.19",{"_index":499,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.2",{"_index":568,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.20",{"_index":503,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.22",{"_index":428,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.23",{"_index":430,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.24",{"_index":494,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.25",{"_index":474,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.26",{"_index":195,"title":{},"name":{},"text":{"2":{},"3":{}},"component":{},"keyword":{}}],["10.0.27",{"_index":457,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.28",{"_index":440,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.29",{"_index":443,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.3",{"_index":571,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.30",{"_index":449,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.31",{"_index":411,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.32",{"_index":418,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.5",{"_index":559,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.6",{"_index":562,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.9",{"_index":547,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10.0.x",{"_index":839,"title":{"68":{}},"name":{},"text":{"7":{},"12":{},"14":{},"30":{},"68":{}},"component":{},"keyword":{}}],["10.1",{"_index":8164,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["100",{"_index":688,"title":{"71-75":{}},"name":{},"text":{"4":{},"51":{},"53":{},"61":{},"71":{},"73":{}},"component":{},"keyword":{}}],["1000",{"_index":4356,"title":{},"name":{},"text":{"39":{},"61":{},"71":{},"77":{}},"component":{},"keyword":{}}],["10000m",{"_index":3907,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["10050",{"_index":447,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10051",{"_index":445,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["101",{"_index":6281,"title":{},"name":{},"text":{"58":{},"71":{}},"component":{},"keyword":{}}],["102",{"_index":7531,"title":{"71-76":{}},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["1024",{"_index":2529,"title":{},"name":{},"text":{"31":{},"35":{},"46":{},"51":{},"53":{},"58":{},"61":{},"64":{},"71":{},"74":{},"79":{}},"component":{},"keyword":{}}],["10241",{"_index":623,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10246",{"_index":622,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["10247",{"_index":617,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["1024l",{"_index":7291,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["103",{"_index":8128,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["1099",{"_index":2168,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["1099:localhost:1099",{"_index":2184,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["11",{"_index":229,"title":{},"name":{"67":{}},"text":{"2":{},"3":{},"4":{},"5":{},"7":{},"12":{},"14":{},"20":{},"22":{},"31":{},"35":{},"36":{},"38":{},"41":{},"43":{},"59":{},"62":{},"66":{},"67":{},"68":{},"71":{},"79":{}},"component":{},"keyword":{}}],["11.0.0",{"_index":586,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.0.beta2",{"_index":593,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.0.beta3",{"_index":596,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.1",{"_index":577,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.10",{"_index":550,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.13",{"_index":539,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.14",{"_index":542,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.15",{"_index":518,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.16",{"_index":521,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.17",{"_index":508,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.18",{"_index":513,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.19",{"_index":500,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.2",{"_index":569,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.20",{"_index":504,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.22",{"_index":429,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.23",{"_index":431,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.24",{"_index":495,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.25",{"_index":475,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.26",{"_index":193,"title":{},"name":{},"text":{"2":{},"3":{}},"component":{},"keyword":{}}],["11.0.27",{"_index":469,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.28",{"_index":441,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.29",{"_index":444,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.3",{"_index":572,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.30",{"_index":450,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.31",{"_index":412,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.32",{"_index":419,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.5",{"_index":560,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.6",{"_index":563,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.9",{"_index":548,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11.0.x",{"_index":837,"title":{"67":{}},"name":{},"text":{"7":{},"12":{},"14":{},"67":{}},"component":{},"keyword":{}}],["11/10/9",{"_index":214,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["1100",{"_index":2172,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["11143",{"_index":464,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["11211",{"_index":4383,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["11d1",{"_index":2303,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["11â",{"_index":7337,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["12",{"_index":205,"title":{},"name":{"67":{}},"text":{"2":{},"5":{},"8":{},"35":{},"36":{},"62":{},"67":{}},"component":{},"keyword":{}}],["12.0",{"_index":7045,"title":{},"name":{"66":{}},"text":{},"component":{},"keyword":{}}],["12.0.0",{"_index":525,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}
1],["12.0.0.alpha3",{"_index":540,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.0.beta0",{"_index":543,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.0.beta1",{"_index":528,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.0.beta2",{"_index":529,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.1",{"_index":526,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.11",{"_index":488,"title":{},"name":{},"text":{"3":{},"17":{}},"component":{},"keyword":{}}],["12.0.12",{"_index":489,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.16",{"_index":481,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.17",{"_index":482,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.2",{"_index":509,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.24",{"_index":476,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.25",{"_index":478,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.3",{"_index":510,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.30",{"_index":467,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.31",{"_index":462,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.32",{"_index":458,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.33",{"_index":453,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.34",{"_index":434,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.35",{"_index":436,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.36",{"_index":446,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.37",{"_index":413,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.38",{"_index":415,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.39",{"_index":192,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["12.0.4",{"_index":514,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.5",{"_index":501,"title":{},"name":{},"text":{"3":{},"17":{}},"component":{},"keyword":{}}],["12.0.6",{"_index":505,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.8",{"_index":493,"title":{},"name":{},"text":{"3":{},"17":{}},"component":{},"keyword":{}}],["12.0.9",{"_index":496,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.beta4",{"_index":534,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.0.x",{"_index":836,"title":{"66":{},"67":{}},"name":{},"text":{"7":{},"12":{},"14":{},"17":{},"66":{},"67":{}},"component":{},"keyword":{}}],["12.1",{"_index":238,"title":{"14":{},"16":{},"17":{}},"name":{"66":{}},"text":{"2":{},"5":{},"64":{}},"component":{},"keyword":{}}],["12.1.0",{"_index":1423,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["12.1.0.beta2",{"_index":477,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.1.0.beta3",{"_index":479,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.1.10",{"_index":414,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.1.11",{"_index":416,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.1.12",{"_index":423,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.1.13",{"_index":185,"title":{},"name":{},"text":{"2":{},"20":{},"34":{},"35":{},"41":{},"45":{},"53":{},"55":{},"81":{}},"component":{},"keyword":{}}],["12.1.13.jar",{"_index":4491,"title":{},"name":{},"text":{"41":{},"42":{},"62":{},"69":{},"71":{},"81":{}},"component":{},"keyword":{}}],["12.1.13.jar:/my/custom/class",{"_index":4326,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["12.1.13.jar:/path/to/jetty.home/lib/jetti",{"_index":4510,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["12.1.13.jar:[oth",{"_index":4315,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["12.1.13.jar:infinispan",{"_index":4313,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["12.1.13.jar:jetti",{"_index":4312,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["12.1.4",{"_index":468,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.1.5",{"_index":463,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.1.6",{"_index":459,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.1.7",{"_index":454,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.1.8",{"_index":435,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.1.9",{"_index":437,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12.1.x",{"_index":832,"title":{"66":{}},"name":{},"text":{"7":{},"12":{},"14":{},"17":{},"66":{}},"component":{},"keyword":{}}],["12.1/org/eclipse/jetty/server/abstractconnector.html#setname(java.lang.str",{"_index":1969,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["120",{"_index":5987,"title":{},"name":{},"text":{"53":{},"73":{},"77":{}},"component":{},"keyword":{}}],["123",{"_index":1191,"title":{},"name":{},"text":{"10":{},"50":{}},"component":{},"keyword":{}}],["1234",{"_index":5341,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["12342",{"_index":7076,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["123456",{"_index":5292,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["12536",{"_index":630,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12538",{"_index":627,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["12611",{"_index":408,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["127.0.0.1",{"_index":2999,"title":{},"name":{},"text":{"31":{},"33":{},"35":{},"41":{}},"component":{},"keyword":{}}],["127.0.0.1:8282",{"_index":3918,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["127.0.1.1",{"_index":3000,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["1271",{"_index":6936,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["128",{"_index":8006,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["12â",{"_index":7340,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["13",{"_index":426,"title":{},"name":{},"text":{"3":{},"35":{},"36":{},"50":{}},"component":{},"keyword":{}}],["13009",{"_index":483,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["138m",{"_index":3894,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["139",{"_index":8946,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["13918",{"_index":1340,"title":{},"name":{},"text":{"14":{}},"component":{},"keyword":{}}],["14",{"_index":486,"title":{},"name":{},"text":{"3":{},"36":{}},"component":{},"keyword":{}}],["145m",{"_index":3638,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["15",{"_index":555,"title":{},"name":{},"text":{"3":{},"36":{}},"component":{},"keyword":{}}],["150m",{"_index":3610,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["1599558193150",{"_index":4216,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["1599558193150__test_0.0.0.0_node0ek3vx7x2y1e7pmi3z00uqj1k0",{"_index":4217,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["16",{"_index":4030,"title":{},"name":{},"text":{"36":{},"51":{},"57":{},"66":{},"71":{},"75":{},"81":{}},"component":{},"keyword":{}}
1],["1605",{"_index":461,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["16384",{"_index":7070,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["16l",{"_index":8235,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["17",{"_index":240,"title":{},"name":{},"text":{"2":{},"7":{},"12":{},"14":{},"36":{},"55":{},"67":{},"74":{}},"component":{},"keyword":{}}],["1738",{"_index":7476,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["175m",{"_index":3715,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["17632",{"_index":606,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["17638",{"_index":602,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["18",{"_index":535,"title":{},"name":{},"text":{"3":{},"36":{}},"component":{},"keyword":{}}],["18/sep/2011:19:18:28",{"_index":3105,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["1808",{"_index":7477,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["19",{"_index":2602,"title":{"52-13":{}},"name":{},"text":{"31":{},"34":{},"36":{},"52":{}},"component":{},"keyword":{}}],["192.168.0.100",{"_index":3520,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["19203",{"_index":422,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["19204",{"_index":424,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["1928",{"_index":5792,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["1945",{"_index":330,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{},"keyword":{}}],["1948",{"_index":480,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["1994",{"_index":7475,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["1995",{"_index":331,"title":{},"name":{},"text":{"2":{},"8":{},"70":{}},"component":{},"keyword":{}}],["1996",{"_index":7456,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["1997",{"_index":7457,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["1998",{"_index":324,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{},"keyword":{}}],["1999",{"_index":319,"title":{},"name":{},"text":{"2":{},"48":{},"70":{}},"component":{},"keyword":{}}],["1:e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4",{"_index":4672,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["1\\\\\\n",{"_index":4503,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["1\\nchain",{"_index":6979,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["1\\nnonc",{"_index":6980,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["1d",{"_index":3680,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["1e",{"_index":3670,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["1kb",{"_index":7803,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["1st",{"_index":226,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["1xx",{"_index":7530,"title":{"71-74":{}},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["2",{"_index":265,"title":{},"name":{},"text":{"2":{},"3":{},"10":{},"13":{},"19":{},"20":{},"22":{},"23":{},"26":{},"28":{},"29":{},"31":{},"33":{},"35":{},"36":{},"39":{},"41":{},"42":{},"44":{},"46":{},"51":{},"52":{},"56":{},"58":{},"62":{},"69":{},"71":{},"75":{},"78":{},"79":{},"81":{}},"component":{},"keyword":{}}],["2)(3",{"_index":3980,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["2.0",{"_index":308,"title":{},"name":{},"text":{"2":{},"8":{},"30":{},"40":{},"41":{},"65":{},"79":{}},"component":{},"keyword":{}}],["2.0.17",{"_index":4484,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["2.0.17.jar",{"_index":4488,"title":{},"name":{},"text":{"41":{},"81":{}},"component":{},"keyword":{}}],["2.0.17.jar:/path/to/jetty.home/lib/logging/jetti",{"_index":4509,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["2.0.txt",{"_index":2486,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["2.1",{"_index":303,"title":{},"name":{},"text":{"2":{},"79":{}},"component":{},"keyword":{}}],["2.2",{"_index":297,"title":{},"name":{},"text":{"2":{},"66":{},"79":{}},"component":{},"keyword":{}}],["2.3",{"_index":247,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["2.36.72.144:21216",{"_index":3866,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["2.4",{"_index":314,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["2.5",{"_index":302,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["20",{"_index":471,"title":{},"name":{},"text":{"3":{},"31":{},"34":{},"35":{},"36":{},"52":{},"53":{},"71":{},"73":{}},"component":{},"keyword":{}}],["200",{"_index":2906,"title":{},"name":{},"text":{"31":{},"34":{},"35":{},"51":{},"58":{},"62":{},"63":{},"67":{},"71":{},"75":{}},"component":{},"keyword":{}}],["2000",{"_index":325,"title":{},"name":{},"text":{"2":{},"31":{}},"component":{},"keyword":{}}],["200000",{"_index":6587,"title":{},"name":{},"text":{"61":{}},"component":{},"keyword":{}}],["2001",{"_index":316,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["2002",{"_index":320,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["2003",{"_index":311,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["2005",{"_index":7479,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["2006",{"_index":305,"title":{},"name":{},"text":{"2":{},"3":{}},"component":{},"keyword":{}}],["2007",{"_index":656,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["2008",{"_index":300,"title":{},"name":{},"text":{"2":{},"3":{}},"component":{},"keyword":{}}],["2009",{"_index":294,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["2010",{"_index":306,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["2011",{"_index":650,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["2013",{"_index":290,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["2014",{"_index":282,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{},"keyword":{}}],["2015",{"_index":278,"title":{},"name":{},"text":{"2":{},"3":{},"70":{}},"component":{},"keyword":{}}],["2016",{"_index":275,"title":{},"name":{},"text":{"2":{},"3":{}},"component":{},"keyword":{}}],["2017",{"_index":637,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["2018",{"_index":283,"title":{},"name":{},"text":{"2":{},"3":{}},"component":{},"keyword":{}}],["2019",{"_index":601,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["202",{"_index":632,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["2020",{"_index":270,"title":{},"name":{},"text":{"2":{},"3":{}},"component":{},"keyword":{}}],["2020_01_31",{"_index":3516,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["2021",{"_index":556,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["2022",{"_index":545,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}
1],["2023",{"_index":268,"title":{},"name":{},"text":{"2":{},"3":{}},"component":{},"keyword":{}}],["2024",{"_index":227,"title":{},"name":{},"text":{"2":{},"3":{},"31":{}},"component":{},"keyword":{}}],["2025",{"_index":239,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"8":{}},"component":{},"keyword":{}}],["2026",{"_index":406,"title":{},"name":{},"text":{"3":{},"4":{},"20":{},"35":{},"41":{},"45":{},"81":{}},"component":{},"keyword":{}}],["204",{"_index":7311,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["2047",{"_index":551,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["2048",{"_index":554,"title":{},"name":{},"text":{"3":{},"7":{},"31":{},"33":{}},"component":{},"keyword":{}}],["2068",{"_index":323,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{},"keyword":{}}],["2080",{"_index":645,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["21",{"_index":835,"title":{},"name":{},"text":{"7":{},"31":{},"34":{},"36":{},"41":{},"52":{}},"component":{},"keyword":{}}],["21.0.8",{"_index":4473,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["21.0.8+9",{"_index":1648,"title":{},"name":{},"text":{"20":{},"35":{},"41":{},"45":{},"81":{}},"component":{},"keyword":{}}],["2191",{"_index":546,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["21m",{"_index":4845,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["22",{"_index":565,"title":{},"name":{},"text":{"3":{},"51":{},"55":{},"71":{},"74":{}},"component":{},"keyword":{}}],["22201",{"_index":497,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["22:24:31.030:info",{"_index":1644,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["22:24:31.055:info",{"_index":1650,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["22:24:31.060:info",{"_index":1654,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["22:24:32.588:info",{"_index":1679,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["22:24:32.615:info",{"_index":1680,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["22:24:32.619:info",{"_index":1683,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["22:24:34.249:info",{"_index":1686,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["22:24:34.282:info",{"_index":1687,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["22:24:34.287:info",{"_index":1689,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["22:24:40.194:**info",{"_index":3560,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:40.219:**info",{"_index":3561,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:40.223:**info",{"_index":3563,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:44.449:warn",{"_index":3588,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:45.221:info",{"_index":3590,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:45.285:info",{"_index":3591,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:45.358:warn",{"_index":3598,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:45.366:info",{"_index":3605,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:45.374:info",{"_index":3608,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:47.613:warn",{"_index":3626,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:48.478:info",{"_index":3627,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:48.530:info",{"_index":3628,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:48.608:warn",{"_index":3631,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:48.609:warn",{"_index":3632,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:48.617:info",{"_index":3633,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:48.618:info",{"_index":3636,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:50.748:info",{"_index":3642,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:50.782:info",{"_index":3643,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:50.788:info",{"_index":3646,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:53.123:warn",{"_index":3696,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:54.013:info",{"_index":3697,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:54.068:info",{"_index":3698,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:54.136:warn",{"_index":3701,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:54.137:warn",{"_index":3702,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:54.146:info",{"_index":3703,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:54.147:info",{"_index":3706,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:54.181:info",{"_index":3710,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:54.183:info",{"_index":3713,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:58.468:info",{"_index":3877,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:58.494:info",{"_index":3878,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:24:58.498:info",{"_index":3880,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:25:02.054:warn",{"_index":3884,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:25:02.761:info",{"_index":3885,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:25:02.815:info",{"_index":3886,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:25:02.873:warn",{"_index":3889,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:25:02.892:info",{"_index":3890,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:25:02.894:info",{"_index":3892,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["22:25:19.186:warn",{"_index":4588,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["22:25:19.199:info",{"_index":4594,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["22:25:19.219:info",{"_index":4595,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["22:25:22.285:info",{"_index":4842,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["22:25:22.299:info",{"_index":4843,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["23",{"_index":1643,"title":{"52-13":{}},"name":{},"text":{"20":{},"35":{},"41":{},"45":{},"52":{}},"component":{},"keyword":{}}],["2332",{"_index":455,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["2396",{"_index":7478,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["23t22:25:28.593326488z",{"_index":8922,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["23t22:25:28.593707255z",{"_index":8923,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["23t22:25:28.599094545z",{"_index":8950,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["24",{"_index":2571,"title":{},"name":{},"text":{"31":{},"52":{}},"component":{},"keyword":{}}],["25",{"_index":605,"title":{},"name":{},"text":{"3":{},"35":{},"51":{},"55":{},"71":{},"74":{}},"component":{},"keyword":{}}],["250",{"_index":6219,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["2500",{"_index":6221,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["2518",{"_index":8162,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["256",{"_index":2428,"title":{},"name":{},"text":{"30":{},"42":{},"71":{}},"component":{},"keyword":{}}],["256:f5a5207a8729b1f709cb710311751eb2fc8acad5a1fb8ac991b736e69b6529a3",{"_index":4674,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["26",{"_index":582,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["26048",{"_index":544,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["26049",{"_index":536,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["2616",{"_index":285,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{},"keyword":{}}],["27",{"_index":589,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["27216",{"_index":597,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["27218",{"_index":590,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["27223",{"_index":583,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["2758",{"_index":676,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["2759",{"_index":673,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["28163",{"_index":580,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["28164",{"_index":579,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["28165",{"_index":574,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["28169",{"_index":573,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["2965",{"_index":7502,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["2a",{"_index":3657,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["2e",{"_index":3661,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["2f",{"_index":2952,"title":{},"name":{},"text":{"31":{},"35":{}},"component":{},"keyword":{}}],["2xx",{"_index":7798,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}
1],["3",{"_index":267,"title":{},"name":{},"text":{"2":{},"13":{},"19":{},"20":{},"22":{},"23":{},"26":{},"28":{},"29":{},"33":{},"35":{},"36":{},"41":{},"42":{},"46":{},"51":{},"52":{},"58":{},"63":{},"69":{},"71":{},"79":{},"81":{}},"component":{},"keyword":{}}],["3.0",{"_index":248,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["3.1",{"_index":242,"title":{},"name":{},"text":{"2":{},"12":{},"38":{}},"component":{},"keyword":{}}],["3.1.0.jar",{"_index":4059,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["3.2",{"_index":4082,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["3.8.6",{"_index":838,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["3.9.2",{"_index":833,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["30",{"_index":649,"title":{},"name":{},"text":{"3":{},"31":{},"35":{},"57":{}},"component":{},"keyword":{}}],["30000",{"_index":3209,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["301",{"_index":1791,"title":{},"name":{},"text":{"22":{},"31":{},"35":{},"51":{}},"component":{},"keyword":{}}],["302",{"_index":5358,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["303",{"_index":5359,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["308",{"_index":5751,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["31/jan/2020:20:30:40",{"_index":3521,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["32",{"_index":3660,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["34428",{"_index":566,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["34429",{"_index":557,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["356",{"_index":257,"title":{},"name":{},"text":{"2":{},"35":{},"58":{}},"component":{},"keyword":{}}],["3600",{"_index":4222,"title":{},"name":{},"text":{"39":{},"67":{}},"component":{},"keyword":{}}],["36478",{"_index":515,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["36479",{"_index":527,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["36m",{"_index":3565,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["37m",{"_index":1656,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["380",{"_index":5357,"title":{},"name":{},"text":{"51":{},"57":{}},"component":{},"keyword":{}}],["38m",{"_index":1684,"title":{},"name":{},"text":{"20":{},"41":{}},"component":{},"keyword":{}}],["3986",{"_index":7480,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["3rd",{"_index":3795,"title":{},"name":{},"text":{"35":{},"38":{},"51":{}},"component":{},"keyword":{}}],["3xx",{"_index":7799,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["4",{"_index":279,"title":{},"name":{},"text":{"2":{},"7":{},"13":{},"19":{},"20":{},"23":{},"26":{},"28":{},"29":{},"31":{},"33":{},"35":{},"36":{},"39":{},"41":{},"42":{},"46":{},"51":{},"58":{},"62":{},"64":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["4.0",{"_index":243,"title":{},"name":{},"text":{"2":{},"12":{},"22":{},"66":{}},"component":{},"keyword":{}}],["4.2.26",{"_index":668,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["4.2.27",{"_index":672,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["40",{"_index":3669,"title":{},"name":{},"text":{"35":{},"53":{},"73":{}},"component":{},"keyword":{}}],["400",{"_index":3197,"title":{},"name":{},"text":{"31":{},"35":{},"71":{}},"component":{},"keyword":{}}],["4000",{"_index":2020,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["401",{"_index":3115,"title":{},"name":{},"text":{"31":{},"51":{},"63":{}},"component":{},"keyword":{}}],["40167",{"_index":524,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["403",{"_index":6808,"title":{},"name":{},"text":{"63":{},"64":{}},"component":{},"keyword":{}}],["404",{"_index":1658,"title":{},"name":{},"text":{"20":{},"22":{},"31":{},"35":{},"62":{},"71":{},"79":{}},"component":{},"keyword":{}}],["405",{"_index":8714,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["407",{"_index":5814,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["41",{"_index":3676,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["413",{"_index":7796,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["41900",{"_index":522,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["42",{"_index":5258,"title":{},"name":{},"text":{"50":{},"52":{},"81":{}},"component":{},"keyword":{}}],["42.6.0",{"_index":4481,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["42.6.0.jar",{"_index":4495,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["429",{"_index":7912,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["43",{"_index":8793,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["431",{"_index":2893,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["4361",{"_index":6893,"title":{},"name":{},"text":{"64":{},"66":{}},"component":{},"keyword":{}}],["44",{"_index":8786,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["443",{"_index":3912,"title":{},"name":{},"text":{"35":{},"57":{},"71":{},"75":{}},"component":{},"keyword":{}}],["444",{"_index":639,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["4461",{"_index":651,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["45",{"_index":8790,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["4559",{"_index":5753,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["46m",{"_index":1691,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["48",{"_index":3658,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["4800",{"_index":642,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["49",{"_index":3656,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["4918",{"_index":8165,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["49m",{"_index":3648,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["4d",{"_index":3665,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["5",{"_index":310,"title":{},"name":{},"text":{"2":{},"3":{},"7":{},"20":{},"22":{},"23":{},"29":{},"33":{},"35":{},"36":{},"39":{},"41":{},"51":{},"57":{},"58":{},"71":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["5.0",{"_index":244,"title":{},"name":{},"text":{"2":{},"12":{}},"component":{},"keyword":{}}],["5.1.11",{"_index":667,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["5.1.12",{"_index":671,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["5.1.5",{"_index":677,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["5.1.6",{"_index":678,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["50",{"_index":3654,"title":{},"name":{},"text":{"35":{},"53":{},"71":{},"73":{}},"component":{},"keyword":{}}],["500",{"_index":7071,"title":{},"name":{},"text":{"66":{},"67":{},"71":{}},"component":{},"keyword":{}}],["5000",{"_index":7600,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["5005",{"_index":4841,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["503",{"_index":7924,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["5115",{"_index":472,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["512",{"_index":5545,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["52",{"_index":3655,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["53",{"_index":3664,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["54",{"_index":3659,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["5613",{"_index":662,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["5614",{"_index":660,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["5615",{"_index":663,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["5795",{"_index":452,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["58qw",{"_index":531,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["5rvh",{"_index":533,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["6",{"_index":304,"title":{},"name":{},"text":{"2":{},"7":{},"33":{},"35":{},"36":{},"39":{},"41":{},"52":{},"58":{},"81":{}},"component":{},"keyword":{}}],["6.0",{"_index":245,"title":{},"name":{},"text":{"2":{},"12":{}},"component":{},"keyword":{}}],["6.0.0.jar:jetti",{"_index":4311,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["6.0.0beta16",{"_index":674,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["6.0.0beta17",{"_index":675,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["6.0.0beta4",{"_index":679,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["6.0.1",{"_index":666,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["6.0.2",{"_index":670,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["6.1",{"_index":246,"title":{},"name":{},"text":{"2":{},"12":{},"66":{}},"component":{},"keyword":{}}],["6.1.0",{"_index":669,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["6.1.0.jar",{"_index":7429,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["6.1.5",{"_index":661,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["6.1.6",{"_index":658,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["6.1.6rc0",{"_index":664,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["6.1.7",{"_index":659,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["6.8.0",{"_index":8945,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["60",{"_index":1555,"title":{},"name":{},"text":{"19":{},"31":{},"45":{},"53":{},"73":{},"77":{}},"component":{},"keyword":{}}],["600",{"_index":4155,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["60000",{"_index":3331,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["60000m",{"_index":3908,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["600sec",{"_index":8313,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["6060",{"_index":1460,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["60sec",{"_index":8402,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["6265",{"_index":7503,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["6265bi",{"_index":5724,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["64",{"_index":2831,"title":{},"name":{},"text":{"31":{},"35":{},"41":{},"51":{},"81":{}},"component":{},"keyword":{}}],["6455",{"_index":255,"title":{},"name":{},"text":{"2":{},"35":{},"58":{}},"component":{},"keyword":{}}],["6672",{"_index":657,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["6762",{"_index":511,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["6763",{"_index":487,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["6789",{"_index":3523,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["6790",{"_index":438,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["6969",{"_index":665,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["7",{"_index":299,"title":{},"name":{},"text":{"2":{},"3":{},"33":{},"35":{},"36":{},"41":{},"52":{},"81":{}},"component":{},"keyword":{}}],["7.6.0.rco",{"_index":654,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["7230",{"_index":252,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{},"keyword":{}}],["7231",{"_index":7459,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["7232",{"_index":7460,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["7233",{"_index":7461,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["7234",{"_index":7462,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["7235",{"_index":5752,"title":{},"name":{},"text":{"51":{},"70":{}},"component":{},"keyword":{}}],["7239",{"_index":2969,"title":{},"name":{},"text":{"31":{},"35":{}},"component":{},"keyword":{}}],["7540",{"_index":253,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{},"keyword":{}}],["7578",{"_index":7510,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["7656",{"_index":641,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["7657",{"_index":640,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["7658",{"_index":638,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["7692",{"_index":3720,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["7708",{"_index":427,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["7a",{"_index":3685,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["7g7d.com",{"_index":1943,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["8",{"_index":293,"title":{},"name":{},"text":{"2":{},"3":{},"12":{},"13":{},"14":{},"20":{},"22":{},"29":{},"31":{},"33":{},"35":{},"36":{},"40":{},"41":{},"44":{},"51":{},"58":{},"59":{},"66":{},"67":{},"68":{},"71":{},"79":{},"81":{}},"component":{},"keyword":{}}],["8,9,10,11",{"_index":1585,"title":{},"name":{},"text":{"20":{},"23":{},"31":{}},"component":{},"keyword":{}}],["8.1.0.rc2",{"_index":653,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["80",{"_index":3911,"title":{},"name":{},"text":{"35":{},"51":{},"53":{},"57":{},"71":{},"73":{},"75":{}},"component":{},"keyword":{}}],["800",{"_index":5291,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["8000",{"_index":8756,"title":{},"name":{},"text":{"80":{}},"component":{},"keyword":{}}],["8080",{"_index":1459,"title":{},"name":{},"text":{"18":{},"20":{},"31":{},"35":{},"46":{},"51":{},"53":{},"57":{},"62":{},"71":{},"75":{},"79":{},"81":{}},"component":{},"keyword":{}}],["8181",{"_index":8257,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["8184",{"_index":490,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["8192",{"_index":7069,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["82",{"_index":3673,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["8282",{"_index":3921,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["8384",{"_index":432,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["8388608",{"_index":8042,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["84",{"_index":3674,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["843",{"_index":7667,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["8441",{"_index":3723,"title":{},"name":{},"text":{"35":{},"58":{}},"component":{},"keyword":{}}],["8443",{"_index":3207,"title":{},"name":{},"text":{"31":{},"35":{},"53":{},"71":{},"75":{}},"component":{},"keyword":{}}],["8444",{"_index":3716,"title":{},"name":{},"text":{"35":{},"55":{}},"component":{},"keyword":{}}],["86",{"_index":3675,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["88",{"_index":3686,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["8888",{"_index":5786,"title":{},"name":{},"text":{"51":{},"58":{}},"component":{},"keyword":{}}],["8:00",{"_index":3480,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["8a",{"_index":3677,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["9",{"_index":339,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"22":{},"31":{},"33":{},"36":{},"41":{},"66":{},"79":{}},"component":{},"keyword":{}}],["9.0",{"_index":291,"title":{},"name":{},"text":{"2":{},"62":{}},"component":{},"keyword":{}}],["9.0.53",{"_index":498,"title":{},"name":{},"text":{"3":{}},"component
1":{},"keyword":{}}],["9.0.55",{"_index":492,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.1",{"_index":289,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["9.1.0.final.jar:jetti",{"_index":4314,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["9.2",{"_index":281,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["9.2.25",{"_index":634,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.2.27",{"_index":625,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.2.28",{"_index":619,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.2.8",{"_index":646,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.2.9",{"_index":647,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.3",{"_index":277,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["9.3.1",{"_index":6626,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["9.3.24",{"_index":635,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.3.26",{"_index":626,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.3.27",{"_index":620,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.3.29",{"_index":599,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.3.8",{"_index":643,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.3.9",{"_index":644,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4",{"_index":274,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["9.4.10",{"_index":633,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.11",{"_index":636,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.13",{"_index":4106,"title":{"39-25":{}},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["9.4.15",{"_index":624,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.16",{"_index":618,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.17",{"_index":621,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.20",{"_index":610,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.21",{"_index":611,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.23",{"_index":607,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.24",{"_index":608,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.29",{"_index":603,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.30",{"_index":604,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.32",{"_index":598,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.33",{"_index":600,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.34",{"_index":591,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.35",{"_index":594,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.36",{"_index":584,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.37",{"_index":587,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.38",{"_index":575,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.39",{"_index":578,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.40",{"_index":567,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.41",{"_index":570,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.42",{"_index":558,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.43",{"_index":561,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.46",{"_index":552,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.47",{"_index":553,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.50",{"_index":537,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.51",{"_index":523,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.52",{"_index":516,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.53",{"_index":519,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.54",{"_index":502,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.56",{"_index":484,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.57",{"_index":473,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.58",{"_index":466,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.58.v20250814",{"_index":196,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["9.4.59",{"_index":456,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.60",{"_index":439,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.61",{"_index":442,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.62",{"_index":448,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.63",{"_index":410,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.64",{"_index":417,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.8",{"_index":628,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.9",{"_index":629,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.4.x",{"_index":1233,"title":{"68":{}},"name":{},"text":{"12":{},"14":{},"68":{}},"component":{},"keyword":{}}],["9.x",{"_index":342,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["90",{"_index":3384,"title":{},"name":{},"text":{"33":{},"34":{},"35":{},"46":{}},"component":{},"keyword":{}}],["9090",{"_index":7605,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["9110",{"_index":7464,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["9112",{"_index":7465,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["9114",{"_index":254,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["94",{"_index":7363,"title":{},"name":{"68":{}},"text":{},"component":{},"keyword":{}}],["9511",{"_index":616,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9512",{"_index":615,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9514",{"_index":614,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9515",{"_index":613,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9516",{"_index":612,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}
1],["9518",{"_index":609,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["953/1,008/15,984",{"_index":8949,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["9823",{"_index":506,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9876",{"_index":4427,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["9999",{"_index":1675,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["9]{4",{"_index":8777,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["9d",{"_index":3681,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["_",{"_index":1264,"title":{},"name":{},"text":{"13":{},"39":{},"51":{},"77":{}},"component":{},"keyword":{}}],["__host",{"_index":5726,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["__secur",{"_index":5725,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["_and_",{"_index":5152,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["_catalog",{"_index":4210,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["_privatefield",{"_index":1268,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["_servernam",{"_index":4084,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["a0",{"_index":3678,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["ab",{"_index":3689,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["abandon",{"_index":1200,"title":{},"name":{},"text":{"10":{}},"component":{},"keyword":{}}],["abcd12345",{"_index":8507,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["abil",{"_index":2135,"title":{},"name":{},"text":{"24":{},"51":{},"53":{},"55":{}},"component":{},"keyword":{}}],["abort",{"_index":2706,"title":{},"name":{},"text":{"31":{},"39":{},"51":{},"57":{},"71":{}},"component":{},"keyword":{}}],["abov",{"_index":386,"title":{},"name":{},"text":{"3":{},"4":{},"8":{},"11":{},"17":{},"22":{},"24":{},"29":{},"30":{},"33":{},"34":{},"35":{},"36":{},"39":{},"41":{},"44":{},"45":{},"46":{},"50":{},"51":{},"52":{},"55":{},"57":{},"58":{},"62":{},"63":{},"66":{},"67":{},"70":{},"71":{},"74":{},"75":{},"77":{},"78":{},"79":{},"80":{},"81":{}},"component":{},"keyword":{}}],["abruptli",{"_index":4578,"title":{},"name":{},"text":{"41":{},"74":{}},"component":{},"keyword":{}}],["absenc",{"_index":8576,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["absent",{"_index":5977,"title":{},"name":{},"text":{"53":{},"55":{},"71":{}},"component":{},"keyword":{}}],["absolut",{"_index":1537,"title":{},"name":{},"text":{"19":{},"31":{},"36":{},"39":{}},"component":{},"keyword":{}}],["absolute/path/to/static/resourc",{"_index":8048,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["abstract",{"_index":1371,"title":{},"name":{},"text":{"15":{},"34":{},"35":{},"46":{},"57":{},"66":{},"71":{},"79":{}},"component":{},"keyword":{}}],["abstractconnect",{"_index":4893,"title":{},"name":{},"text":{"46":{},"57":{},"75":{}},"component":{},"keyword":{}}],["abstractconnection.onfil",{"_index":7539,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["abstractconnectionfactori",{"_index":8264,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["abstracthandl",{"_index":7331,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["abstractlifecycl",{"_index":5110,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["abstractsessioncach",{"_index":8382,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["abstractsessiondatastor",{"_index":8425,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["abstractsessionmanag",{"_index":8447,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["accept",{"_index":1179,"title":{"31-2":{}},"name":{},"text":{"9":{},"10":{},"15":{},"24":{},"30":{},"31":{},"34":{},"35":{},"41":{},"46":{},"51":{},"52":{},"64":{},"71":{},"73":{},"74":{},"75":{},"81":{}},"component":{},"keyword":{}}],["accept(serversocketchannel",{"_index":4870,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["acceptor",{"_index":2497,"title":{"31-24":{},"71-12":{}},"name":{},"text":{"31":{},"46":{},"52":{},"71":{},"81":{}},"component":{},"keyword":{}}],["acceptor.accept",{"_index":4871,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["acceptqueues",{"_index":7598,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["access",{"_index":695,"title":{"24-3":{},"24-4":{},"24-5":{},"48-2":{},"48-3":{},"48-4":{},"48-5":{},"65-5":{}},"name":{},"text":{"4":{},"7":{},"20":{},"23":{},"24":{},"28":{},"31":{},"33":{},"34":{},"36":{},"39":{},"42":{},"43":{},"44":{},"45":{},"47":{},"48":{},"51":{},"53":{},"55":{},"57":{},"58":{},"60":{},"63":{},"65":{},"67":{},"71":{},"73":{},"74":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["access=al",{"_index":5532,"title":{},"name":{},"text":{"51":{},"55":{},"71":{},"74":{}},"component":{},"keyword":{}}],["access=com.aayushatharva.brotli4j",{"_index":5534,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["access=org.eclipse.jetty.quic.quiche.foreign",{"_index":6139,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["accesstim",{"_index":4261,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["accident",{"_index":3301,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["accommod",{"_index":7052,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["accompani",{"_index":1113,"title":{},"name":{},"text":{"8":{},"22":{}},"component":{},"keyword":{}}],["accomplish",{"_index":2233,"title":{},"name":{},"text":{"26":{},"33":{},"62":{}},"component":{},"keyword":{}}],["accord",{"_index":1500,"title":{},"name":{},"text":{"19":{},"22":{},"39":{},"62":{},"77":{}},"component":{},"keyword":{}}],["accordingli",{"_index":1186,"title":{},"name":{},"text":{"10":{},"35":{},"53":{},"66":{},"79":{}},"component":{},"keyword":{}}],["account",{"_index":1167,"title":{},"name":{},"text":{"9":{},"39":{},"52":{},"62":{},"64":{},"71":{},"77":{}},"component":{},"keyword":{}}],["account:\\n${from}\\n\\ni",{"_index":6976,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["accounts[0",{"_index":6969,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["accumul",{"_index":5029,"title":{},"name":{},"text":{"46":{},"51":{},"58":{},"66":{},"77":{}},"component":{},"keyword":{}}],["accur",{"_index":5481,"title":{},"name":{},"text":{"51":{},"52":{}},"component":{},"keyword":{}}],["achiev",{"_index":723,"title":{},"name":{},"text":{"4":{},"22":{},"23":{},"24":{},"30":{},"39":{},"43":{},"51":{},"62":{},"66":{},"67":{},"71":{}},"component":{},"keyword":{}}],["acid",{"_index":4399,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["acm",{"_index":1766,"title":{},"name":{},"text":{"22":{},"29":{},"30":{},"69":{}},"component":{},"keyword":{}}],["acme.mod",{"_index":2412,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["acme.war",{"_index":7433,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["acme.war!/web",{"_index":7434,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["acmehandler.class",{"_index":1767,"title":{},"name":{},"text":{"22":{},"69":{}},"component":{},"keyword":{}}],["acquir",{"_index":2814,"title":{},"name":{},"text":{"31":{},"52":{},"64":{}},"component":{},"keyword":{}}],["acquisit",{"_index":8837,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["act",{"_index":377,"title":{},"name":{},"text":{"3":{},"11":{},"24":{},"33":{},"35":{},"48":{},"52":{},"53":{},"71":{}},"component":{},"keyword":{}}],["action",{"_index":1214,"title":{},"name":{},"text":{"10":{},"28":{},"31":{},"36":{},"46":{},"48":{},"51":{},"58":{},"63":{},"71":{},"75":{}},"component":{},"keyword":{}}],["action.idl",{"_index":4948,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["action.schedul",{"_index":4947,"title":{},"name":{},"text":{"46":{},"58":{},"75":{}},"component":{},"keyword":{}}],["action.succeed",{"_index":4949,"title":{},"name":{},"text":{"46":{},"58":{},"75":{}},"component":{},"keyword":{}}],["action=\"/auth/login",{"_index":6949,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["action_info",{"_index":5248,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["activ",{"_index":154,"title":{},"name":{},"text":{"1":{},"2":{},"3":{},"7":{},"9":{},"10":{},"12":{},"20":{},"31":{},"35":{},"38":{},"39":{},"41":{},"46":{},"47":{},"51":{},"55":{},"57":{},"60":{},"62":{},"71":{},"74":{}},"component":{},"keyword":{}}],["activemq",{"_index":2066,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["actual",{"_index":978,"title":{},"name":{},"text":{"8":{},"39":{},"51":{},"52":{},"60":{},"70":{},"71":{},"77":{},"81":{}},"component":{},"keyword":{}}],["ad",{"_index":1192,"title":{"41-7":{}},"name":{},"text":{"10":{},"13":{},"15":{},"22":{},"24":{},"26":{},"28":{},"30":{},"31":{},"35":{},"36":{},"38":{},"39":{},"41":{},"43":{},"46":{},"47":{},"48":{},"51":{},"52":{},"55":{},"62":{},"64":{},"66":{},"69":{},"71":{},"74":{}},"component":{},"keyword":{}}],["adapt",{"_index":5873,"title":{"52-5":{}},"name":{},"text":{"52":{},"66":{},"77":{}},"component":{},"keyword":{}}],["adaptiveexecutionstrategi",{"_index":5907,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["add",{"_index":1092,"title":{},"name":{},"text":{"8":{},"18":{},"20":{},"22":{},"24":{},"26":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"38":{},"39":{},"40":{},"41":{},"43":{},"45":{},"46":{},"47":{},"48":{},"51":{},"52":{},"55":{},"58":{},"59":{},"62":{},"64":{},"71":{},"73":{},"74":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["add(uri",{"_index":5720,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["add/remov",{"_index":5138,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["addbean(schedul",{"_index":5116,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["addcookie(cooki",{"_index":5740,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["addcount(@name(\"count",{"_index":5243,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["addcount(int",{"_index":5235,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["added/changed/remov",{"_index":1825,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["added/replac",{"_index":8104,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["added/updated/remov",{"_index":7396,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["adding/remov",{"_index":5137,"title":{},"name":{},"text":{"47":{},"71":{}},"component":{},"keyword":{}}],["addit",{"_index":103,"title":{},"name":{},"text":{"1":{},"8":{},"10":{},"12":{},"22":{},"26":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"39":{},"40":{},"41":{},"43":{},"45":{},"46":{},"48":{},"51":{},"52":{},"57":{},"58":{},"62":{},"66":{},"70":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["addition",{"_index":765,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["addmanaged(monitor",{"_index":5111,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["address",{"_index":335,"title":{},"name":{},"text":{"2":{},"4":{},"9":{},"10":{},"11":{},"17":{},"22":{},"24":{},"31":{},"33":{},"34":{},"35":{},"39":{},"45":{},"48":{},"50":{},"51":{},"53":{},"55":{},"56":{},"57":{},"62":{},"64":{},"71":{},"79":{}},"component":{},"keyword":{}}],["address(address",{"_index":5319,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["address(str",{"_index":5313,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["address)object",{"_index":5322,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["address.class.getnam",{"_index":5323,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["address.getaddress",{"_index":5325,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["addressconvertor",{"_index":5317,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["adds/remov",{"_index":7779,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["adequ",{"_index":7679,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["adher",{"_index":1204,"title":{},"name":{},"text":{"10":{}},"component":{},"keyword":{}}],["adjust",{"_index":3928,"title":{},"name":{},"text":{"35":{},"52":{},"79":{}},"component":{},"keyword":{}}],["admin",{"_index":5766,"title":{},"name":{},"text":{"51":{},"63":{},"71":{}},"component":{},"keyword":{}}],["administr",{"_index":1466,"title":{},"name":{},"text":{"18":{},"71":{}},"component":{},"keyword":{}}],["adminrealm",{"_index":5765,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["admonit",{"_index":946,"title":{"8-16":{}},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["admonitionâ",{"_index":1146,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["adoc",{"_index":1099,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["adopt",{"_index":353,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["adoptium",{"_index":4457,"title":{},"name":{},"text":{"41":{},"81":{}},"component":{},"keyword":{}}],["advanc",{"_index":964,"title":{"20-7":{},"43-3":{},"79-6":{}},"name":{},"text":{"8":{},"14":{},"31":{},"35":{},"46":{},"51":{},"53":{},"57":{},"71":{},"79":{},"84":{}},"component":{},"keyword":{}}],["advantag",{"_index":970,"title":{"43-1":{}},"name":{},"text":{"8":{},"23":{},"35":{},"43":{},"71":{},"79":{}},"component":{},"keyword":{}}],["advent",{"_index":5850,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["advertis",{"_index":3619,"title":{},"name":{},"text":{"35":{},"71":{}},"component":{},"keyword":{}}],["advic",{"_index":8110,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["advis",{"_index":4146,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["affect",{"_index":1456,"title":{},"name":{},"text":{"18":{},"19":{},"22":{},"52":{},"62":{},"71":{},"79":{}},"component":{},"keyword":{}}],["aforement",{"_index":1073,"title":{},"name":{},"text":{"8":{},"39":{}},"component":{},"keyword":{}}],["afterhandl",{"_index":7816,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["afterward",{"_index":5942,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["ag",{"_index":3202,"title":{},"name":{},"text":{"31":{},"50":{},"71":{},"77":{}},"component":{},"keyword":{}}],["again",{"_index":2190,"title":{},"name":{},"text":{"24":{},"31":{},"33":{},"35":{},"39":{},"41":{},"43":{},"44":{},"46":{},"51":{},"52":{},"53":{},"57":{},"58":{},"70":{},"71":{},"73":{},"75":{},"77":{}},"component":{},"keyword":{}}],["against",{"_index":1732,"title":{},"name":{},"text":{"22":{},"31":{},"35":{},"38":{},"51":{},"71":{},"79":{}},"component":{},"keyword":{}}],["agent",{"_index":3519,"title":{},"name":{},"text":{"34":{},"41":{},"51":{},"71":{}},"component":{},"keyword":{}}],["agent(\"mozilla/5.0",{"_index":5429,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["agentlib:jdwp",{"_index":4835,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005",{"_index":4834,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000",{"_index":8755,"title":{},"name":{},"text":{"80":{}},"component":{},"keyword":{}}],["agent}i",{"_index":3068,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["aggreg",{"_index":2901,"title":{},"name":{},"text":{"31":{},"46":{},"57":{}},"component":{},"keyword":{}}],["agil",{"_index":79,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["agnost",{"_index":8302,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["ago",{"_index":4178,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["agreement",{"_index":1160,"title":{"9
1":{}},"name":{},"text":{"9":{},"10":{}},"component":{},"keyword":{}}],["ahead",{"_index":98,"title":{},"name":{},"text":{"1":{},"35":{}},"component":{},"keyword":{}}],["aim",{"_index":3942,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["ajax</artifactid",{"_index":5253,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["aka",{"_index":8446,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["alert",{"_index":4917,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["algorithm",{"_index":2561,"title":{},"name":{},"text":{"31":{},"33":{},"38":{},"42":{},"48":{},"51":{},"62":{},"71":{}},"component":{},"keyword":{}}],["alia",{"_index":2113,"title":{},"name":{},"text":{"23":{},"31":{},"33":{},"34":{}},"component":{},"keyword":{}}],["alic",{"_index":2200,"title":{},"name":{},"text":{"24":{},"63":{}},"component":{},"keyword":{}}],["alice:password,read,writ",{"_index":6847,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["align",{"_index":3474,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["alik",{"_index":753,"title":{},"name":{},"text":{"4":{},"62":{}},"component":{},"keyword":{}}],["aliv",{"_index":3117,"title":{},"name":{},"text":{"31":{},"35":{}},"component":{},"keyword":{}}],["all_caps_for_public_const",{"_index":1262,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["alloc",{"_index":2353,"title":{},"name":{},"text":{"29":{},"30":{},"31":{},"39":{},"46":{},"51":{},"52":{},"71":{},"77":{}},"component":{},"keyword":{}}],["allow",{"_index":1446,"title":{},"name":{},"text":{"18":{},"22":{},"23":{},"24":{},"28":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"41":{},"43":{},"44":{},"45":{},"46":{},"48":{},"51":{},"52":{},"53":{},"54":{},"55":{},"58":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"69":{},"70":{},"71":{},"73":{},"74":{},"75":{},"76":{},"77":{},"79":{}},"component":{},"keyword":{}}],["allowcredenti",{"_index":7891,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["allowcredentials=fals",{"_index":7892,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["allowcredentials=tru",{"_index":7893,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["allowedorigin",{"_index":7886,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["allparamet",{"_index":7167,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["alon",{"_index":8953,"title":{},"name":{},"text":{"84":{}},"component":{},"keyword":{}}],["along",{"_index":915,"title":{},"name":{},"text":{"7":{},"24":{},"33":{},"39":{},"41":{},"45":{},"51":{},"63":{},"71":{},"77":{}},"component":{},"keyword":{}}],["alongsid",{"_index":982,"title":{},"name":{},"text":{"8":{},"20":{},"22":{},"31":{}},"component":{},"keyword":{}}],["alpha",{"_index":1604,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["alphabet",{"_index":1837,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["alpn",{"_index":2488,"title":{"31-1":{}},"name":{},"text":{"31":{},"35":{},"51":{},"71":{}},"component":{},"keyword":{}}],["alpn.getprotocol",{"_index":7569,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["alpn.setdefaultprotocol(h1.getprotocol",{"_index":7566,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["alpn.setdefaultprotocol(http11.getprotocol",{"_index":7661,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["alpn.setdefaultprotocol(https.getprotocol",{"_index":7618,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["alpnserverconnectionfactori",{"_index":7565,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["alreadi",{"_index":798,"title":{},"name":{},"text":{"6":{},"21":{},"22":{},"23":{},"24":{},"26":{},"28":{},"29":{},"30":{},"31":{},"34":{},"35":{},"39":{},"41":{},"44":{},"46":{},"51":{},"52":{},"57":{},"62":{},"67":{},"70":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["alt",{"_index":7663,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["alter",{"_index":5129,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["altern",{"_index":1880,"title":{},"name":{},"text":{"22":{},"31":{},"33":{},"34":{},"35":{},"36":{},"39":{},"41":{},"43":{},"45":{},"46":{},"51":{},"52":{},"53":{},"57":{},"58":{},"62":{},"64":{},"71":{},"73":{},"77":{},"79":{}},"component":{},"keyword":{}}],["although",{"_index":969,"title":{},"name":{},"text":{"8":{},"12":{},"18":{},"24":{},"31":{},"33":{},"35":{},"39":{},"44":{},"46":{},"51":{},"52":{},"58":{},"62":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["altsvccustom",{"_index":7672,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["altsvccustomizer.setmaxage(dur",{"_index":7670,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["altsvccustomizer.setpersist(boolean",{"_index":7671,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["alway",{"_index":1272,"title":{},"name":{},"text":{"13":{},"18":{},"22":{},"32":{},"35":{},"39":{},"41":{},"42":{},"46":{},"48":{},"51":{},"52":{},"58":{},"69":{},"71":{},"74":{},"77":{},"79":{}},"component":{},"keyword":{}}],["amazon",{"_index":6992,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["ambigu",{"_index":7453,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["ambiguous_path_separ",{"_index":2949,"title":{},"name":{},"text":{"31":{},"70":{}},"component":{},"keyword":{}}
1],["amd64",{"_index":8944,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["america/los_angel",{"_index":3479,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["amongst",{"_index":8300,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["amount",{"_index":1550,"title":{},"name":{},"text":{"19":{},"28":{},"31":{},"39":{},"45":{},"61":{},"71":{},"77":{}},"component":{},"keyword":{}}],["analog",{"_index":6680,"title":{},"name":{},"text":{"62":{},"77":{}},"component":{},"keyword":{}}],["analysi",{"_index":6733,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["analyz",{"_index":3509,"title":{},"name":{},"text":{"34":{},"58":{},"71":{},"79":{}},"component":{},"keyword":{}}],["ancient",{"_index":318,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["and/or",{"_index":1404,"title":{},"name":{},"text":{"17":{},"20":{},"22":{},"30":{},"35":{},"39":{},"41":{},"43":{},"58":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["anew",{"_index":5115,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["anim",{"_index":4198,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["annot",{"_index":361,"title":{"19":{},"19-1":{},"48-6":{},"58-13":{}},"name":{},"text":{"2":{},"7":{},"17":{},"19":{},"21":{},"23":{},"28":{},"32":{},"35":{},"44":{},"48":{},"50":{},"58":{},"62":{},"66":{},"67":{},"71":{},"79":{},"81":{}},"component":{},"keyword":{}}],["annotatedendpoint",{"_index":6363,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["annotations.mod",{"_index":7115,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["announc",{"_index":683,"title":{"4-7":{}},"name":{},"text":{"4":{},"6":{}},"component":{},"keyword":{}}],["[email protected]",{"_index":204,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["anoth",{"_index":789,"title":{},"name":{},"text":{"6":{},"8":{},"22":{},"23":{},"28":{},"30":{},"31":{},"39":{},"41":{},"43":{},"45":{},"46":{},"51":{},"52":{},"53":{},"54":{},"58":{},"62":{},"63":{},"71":{},"73":{},"75":{},"76":{},"77":{},"78":{}},"component":{},"keyword":{}}],["answer",{"_index":752,"title":{},"name":{},"text":{"4":{},"84":{}},"component":{},"keyword":{}}],["ant",{"_index":2277,"title":{},"name":{},"text":{"28":{},"59":{},"62":{},"67":{}},"component":{},"keyword":{}}],["antiqu",{"_index":309,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["antora",{"_index":934,"title":{"8-4":{}},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["antora.yml",{"_index":1024,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["antora:antora",{"_index":1010,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["anymor",{"_index":3502,"title":{},"name":{},"text":{"34":{},"46":{},"51":{},"53":{},"55":{},"71":{},"74":{},"75":{},"79":{}},"component":{},"keyword":{}}],["anyth",{"_index":1178,"title":{},"name":{},"text":{"9":{},"20":{}},"component":{},"keyword":{}}],["anyuserloginservic",{"_index":6888,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["anyway",{"_index":7644,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["anywher",{"_index":1872,"title":{},"name":{},"text":{"22":{},"31":{}},"component":{},"keyword":{}}],["apach",{"_index":117,"title":{},"name":{},"text":{"1":{},"7":{},"8":{},"14":{},"28":{},"30":{},"34":{},"35":{},"39":{},"41":{},"51":{},"59":{},"67":{},"71":{}},"component":{},"keyword":{}}],["apacheâ",{"_index":3138,"title":{},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["apart",{"_index":7755,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["api",{"_index":190,"title":{"51-8":{},"51-9":{},"51-10":{},"58-18":{},"61-3":{},"66-8":{},"67-5":{},"67-7":{},"67-8":{},"67-9":{},"67-10":{},"67-11":{},"71-55":{},"79-2":{},"79-7":{},"79-12":{}},"name":{},"text":{"2":{},"5":{},"7":{},"15":{},"17":{},"18":{},"22":{},"24":{},"26":{},"31":{},"34":{},"35":{},"38":{},"39":{},"41":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{},"81":{},"83":{},"84":{}},"component":{},"keyword":{}}],["api.domain.com",{"_index":7717,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["api/product",{"_index":7715,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["api</artifactid",{"_index":6518,"title":{},"name":{},"text":{"59":{},"79":{}},"component":{},"keyword":{}}],["apicontext",{"_index":7729,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["app",{"_index":1752,"title":{},"name":{},"text":{"22":{},"31":{},"35":{},"39":{},"40":{},"59":{},"60":{},"63":{},"69":{},"71":{},"79":{}},"component":{},"keyword":{}}],["app.properti",{"_index":1755,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["app.war",{"_index":1862,"title":{},"name":{},"text":{"22":{},"63":{}},"component":{},"keyword":{}}],["app/admin/bar",{"_index":6838,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}
1],["app/class",{"_index":1859,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["app/classes/:acm",{"_index":7425,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["app/css",{"_index":1817,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["app/css/style.css",{"_index":1816,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["app/foo",{"_index":6837,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["app/index.html",{"_index":1815,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["app/lib/acm",{"_index":7426,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["app1",{"_index":8412,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["app1.getsessionhandler().setsessioncache(cach",{"_index":8469,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["app1.setcontextpath(\"/app1",{"_index":8413,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["app1handl",{"_index":7705,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["app2",{"_index":8415,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["app2.getsessionhandler().setsessioncache(nullsessioncach",{"_index":8422,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["app2.setcontextpath(\"/app2",{"_index":8416,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["app2handl",{"_index":7706,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["app_5_0.xsd",{"_index":8667,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["app_6_0.xsd",{"_index":3733,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["app_6_1.xsd",{"_index":1986,"title":{},"name":{},"text":{"22":{},"40":{},"59":{}},"component":{},"keyword":{}}],["appar",{"_index":3269,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["appcontextid",{"_index":4083,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["appear",{"_index":1135,"title":{},"name":{},"text":{"8":{},"31":{},"34":{},"39":{},"41":{}},"component":{},"keyword":{}}],["append",{"_index":2433,"title":{},"name":{},"text":{"30":{},"31":{},"34":{},"39":{},"41":{},"84":{}},"component":{},"keyword":{}}],["appendtofile(partialpayload",{"_index":6374,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["appendtofile(payload",{"_index":6362,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["appendtofile(stream",{"_index":6379,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["appengin",{"_index":4147,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["appeventshandl",{"_index":7837,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["apphandl",{"_index":6818,"title":{},"name":{},"text":{"63":{},"71":{}},"component":{},"keyword":{}}],["applet",{"_index":3941,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["applewebkit/537.36",{"_index":3527,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["appli",{"_index":1573,"title":{},"name":{},"text":{"19":{},"22":{},"23":{},"28":{},"31":{},"35":{},"38":{},"39":{},"41":{},"44":{},"46":{},"62":{},"63":{},"70":{},"71":{},"75":{},"77":{},"79":{}},"component":{},"keyword":{}}],["applic",{"_index":955,"title":{"22":{},"32":{},"69":{},"19-3":{},"20-5":{},"22-2":{},"22-3":{},"22-4":{},"22-5":{},"22-6":{},"22-7":{},"22-16":{},"22-17":{},"22-18":{},"22-24":{},"35-11":{},"36-3":{},"37-1":{},"40-2":{},"59-5":{},"59-8":{},"61-1":{},"62-8":{},"62-25":{},"62-26":{},"64-7":{},"65-4":{},"67-5":{},"71-60":{},"71-72":{},"71-73":{}},"name":{},"text":{"8":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"69":{},"70":{},"71":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"84":{}},"component":{},"keyword":{}}],["application/json",{"_index":6027,"title":{},"name":{},"text":{"53":{},"55":{},"64":{},"71":{}},"component":{},"keyword":{}}],["application/x",{"_index":6932,"title":{},"name":{},"text":{"64":{},"71":{}},"component":{},"keyword":{}}],["applications.</p",{"_index":7894,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["applicationâ",{"_index":1545,"title":{},"name":{},"text":{"19":{},"20":{},"22":{},"23":{},"31":{},"32":{},"34":{},"39":{},"40":{},"62":{},"71":{},"79":{}},"component":{},"keyword":{}}],["appoint",{"_index":697,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["approach",{"_index":385,"title":{},"name":{},"text":{"3":{},"8":{},"51":{},"62":{}},"component":{},"keyword":{}}],["appropri",{"_index":764,"title":{},"name":{},"text":{"4":{},"6":{},"18":{},"20":{},"22":{},"23":{},"24":{},"39":{},"48":{},"57":{},"62":{},"63":{},"71":{},"77":{}},"component":{},"keyword":{}}],["approv",{"_index":3694,"title":{},"name":{},"text":{"35":{},"41":{},"79":{}},"component":{},"keyword":{}}],["approxim",{"_index":4154,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["appservlet",{"_index":6863,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["apr",{"_index":451,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["arbitrari",{"_index":1925,"title":{},"name":{},"text":{"22":{},"34":{},"35":{},"62":{},"71":{}},"component":{},"keyword":{}}],["arch",{"_index":6192,"title":{},"name":{"57":{},"75":{}},"text":{},"component":{},"keyword":{}}],["archetyp",{"_index":6443,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["architect",{"_index":8294,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["architectur",{"_index":1351,"title":{"18":{},"46":{},"47":{},"52":{},"56":{},"57":{},"75":{},"78":{},"51-4":{},"58-8":{},"77-1":{}},"name":{},"text":{"15":{},"20":{},"31":{},"41":{},"46":{},"47":{},"48":{},"49":{},"52":{},"54":{},"56":{},"57":{},"58":{},"71":{},"75":{},"76":{},"78":{},"79":{}},"component":{},"keyword":{}}],["archiv",{"_index":745,"title":{},"name":{},"text":{"4":{},"6":{},"17":{},"22":{},"59":{},"71":{}},"component":{},"keyword":{}}],["arenât",{"_index":1235,"title":{},"name":{},"text":{"12":{}},"component":{},"keyword":{}}],["arg",{"_index":1582,"title":{"44-3":{}},"name":{},"text":{"19":{},"20":{},"22":{},"23":{},"29":{},"31":{},"34":{},"35":{},"36":{},"38":{},"41":{},"42":{},"44":{},"45":{},"62":{},"81":{}},"component":{},"keyword":{}}],["arg=\"hello",{"_index":4725,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["arg>$path</arg",{"_index":3770,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["arg>(https?)://([^/]+)(.*)</arg",{"_index":3776,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["arg>.*/foo",{"_index":1530,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["arg>.*/jetti",{"_index":2237,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["arg>.*/spr",{"_index":1547,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["arg>/index.php</arg",{"_index":3771,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["arg>/var/www/wordpress</arg",{"_index":3761,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["arg>128</arg",{"_index":4049,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["arg></arg",{"_index":2022,"title":{},"name":{},"text":{"23":{},"42":{}},"component":{},"keyword":{}}],["arg><properti",{"_index":2105,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["arg><ref",{"_index":2048,"title":{},"name":{},"text":{"23":{},"35":{},"64":{}},"component":{},"keyword":{}}],["arg><systemproperti",{"_index":6924,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["arg>com.acme.*|com.corp.slowcontainerinitializer</arg",{"_index":1568,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["arg>com.acme.ee11.feature</arg",{"_index":1893,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["arg>ee11</arg",{"_index":2128,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["arg>example.com</arg",{"_index":3156,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["arg>hello</arg",{"_index":4730,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["arg>http://localhost:9000$3</arg",{"_index":3777,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["arg>jdbc/employees</arg",{"_index":2120,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["arg>jdbc/myds</arg",{"_index":2050,"title":{},"name":{},"text":{"23":{},"42":{}},"component":{},"keyword":{}}],["arg>jdbc/workforce</arg",{"_index":2117,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["arg>jdk.java.net</arg",{"_index":4752,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["arg>jetty</arg",{"_index":4771,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["arg>jms/connectionfactory</arg",{"_index":2067,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["arg>localhost</arg",{"_index":4779,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["arg>
1mail/session</arg",{"_index":2076,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["arg>myspecialvalue</arg",{"_index":2023,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["arg>obf:1yta1t331v8w1v9q1t331ytc</arg",{"_index":4690,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["arg>org.eclipse.jetty.containerinitializerexclusionpattern</arg",{"_index":1567,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["arg>org.eclipse.jetty.containerinitializerorder</arg",{"_index":1580,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["arg>org.eclipse.jetty.server.request.maxformkeys</arg",{"_index":4048,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["arg>org.eclipse.jetty.server.webapp.containerincludejarpattern</arg",{"_index":1529,"title":{},"name":{},"text":{"19":{},"26":{}},"component":{},"keyword":{}}],["arg>org.eclipse.jetty.server.webapp.webinfincludejarpattern</arg",{"_index":1546,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["arg>org.eclipse.jetty.websocket.javax.server.javaxwebsocketservletcontaineriniti",{"_index":1581,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["arg>serv",{"_index":4789,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["arg>value</arg",{"_index":1894,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["arg>vm://localhost?broker.persistent=false</arg",{"_index":2069,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["args=$(java",{"_index":4552,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["args=jetty.http.selectors=1",{"_index":8770,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["args=stop.port=8181",{"_index":4586,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["argument",{"_index":2030,"title":{},"name":{},"text":{"23":{},"30":{},"39":{},"41":{},"44":{},"45":{},"58":{},"62":{},"65":{}},"component":{},"keyword":{}}],["arm",{"_index":65,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["around",{"_index":1053,"title":{},"name":{},"text":{"8":{},"28":{},"46":{},"48":{},"51":{},"52":{},"58":{},"67":{},"75":{},"77":{}},"component":{},"keyword":{}}],["arrang",{"_index":5028,"title":{},"name":{},"text":{"46":{},"51":{},"53":{},"73":{}},"component":{},"keyword":{}}],["array",{"_index":1783,"title":{"44-10":{}},"name":{},"text":{"22":{},"28":{},"35":{},"44":{},"50":{},"62":{},"81":{}},"component":{},"keyword":{}}],["arraydequ",{"_index":5331,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["arraylist",{"_index":4739,"title":{},"name":{},"text":{"44":{},"46":{}},"component":{},"keyword":{}}],["arraylist().listiterator(0).next",{"_index":4748,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["arraylist(16",{"_index":4744,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["arriv",{"_index":1434,"title":{},"name":{},"text":{"18":{},"24":{},"34":{},"35":{},"39":{},"43":{},"48":{},"51":{},"52":{},"58":{},"71":{},"79":{}},"component":{},"keyword":{}}],["artifact",{"_index":825,"title":{"7-7":{},"67-2":{},"68-3":{}},"name":{},"text":{"7":{},"20":{},"30":{},"34":{},"41":{},"42":{},"51":{},"53":{},"55":{},"58":{},"68":{},"69":{},"71":{},"73":{},"74":{},"79":{},"84":{}},"component":{},"keyword":{}}],["artifactid",{"_index":6614,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["artifactid>exec",{"_index":6486,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["artifactid>hello",{"_index":6475,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["artifactid>jakarta.servlet",{"_index":6517,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["artifactid>jakarta.websocket",{"_index":8641,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["artifactid>jetti",{"_index":5165,"title":{},"name":{},"text":{"48":{},"50":{},"51":{},"53":{},"55":{},"58":{},"59":{},"60":{},"62":{},"69":{},"71":{},"73":{},"74":{},"79":{}},"component":{},"keyword":{}}],["artifactid>maven",{"_index":6555,"title":{},"name":{},"text":{"60":{},"62":{}},"component":{},"keyword":{}}],["artifactid>properti",{"_index":6796,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["artifactid>x</artifactid",{"_index":6753,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["artifactid>y</artifactid",{"_index":6755,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["as=styl",{"_index":8137,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["ascii",{"_index":1938,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["asciidoc",{"_index":933,"title":{"8-3":{},"8-13":{}},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["asciidoctor",{"_index":905,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["asid",{"_index":5581,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["ask",{"_index":67,"title":{},"name":{},"text":{"1":{},"4":{},"18":{},"35":{},"39":{},"51":{},"52":{},"71":{},"75":{},"79":{}},"component":{},"keyword":{}}],["assembl",{"_index":1437,"title":{"41-14":{}},"name":{},"text":{"18":{},"20":{},"30":{},"41":{},"59":{},"60":{},"62":{},"69":{},"71":{}},"component":{},"keyword":{}}],["assent",{"_index":4281,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["asset",{"_index":183,"title":{},"name":{},"text":{"2":{},"69":{}},"component":{},"keyword":{}}],["assign",{"_index":2454,"title":{},"name":{},"text":{"30":{},"31":{},"33":{},"40":{},"41":{},"44":{},"48":{},"52":{},"64":{}},"component":{},"keyword":{}}],["associ",{"_index":1356,"title":{},"name":{},"text":{"15":{},"22":{},"31":{},"39":{},"46":{},"51":{},"58":{},"63":{},"64":{},"71":{},"75":{},"77":{}},"component":{},"keyword":{}}],["asstr",{"_index":5311,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["assum",{"_index":1420,"title":{},"name":{},"text":{"17":{},"20":{},"29":{},"31":{},"35":{},"36":{},"43":{},"51":{},"53":{},"56":{},"71":{},"73":{},"77":{},"78":{}},"component":{},"keyword":{}}],["assumpt",{"_index":2822,"title":{},"name":{},"text":{"31":{},"57":{}},"component":{},"keyword":{}}],["async",{"_index":2266,"title":{},"name":{},"text":{"28":{},"31":{},"61":{},"64":{},"79":{}},"component":{},"keyword":{}}],["asynccontentlistener.oncontent(respons",{"_index":5586,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["asynccontext.complet",{"_index":7330,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}
1],["asynchron",{"_index":2657,"title":{},"name":{},"text":{"31":{},"45":{},"46":{},"50":{},"51":{},"52":{},"53":{},"54":{},"58":{},"66":{},"67":{},"71":{},"73":{},"75":{},"83":{}},"component":{},"keyword":{}}],["asyncjson",{"_index":5264,"title":{},"name":{},"text":{"50":{},"75":{}},"component":{},"keyword":{}}],["asyncjson.factori",{"_index":5279,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["asyncjson.factory().newasyncjson",{"_index":5265,"title":{},"name":{},"text":{"50":{},"75":{}},"component":{},"keyword":{}}],["asyncrequestcont",{"_index":5500,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["atomicinteg",{"_index":4907,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["atomiclong",{"_index":7982,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["attach",{"_index":2137,"title":{},"name":{},"text":{"24":{},"45":{},"46":{},"47":{},"51":{},"81":{}},"component":{},"keyword":{}}],["attack",{"_index":2635,"title":{},"name":{},"text":{"31":{},"37":{},"61":{},"64":{},"71":{}},"component":{},"keyword":{}}],["attempt",{"_index":2324,"title":{},"name":{},"text":{"28":{},"35":{},"36":{},"39":{},"41":{},"44":{},"46":{},"51":{},"52":{},"57":{},"71":{},"77":{}},"component":{},"keyword":{}}],["attent",{"_index":8321,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["attribut",{"_index":1221,"title":{},"name":{},"text":{"11":{},"15":{},"19":{},"26":{},"28":{},"31":{},"32":{},"35":{},"36":{},"37":{},"39":{},"43":{},"44":{},"48":{},"51":{},"58":{},"61":{},"62":{},"65":{},"67":{},"71":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["attributename}attr",{"_index":3129,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["audienc",{"_index":733,"title":{},"name":{},"text":{"4":{},"8":{}},"component":{},"keyword":{}}],["audit",{"_index":2377,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["audit.ini",{"_index":2403,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["audit.jar",{"_index":2386,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["audit.mod",{"_index":2399,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["audit.xml",{"_index":2389,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["auditingeventshandl",{"_index":2385,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["aug",{"_index":470,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["augment",{"_index":2259,"title":{},"name":{},"text":{"28":{},"70":{}},"component":{},"keyword":{}}],["auth",{"_index":2058,"title":{},"name":{},"text":{"23":{},"24":{},"31":{},"36":{},"38":{},"39":{},"40":{},"51":{},"77":{}},"component":{},"keyword":{}}],["auth.addauthentication(new",{"_index":5759,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["auth.addauthenticationresult(new",{"_index":5773,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["auth.ini",{"_index":2197,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["auth.xml",{"_index":2196,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["auth/login",{"_index":6906,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["auth/nonc",{"_index":6904,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["auth>container</r",{"_index":2057,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["auth_endpoint",{"_index":7002,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["auth_method",{"_index":7005,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["authconfigfactori",{"_index":4065,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["authconfigfactory.getfactori",{"_index":4066,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["authconfigfactory.setfactori",{"_index":4100,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["authconfigprovid",{"_index":4064,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["authen",{"_index":3990,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["authent",{"_index":2133,"title":{"24-4":{},"33-5":{},"38-5":{},"51-26":{},"51-27":{},"51-30":{},"63-4":{},"66-3":{}},"name":{},"text":{"24":{},"31":{},"33":{},"34":{},"36":{},"38":{},"39":{},"40":{},"42":{},"46":{},"48":{},"51":{},"53":{},"55":{},"58":{},"63":{},"64":{},"65":{},"66":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["authenticatenewus",{"_index":6918,"title":{},"name":{},"text":{"64":{},"65":{}},"component":{},"keyword":{}}],["authentication.</arg",{"_index":4094,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["authentication.result",{"_index":5767,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["authentication/author",{"_index":4016,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["authenticationmethod=\"simpl",{"_index":4022,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["authenticationst",{"_index":6815,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["authenticationstate.getuserprincipal(request",{"_index":7030,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["authenticationstor",{"_index":5373,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["authenticator.setloginpath(\"/login.html",{"_index":6939,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["authenticator.setloginservice(loginservic",{"_index":6824,"t
1itle":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["authenticator.validaterequest",{"_index":6812,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["authmoduleconfig.xml",{"_index":4061,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["authmoduleconfig.xml|etc/jaspi/jetti",{"_index":4063,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["authn",{"_index":5776,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["authn.apply(request",{"_index":5778,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["author",{"_index":1202,"title":{"24-4":{},"40-3":{},"48-3":{},"65-6":{}},"name":{},"text":{"10":{},"24":{},"31":{},"33":{},"35":{},"36":{},"40":{},"48":{},"51":{},"63":{},"64":{},"65":{},"71":{}},"component":{},"keyword":{}}],["authoritycustom",{"_index":7515,"title":{"71-7":{}},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["authority}uri",{"_index":3125,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["auto",{"_index":1668,"title":{"71-24":{}},"name":{},"text":{"20":{},"32":{},"39":{},"58":{},"77":{},"81":{}},"component":{},"keyword":{}}],["autoconfigur",{"_index":8010,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["autodemand",{"_index":6311,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["autodemandannotatedendpoint",{"_index":6312,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["autodemandlistenerendpoint",{"_index":6317,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["autofrag",{"_index":6391,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["autom",{"_index":3831,"title":{},"name":{},"text":{"35":{},"79":{}},"component":{},"keyword":{}}],["automat",{"_index":854,"title":{},"name":{},"text":{"7":{},"20":{},"23":{},"31":{},"33":{},"34":{},"39":{},"43":{},"47":{},"51":{},"58":{},"62":{},"67":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["avail",{"_index":203,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"7":{},"8":{},"13":{},"14":{},"18":{},"20":{},"22":{},"23":{},"24":{},"27":{},"29":{},"30":{},"31":{},"34":{},"35":{},"38":{},"39":{},"40":{},"41":{},"42":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"66":{},"67":{},"69":{},"71":{},"73":{},"74":{},"75":{},"77":{},"79":{}},"component":{},"keyword":{}}],["availablethread",{"_index":5945,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["avenu",{"_index":366,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["averag",{"_index":2824,"title":{},"name":{},"text":{"31":{},"71":{},"77":{}},"component":{},"keyword":{}}],["avoid",{"_index":1086,"title":{},"name":{},"text":{"8":{},"13":{},"22":{},"30":{},"31":{},"39":{},"41":{},"42":{},"43":{},"45":{},"46":{},"51":{},"52":{},"53":{},"55":{},"56":{},"57":{},"58":{},"64":{},"65":{},"70":{},"71":{},"73":{},"74":{},"79":{}},"component":{},"keyword":{}}],["await",{"_index":5507,"title":{},"name":{},"text":{"51":{},"64":{}},"component":{},"keyword":{}}],["awar",{"_index":1150,"title":{},"name":{},"text":{"8":{},"22":{},"23":{},"39":{},"51":{},"62":{}},"component":{},"keyword":{}}],["away",{"_index":5040,"title":{},"name":{},"text":{"46":{},"53":{},"62":{},"66":{},"73":{}},"component":{},"keyword":{}}],["aâ",{"_index":6779,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["b",{"_index":5899,"title":{},"name":{},"text":{"52":{},"53":{},"62":{},"73":{}},"component":{},"keyword":{}}],["b3e9",{"_index":2304,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["b6",{"_index":3687,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["b8",{"_index":3682,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["back",{"_index":146,"title":{},"name":{},"text":{"1":{},"33":{},"35":{},"38":{},"39":{},"46":{},"51":{},"53":{},"55":{},"57":{},"58":{},"62":{},"65":{},"67":{},"71":{},"73":{},"74":{},"75":{},"77":{},"81":{}},"component":{},"keyword":{}}],["backend",{"_index":1462,"title":{},"name":{},"text":{"18":{},"31":{},"35":{},"39":{},"51":{},"71":{}},"component":{},"keyword":{}}],["backend1",{"_index":7984,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["backend2",{"_index":7986,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["backendhost",{"_index":7988,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["background",{"_index":2269,"title":{},"name":{},"text":{"28":{},"39":{},"62":{}},"component":{},"keyword":{}}],["backlog",{"_index":806,"title":{},"name":{},"text":{"6":{},"31":{}},"component":{},"keyword":{}}],["backoff",{"_index":8584,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["backoffic",{"_index":1736,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["backoffm",{"_index":8582,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["backpressur",{"_index":5012,"title":{},"name":{},"text":{"46":{},"79":{}},"component":{},"keyword":{}}],["backup",{"_index":4309,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["backward",{"_index":2910,"title":{},"name":{},"text":{"31":{},"35":{},"44":{},"70":{},"71":{},"79":{}},"component":{},"keyword":{}}],["bad",{"_index":1252,"title":{},"name":{},"text":{"13":{},"31":{},"35":{},"45":{},"71":{}},"component":{},"keyword":{}}],["bake",{"_index":6664,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["balanc",{"_index":1461,"title":{"35-23":{},"39-45":{},"39-46":{},"45-4":{},"71-25":{}},"name":{},"text":{"18":{},"20":{},"22":{},"25":{},"34":{},"35":{},"39":{},"45":{},"52":{},"71":{},"75":{},"77":{}},"component":{},"keyword":{}}],["bar",{"_index":1527,"title":{},"name":{},"text":{"19":{},"51":{},"70":{}},"component":{},"keyword":{}}],["bar.jsp",{"_index":6758,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["bar;baz",{"_index":5736,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["base",{"_index":1435,"title":{"39-4":{}},"name":{},"text":{"18":{},"20":{},"22":{},"28":{},"31":{},"34":{},"35":{},"36":{},"39":{},"41":{},"46":{},"47":{},"48":{},"49":{},"51":{},"52":{},"55":{},"56":{},"57":{},"59":{},"62":{},"63":{},"66":{},"67":{},"71":{},"74":{},"75":{},"77":{},"79":{},"81":{},"84":{}},"component":{},"keyword":{}}],["base/etc/test",{"_index":3596,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["base/resourc",{"_index":4526,"title":{},"name":{},"text":{"41":{},"81":{}},"component":{},"keyword":{}}],["base/resources:/path/to/jetty.home/lib/logging/slf4j",{"_index":4508,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["base/start.d/quickstart.ini",{"_index":3369,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["base/work",{"_index":4464,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["baseappfirst",{"_index":6675,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["baseappfirst>false</baseappfirst",{"_index":6766,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["basefil",{"_index":1744,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}
1],["basehom",{"_index":2463,"title":{},"name":{},"text":{"30":{},"41":{}},"component":{},"keyword":{}}],["basehome:<jettyhomepathname>|<pathnam",{"_index":2464,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["basehome:etc/jaspi/jetti",{"_index":4062,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["basehome:modules/demo.d/demo",{"_index":2465,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["baseloginservice.xml",{"_index":4418,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["basenam",{"_index":1745,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["basename>.properti",{"_index":1753,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["basename>.war",{"_index":1849,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["basename>.xml",{"_index":1847,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["baseresourc",{"_index":6671,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["baseresource>${project.basedir}/src/staticfiles</baseresourc",{"_index":6696,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["bash",{"_index":4544,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["basi",{"_index":4042,"title":{},"name":{},"text":{"36":{},"51":{},"52":{},"71":{}},"component":{},"keyword":{}}],["basic",{"_index":1248,"title":{},"name":{},"text":{"13":{},"33":{},"38":{},"42":{},"46":{},"51":{},"57":{},"60":{},"63":{},"75":{}},"component":{},"keyword":{}}],["basicauthent",{"_index":6817,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["basicauthentication(proxyuri",{"_index":5802,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["basicauthentication(uri1",{"_index":5760,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["basicauthentication.basicresult(uri",{"_index":5774,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["bay",{"_index":1108,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["baz.jsp",{"_index":6760,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["bc",{"_index":3429,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["bc=ca:tru",{"_index":3428,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["be",{"_index":34,"title":{},"name":{},"text":{"1":{},"6":{},"19":{},"31":{},"33":{},"35":{},"39":{},"41":{},"46":{},"50":{},"51":{},"52":{},"53":{},"58":{},"60":{},"64":{},"70":{},"71":{},"73":{},"75":{},"77":{},"81":{},"83":{}},"component":{},"keyword":{}}],["be_http",{"_index":3917,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["bean",{"_index":1345,"title":{},"name":{"47":{}},"text":{"15":{},"28":{},"31":{},"36":{},"40":{},"46":{},"47":{},"48":{},"51":{},"71":{},"77":{},"81":{}},"component":{},"keyword":{}}],["beanadded(contain",{"_index":5145,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["beanremoved(contain",{"_index":5146,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["bear",{"_index":1284,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["beat",{"_index":750,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["becom",{"_index":1613,"title":{},"name":{},"text":{"20":{},"31":{},"34":{},"39":{},"41":{},"46":{},"52":{},"65":{},"71":{},"77":{}},"component":{},"keyword":{}}],["befor",{"_index":797,"title":{"30-10":{}},"name":{},"text":{"6":{},"9":{},"10":{},"13":{},"19":{},"20":{},"22":{},"23":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"36":{},"38":{},"39":{},"40":{},"41":{},"44":{},"45":{},"46":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"60":{},"62":{},"66":{},"67":{},"71":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["beforehandl",{"_index":7815,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["beforehandlingnanotim",{"_index":7828,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["begin",{"_index":3136,"title":{},"name":{},"text":{"31":{},"51":{},"62":{},"71":{},"79":{}},"component":{},"keyword":{}}],["beginn",{"_index":63,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["behalf",{"_index":7570,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["behav",{"_index":1066,"title":{},"name":{},"text":{"8":{},"31":{},"41":{},"51":{},"66":{},"71":{}},"component":{},"keyword":{}}],["behavior",{"_index":888,"title":{},"name":{},"text":{"7":{},"31":{},"35":{},"51":{},"52":{},"58":{},"63":{},"66":{},"70":{},"71":{}},"component":{},"keyword":{}}],["behaviour",{"_index":8019,"title":{},"name":{},"text":{"71":{},"77":{}},"component":{},"keyword":{}}],["behind",{"_index":814,"title":{"35-23":{},"45-4":{},"71-25":{}},"name":{},"text":{"6":{},"18":{},"20":{},"22":{},"25":{},"34":{},"35":{},"45":{},"71":{},"75":{}},"component":{},"keyword":{}}],["belong",{"_index":1139,"title":{},"name":{},"text":{"8":{},"39":{},"75":{},"77":{}},"component":{},"keyword":{}}],["below",{"_index":177,"title":{},"name":{},"text":{"2":{},"5":{},"22":{},"24":{},"26":{},"29":{},"31":{},"33":{},"34":{},"35":{},"38":{},"41":{},"45":{},"46":{},"48":{},"51":{},"52":{},"53":{},"55":{},"63":{},"67":{},"69":{},"71":{},"73":{},"74":{},"75":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["benchmark",{"_index":5937,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["benefici",{"_index":2899,"title":{},"name":{},"text":{"31":{},"47":{},"71":{},"79":{}},"component":{},"keyword":{}}],["benefit",{"_index":2818,"title":{},"name":{},"text":{"31":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["beryl",{"_index":2998,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["best",{"_index":691,"title":{},"name":{},"text":{"4":{},"8":{},"10":{},"32":{},"36":{},"39":{},"41":{},"45":{},"52":{},"58":{},"59":{},"62":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["beta",{"_index":292,"title":{},"name":{},"text":{"2":{},"20":{}},"component":{},"keyword":{}}],["better",{"_index":737,"title":{},"name":{},"text":{"4":{},"8":{},"51":{},"52":{},"67":{},"71":{},"84":{}},"component":{},"keyword":{}}],["between",{"_index":728,"title":{},"name":{},"text":{"4":{},"18":{},"23":{},"24":{},"28":{},"31":{},"32":{},"38":{},"39":{},"41":{},"46":{},"51":{},"52":{},"55":{},"57":{},"58":{},"62":{},"71":{},"74":{},"77":{}},"component":{},"keyword":{}}],["beyond",{"_index":156,"title":{},"name":{},"text":{"1":{},"31":{}},"component":{},"keyword":{}}],["bi",{"_index":7458,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["bidirect",{"_index":3717,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["big",{"_index":5510,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["bigint",{"_index":4245,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["binari",{"_index":682,"title":{"4-2":{}},"name":{},"text":{"4":{},"15":{},"18":{},"35":{},"51":{},"58":{},"66":{},"67":{},"71":{},"79":{}},"component":{},"keyword":{}}],["bind",{"_index":2031,"title":{"84-1":{}},"name":{},"text":{"23":{},"24":{},"31":{},"34":{},"35":{},"36":{},"41":{},"48":{},"55":{},"62":{},"71":{},"74":{},"84":{}},"component":{},"keyword":{}}],["binddn=\"cn=directori",{"_index":4020,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["bindpassword=\"directori",{"_index":4021,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["bit",{"_index":4460,"title":{},"name":{},"text":{"41":{},"60":{},"77":{},"81":{}},"component":{},"keyword":{}}],["black",{"_index":7845,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["blank",{"_index":3161,"title":{},"name":{},"text":{"31":{},"38":{},"39":{},"42":{},"60":{},"62":{},"64":{}},"component":{},"keyword":{}}],["blob",{"_index":4239,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["block",{"_index":942,"title":{"8-12":{},"51-9":{},"51-10":{}},"name":{},"text":{"8":{},"31":{},"45":{},"46":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"61":{},"64":{},"66":{},"67":{},"71":{},"74":{},"75":{},"78":{},"81":{},"83":{}},"component":{},"keyword":{}}],["blockag",{"_index":3266,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["blockchain",{"_index":7048,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["blocker.blockwithpromise(p",{"_index":6156,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["blockingqueu",{"_index":5922,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["blockingwrite(content.sink",{"_index":5098,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["blog",{"_index":3746,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["blown",{"_index":7974,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["blue",{"_index":5885,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["bob",{"_index":2202,"title":{},"name":{},"text":{"24":{},"42":{},"63":{}},"component":{},"keyword":{}}],["bob:password,read",{"_index":6846,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["bodi",{"_index":2887,"title":{},"name":{},"text":{"31":{},"59":{},"71":{}},"component":{},"keyword":{}}],["body(cont",{"_index":5501,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["body(content2",{"_index":5600,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["body(new",{"_index":5487,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["book",{"_index":696,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["boolean",{"_index":4195,"title":{},"name":{},"text":{"39":{},"45":{},"46":{},"48":{},"50":{},"51":{},"58":{},"59":{},"63":{},"65":{},"67":{},"71":{},"73":{},"75":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["boot",{"_index":4704,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["bootstrap",{"_index":3724,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["boringssl",{"_index":3837,"title":{},"name":{},"text":{"35":{},"71":{}},"component":{},"keyword":{}}],["both",{"_index":790,"title":{},"name":{},"text":{"6":{},"8":{},"20":{},"22":{},"24":{},"29":{},"31":{},"33":{},"34":{},"35":{},"37":{},"39":{},"41":{},"43":{},"44":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"54":{},"56":{},"58":{},"61":{},"62":{},"63":{},"66":{},"71":{},"74":{},"75":{},"77":{},"78":{},"79":{},"81":{},"84":{}},"component":{},"keyword":{}}],["bottom",{"_index":4995,"title":{},"name":{},"text":{"46":{},"81":{}},"component":{},"keyword":{}}],["bought",{"_index":3404,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["bounc",{"_index":8392,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["bounci",{"_index":3552,"title":{"35-21":{},"71-23":{}},"name":{},"text":{"35":{},"71":{}},"component":{},"keyword":{}}],["bouncycastl",{"_index":3280,"title":{},"name":{},"text":{"31":{},"35":{},"71":{}},"component":{},"keyword":{}}
1],["bouncycastle.version?=1.85",{"_index":3295,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["bouncycastle.version}.jar",{"_index":3284,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["bouncycastlejsseprovid",{"_index":7687,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["bouncycastleprovid",{"_index":7686,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["bound",{"_index":132,"title":{},"name":{},"text":{"1":{},"23":{},"52":{},"62":{},"71":{}},"component":{},"keyword":{}}],["box",{"_index":2411,"title":{},"name":{},"text":{"30":{},"34":{},"44":{},"50":{},"51":{},"57":{},"63":{},"71":{}},"component":{},"keyword":{}}],["br",{"_index":5520,"title":{},"name":{},"text":{"51":{},"65":{},"71":{}},"component":{},"keyword":{}}],["brace",{"_index":1271,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["branch",{"_index":830,"title":{"12-2":{}},"name":{},"text":{"7":{},"8":{},"12":{}},"component":{},"keyword":{}}],["branch(",{"_index":916,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["break",{"_index":1056,"title":{},"name":{},"text":{"8":{},"58":{},"67":{},"70":{}},"component":{},"keyword":{}}],["bridg",{"_index":2247,"title":{"34-8":{},"34-9":{}},"name":{},"text":{"28":{},"34":{},"38":{}},"component":{},"keyword":{}}],["bring",{"_index":4431,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["broad",{"_index":783,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["broadcast",{"_index":5250,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["broader",{"_index":147,"title":{},"name":{},"text":{"1":{},"66":{}},"component":{},"keyword":{}}],["broadli",{"_index":734,"title":{},"name":{},"text":{"4":{},"39":{},"77":{}},"component":{},"keyword":{}}],["broken",{"_index":6300,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["brotli",{"_index":2491,"title":{"31-6":{}},"name":{},"text":{"31":{},"51":{},"66":{},"71":{}},"component":{},"keyword":{}}],["brotli</artifactid",{"_index":5524,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["brought",{"_index":5967,"title":{},"name":{},"text":{"52":{},"67":{}},"component":{},"keyword":{}}],["brows",{"_index":180,"title":{},"name":{},"text":{"2":{},"24":{},"71":{}},"component":{},"keyword":{}}],["browser",{"_index":1020,"title":{},"name":{},"text":{"8":{},"20":{},"22":{},"31":{},"33":{},"35":{},"51":{},"59":{},"64":{},"70":{},"71":{}},"component":{},"keyword":{}}],["bsd",{"_index":4496,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["bucket",{"_index":2526,"title":{},"name":{},"text":{"31":{},"71":{},"81":{}},"component":{},"keyword":{}}],["buffer",{"_index":2530,"title":{},"name":{},"text":{"31":{},"46":{},"51":{},"53":{},"57":{},"58":{},"66":{},"73":{},"74":{},"75":{},"79":{}},"component":{},"keyword":{}}],["buffer.get",{"_index":6250,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["buffer.getbytebuff",{"_index":4961,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["buffer.hasremain",{"_index":6248,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["buffer1",{"_index":6036,"title":{},"name":{},"text":{"53":{},"55":{}},"component":{},"keyword":{}}],["buffer2",{"_index":6038,"title":{},"name":{},"text":{"53":{},"55":{}},"component":{},"keyword":{}}],["bufferutil.allocate(1024",{"_index":4930,"title":{},"name":{},"text":{"46":{},"57":{}},"component":{},"keyword":{}}],["bufferutil.allocate(getinputbuffers",{"_index":8271,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["bufferutil.tobuffer(resourcefactory.root().newresource(\"/path/to/favicon.ico",{"_index":8202,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["bug",{"_index":151,"title":{},"name":{},"text":{"1":{},"6":{},"35":{},"71":{}},"component":{},"keyword":{}}],["bugs.acme.org",{"_index":1776,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["bugs.acme.org.xml",{"_index":1778,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["build",{"_index":819,"title":{"7":{},"7-2":{},"7-3":{},"7-4":{},"7-6":{},"7-7":{},"8-5":{},"59-4":{},"59-8":{},"59-9":{},"60-2":{}},"name":{},"text":{"7":{},"8":{},"9":{},"12":{},"13":{},"31":{},"51":{},"57":{},"59":{},"60":{},"62":{},"63":{},"67":{},"71":{},"75":{},"79":{}},"component":{},"keyword":{}}],["build><outputdirectori",{"_index":6682,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["builder",{"_index":5044,"title":{},"name":{},"text":{"46":{},"71":{}},"component":{},"keyword":{}}],["builder.append(chunk.getbytebuff",{"_index":5045,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["builder.tocompletestr",{"_index":5046,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["built",{"_index":705,"title":{},"name":{},"text":{"4":{},"7":{},"20":{},"35":{},"41":{},"45":{},"59":{},"62":{},"71":{}},"component":{},"keyword":{}}],["bundl",{"_index":341,"title":{},"name":{},"text":{"2":{},"43":{}},"component":{},"keyword":{}}],["burden",{"_index":8073,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}
1],["burst",{"_index":2695,"title":{},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["busi",{"_index":1913,"title":{},"name":{},"text":{"22":{},"31":{},"52":{},"71":{}},"component":{},"keyword":{}}],["busier",{"_index":2827,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["button",{"_index":6945,"title":{},"name":{},"text":{"64":{},"81":{}},"component":{},"keyword":{}}],["bye",{"_index":6431,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["bypass",{"_index":853,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["byte",{"_index":2720,"title":{"75-3":{}},"name":{},"text":{"31":{},"35":{},"46":{},"50":{},"51":{},"53":{},"55":{},"57":{},"58":{},"61":{},"67":{},"71":{},"73":{},"74":{},"75":{}},"component":{},"keyword":{}}],["byte[]{'h",{"_index":5515,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["byte[]{(byte)0x89",{"_index":6342,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["byte[s",{"_index":5078,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["bytea",{"_index":4240,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["bytearrayoutputstream",{"_index":6245,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["bytebuff",{"_index":2522,"title":{},"name":{},"text":{"31":{},"34":{},"45":{},"46":{},"50":{},"51":{},"53":{},"55":{},"57":{},"58":{},"67":{},"71":{},"73":{},"74":{},"75":{}},"component":{},"keyword":{}}],["bytebuffer.allocate(8).putlong(nanotime.now()).flip",{"_index":6423,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["bytebuffer.allocatedirect(1024",{"_index":6410,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["bytebuffer.wrap(byt",{"_index":5080,"title":{},"name":{},"text":{"46":{},"51":{},"71":{}},"component":{},"keyword":{}}],["bytebuffer.wrap(line.getbytes(standardcharsets.utf_8",{"_index":6258,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["bytebuffer1",{"_index":5269,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["bytebuffer2",{"_index":5274,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["bytebufferpool",{"_index":1635,"title":{"31-3":{}},"name":{},"text":{"20":{},"31":{},"34":{},"35":{},"41":{},"66":{},"67":{}},"component":{},"keyword":{}}],["bytebufferpool.acquir",{"_index":7065,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["bytebufferpool.ini",{"_index":1661,"title":{},"name":{},"text":{"20":{},"41":{}},"component":{},"keyword":{}}],["bytebufferpool.s",{"_index":4951,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["bytebufferpool.xml",{"_index":2543,"title":{},"name":{},"text":{"31":{},"41":{}},"component":{},"keyword":{}}],["bytecod",{"_index":360,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["bytes.length",{"_index":8113,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["bytes.reset",{"_index":6252,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["bytes.write(read",{"_index":6253,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["bytes/",{"_index":3017,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["bytesrequestcont",{"_index":5494,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["bytesrequestcontent(\"text/plain",{"_index":5497,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["bytesrequestcontent(thirdpartyresponse.getcont",{"_index":5654,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["bytesrequestcontent(validatedresponse.getcont",{"_index":5657,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["bytesrespons",{"_index":5496,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["c",{"_index":1106,"title":{},"name":{},"text":{"8":{},"33":{},"51":{},"52":{},"62":{}},"component":{},"keyword":{}}],["c3",{"_index":3688,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["c=countri",{"_index":3396,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["ca",{"_index":3412,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["ca:tru",{"_index":3430,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["cach",{"_index":821,"title":{"7-4":{},"39-7":{},"39-8":{},"39-10":{},"39-40":{},"51-25":{},"77-12":{}},"name":{},"text":{"7":{},"21":{},"31":{},"36":{},"39":{},"51":{},"52":{},"71":{},"77":{}},"component":{},"keyword":{}}],["cache.ini",{"_index":4380,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["cache.setevictionpolicy(sessioncache.never_evict",{"_index":8459,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["cache.setflushonresponsecommit(tru",{"_index":8460,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}
1],["cache.setinvalidateonshutdown(fals",{"_index":8461,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["cache.setremoveunloadablesessions(tru",{"_index":8462,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["cache.setsaveoncreate(tru",{"_index":8463,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["cache.setsessiondatastore(stor",{"_index":8467,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["cache/stor",{"_index":8468,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["cache<str",{"_index":8543,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["cachefactori",{"_index":8401,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["cachefactory.setevictionpolicy(60",{"_index":8403,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["cachefactory.setevictionpolicy(sessioncache.never_evict",{"_index":8411,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["cachefactory.setflushonresponsecommit(tru",{"_index":8405,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["cachefactory.setinvalidateonshutdown(fals",{"_index":8406,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["cachefactory.setremoveunloadablesessions(tru",{"_index":8407,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["cachefactory.setsaveoncreate(tru",{"_index":8408,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["cachefactory.setsaveoninactiveeviction(tru",{"_index":8404,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["cachingsessiondatastor",{"_index":4131,"title":{"77-26":{}},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["cachingsessiondatastorefactori",{"_index":8611,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["cachingsessiondatastorefactory.setsessiondatamapfactory(mapfactori",{"_index":8612,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["cachingsessiondatastorefactory.setsessionstorefactory(storefactori",{"_index":8613,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["cachingwebappclassload",{"_index":7527,"title":{"71-59":{}},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["cachingwebappclassloader(context",{"_index":8033,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["cacreateseri",{"_index":3442,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["cakey",{"_index":3441,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["calcul",{"_index":2733,"title":{},"name":{},"text":{"31":{},"52":{},"58":{},"62":{},"71":{},"78":{}},"component":{},"keyword":{}}],["calculaterequestr",{"_index":8196,"title":{},"name":{},"text":{"73":{},"74":{}},"component":{},"keyword":{}}],["call",{"_index":1297,"title":{"44-5":{}},"name":{},"text":{"13":{},"17":{},"19":{},"20":{},"22":{},"23":{},"26":{},"28":{},"29":{},"30":{},"31":{},"32":{},"35":{},"36":{},"37":{},"38":{},"39":{},"42":{},"44":{},"46":{},"47":{},"48":{},"50":{},"51":{},"52":{},"53":{},"55":{},"58":{},"62":{},"63":{},"64":{},"66":{},"67":{},"69":{},"71":{},"73":{},"74":{},"75":{},"77":{},"79":{},"84":{}},"component":{},"keyword":{}}],["callback",{"_index":3268,"title":{},"name":{},"text":{"31":{},"45":{},"46":{},"51":{},"53":{},"56":{},"57":{},"58":{},"59":{},"63":{},"65":{},"66":{},"67":{},"71":{},"73":{},"75":{},"78":{},"79":{},"83":{}},"component":{},"keyword":{}}],["callback.complet",{"_index":5057,"title":{},"name":{},"text":{"46":{},"67":{}},"component":{},"keyword":{}}],["callback.completable.with(callback1",{"_index":5059,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["callback.completable.with(flush",{"_index":8107,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["callback.completewith(process",{"_index":8125,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["callback.failed(caus",{"_index":5094,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["callback.failed(chunk.getfailur",{"_index":8633,"title":{},"name":{},"text":{"78":{}},"component":{},"keyword":{}}],["callback.failed(failur",{"_index":5083,"title":{},"name":{},"text":{"46":{},"67":{},"71":{}},"component":{},"keyword":{}}],["callback.failed(x",{"_index":8140,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["callback.from",{"_index":5612,"title":{},"name":{},"text":{"51":{},"53":{},"73":{}},"component":{},"keyword":{}}],["callback.from(session::demand",{"_index":6328,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["callback.getinvocationtyp",{"_index":5095,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["callback.iter",{"_index":4957,"title":{},"name":{},"text":{"46":{},"75":{}},"component":{},"keyword":{}}],["callback.noop",{"_index":5054,"title":{},"name":{},"text":{"46":{},"51":{},"53":{},"57":{},"58":{},"71":{},"73":{}},"component":{},"keyword":{}}],["callback.succe",{"_index":6348,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["callback.succeed",{"_index":5082,"title":{},"name":{},"text":{"46":{},"53":{},"63":{},"65":{},"67":{},"71":{},"78":{},"79":{}},"component":{},"keyword":{}}],["callback1",{"_index":5060,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["callback2",{"_index":5062,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["callback::fail",{"_index":7241,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["caller",{"_index":4037,"title":{},"name":{},"text":{"36":{},"51":{},"55":{},"71":{},"74":{}},"component":{},"keyword":{}}],["callerprincipalcallback",{"_index":4097,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["callout",{"_index":1137,"title":{},"name":{},"text":{"8":{},"81":{}},"component":{},"keyword":{}}],["camel",{"_index":118,"title":{},"name":{},"text":{"1":{},"28":{}},"component":{},"keyword":{}}],["cancel",{"_index":6064,"title":{},"name":{},"text":{"53":{},"73":{},"74":{}},"component":{},"keyword":{}}],["candid",{"_index":1605,"title":{},"name":{},"text":{"20":{},"39":{},"77":{}},"component":{},"keyword":{}}],["canon",{"_index":333,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["canonic",{"_index":4364,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["canât",{"_index":6774,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["cap",{"_index":2557,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["capabl",{"_index":5136,"title":{},"name":{},"text":{"47":{},"62":{},"71":{},"77":{}},"component":{},"keyword":{}}],["capac",{"_index":2527,"title":{},"name":{},"text":{"31":{},"62":{},"66":{},"71":{},"79":{}},"component":{},"keyword":{}}],["capit",{"_index":2345,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["captur",{"_index":2493,"title":{"31-10":{},"34-4":{}},"name":{},"text":{"31":{},"34":{},"41":{},"52":{},"71":{}},"component":{},"keyword":{}}
1],["capture.append=tru",{"_index":2625,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["capture.dir=./log",{"_index":2624,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["capture.retainday",{"_index":2623,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["capture.retaindays=90",{"_index":2626,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["capture.timezone=gmt",{"_index":2629,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["care",{"_index":1152,"title":{},"name":{},"text":{"8":{},"10":{},"19":{},"39":{},"42":{},"45":{},"46":{},"47":{},"51":{},"52":{},"58":{},"71":{},"77":{}},"component":{},"keyword":{}}],["carefulli",{"_index":5582,"title":{},"name":{},"text":{"51":{},"52":{}},"component":{},"keyword":{}}],["carol:password",{"_index":6835,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["carri",{"_index":3871,"title":{},"name":{},"text":{"35":{},"51":{},"53":{},"55":{},"57":{},"58":{},"71":{},"73":{},"74":{},"77":{}},"component":{},"keyword":{}}],["carrier",{"_index":5970,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["cart",{"_index":7937,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["carthandl",{"_index":7945,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["case",{"_index":125,"title":{},"name":{},"text":{"1":{},"7":{},"8":{},"11":{},"17":{},"18":{},"19":{},"22":{},"23":{},"24":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"39":{},"40":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"55":{},"56":{},"57":{},"58":{},"60":{},"62":{},"64":{},"70":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["cast",{"_index":5261,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["castl",{"_index":3553,"title":{"35-21":{},"71-23":{}},"name":{},"text":{"35":{},"71":{}},"component":{},"keyword":{}}],["casual",{"_index":3213,"title":{},"name":{},"text":{"31":{},"42":{}},"component":{},"keyword":{}}],["catalog",{"_index":4209,"title":{},"name":{},"text":{"39":{},"71":{},"77":{},"78":{}},"component":{},"keyword":{}}],["cataloghandl",{"_index":7916,"title":{},"name":{},"text":{"71":{},"78":{}},"component":{},"keyword":{}}],["catch",{"_index":1307,"title":{},"name":{},"text":{"13":{},"46":{},"57":{},"64":{},"71":{},"79":{}},"component":{},"keyword":{}}],["categori",{"_index":8952,"title":{},"name":{},"text":{"84":{}},"component":{},"keyword":{}}],["caught",{"_index":1328,"title":{},"name":{},"text":{"13":{},"46":{}},"component":{},"keyword":{}}],["caus",{"_index":1839,"title":{},"name":{},"text":{"22":{},"24":{},"30":{},"31":{},"35":{},"41":{},"46":{},"51":{},"52":{},"58":{},"60":{},"62":{},"66":{},"70":{},"71":{},"75":{},"77":{},"81":{}},"component":{},"keyword":{}}],["cause.printstacktrac",{"_index":6350,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["caution",{"_index":1145,"title":{},"name":{},"text":{"8":{},"58":{},"67":{}},"component":{},"keyword":{}}],["cautious",{"_index":6650,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["cb",{"_index":8722,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["cc",{"_index":5308,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["cd",{"_index":997,"title":{},"name":{},"text":{"8":{},"20":{},"32":{},"34":{},"41":{},"59":{}},"component":{},"keyword":{}}],["cdi",{"_index":1334,"title":{},"name":{},"text":{"14":{},"67":{}},"component":{},"keyword":{}}],["cdi.mod",{"_index":7119,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["ceas",{"_index":8445,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["center",{"_index":7915,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["central",{"_index":182,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"8":{},"30":{},"34":{},"41":{},"43":{},"50":{},"59":{},"64":{},"71":{},"75":{}},"component":{},"keyword":{}}],["cert",{"_index":2985,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["certain",{"_index":895,"title":{},"name":{},"text":{"7":{},"35":{},"39":{},"42":{},"45":{},"46":{},"58":{},"62":{},"64":{},"71":{},"75":{}},"component":{},"keyword":{}}],["certif",{"_index":2212,"title":{"33-3":{},"33-4":{},"33-5":{},"35-18":{},"51-21":{}},"name":{},"text":{"24":{},"31":{},"33":{},"35":{},"48":{},"51":{},"63":{},"71":{}},"component":{},"keyword":{}}],["certificate(",{"_index":3423,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["certificateâ",{"_index":3900,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["certreq",{"_index":3414,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["cg",{"_index":1133,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["chain",{"_index":3137,"title":{},"name":{},"text":{"31":{},"33":{},"46":{},"51":{},"64":{},"71":{},"79":{},"83":{}},"component":{},"keyword":{}}],["chain_from_ca.pem",{"_index":3420,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["challeng",{"_index":5755,"title":{},"name":{},"text":{"51":{},"52":{},"63":{}},"component":{},"keyword":{}}
1],["chanc",{"_index":722,"title":{},"name":{},"text":{"4":{},"45":{},"71":{}},"component":{},"keyword":{}}],["chang",{"_index":101,"title":{"66-1":{},"66-8":{},"67-1":{},"67-2":{},"67-3":{},"67-4":{},"67-5":{},"67-11":{},"68-1":{},"68-3":{},"68-4":{}},"name":{},"text":{"1":{},"8":{},"9":{},"10":{},"12":{},"18":{},"20":{},"22":{},"24":{},"28":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"39":{},"41":{},"45":{},"46":{},"49":{},"51":{},"53":{},"55":{},"57":{},"58":{},"61":{},"62":{},"65":{},"66":{},"67":{},"68":{},"71":{},"77":{},"81":{},"84":{}},"component":{},"keyword":{}}],["changeme,user,develop",{"_index":4009,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["channel",{"_index":33,"title":{},"name":{},"text":{"1":{},"4":{},"46":{},"71":{}},"component":{},"keyword":{}}],["chapter",{"_index":1124,"title":{},"name":{},"text":{"8":{},"38":{}},"component":{},"keyword":{}}],["char",{"_index":2298,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["charact",{"_index":1577,"title":{"51-24":{}},"name":{},"text":{"19":{},"31":{},"34":{},"39":{},"42":{},"48":{},"51":{},"57":{},"67":{},"71":{},"77":{}},"component":{},"keyword":{}}],["character",{"_index":2372,"title":{},"name":{},"text":{"29":{},"30":{}},"component":{},"keyword":{}}],["characterist",{"_index":52,"title":{},"name":{},"text":{"1":{},"39":{}},"component":{},"keyword":{}}],["charg",{"_index":5816,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["charset",{"_index":5022,"title":{},"name":{},"text":{"46":{},"67":{}},"component":{},"keyword":{}}],["charset=utf",{"_index":6461,"title":{},"name":{},"text":{"59":{},"67":{},"71":{}},"component":{},"keyword":{}}],["chat",{"_index":7881,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["check",{"_index":165,"title":{},"name":{},"text":{"1":{},"2":{},"4":{},"6":{},"7":{},"8":{},"28":{},"31":{},"35":{},"39":{},"41":{},"51":{},"58":{},"62":{},"63":{},"71":{},"73":{},"77":{}},"component":{},"keyword":{}}],["checkinterv",{"_index":2268,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["checkout",{"_index":7848,"title":{},"name":{},"text":{"71":{},"78":{}},"component":{},"keyword":{}}],["checkouthandl",{"_index":7947,"title":{},"name":{},"text":{"71":{},"78":{}},"component":{},"keyword":{}}],["checksum",{"_index":2607,"title":{"42-3":{}},"name":{},"text":{"31":{},"42":{},"67":{}},"component":{},"keyword":{}}],["cherri",{"_index":1237,"title":{},"name":{},"text":{"12":{}},"component":{},"keyword":{}}],["child",{"_index":1810,"title":{},"name":{},"text":{"22":{},"29":{},"31":{},"41":{},"44":{},"47":{},"62":{},"63":{},"67":{},"71":{},"78":{},"79":{}},"component":{},"keyword":{}}],["children",{"_index":4826,"title":{},"name":{},"text":{"45":{},"47":{},"67":{},"71":{},"78":{}},"component":{},"keyword":{}}],["choic",{"_index":2101,"title":{},"name":{},"text":{"23":{},"26":{},"31":{},"33":{},"34":{},"39":{},"51":{},"59":{},"67":{},"69":{},"71":{}},"component":{},"keyword":{}}],["choos",{"_index":727,"title":{"75-3":{}},"name":{},"text":{"4":{},"23":{},"33":{},"35":{},"39":{},"41":{},"51":{},"52":{},"55":{},"62":{},"74":{},"77":{}},"component":{},"keyword":{}}],["chose",{"_index":4600,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["chosen",{"_index":1266,"title":{},"name":{},"text":{"13":{},"24":{},"31":{},"35":{},"39":{},"48":{},"51":{},"57":{},"71":{},"77":{}},"component":{},"keyword":{}}],["chrome/97.0.4692.71",{"_index":3530,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["chunk",{"_index":4986,"title":{},"name":{},"text":{"46":{},"50":{},"51":{},"53":{},"55":{},"56":{},"58":{},"67":{},"71":{},"73":{},"74":{},"78":{}},"component":{},"keyword":{}}],["chunk(bytebuff",{"_index":6066,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["chunk.getbytebuff",{"_index":5091,"title":{},"name":{},"text":{"46":{},"74":{}},"component":{},"keyword":{}}],["chunk.getfailur",{"_index":5089,"title":{},"name":{},"text":{"46":{},"67":{}},"component":{},"keyword":{}}],["chunk.hasremain",{"_index":5610,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["chunk.islast",{"_index":5005,"title":{},"name":{},"text":{"46":{},"51":{},"55":{},"56":{},"67":{},"74":{},"78":{}},"component":{},"keyword":{}}],["chunk.releas",{"_index":5010,"title":{},"name":{},"text":{"46":{},"51":{},"55":{},"56":{},"67":{},"74":{},"78":{}},"component":{},"keyword":{}}],["chunk.retain",{"_index":5041,"title":{},"name":{},"text":{"46":{},"51":{}},"component":{},"keyword":{}}],["chunk_siz",{"_index":5071,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["chunks.add(chunk",{"_index":5042,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["chunkstostr",{"_index":5032,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["chunkstostring(content.sourc",{"_index":5035,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["cipher",{"_index":2349,"title":{"35-17":{}},"name":{},"text":{"29":{},"31":{},"35":{},"71":{}},"component":{},"keyword":{}}],["circular",{"_index":2446,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["circumst",{"_index":378,"title":{},"name":{},"text":{"3":{},"11":{},"39":{}},"component":{},"keyword":{}}],["claim",{"_index":6990,"title":{"65-5":{}},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["claims.get(\"nam",{"_index":7037,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["claims.get(\"sub",{"_index":7039,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["clarifi",{"_index":8150,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["clash",{"_index":4606,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["class",{"_index":725,"title":{"19-3":{},"41-12":{},"41-13":{},"59-2":{},"67-3":{},"68-4":{},"71-58":{}},"name":{},"text":{"4":{},"13":{},"15":{},"17":{},"19":{},"20":{},"22":{},"23":{},"24":{},"28":{},"29":{},"30":{},"31":{},"34":{},"35":{},"36":{},"39":{},"41":{},"42":{},"43":{},"44":{},"46":{},"47":{},"48":{},"50":{},"51":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"84":{}},"component":{},"keyword":{}}],["class=\"alert",{"_index":6957,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["class=\"com.acme.audit.auditingeventshandl",{"_index":2392,"t
1itle":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["class=\"com.acme.mylistenerfeatur",{"_index":1897,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["class=\"com.acme.server.customjettyserv",{"_index":2453,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["class=\"com.acme.ssl.customciphercompar",{"_index":2360,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["class=\"com.acme.webapphandl",{"_index":7411,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["class=\"com.zaxxer.hikari.hikariconfig",{"_index":4684,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["class=\"com.zaxxer.hikari.hikaridatasourc",{"_index":4683,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["class=\"jakarta.security.auth.message.config.authconfigfactori",{"_index":4070,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["class=\"java.lang.except",{"_index":4786,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["class=\"java.lang.str",{"_index":3760,"title":{},"name":{},"text":{"35":{},"44":{}},"component":{},"keyword":{}}],["class=\"java.lang.system",{"_index":4722,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["class=\"java.net.inetaddress",{"_index":4751,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["class=\"java.nio.file.path",{"_index":3783,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["class=\"java.util.arraylist",{"_index":4741,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["class=\"java.util.concurrent.concurrenthashmap",{"_index":4777,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["class=\"java.util.concurrent.executor",{"_index":4754,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["class=\"java.util.concurrent.executorservic",{"_index":4756,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["class=\"java.util.list",{"_index":3768,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["class=\"java.util.properti",{"_index":2081,"title":{},"name":{},"text":{"23":{},"44":{}},"component":{},"keyword":{}}],["class=\"java.util.regex.pattern",{"_index":3779,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["class=\"org.acme.jta.myusertransact",{"_index":2111,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["class=\"org.acme.jta.myusertransactionrefer",{"_index":2108,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["class=\"org.apache.activemq.activemqconnectionfactori",{"_index":2068,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["class=\"org.apache.derby.jdbc.embeddeddatasourc",{"_index":2051,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.coreapp.coreappcontext",{"_index":4050,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.ee11.jndi.factories.mailsessionrefer",{"_index":2077,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.ee11.plus.jndi.transact",{"_index":2110,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.ee11.servlet.security.constraintsecurityhandl",{"_index":3969,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.ee11.webapp.webappcontext",{"_index":1513,"title":{},"name":{},"text":{"19":{},"22":{},"23":{},"26":{},"36":{},"37":{},"44":{},"64":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.fcgi.proxy.fastcgiproxyhandl",{"_index":3775,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.http.pathmap.servletpathspec\"><arg>*.php</arg></new",{"_index":3774,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.http.pathmap.servletpathspec\"><arg>/</arg></new",{"_index":3786,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.plus.jndi.<resourc",{"_index":2016,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.plus.jndi.enventri",{"_index":2021,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.plus.jndi.link",{"_index":2119,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.plus.jndi.resourc",{"_index":2047,"title":{},"name":{},"text":{"23":{},"42":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.plus.jndi.transact",{"_index":2104,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.rewrite.handler.redirectpatternrul",{"_index":3157,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.rewrite.handler.redirectregexrul",{"_index":3149,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.rewrite.handler.rewritehandl",{"_index":1803,"t
1itle":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.rewrite.handler.rewriteregexrul",{"_index":1805,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.rewrite.handler.rulecontain",{"_index":3148,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.rewrite.handler.virtualhostrulecontain",{"_index":3154,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.security.hashloginservic",{"_index":6928,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.security.jaas.jaasloginservic",{"_index":3959,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.server.customrequestlog",{"_index":4775,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.server.handler.contexthandl",{"_index":1800,"title":{},"name":{},"text":{"22":{},"35":{},"69":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.server.handler.movedcontexthandl",{"_index":1781,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.server.handler.pathmappingshandl",{"_index":3772,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.server.handler.resourcehandl",{"_index":3787,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.server.handler.trypathshandl",{"_index":3764,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.server.httpconfigur",{"_index":4810,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.server.resourceservice$welcomemod",{"_index":3791,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.server.serv",{"_index":3966,"title":{},"name":{},"text":{"36":{},"44":{},"62":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.util.resource.resourcefactori",{"_index":6920,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.util.security.password",{"_index":4688,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.util.thread.queuedthreadpool",{"_index":2421,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["class=\"org.eclipse.jetty.{e",{"_index":6788,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["class>com.acme.securityfilter</filt",{"_index":8672,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["class>java.lang.system</class",{"_index":4728,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["class>org.eclipse.jetty.ee11.websocket.servlet.websocketupgradefilter</filt",{"_index":8675,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["class>org.example.helloservlet</servlet",{"_index":6512,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["classdebuginfo",{"_index":2274,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["classes/interfac",{"_index":3730,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["classesdirectori",{"_index":6536,"title":{},"name":{},"text":{"60":{},"62":{}},"component":{},"keyword":{}}],["classesdirectory>${project.basedir}/somewhere/else</classesdirectori",{"_index":6697,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["classic",{"_index":3491,"title":{},"name":{},"text":{"34":{},"52":{},"62":{},"77":{}},"component":{},"keyword":{}}],["classifi",{"_index":6612,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["classload",{"_index":2271,"title":{},"name":{},"text":{"28":{},"31":{},"34":{},"41":{},"43":{},"69":{},"71":{},"81":{}},"component":{},"keyword":{}}],["classloaderss",{"_index":4705,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["classnam",{"_index":1566,"title":{},"name":{},"text":{"19":{},"28":{},"36":{},"38":{}},"component":{},"keyword":{}}],["classnotfoundexcept",{"_index":8018,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["classpath",{"_index":1480,"title":{"19-2":{},"62-8":{}},"name":{},"text":{"19":{},"28":{},"31":{},"36":{},"39":{},"41":{},"51":{},"60":{},"62":{},"77":{},"81":{}},"component":{},"keyword":{}}],["claus",{"_index":1538,"title":{},"name":{},"text":{"19":{},"23":{},"41":{}},"component":{},"keyword":{}}],["clean",{"_index":850,"title":{},"name":{},"text":{"7":{},"59":{}},"component":{},"keyword":{}}],["clear",{"_index":1443,"title":{"35-1":{},"35-4":{},"35-6":{},"71-17":{},"71-19":{}},"name":{},"text":{"18":{},"20":{},"24":{},"25":{},"30":{},"31":{},"35":{},"41":{},"42":{},"48":{},"51":{},"53":{},"57":{},"63":{},"71":{},"75":{},"76":{}},"component":{},"keyword":{}}],["clearer",{"_index":5249,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["clf",{"_index":3086,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["clf}",{"_index":3088,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["clf}i",{"_index":3085,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["clf}o",{"_index":3087,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["click",{"_index":714,"title":{},"name":{},"text":{"4":{},"81":{}},"component":{},"keyword":{}}],["client",{"_index":1306,"title":{"51":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"33-5":{},"35-11":{},"51-21":{}},"name":{},"text":{"13":{},"17":{},"18":{},"24":{},"29":{},"31":{},"33":{},"34":{},"35":{},"39":{},"40":{},"41":{},"42":{},"45":{},"46":{},"47":{},"48":{},"49":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"61":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"71":{},"73":{},"74":{},"76":{},"77":{},"79":{},"84":{}},"component":{},"keyword":{}}],["client'",{"_index":5857,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["client(",{"_index":3445,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["client.csr",{"_index":3437,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["client.getmbeanserverconnection().querynames(nul",{"_index":5206,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["client.newrequest(\"https://host",{"_index":5861,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["client.properti",{"_index":8559,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["client.setexecutor(threadpool",{"_index":5961,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["client.start",{"_index":5833,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["client</artifactid",{"_index":5361,"title":{},"name":{},"text":{"51":{},"53":{},"55":{},"58":{}},"component":{},"keyword":{}}],["client_id",{"_index":6997,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["client_keystore.p12",{"_index":3435,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["client_secret",{"_index":6998,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["client_secret_bas",{"_index":3038,"title":{},"name":{},"text":{"31":{},"65":{}},"component":{},"keyword":{}}],["client_secret_post",{"_index":3037,"title":{},"name":{},"text":{"31":{},"65":{}},"component":{},"keyword":{}}],["clientconnectionfactori",{"_index":4877,"title":{},"name":{},"text":{"46":{},"57":{}},"component":{},"keyword":{}}],["clientconnectionfactory.info",{"_index":5627,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["clientconnectionfactoryoverhttp2.http2",{"_index":5629,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["clientconnectionfactoryoverhttp2.http2(http2cli",{"_index":5630,"title":{},"name":{},"text":{"51":{},"58":{}},"component":{},"keyword":{}}],["clientconnectionfactoryoverhttp2.http2(new",{"_index":7961,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["clientconnectionfactoryoverhttp3.http3",{"_index":5855,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["clientconnectionfactoryoverhttp3.http3(http3cli",{"_index":5856,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["clientconnector",{"_index":5104,"title":{},"name":{},"text":{"47":{},"51":{},"52":{},"53":{},"57":{},"58":{},"71":{}},"component":{},"keyword":{}}],["clientconnector.addeventlistener(new",{"_index":5668,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["clientconnector.connect(address",{"_index":6239,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["clientconnector.connect(socketaddress",{"_index":6227,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["clientconnector.connectblock",{"_index":5680,"title":{},"name":{},"text":{"51":{},"57":{}},"component":{},"keyword":{}}],["clientconnector.connectlisten",{"_index":5667,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["clientconnector.connecttimeout",{"_index":5682,"title":{},"name":{},"text":{"51":{},"57":{}},"component":{},"keyword":{}}],["clientconnector.getexecutor",{"_index":6231,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["clientconnector.idletimeout",{"_index":5678,"title":{},"name":{},"text":{"51":{},"57":{}},"component":{},"keyword":{}}],["clientconnector.newsslclientconnectionfactory(nul",{"_index":6267,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["clientconnector.selector",{"_index":6217,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["clientconnector.setexecutor(threadpool",{"_index":5962,"title":{},"name":{},"text":{"52":{},"57":{}},"component":{},"keyword":{}}],["clientconnector.setscheduler(schedul",{"_index":6216,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["clientconnector.setsslcontextfactory(new",{"_index":5838,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["clientconnector.setsslcontextfactory(sslcontextfactori",{"_index":5684,"t
1itle":{},"name":{},"text":{"51":{},"57":{}},"component":{},"keyword":{}}],["clientconnector.start",{"_index":6204,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["clientendpoint",{"_index":6282,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["clientenv",{"_index":5201,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["clientenv.put(connectorserver.rmi_registry_client_socket_factory_attribut",{"_index":5202,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["clientquicconfig",{"_index":5840,"title":{},"name":{},"text":{"51":{},"55":{}},"component":{},"keyword":{}}],["clientquicconfigur",{"_index":6142,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["clientselectormanager(getexecutor",{"_index":6209,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["clientsessionpromis",{"_index":6284,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["clienttoproxyrequest",{"_index":7964,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["clienttoproxyrequest.gethttpuri().getpathqueri",{"_index":7979,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["clientupgraderequest",{"_index":6289,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["clientupgraderequest(serveruri",{"_index":6291,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["clone",{"_index":1223,"title":{},"name":{},"text":{"12":{}},"component":{},"keyword":{}}],["close",{"_index":1210,"title":{"53-9":{},"55-7":{},"58-20":{}},"name":{},"text":{"10":{},"31":{},"35":{},"41":{},"46":{},"51":{},"53":{},"55":{},"57":{},"58":{},"71":{},"73":{},"74":{},"75":{}},"component":{},"keyword":{}}],["close\".equalsignorecase(text",{"_index":6429,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["closedchannelexcept",{"_index":6176,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["closeendpoint",{"_index":6428,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["closes.add(new",{"_index":6113,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["cloud",{"_index":4108,"title":{"39-31":{},"39-38":{}},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["clsid:8ad9c840",{"_index":2301,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["cluster",{"_index":1727,"title":{"39-27":{},"39-29":{},"39-45":{},"39-46":{}},"name":{},"text":{"21":{},"39":{},"71":{},"77":{}},"component":{},"keyword":{}}],["clustering/persist",{"_index":4130,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["cn",{"_index":3199,"title":{},"name":{},"text":{"31":{},"33":{},"52":{}},"component":{},"keyword":{}}],["cn=*.webtide.com",{"_index":3901,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["cn=client",{"_index":3436,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["cn=domain.com",{"_index":3391,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["cn=server_authn",{"_index":3427,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["cntrl",{"_index":6656,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["co",{"_index":8301,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["coars",{"_index":2541,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["code",{"_index":149,"title":{"12":{},"13":{},"8-11":{},"17-1":{},"65-3":{},"68-5":{}},"name":{},"text":{"1":{},"6":{},"8":{},"9":{},"12":{},"13":{},"14":{},"15":{},"17":{},"18":{},"22":{},"23":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"41":{},"42":{},"44":{},"45":{},"46":{},"47":{},"50":{},"51":{},"52":{},"53":{},"55":{},"56":{},"57":{},"58":{},"60":{},"62":{},"63":{},"67":{},"69":{},"71":{},"73":{},"74":{},"77":{},"78":{},"79":{},"80":{},"81":{},"83":{}},"component":{},"keyword":{}}],["codea",{"_index":1421,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["codeb",{"_index":1422,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["codebas",{"_index":129,"title":{},"name":{},"text":{"1":{},"7":{},"8":{},"13":{}},"component":{},"keyword":{}}],["codehau",{"_index":295,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["codestyl",{"_index":1242,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["codifi",{"_index":7481,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["coercion",{"_index":4717,"title":{"44-15":{}},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["cold",{"_index":1731,"title":{"22-8":{}},"name":{},"text":{"22":{},"31":{},"71":{}},"component":{},"keyword":{}}],["collabor",{"_index":29,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["collect",{"_index":1391,"title":{},"name":{},"text":{"15":{},"31":{},"39":{},"50":{},"63":{},"71":{},"77":{}},"component":{},"keyword":{}}],["collection<object",{"_index":5131,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["collection<scheduledexecutorservic",{"_index":5134,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["collector",{"_index":2525,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["color",{"_index":5884,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["column",{"_index":3473,"title":{},"name":{},"text":{"34":{},"36":{},"39":{},"77":{}},"component":{},"keyword":{}}],["com",{"_index":1765,"title":{},"name":{},"text":{"22":{},"69":{}},"component":{},"keyword":{}}],["com.aayushatharva.brotli4j.brotli4jload",{"_index":5528,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["com.acm",{"_index":1569,"title":{},"name":{},"text":{"19":{},"48":{}},"component":{},"keyword":{}}],["com.acme.address",{"_index":5293,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["com.acme.audit",{"_index":2384,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["com.acme.audit.some.property=42",{"_index":2402,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["com.acme.foo",{"_index":5227,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["com.acme.foosci",{"_index":1579,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["com.acme.http.port",{"_index":4797,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["com.acme.jmx",{"_index":5229,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["com.acme.jmx.foombean",{"_index":5228,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["com.acme.mylistenerfeatur",{"_index":1898,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["com.acme.person",{"_index":5284,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["com.acme.phonenumb",{"_index":5290,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["com.acme.server.customjettyserv",{"_index":2455,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["com.acme.someloginmodul",{"_index":3972,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["com.acme.ssl.cipherlist",{"_index":2365,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["com.acme.ssl.cipherlist=ecdh+aesgcm:ecdh+aes256:!anull:!md5:!dss:!adh",{"_index":2371,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["com.acme.x.war",{"_index":6764,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["com.acme.y.war",{"_index":6765,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["com.corp.slowcontaineriniti",{"_index":1570,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["com.exampl",{"_index":3465,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["com.example.level=debug",{"_index":3464,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["com.example.mycompon",{"_index":3463,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["com.example.mycomponent.level=debug",{"_index":3462,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["com.example.prioritysci",{"_index":1578,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["com.example.stacks=<boolean",{"_index":3466,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["com.myapps.mywiki.context.path",{"_index":4795,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["com.mysql.jdbc.driv",{"_index":4234,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["com.other.otherloginmodul",{"_index":3974,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["com.sun.management.jmxremot",{"_index":2146,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["com_acme_http_port",{"_index":4801,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["combin",{"_index":3089,"title":{},"name":{},"text":{"31":{},"39":{},"41":{},"62":{},"63":{},"64":{},"77":{},"78":{}},"component":{},"keyword":{}}],["come",{"_index":881,"title":{},"name":{},"text":{"7":{},"29":{},"31":{},"35":{},"38":{},"39":{},"46":{},"51":{},"54":{},"67":{},"71":{},"77":{}},"component":{},"keyword":{}}],["cometd",{"_index":704,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["comma",{"_index":1575,"title":{},"name":{},"text":{"19":{},"30":{},"31":{},"44":{},"60":{},"62":{}},"component":{},"keyword":{}}],["command",{"_index":989,"title":{"41-5":{},"41-6":{},"41-10":{}},"name":{},"text":{"8":{},"18":{},"20":{},"22":{},"24":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"39":{},"41":{},"42":{},"43":{},"45":{},"48":{},"51":{},"52":{},"55":{},"59":{},"62":{},"71":{},"74":{},"80":{},"84":{}},"component":{},"keyword":{}}],["commands=<filenam",{"_index":4641,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["comment",{"_index":738,"title":{},"name":{},"text":{"4":{},"8":{},"10":{},"20":{},"30":{},"31":{},"35":{},"39":{},"41":{}},"component":{},"keyword":{}}],["commerc",{"_index":7712,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["commerci",{"_index":680,"title":{"4-1":{},"6-5":{}},"name":{},"text":{"4":{},"14":{}},"component":{},"keyword":{}}],["commit",{"_index":78,"title":{"10-2":{},"10-3":{}},"name":{},"text":{"1":{},"9":{},"10":{},"18":{},"39":{},"67":{},"71":{}},"component":{},"keyword":{}}],["committ",{"_index":699,"title":{},"name":{},"text":{"4":{},"9":{}},"component":{},"keyword":{}}],["common",{"_index":1344,"title":{"62-7":{}},"name":{},"text":{"15":{},"24":{},"31":{},"33":{},"34":{},"35":{},"39":{},"41":{},"46":{},"48":{},"49":{},"51":{},"52":{},"57":{},"62":{},"67":{},"68":{},"70":{},"71":{},"75":{},"77":{},"79":{}},"component":{},"keyword":{}}],["commonli",{"_index":3447,"title":{},"name":{},"text":{"34":{},"71":{}},"component":{},"keyword":{}}],["commun",{"_index":1,"title":{"1":{},"1-2":{},"1-4":{},"39-33":{},"39-37":{}},"name":{"1":{}},"text":{"1":{},"2":{},"4":{},"6":{},"12":{},"24":{},"35":{},"39":{},"46":{},"48":{},"51":{},"53":{},"55":{},"57":{},"58":{},"71":{},"75":{},"77":{},"79":{}},"component":{},"keyword":{}}],["compact",{"_index":7782,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["compactpathrul",{"_index":7786,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["compani",{"_index":709,"title":{},"name":{},"text":{"4":{},"6":{},"29":{}},"component":{},"keyword":{}}],["compar",{"_index":2354,"title":{},"name":{},"text":{"29":{},"42":{},"53":{},"55":{},"64":{},"73":{},"74":{}},"component":{},"keyword":{}}],["comparator.jar",{"_index":2369,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["comparison",{"_index":8635,"title":{"79-1":{}},"name":{},"text":{},"component":{},"keyword":{}}],["compat",{"_index":1339,"title":{},"name":{},"text":{"14":{},"31":{},"35":{},"38":{},"44":{},"51":{},"70":{},"71":{},"79":{}},"component":{},"keyword":{}}],["compet",{"_index":2811,"title":{},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["compil",{"_index":979,"title":{},"name":{},"text":{"8":{},"20":{},"28":{},"29":{},"59":{},"60":{},"62":{},"79":{}},"component":{},"keyword":{}}],["compilerclassnam",{"_index":2275,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["compilersourcevm",{"_index":2280,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["compilertargetvm",{"_index":2278,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["complain",{"_index":1619,"title":{},"name":{},"text":{"20":{},"50":{}},"component":{},"keyword":{}}],["complement",{"_index":1977,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["complet",{"_index":914,"title":{},"name":{},"text":{"7":{},"8":{},"19":{},"24":{},"31":{},"41":{},"43":{},"45":{},"46":{},"48":{},"50":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"64":{},"66":{},"67":{},"70":{},"71":{},"73":{},"74":{},"75":{},"81":{},"83":{}},"component":{},"keyword":{}}],["completable.get(5",{"_index":5413,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["completable.whencomplete((ignor",{"_index":7319,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["completable.whencomplete((pathrespons",{"_index":5570,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["completablefutur",{"_index":5030,"title":{},"name":{},"text":{"46":{},"51":{},"53":{},"57":{},"58":{},"71":{},"75":{}},"component":{},"keyword":{}}],["completablefuture<contentrespons",{"_index":5547,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["completablefuture<customconnect",{"_index":6232,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["completablefuture<sess",{"_index":5998,"title":{},"name":{},"text":{"53":{},"58":{}},"component":{},"keyword":{}}],["completablefuture<sslconnect",{"_index":6269,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["completablefuture<stream",{"_index":6030,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["completablefuture<telnetconnect",{"_index":6260,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["completablefuture<void",{"_index":5017,"title":{},"name":{},"text":{"46":{},"51":{},"58":{},"71":{}},"component":{},"keyword":{}}],["completableresponselistener(request",{"_index":5548,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["completabletask",{"_index":5031,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["completabletask<str",{"_index":5033,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["complete(result",{"_index":5039,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["complete=\"fals",{"_index":6510,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["complete=fals",{"_index":1504,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["complete=tru",{"_index":1517,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["complex",{"_index":807,"title":{},"name":{},"text":{"6":{},"29":{},"52":{},"63":{},"78":{}},"component":{},"keyword":{}}],["complianc",{"_index":2281,"title":{"70":{},"31-30":{},"70-1":{},"70-2":{},"70-3":{},"70-4":{},"70-5":{}},"name":{"70":{}},"text":{"28":{},"31":{},"70":{}},"component":{},"keyword":{}}],["compliant",{"_index":2143,"title":{},"name":{},"text":{"24":{},"33":{},"41":{},"51":{},"71":{},"73":{},"79":{}},"component":{},"keyword":{}}],["complic",{"_index":3806,"title":{},"name":{},"text":{"35":{},"52":{},"57":{},"71":{}},"component":{},"keyword":{}}],["compon",{"_index":1025,"title":{"47":{},"81":{},"30-2":{},"41-14":{},"47-1":{},"47-2":{},"66-1":{},"81-1":{}},"name":{"81":{}},"text":{"8":{},"15":{},"18":{},"19":{},"20":{},"22":{},"24":{},"26":{},"29":{},"30":{},"31":{},"34":{},"35":{},"41":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"51":{},"52":{},"57":{},"58":{},"62":{},"63":{},"66":{},"69":{},"71":{},"75":{},"77":{},"79":{},"81":{},"83":{}},"component":{},"keyword":{}}],["componentâ",{"_index":5105,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["compos",{"_index":3718,"title":{},"name":{},"text":{"35":
1{},"41":{},"47":{},"50":{},"53":{},"55":{},"57":{},"58":{},"69":{},"71":{},"73":{},"74":{}},"component":{},"keyword":{}}],["compose(callback2",{"_index":5061,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["composit",{"_index":338,"title":{},"name":{},"text":{"2":{},"39":{}},"component":{},"keyword":{}}],["comprehens",{"_index":4322,"title":{},"name":{},"text":{"39":{},"59":{},"68":{}},"component":{},"keyword":{}}],["compress",{"_index":2490,"title":{"31-4":{},"31-5":{},"31-6":{},"31-7":{},"31-8":{},"66-4":{}},"name":{},"text":{"31":{},"35":{},"51":{},"66":{},"71":{}},"component":{},"keyword":{}}],["compressexcludemimetype(\"font/ttf",{"_index":7763,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["compressexcludepath(\"/uncompress",{"_index":7761,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["compressincludemethod(\"post",{"_index":7762,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["compressionconfig",{"_index":7758,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["compressionconfig.build",{"_index":7760,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["compressioncontentdecoderfactori",{"_index":5536,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["compressioncontentdecoderfactory(gzip",{"_index":5543,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["compressionhandl",{"_index":7054,"title":{"71-32":{}},"name":{},"text":{"66":{},"71":{}},"component":{},"keyword":{}}],["compressionhandler(new",{"_index":7767,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["compressionhandler.putconfigur",{"_index":7764,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["compressionhandler.sethandler(context",{"_index":7765,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["compris",{"_index":24,"title":{},"name":{},"text":{"1":{},"36":{},"62":{},"71":{}},"component":{},"keyword":{}}],["compromised/stolen",{"_index":3830,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["comput",{"_index":2187,"title":{},"name":{},"text":{"24":{},"41":{},"42":{},"48":{},"51":{},"71":{}},"component":{},"keyword":{}}],["concaten",{"_index":4148,"title":{},"name":{},"text":{"39":{},"41":{}},"component":{},"keyword":{}}],["concentr",{"_index":7885,"title":{},"name":{},"text":{"71":{},"77":{}},"component":{},"keyword":{}}],["concept",{"_index":1429,"title":{"18-1":{}},"name":{},"text":{"18":{},"29":{},"31":{},"39":{},"46":{},"51":{},"52":{},"57":{},"58":{},"59":{},"67":{},"71":{},"75":{},"77":{}},"component":{},"keyword":{}}],["conceptu",{"_index":6193,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["concern",{"_index":2869,"title":{},"name":{},"text":{"31":{},"53":{},"71":{}},"component":{},"keyword":{}}],["concret",{"_index":4876,"title":{},"name":{},"text":{"46":{},"51":{},"62":{}},"component":{},"keyword":{}}],["concurr",{"_index":2532,"title":{},"name":{},"text":{"31":{},"41":{},"46":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"71":{},"73":{},"74":{},"77":{}},"component":{},"keyword":{}}],["concurrenthashmap",{"_index":5211,"title":{},"name":{},"text":{"48":{},"51":{},"53":{},"57":{},"77":{}},"component":{},"keyword":{}}],["concurrenthashmap.newkeyset",{"_index":6105,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["concurrentlinkedqueu",{"_index":6070,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["concurrentmap<socketchannel",{"_index":5669,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["condens",{"_index":3469,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["condit",{"_index":6223,"title":{},"name":{},"text":{"57":{},"58":{},"71":{},"79":{}},"component":{},"keyword":{}}],["conditionalhandl",{"_index":7519,"title":{"71-31":{}},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["conditionalhandler.abstract",{"_index":7747,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["conditionalhandler.donthandl",{"_index":7753,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["conditionalhandler.elsenext",{"_index":7750,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["conditionalhandler.nextelsereject",{"_index":7754,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["conditionalhandler.reject",{"_index":7751,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}
1],["conditionalhandler.skipnext",{"_index":7752,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["confer",{"_index":135,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["confidenti",{"_index":3048,"title":{},"name":{},"text":{"31":{},"35":{}},"component":{},"keyword":{}}],["config",{"_index":1479,"title":{"31-29":{}},"name":{},"text":{"18":{},"20":{},"30":{},"31":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"41":{},"62":{},"71":{},"77":{}},"component":{},"keyword":{}}],["config.ini",{"_index":1662,"title":{},"name":{},"text":{"20":{},"41":{}},"component":{},"keyword":{}}],["config.xml",{"_index":3811,"title":{},"name":{},"text":{"35":{},"41":{}},"component":{},"keyword":{}}],["config></sess",{"_index":8338,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["config><cooki",{"_index":8335,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["config><domain/></cooki",{"_index":8369,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["config><http",{"_index":8336,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["config><name/></cooki",{"_index":8354,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["config><path/></cooki",{"_index":8373,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["config><secure/></cooki",{"_index":8350,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["config><sess",{"_index":8330,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["configur",{"_index":889,"title":{"33":{},"10-1":{},"13-1":{},"22-15":{},"22-19":{},"22-20":{},"22-22":{},"22-25":{},"28-1":{},"31-24":{},"31-25":{},"31-45":{},"34-3":{},"34-5":{},"35-3":{},"35-9":{},"35-13":{},"35-14":{},"35-15":{},"35-22":{},"35-24":{},"35-25":{},"36-1":{},"36-3":{},"36-4":{},"37-1":{},"38-1":{},"38-3":{},"39-5":{},"39-9":{},"39-11":{},"39-13":{},"39-15":{},"39-17":{},"39-20":{},"39-23":{},"39-28":{},"39-30":{},"39-36":{},"39-39":{},"39-42":{},"40-1":{},"40-2":{},"41-1":{},"41-9":{},"43-3":{},"44-2":{},"51-17":{},"51-18":{},"51-20":{},"51-21":{},"52-8":{},"53-4":{},"55-3":{},"58-16":{},"60-1":{},"61-1":{},"61-2":{},"62-7":{},"62-10":{},"62-12":{},"62-14":{},"62-16":{},"62-18":{},"62-20":{},"62-24":{},"63-1":{},"63-2":{},"64-5":{},"64-8":{},"65-1":{},"65-2":{},"71-16":{},"77-25":{},"79-4":{},"79-6":{},"79-9":{}},"name":{"37":{},"61":{}},"text":{"7":{},"8":{},"10":{},"15":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"25":{},"26":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"48":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"69":{},"70":{},"71":{},"73":{},"74":{},"75":{},"76":{},"77":{},"79":{},"81":{},"84":{}},"component":{},"keyword":{}}],["configuration.put(settingsframe.enable_push",{"_index":6009,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["configuration.put(settingsframe.initial_window_s",{"_index":6011,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["configurationbuild",{"_index":8561,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["configurationbuilder.addcontextinitializer(new",{"_index":8565,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["configurationbuilder.marshaller(new",{"_index":8563,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["configurationbuilder.withproperties(hotrodproperti",{"_index":8562,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["configure(connect",{"_index":8269,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["configure(jettywebsocketservletfactori",{"_index":7390,"title":{},"name":{},"text":{"68":{},"79":{}},"component":{},"keyword":{}}],["configure(websocketservletfactori",{"_index":7382,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["configureendpoint",{"_index":6383,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["configurehttpcli",{"_index":7955,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["confirm",{"_index":4604,"title":{},"name":{},"text":{"41":{},"62":{}},"component":{},"keyword":{}}],["conflict",{"_index":4571,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["conform",{"_index":3372,"title":{},"name":{},"text":{"32":{},"38":{}},"component":{},"keyword":{}}],["confus",{"_index":4565,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["confusingli",{"_index":1299,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["congest",{"_index":4884,"title":{},"name":{},"text":{"46":{},"66":{},"71":{}},"component":{},"keyword":{}}],["congestion/uncongest",{"_index":4888,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["conjunct",{"_index":1796,"title":{},"name":{},"text":{"22":{},"30":{},"31":{},"34":{},"39":{},"45":{},"51":{},"60":{},"62":{},"63":{},"71":{},"77":{}},"component":{},"keyword":{}}],["connect",{"_index":138,"title":{"31-9":{},"46-2":{},"46-4":{},"51-5":{},"51-6":{},"51-15":{},"51-16":{},"53-3":{},"55-2":{},"58-3":{},"71-15":{},"75-1":{}},"name":{},"text":{"1":{},"15":{},"20":{},"23":{},"24":{},"29":{},"31":{},"33":{},"35":{},"36":{},"39":{},"41":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"51":{},"52":{},"53":{},"55":{},"56":{},"57":{},"58":{},"62":{},"63":{},"64":{},"65":{},"71":{},"73":{},"74":{},"75":{},"77":{},"79":{},"80":{},"81":{}},"component":{},"keyword":{}}],["connect(selectormanag",{"_index":4860,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["connecthandl",{"_index":7523,"title":{"71-51":{}},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["connection.getremotesocketaddress",{"_index":5662,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["connection.getsslsessiondata",{"_index":5665,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["connection.listen",{"_index":4850,"title":{"46-5":{}},"name":{},"text":{"46":{},"51":{}},"component":{},"keyword":{}}],["connection.onclose(throw",{"_index":4890,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["connection.onfil",{"_index":4939,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["connection.online(lin",{"_index":6261,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["connection.onopen",{"_index":4889,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["connection.succeed",{"_index":4941,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["connection.writeline(\"get",{"_index":6263,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["connectionfactori",{"_index":1357,"title":{"23-5":{},"75-1":{},"75-2":{},"75-3":{},"75-4":{}},"name":{},"text":{"15":{},"23":{},"35":{},"46":{},"57":{},"71":{},"73":{},"74":{},"75":{}},"component":{},"keyword":{}}],["connectionfactory.detect",{"_index":8252,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["connectionhandler.handleauthent",{"_index":7973,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}
1],["connectionpool",{"_index":5379,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["connectionpool.factori",{"_index":5392,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["connectionpool.precreateconnections(int",{"_index":5399,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["connectionpromis",{"_index":6233,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["connectionpromise.get",{"_index":6242,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["connectionpromise.whencomplete((connect",{"_index":6241,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["connectionpromise.whencomplete((sslconnect",{"_index":6270,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["connections.decrementandget",{"_index":4915,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["connections.incrementandget",{"_index":4912,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["connectionstatist",{"_index":4905,"title":{},"name":{},"text":{"46":{},"51":{}},"component":{},"keyword":{}}],["connectionstr",{"_index":8521,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["connector",{"_index":1352,"title":{"35":{},"71-11":{},"71-14":{}},"name":{},"text":{"15":{},"18":{},"20":{},"22":{},"31":{},"33":{},"34":{},"35":{},"42":{},"45":{},"46":{},"51":{},"52":{},"53":{},"59":{},"62":{},"71":{},"73":{},"74":{},"75":{},"81":{}},"component":{},"keyword":{}}],["connector.addbean(listen",{"_index":7646,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["connector.addbean(new",{"_index":4921,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["connector.getexecutor",{"_index":8268,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["connector.getlocalport",{"_index":7630,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["connector.setacceptqueuesize(128",{"_index":7586,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["connector.sethost(\"127.0.0.1",{"_index":7585,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["connector.setport(8080",{"_index":7584,"title":{},"name":{},"text":{"71":{},"75":{}},"component":{},"keyword":{}}],["connector.setport(8181",{"_index":8256,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["connector.setport(843",{"_index":7678,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["connector.setport(8443",{"_index":7654,"title":{},"name":{},"text":{"71":{},"75":{}},"component":{},"keyword":{}}],["connector.setsslcontextfactory(sslcontextfactori",{"_index":5854,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["connector.setunixdomainpath(path.of(\"/tmp/jetty.sock",{"_index":7588,"title":{},"name":{},"text":{"71":{},"75":{}},"component":{},"keyword":{}}],["connector1",{"_index":7602,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["connector1.setport(8080",{"_index":7603,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["connector2",{"_index":7608,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["connector2.addbean(connectornetworkconnectionlimit",{"_index":7641,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["connector2.setport(9090",{"_index":7610,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["connectornam",{"_index":1933,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["connectornetworkconnectionlimit",{"_index":7639,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["connectorserv",{"_index":5172,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["connectorserver(jmxurl",{"_index":5179,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["connectorâ",{"_index":7669,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["conscrypt",{"_index":3551,"title":{"35-20":{},"71-22":{}},"name":{},"text":{"35":{},"71":{}},"component":{},"keyword":{}}],["conscrypt.version?=2.5.1",{"_index":2436,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["consecut",{"_index":6046,"title":{},"name":{},"text":{"53":{},"55":{}},"component":{},"keyword":{}}],["consequ",{"_index":5508,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["consid",{"_index":804,"title":{},"name":{},"text":{"6":{},"22":{},"28":{},"39":{},"45":{},"46":{},"47":{},"52":{},"71":{},"77":{}},"component":{},"keyword":{}}],["consider",{"_index":4119,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["consist",{"_index":1039,"title":{},"name":{},"text":{"8":{},"13":{},"28":{},"31":{},"71":{},"77":{}},"component":{},"keyword":{}}],["consol",{"_index":2213,"title":{"31-10":{}},"name":{},"text":{"24":{},"31":{},"34":{},"35":{},"45":{},"47":{},"48":{},"62":{},"81":{}},"component":{},"keyword":{}}],["console.error('error",{"_index":6987,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["consolid",{"_index":1071,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["const",{"_index":6967,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["constant",{"_index":2939,"title":{},"name":{},"text":{"31":{},"50":{}},"component":{},"keyword":{}}],["constitu",{"_index":6653,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}
1],["constrain",{"_index":2660,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["constraint",{"_index":1129,"title":{},"name":{},"text":{"8":{},"33":{},"63":{}},"component":{},"keyword":{}}],["constraint.allow",{"_index":6840,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["constraint.any_us",{"_index":6938,"title":{},"name":{},"text":{"64":{},"65":{}},"component":{},"keyword":{}}],["constraint.combine(constraint.forbidden",{"_index":6842,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["constraint.from(\"admin",{"_index":6830,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["constraint.from(\"read",{"_index":6844,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["constraint.from(\"writ",{"_index":6845,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["constraint.secure_transport",{"_index":6828,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["constraintmap",{"_index":6853,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["constraintmapping.setconstraint(constraint.combine(constraint.forbidden",{"_index":6867,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["constraintmapping.setconstraint(constraint.combine(constraint.secure_transport",{"_index":6870,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["constraintmapping.setconstraint(constraint.from(\"admin",{"_index":6858,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["constraintmapping.setconstraint(constraint.secure_transport",{"_index":6855,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["constraintmapping.setmethod(\"get",{"_index":6869,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["constraintmapping.setmethod(\"put",{"_index":6871,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["constraintmapping.setpathspec",{"_index":6854,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["constraintmapping.setpathspec(\"/admin",{"_index":6857,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["constraintmapping.setpathspec(\"/data",{"_index":6868,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["constraintsecurityhandl",{"_index":6849,"title":{},"name":{},"text":{"63":{},"64":{}},"component":{},"keyword":{}}],["constraintsecurityhandler.denyuncoveredhttpmethods=tru",{"_index":6872,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["construct",{"_index":6652,"title":{},"name":{},"text":{"62":{},"71":{}},"component":{},"keyword":{}}],["constructor",{"_index":2364,"title":{},"name":{},"text":{"29":{},"44":{},"58":{},"62":{},"65":{}},"component":{},"keyword":{}}],["consult",{"_index":1109,"title":{},"name":{},"text":{"8":{},"10":{},"39":{},"51":{},"71":{},"77":{}},"component":{},"keyword":{}}],["consum",{"_index":1522,"title":{"52-2":{},"52-3":{},"52-4":{}},"name":{},"text":{"19":{},"31":{},"46":{},"51":{},"52":{},"53":{},"55":{},"57":{},"61":{},"71":{},"73":{},"74":{},"77":{}},"component":{},"keyword":{}}],["consume(chunk",{"_index":5009,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["consume(content.chunk",{"_index":5025,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["consumeasync(chunk",{"_index":5018,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["consumed.whencomplete((result",{"_index":5019,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["consumer.accept(bytes.tostring(standardcharsets.utf_8",{"_index":6251,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["consumer<str",{"_index":6246,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["consumpt",{"_index":5583,"title":{},"name":{},"text":{"51":{},"52":{},"53":{},"58":{},"71":{},"73":{}},"component":{},"keyword":{}}],["contact",{"_index":815,"title":{},"name":{},"text":{"6":{},"11":{},"24":{},"39":{},"41":{},"51":{},"54":{},"57":{},"77":{}},"component":{},"keyword":{}}],["contain",{"_index":1100,"title":{"19-2":{},"62-8":{}},"name":{},"text":{"8":{},"14":{},"15":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"26":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"38":{},"39":{},"41":{},"42":{},"43":{},"46":{},"47":{},"48":{},"51":{},"52":{},"53":{},"55":{},"58":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"71":{},"73":{},"74":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["container",{"_index":5951,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["container.addendpoint",{"_index":8660,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["container.addendpoint(myjavaxwebsocketendpoint.class",{"_index":8659,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["container.addmapping(\"/ws/adv",{"_index":8724,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["container.addmapping(\"/ws/chat/{room",{"_index":8747,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["container.addmapping(\"/ws/myotheruri",{"_index":8690,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["container.addmapping(\"/ws/myuri",{"_index":8688,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["container.addmapping(\"regex|/ws/v\\\\d+/echo",{"_index":8720,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}
1],["container.inheritedlisten",{"_index":5103,"title":{"47-5":{}},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["container.listen",{"_index":5102,"title":{"47-4":{}},"name":{},"text":{"47":{},"48":{}},"component":{},"keyword":{}}],["container.setdefaultmaxtextmessagebuffersize(128",{"_index":8658,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["container.setmaxtextmessagesize(128",{"_index":8687,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["container.upgrade((rq",{"_index":8735,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["container.upgrade(cr",{"_index":8703,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["containerincludejarpattern",{"_index":6677,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["containerlifecycl",{"_index":1346,"title":{},"name":{},"text":{"15":{},"47":{}},"component":{},"keyword":{}}],["containerlifecycle.addbean",{"_index":5126,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["containerlifecycle.addmanag",{"_index":5125,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["containerâ",{"_index":1380,"title":{},"name":{},"text":{"15":{},"19":{},"62":{}},"component":{},"keyword":{}}],["content",{"_index":963,"title":{"37":{},"61":{},"31-16":{},"51-12":{},"51-13":{},"61-3":{},"67-8":{},"67-10":{},"71-30":{},"71-61":{},"71-66":{},"71-69":{}},"name":{},"text":{"8":{},"20":{},"22":{},"31":{},"32":{},"34":{},"35":{},"36":{},"39":{},"41":{},"45":{},"46":{},"51":{},"53":{},"55":{},"58":{},"59":{},"61":{},"62":{},"64":{},"66":{},"67":{},"70":{},"71":{},"73":{},"74":{},"75":{},"78":{}},"component":{},"keyword":{}}],["content.chunk",{"_index":4852,"title":{"46-8":{}},"name":{},"text":{"46":{},"51":{},"55":{},"56":{},"66":{},"67":{},"74":{},"78":{}},"component":{},"keyword":{}}],["content.chunk.getbytebuff",{"_index":5014,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["content.chunk.isfailure(chunk",{"_index":5004,"title":{},"name":{},"text":{"46":{},"56":{},"67":{},"78":{}},"component":{},"keyword":{}}],["content.chunk.releas",{"_index":5013,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["content.chunk.releaseandnext(chunk",{"_index":5093,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["content.clos",{"_index":5506,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["content.copy(content.sourc",{"_index":5084,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["content.copy(request",{"_index":7320,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["content.getbytes(utf_8",{"_index":8112,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["content.getoutputstream",{"_index":5513,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["content.remain",{"_index":7316,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["content.sink",{"_index":4853,"title":{"46-9":{}},"name":{},"text":{"46":{},"67":{},"71":{}},"component":{},"keyword":{}}],["content.sink.asoutputstream(respons",{"_index":7336,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["content.sink.writ",{"_index":8056,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["content.sink.write(boolean",{"_index":5048,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["content.sink.write(respons",{"_index":6462,"title":{},"name":{},"text":{"59":{},"67":{},"71":{}},"component":{},"keyword":{}}],["content.sink.write(sink",{"_index":5099,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["content.sourc",{"_index":4851,"title":{"46-7":{}},"name":{},"text":{"46":{},"51":{},"56":{},"66":{},"67":{},"71":{}},"component":{},"keyword":{}}],["content.source.asbytebuffer(request",{"_index":7235,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["content.source.asinputstream(content.sourc",{"_index":5024,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["content.source.asinputstream(request",{"_index":7238,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["content.source.asstring(request",{"_index":7233,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["content.source.asstringasync(content.sourc",{"_index":5021,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["content.source.demand(runn",{"_index":6183,"title":{},"name":{},"text":{"56":{},"66":{}},"component":{},"keyword":{}}],["content.source.fail(throw",{"_index":4992,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["content.source.read",{"_index":4985,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["content.write(buff",{"_index":5505,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["content1",{"_index":5051,"title":{},"name":{},"text":{"46":{},"53":{},"55":{}},"component":{},"keyword":{}}],["content2",{"_index":5052,"title":{},"name":{},"text":{"46":{},"51":{},"53":{},"55":{}},"component":{},"keyword":{}}],["content2.clos",{"_index":5616,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["content2.write(chunk.getbytebuff",{"_index":5611,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["content_transfer_encod",{"_index":2965,"title":{},"name":{},"text":{"31":{},"70":{}},"component":{},"keyword":{}}],["contentdecod",{"_index":7051,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["contentdecoder.factori",{"_index":5375,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["contentlength",{"_index":7189,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["contentlengthhandl",{"_index":8109,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["contentpublish",{"_index":5502,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["contentrespons",{"_index":5422,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["contentsourc",{"_index":5574,"title":{},"name":{},"text":{"51":{},"56":{}},"component":{},"keyword":{}}],["contentsource.demand",{"_index":5604,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["contentsource.demand(new",{"_index":6186,"title":{},"name":{},"text":{"56":{}},"component":{},"keyword":{}}],["contentsource.demand(runn",{"_index":5577,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["contentsource.demand(thi",{"_index":6188,"title":{},"name":{},"text":{"56":{}},"component":{},"keyword":{}}],["contentsource.read",{"_index":5608,"title":{},"name":{},"text":{"51":{},"56":{}},"component":{},"keyword":{}}],["contentsourcelisten",{"_index":5575,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["contenttyp",{"_index":7179,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["contenttypefield",{"_index":7177,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["contenttypefield.getvalu",{"_index":7180,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["context",{"_index":1364,"title":{"22-10":{},"22-14":{},"22-16":{},"22-17":{},"22-18":{},"22-23":{},"31-48":{}},"name":{},"text":{"15":{},"19":{},"22":{},"23":{},"26":{},"28":{},"30":{},"31":{},"32":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"44":{},"46":{},"47":{},"57":{},"61":{},"62":{},"67":{},"69":{},"70":{},"71":{},"75":{},"77":{},"79":{}},"component":{},"keyword":{}}],["context.addservlet(defaultservlet.class",{"_index":8040,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["context.addservlet(resourceservlet.class",{"_index":8046,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["context.addservlet(shopcartservlet.class",{"_index":8004,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["context.getcontextpath",{"_index":7151,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["context.gethiddenclassmatcher().add",{"_index":8021,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["context.getprotectedclassmatcher().add",{"_index":8025,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}
1],["context.ini",{"_index":3571,"title":{},"name":{},"text":{"35":{},"42":{}},"component":{},"keyword":{}}],["context.put(clientconnectionfactory.context_key",{"_index":6237,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["context.put(clientconnector.connection_promise_context_key",{"_index":6238,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["context.put(transport.context_key",{"_index":6236,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["context.setclassloader(new",{"_index":8032,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["context.setcontextpath(\"/app",{"_index":8012,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["context.setcontextpath(\"/shop",{"_index":8001,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["context.setextraclasspath(extra",{"_index":8030,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["context.setparentloaderpriority(fals",{"_index":8020,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["context.setwar(\"/path/to/webapp.war",{"_index":8011,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["context.xml",{"_index":2467,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["context.xml|webapps/demo",{"_index":2466,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["context/nod",{"_index":4177,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["context_path",{"_index":7721,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["contexta",{"_index":8508,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["contextb",{"_index":8509,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["contextcollect",{"_index":7726,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["contextcollection.addhandler(apicontext",{"_index":7769,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["contextcollection.addhandler(new",{"_index":7727,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["contextcollection.addhandler(shopcompressionhandl",{"_index":7768,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["contextcollection.addhandler(shopgziphandl",{"_index":7777,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["contextcollection.deployhandler(apicontext",{"_index":7730,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["contextfactory=\"com.sun.jndi.ldap.ldapctxfactori",{"_index":4017,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["contexthandl",{"_index":1360,"title":{"22-6":{},"71-28":{}},"name":{},"text":{"15":{},"22":{},"31":{},"44":{},"62":{},"63":{},"67":{},"69":{},"71":{},"78":{},"79":{}},"component":{},"keyword":{}}],["contexthandler(\"/app",{"_index":6821,"title":{},"name":{},"text":{"63":{},"71":{}},"component":{},"keyword":{}}],["contexthandler(\"/ctx",{"_index":8717,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["contexthandler(\"/myapp",{"_index":8144,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["contexthandler(\"/shop",{"_index":7940,"title":{},"name":{},"text":{"71":{},"78":{}},"component":{},"keyword":{}}],["contexthandler(\"/w",{"_index":8620,"title":{},"name":{},"text":{"78":{}},"component":{},"keyword":{}}],["contexthandler(new",{"_index":7723,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["contexthandler.sethandler(new",{"_index":8617,"title":{},"name":{},"text":{"78":{},"79":{}},"component":{},"keyword":{}}],["contexthandler.sethandler(pathmap",{"_index":7942,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["contexthandler.sethandler(securityhandl",{"_index":6832,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["contexthandler.sethandler(sessionhandl",{"_index":8145,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["contexthandler.sethandler(websockethandl",{"_index":8729,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["contexthandler.sethandler(wshandl",{"_index":8626,"title":{},"name":{},"text":{"78":{}},"component":{},"keyword":{}}],["contexthandlercollect",{"_index":3169,"title":{"71-29":{}},"name":{},"text":{"31":{},"67":{},"69":{},"71":{},"77":{},"78":{}},"component":{},"keyword":{}}],["contextpath",{"_index":1722,"title":{},"name":{},"text":{"20":{},"22":{},"31":{},"39":{},"44":{},"62":{},"67":{},"71":{},"77":{}},"component":{},"keyword":{}}],["contextpath>/${build.finalname}</contextpath",{"_index":6775,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["contextpath>/</contextpath",{"_index":6692,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["contextpath>/b</contextpath",{"_index":6782,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["contextpath>/c</contextpath",{"_index":6784,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["contextpath>/test</contextpath",{"_index":6659,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["contexts.addhandler(app1",{"_index":8414,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["contextxml",{"_index":6625,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["contextâ",{"_index":4174,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["contigu",{"_index":4738,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}
1],["continu",{"_index":3,"title":{"1-3":{},"71-75":{}},"name":{},"text":{"2":{},"4":{},"31":{},"39":{},"46":{},"51":{},"52":{},"62":{},"63":{},"71":{},"77":{}},"component":{},"keyword":{}}],["continue100handl",{"_index":8114,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["continue100handler(handl",{"_index":8115,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["continue100httpservlet",{"_index":8154,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["contract",{"_index":8052,"title":{},"name":{},"text":{"71":{},"77":{}},"component":{},"keyword":{}}],["contrari",{"_index":7601,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["contribut",{"_index":150,"title":{"6":{}},"name":{},"text":{"1":{},"4":{},"6":{},"8":{},"10":{}},"component":{"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{}},"keyword":{}}],["contributor",{"_index":76,"title":{"9":{}},"name":{},"text":{"1":{},"6":{},"9":{},"10":{}},"component":{},"keyword":{}}],["control",{"_index":1571,"title":{"53-2":{},"73-2":{}},"name":{},"text":{"19":{},"24":{},"28":{},"31":{},"33":{},"34":{},"35":{},"36":{},"39":{},"41":{},"45":{},"46":{},"48":{},"51":{},"52":{},"53":{},"58":{},"62":{},"64":{},"71":{},"73":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["conveni",{"_index":1610,"title":{},"name":{},"text":{"20":{},"23":{},"31":{},"36":{},"44":{},"46":{},"60":{},"71":{},"77":{}},"component":{},"keyword":{}}],["convent",{"_index":943,"title":{"8-13":{},"13-2":{},"13-3":{}},"name":{},"text":{"8":{},"13":{},"48":{},"59":{}},"component":{},"keyword":{}}],["convers",{"_index":3556,"title":{},"name":{},"text":{"35":{},"39":{},"46":{},"50":{},"51":{},"52":{},"79":{}},"component":{},"keyword":{}}],["convert",{"_index":974,"title":{"39-25":{}},"name":{},"text":{"8":{},"22":{},"35":{},"39":{},"46":{},"47":{},"50":{},"51":{},"53":{},"54":{},"56":{},"58":{},"71":{},"73":{}},"component":{},"keyword":{}}],["convertor",{"_index":5316,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["cooki",{"_index":2637,"title":{"51-22":{},"51-23":{},"51-24":{},"70-4":{}},"name":{},"text":{"31":{},"39":{},"51":{},"53":{},"55":{},"58":{},"67":{},"70":{},"71":{},"77":{}},"component":{},"keyword":{}}],["cookie(\"foo",{"_index":5735,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["cookie(\"nam",{"_index":7273,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["cookie(httpcookie.from(\"foo",{"_index":5712,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["cookie.setattribute(\"samesit",{"_index":7277,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["cookie.setdomain(\"example.org",{"_index":7274,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["cookie.setmaxage(24",{"_index":7276,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["cookie.setpath(\"/path",{"_index":7275,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["cookie.setpath(\"/secur",{"_index":5737,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["cookiecompli",{"_index":2956,"title":{},"name":{},"text":{"31":{},"70":{}},"component":{},"keyword":{}}],["cookiecompliance.from(\"rfc6265",{"_index":7508,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["cookiecompliance.from(str",{"_index":2957,"title":{},"name":{},"text":{"31":{},"70":{}},"component":{},"keyword":{}}],["cookiecompliance.rfc6265",{"_index":2961,"title":{},"name":{},"text":{"31":{},"70":{}},"component":{},"keyword":{}}],["cookiecompliance.viol",{"_index":7504,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["cookiecompliance.violation.reserved_names_not_dollar_prefix",{"_index":2959,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["cookiesettim",{"_index":4372,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["cookiestor",{"_index":5372,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["cookiestore.add(uri.create(\"http://domain.com",{"_index":5711,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["cookiestore.match(uri",{"_index":5714,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["cookiestore.match(uri.create(\"http://domain.com/path",{"_index":5706,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["cookiestore.remove(uri",{"_index":5715,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["cookietim",{"_index":4264,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["cooper",{"_index":159,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["coordin",{"_index":48,"title":{},"name":{},"text":{"1":{},"48":{},"50":{},"51":{},"53":{},"55":{},"58":{},"68":{},"69":{},"71":{},"73":{},"74":{},"77":{}},"component":{},"keyword":{}}],["cope",{"_index":6405,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["copi",{"_index":846,"title":{},"name":{},"text":{"7":{},"8":{},"12":{},"20":{},"26":{},"29":{},"30":{},"31":{},"34":{},"35":{},"38":{},"39":{},"41":{},"46":{},"51":{},"53":{},"62":{},"66":{},"71":{},"73":{},"81":{}},"component":{},"keyword":{}}],["copy(content.sourc",{"_index":5086,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["copyright",{"_index":1105,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}
1],["cor",{"_index":2630,"title":{},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["core",{"_index":104,"title":{"22-5":{},"22-17":{},"31-11":{},"61-3":{},"63-1":{},"69-3":{},"79-12":{}},"name":{},"text":{"1":{},"15":{},"22":{},"23":{},"31":{},"34":{},"35":{},"37":{},"46":{},"52":{},"61":{},"63":{},"64":{},"65":{},"66":{},"67":{},"69":{},"77":{},"79":{}},"component":{},"keyword":{}}],["core.xml",{"_index":1737,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["core/jetti",{"_index":6135,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["coreapp",{"_index":7422,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["coreappcontext",{"_index":7424,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["coreenv",{"_index":7439,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["coreenvbuild",{"_index":7437,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["coreenvbuilder.addclasspath(\"/path/to/jetti",{"_index":7438,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["coreenvbuilder.build",{"_index":7440,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["coreenvconfig",{"_index":7446,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["coreenvconfig.setdefaultcontexthandlerclassname(\"org.eclipse.jetty.coreapp.coreappcontext",{"_index":7448,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["corpor",{"_index":4648,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["correct",{"_index":1231,"title":{},"name":{},"text":{"12":{},"18":{},"23":{},"35":{},"39":{},"41":{},"42":{},"46":{}},"component":{},"keyword":{}}],["correctli",{"_index":4350,"title":{},"name":{},"text":{"39":{},"45":{},"62":{},"70":{},"71":{},"79":{}},"component":{},"keyword":{}}],["correspond",{"_index":1441,"title":{},"name":{},"text":{"18":{},"20":{},"22":{},"23":{},"24":{},"29":{},"30":{},"31":{},"34":{},"35":{},"39":{},"41":{},"44":{},"47":{},"48":{},"51":{},"53":{},"55":{},"58":{},"62":{},"65":{},"66":{},"67":{},"69":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["corrupt",{"_index":1155,"title":{"39-47":{}},"name":{},"text":{"8":{},"39":{},"77":{}},"component":{},"keyword":{}}],["cost",{"_index":3728,"title":{},"name":{},"text":{"35":{},"46":{},"51":{},"52":{},"71":{},"79":{}},"component":{},"keyword":{}}],["costli",{"_index":5378,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["cou",{"_index":5268,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["count",{"_index":4911,"title":{},"name":{},"text":{"46":{},"48":{},"50":{},"71":{}},"component":{},"keyword":{}}],["counter",{"_index":7983,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["counter.getandincr",{"_index":7987,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["countri",{"_index":5304,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["countservic",{"_index":5233,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["countservice)super.getmanagedobject",{"_index":5240,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["countservicembean",{"_index":5237,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["countservicembean(object",{"_index":5238,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["coupl",{"_index":365,"title":{},"name":{},"text":{"3":{},"36":{},"52":{}},"component":{},"keyword":{}}],["cours",{"_index":3745,"title":{},"name":{},"text":{"35":{},"57":{},"77":{}},"component":{},"keyword":{}}],["cover",{"_index":7364,"title":{},"name":{},"text":{"68":{},"71":{}},"component":{},"keyword":{}}],["cp",{"_index":4310,"title":{},"name":{},"text":{"39":{},"42":{}},"component":{},"keyword":{}}],["cpu",{"_index":2847,"title":{},"name":{},"text":{"31":{},"35":{},"52":{},"61":{},"71":{},"81":{}},"component":{},"keyword":{}}],["crash",{"_index":3838,"title":{},"name":{},"text":{"35":{},"71":{}},"component":{},"keyword":{}}],["creat",{"_index":1166,"title":{"10-4":{},"29-2":{},"33-1":{},"33-3":{},"33-5":{},"51-6":{},"59-2":{},"59-3":{},"59-6":{},"59-7":{},"75-1":{}},"name":{},"text":{"9":{},"10":{},"15":{},"17":{},"20":{},"22":{},"23":{},"24":{},"26":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"39":{},"40":{},"41":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"59":{},"62":{},"65":{},"67":{},"69":{},"70":{},"71":{},"73":{},"74":{},"75":{},"77":{},"79":{}},"component":{},"keyword":{}}],["createtim",{"_index":4266,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["createwebsocket(jettyserverupgraderequest",{"_index":7392,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["createwebsocket(servletupgraderequest",{"_index":7385,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["creation",{"_index":2153,"title":{},"name":{},"text":{"24":{},"33":{},"35":{},"41":{},"44":{},"46":{},"57":{},"71":{},"75":{},"77":{},"79":{}},"component":{},"keyword":{}}],["creativ",{"_index":4547,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["creator",{"_index":8701,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}
1],["credenti",{"_index":2636,"title":{},"name":{},"text":{"31":{},"36":{},"38":{},"42":{},"51":{},"63":{},"65":{}},"component":{},"keyword":{}}],["credentialfield",{"_index":3991,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["credentialfield=\"mypassword",{"_index":3986,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["criteria",{"_index":6334,"title":{},"name":{},"text":{"58":{},"71":{}},"component":{},"keyword":{}}],["critic",{"_index":3316,"title":{},"name":{},"text":{"31":{},"81":{}},"component":{},"keyword":{}}],["cross",{"_index":2494,"title":{"31-12":{}},"name":{},"text":{"31":{},"53":{},"71":{},"77":{}},"component":{},"keyword":{}}],["crossoriginfilt",{"_index":8007,"title":{},"name":{},"text":{"71":{},"79":{}},"component":{},"keyword":{}}],["crossoriginhandl",{"_index":2631,"title":{"71-41":{}},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["crossoriginhandler.setallowcredentials(tru",{"_index":7999,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["crossoriginhandler.setallowedoriginpatterns(set.of(\"http://domain.com",{"_index":7998,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["crossoriginhandler.setallowedoriginpatterns(set.of(\"http://domain\\\\.com",{"_index":7888,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["crossoriginhandler.sethandler(context",{"_index":8002,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["crt",{"_index":3913,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["crucial",{"_index":4152,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["crypt:adpexzg3fuzak,admin",{"_index":4013,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["cryptograph",{"_index":2214,"title":{},"name":{},"text":{"24":{},"31":{},"33":{},"35":{},"48":{},"51":{}},"component":{},"keyword":{}}],["csr",{"_index":3413,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["csrf",{"_index":7883,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["css",{"_index":1700,"title":{},"name":{},"text":{"20":{},"22":{},"35":{},"69":{},"71":{}},"component":{},"keyword":{}}],["ctrl+c",{"_index":1596,"title":{},"name":{},"text":{"20":{},"31":{},"41":{},"62":{}},"component":{},"keyword":{}}],["ctx",{"_index":2775,"title":{},"name":{},"text":{"31":{},"79":{}},"component":{},"keyword":{}}],["ctx//path/to//resourc",{"_index":7784,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["cumul",{"_index":8396,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["curl",{"_index":3650,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["current",{"_index":206,"title":{},"name":{},"text":{"2":{},"8":{},"18":{},"19":{},"31":{},"34":{},"35":{},"36":{},"39":{},"41":{},"45":{},"48":{},"52":{},"57":{},"58":{},"60":{},"62":{},"63":{},"64":{},"70":{},"71":{},"77":{},"81":{},"83":{}},"component":{},"keyword":{}}],["current}.demos</groupid",{"_index":6573,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["current}.maven.plugin.mavenwebappcontext",{"_index":6789,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["current}</groupid",{"_index":6801,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["curv",{"_index":99,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["custom",{"_index":944,"title":{"29":{},"8-14":{},"34-5":{},"35-15":{},"35-16":{},"35-17":{},"41-8":{},"50-2":{},"50-4":{},"58-6":{},"71-4":{},"75-4":{},"77-5":{},"77-11":{},"77-14":{},"79-17":{}},"name":{"29":{}},"text":{"8":{},"14":{},"15":{},"18":{},"20":{},"22":{},"23":{},"24":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"38":{},"40":{},"41":{},"43":{},"44":{},"45":{},"48":{},"50":{},"51":{},"54":{},"57":{},"58":{},"62":{},"65":{},"70":{},"71":{},"73":{},"74":{},"75":{},"76":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["customclientconnector",{"_index":6207,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["customconnect",{"_index":6228,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["customconnection(endpoint",{"_index":6229,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["customhttpcompli",{"_index":7470,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["customis",{"_index":4218,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["customiz",{"_index":3533,"title":{},"name":{},"text":{"34":{},"39":{}},"component":{},"keyword":{}}],["customrequest",{"_index":6290,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}
1],["customrequest.getcookies().add(new",{"_index":6292,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["customrequest.setheader(\"x",{"_index":6294,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["customrequest.setsubprotocols(\"chat",{"_index":6296,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["customrequestlog",{"_index":7542,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["customrequestlog(logwrit",{"_index":7554,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["customrequestlog(new",{"_index":7544,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["customrequestlog.extended_ncsa_format",{"_index":7546,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["customuricompli",{"_index":7494,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["cut",{"_index":94,"title":{},"name":{},"text":{"1":{},"13":{},"45":{},"53":{}},"component":{},"keyword":{}}],["cve",{"_index":407,"title":{},"name":{},"text":{"3":{},"4":{}},"component":{},"keyword":{}}],["cwe",{"_index":631,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["cycl",{"_index":4163,"title":{},"name":{},"text":{"39":{},"47":{},"49":{},"51":{},"53":{},"55":{},"62":{},"73":{},"74":{},"77":{}},"component":{},"keyword":{}}],["d",{"_index":2996,"title":{},"name":{},"text":{"31":{},"41":{},"50":{},"51":{},"71":{}},"component":{},"keyword":{}}],["d\".formatted(cc",{"_index":5312,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["d<name>=<valu",{"_index":4649,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["daemon",{"_index":2189,"title":{},"name":{},"text":{"24":{},"31":{}},"component":{},"keyword":{}}],["daili",{"_index":7547,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["data",{"_index":1154,"title":{"31-36":{},"39-36":{},"39-40":{},"39-47":{},"58-17":{}},"name":{},"text":{"8":{},"13":{},"31":{},"34":{},"35":{},"36":{},"39":{},"46":{},"47":{},"50":{},"52":{},"53":{},"55":{},"58":{},"61":{},"63":{},"64":{},"66":{},"67":{},"70":{},"71":{},"73":{},"74":{},"77":{}},"component":{},"keyword":{}}],["data.frame().getbytebuff",{"_index":6061,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["data.frame().isendstream",{"_index":6063,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["data.releas",{"_index":6062,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["databas",{"_index":2002,"title":{},"name":{},"text":{"23":{},"36":{},"39":{},"71":{},"77":{}},"component":{},"keyword":{}}],["databaseadapt",{"_index":8472,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["databaseadaptor",{"_index":8289,"title":{"77-19":{}},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["databaseâ",{"_index":8475,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["datacent",{"_index":6224,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["datacf1",{"_index":6040,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["datacf1.thencompose(",{"_index":6043,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["dataframe(buffer1",{"_index":6163,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["dataframe(buffer2",{"_index":6166,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["dataframe(pushed.getid",{"_index":8221,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["dataframe(resourcebyt",{"_index":8244,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["dataframe(s.getid",{"_index":6045,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["dataframe(stream.getid",{"_index":6042,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["datagramchannel",{"_index":4872,"title":{},"name":{},"text":{"46":{},"57":{},"71":{}},"component":{},"keyword":{}}],["datagramchannelendpoint",{"_index":4874,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["dataqueu",{"_index":6069,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["dataqueue.offer(new",{"_index":6072,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["dataratehandl",{"_index":7804,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["dataratehandler.sethandler(contextcollect",{"_index":7808,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["datasourc",{"_index":1907,"title":{"23-4":{}},"name":{},"text":{"22":{},"23":{},"39":{},"42":{},"43":{},"63":{},"77":{}},"component":{},"keyword":{}}],["datasourceadaptor",{"_index":8479,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["datasourceadaptor.setdatasourcename(\"/jdbc/myd",{"_index":8480,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["datasourceloginmodul",{"_index":3934,"title":{"36-7":{}},"name":{},"text":{},"component":{},"keyword":{}}],["datasourceloginservic",{"_index":6886,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["datastor",{"_index":4109,"title":{"39-31":{},"39-38":{}},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["date",{"_index":2880,"title":{},"name":{},"text":{"31":{},"34":{},"39":{},"51":{},"62":{},"67":{},"71":{}},"component":{},"keyword":{}}],["date().toisostr",{"_index":6982,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["datetim",{"_index":3453,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["datetime>:<level>:<logg",{"_index":3450,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["david",{"_index":6839,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}
1],["david:password,admin",{"_index":6836,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["day",{"_index":2618,"title":{},"name":{},"text":{"31":{},"33":{},"34":{},"35":{}},"component":{},"keyword":{}}],["db",{"_index":4231,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["dbdriver=\"org.hsqldb.jdbcdriv",{"_index":3983,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["dbjndiname=\"d",{"_index":4002,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["dburl=\"jdbc:hsqldb",{"_index":3981,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["dbusername=\"sa",{"_index":3982,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["dcollector",{"_index":992,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["dd",{"_index":3456,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["dd/mmm/yyyy:hh:mm:ss",{"_index":3063,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["ddetail=tru",{"_index":6617,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["de",{"_index":3863,"title":{},"name":{},"text":{"35":{},"38":{},"39":{},"42":{},"70":{}},"component":{},"keyword":{}}],["deactiv",{"_index":5109,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["deadlock",{"_index":3267,"title":{},"name":{},"text":{"31":{},"51":{}},"component":{},"keyword":{}}],["deal",{"_index":940,"title":{"8-11":{}},"name":{},"text":{"8":{},"46":{},"57":{},"58":{},"59":{},"67":{},"73":{},"74":{},"77":{},"79":{}},"component":{},"keyword":{}}],["dealloc",{"_index":4972,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["debug",{"_index":1303,"title":{"80":{},"45-3":{},"45-5":{},"45-6":{},"45-7":{}},"name":{"80":{}},"text":{"13":{},"28":{},"31":{},"32":{},"34":{},"41":{},"45":{},"80":{},"84":{}},"component":{},"keyword":{}}],["debug.ini",{"_index":4838,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["debug.mod",{"_index":4833,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["debug=\"fals",{"_index":4035,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["debug=tru",{"_index":3973,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["debugg",{"_index":4836,"title":{},"name":{},"text":{"45":{},"80":{}},"component":{},"keyword":{}}],["debughandl",{"_index":2651,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["debuglisten",{"_index":2661,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["debuglog",{"_index":2495,"title":{"31-13":{}},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["dec",{"_index":648,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["decentr",{"_index":6891,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["decid",{"_index":1283,"title":{},"name":{},"text":{"13":{},"31":{},"35":{},"46":{},"51":{},"52":{},"53":{},"55":{},"58":{},"71":{},"73":{},"74":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["decis",{"_index":8072,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["declar",{"_index":1383,"title":{},"name":{},"text":{"15":{},"18":{},"22":{},"23":{},"28":{},"30":{},"31":{},"32":{},"35":{},"36":{},"41":{},"43":{},"46":{},"51":{},"52":{},"57":{},"59":{},"60":{},"62":{},"63":{},"64":{},"71":{},"75":{},"77":{},"79":{}},"component":{},"keyword":{}}],["declaredrol",{"_index":1487,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["decod",{"_index":2564,"title":{},"name":{},"text":{"31":{},"51":{},"66":{},"70":{},"79":{}},"component":{},"keyword":{}}],["decodersourc",{"_index":7060,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["decompress",{"_index":2559,"title":{},"name":{},"text":{"31":{},"51":{},"71":{}},"component":{},"keyword":{}}],["decompression/compress",{"_index":7757,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["decrypt",{"_index":3897,"title":{},"name":{},"text":{"35":{},"46":{},"71":{},"75":{}},"component":{},"keyword":{}}],["decryption/encrypt",{"_index":3919,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["dedic",{"_index":2819,"title":{},"name":{},"text":{"31":{},"52":{},"63":{}},"component":{},"keyword":{}}],["deep",{"_index":6307,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["default",{"_index":883,"title":{"34-3":{},"61-2":{}},"name":{},"text":{"7":{},"8":{},"12":{},"13":{},"15":{},"18":{},"19":{},"20":{},"22":{},"24":{},"28":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"41":{},"43":{},"44":{},"45":{},"48":{},"50":{},"51":{},"52":{},"53":{},"55":{},"56":{},"57":{},"58":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"69":{},"70":{},"71":{},"73":{},"77":{},"79":{},"81":{},"84":{}},"component":{},"keyword":{}}],["default,al",{"_index":4530,"title":{},"name":{},"text":{"41":{},"43":{}},"component":{},"keyword":{}}],["default.xml",{"_index":4101,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["default:\"jettysess",{"_index":8494,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["default:\"jsessionid",{"_index":8352,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["default:0",{"_index":8430,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["default:3600",{"_index":8433,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["default:fals",{"_index":8327,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["default:nul",{"_index":8343,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["default:tru",{"_index":8348,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["default:{sessiontrackingmode.cooki",{"_index":8359,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["default=\".\"/>/etc/realm.properties</arg",{"_index":6926,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["default=\"/wiki",{"_index":4793,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["default=\"256",{"_index":2425,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["default=\"42",{"_index":2395,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["default=\"8080",{"_index":4799,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["default=\"ee11\"/></arg",{"_index":2107,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["default>ecdh+aesgcm:ecdh+aes256:!anull:!md5:!dss:!adh</default",{"_index":2362,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["default_backend",{"_index":3916,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["default_redirect",{"_index":2924,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["defaultauthconfigfactori",{"_index":4052,"title":{"38-6":{}},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["defaultcachemanag",{"_index":8541,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["defaultcachemanager(\"path/to/infinispan.xml",{"_index":8542,"t
1itle":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["defaultcachemanager.getcach",{"_index":8545,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["defaulthandl",{"_index":3171,"title":{"71-43":{}},"name":{},"text":{"31":{},"69":{},"71":{}},"component":{},"keyword":{}}],["defaulthandler(fals",{"_index":7903,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["defaulthold",{"_index":8050,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["defaultholder.setasyncsupported(tru",{"_index":8051,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["defaultsdescriptor",{"_index":6663,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["defaultservlet",{"_index":7528,"title":{"71-61":{}},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["defaultsessioncach",{"_index":4389,"title":{"77-9":{}},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["defaultsessioncache(app1.getsessionhandl",{"_index":8458,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["defaultsessioncache(sessionhandl",{"_index":8553,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["defaultsessioncache.getsessionscurr",{"_index":8393,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["defaultsessioncache.getsessionsmax",{"_index":8394,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["defaultsessioncache.getsessionstot",{"_index":8395,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["defaultsessioncachefactori",{"_index":8399,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["defaultsessionfactori",{"_index":8397,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["defaultsessionidmanag",{"_index":4141,"title":{"77-3":{}},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["defaultsessionidmanager(serv",{"_index":8308,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["defer",{"_index":2678,"title":{},"name":{},"text":{"31":{},"40":{},"46":{},"65":{}},"component":{},"keyword":{}}],["defin",{"_index":51,"title":{"23-1":{}},"name":{},"text":{"1":{},"15":{},"19":{},"20":{},"22":{},"23":{},"24":{},"28":{},"30":{},"31":{},"34":{},"35":{},"39":{},"40":{},"41":{},"44":{},"45":{},"48":{},"51":{},"53":{},"55":{},"56":{},"58":{},"62":{},"63":{},"64":{},"65":{},"66":{},"70":{},"71":{},"73":{},"74":{},"77":{},"78":{}},"component":{},"keyword":{}}],["definit",{"_index":2012,"title":{},"name":{},"text":{"23":{},"28":{},"60":{},"62":{},"70":{},"77":{}},"component":{},"keyword":{}}],["deflat",{"_index":2577,"title":{},"name":{},"text":{"31":{},"35":{}},"component":{},"keyword":{}}],["degrad",{"_index":5947,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["delay",{"_index":2699,"title":{},"name":{},"text":{"31":{},"46":{},"51":{},"52":{},"71":{}},"component":{},"keyword":{}}],["delaydispatchuntilcontent=tru",{"_index":8891,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["delayedrejecthandl",{"_index":7913,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["deleg",{"_index":3541,"title":{},"name":{},"text":{"34":{},"57":{},"63":{},"71":{},"75":{},"76":{},"77":{},"79":{}},"component":{},"keyword":{}}],["delet",{"_index":394,"title":{},"name":{},"text":{"3":{},"31":{},"39":{},"41":{},"47":{},"60":{},"71":{},"77":{}},"component":{},"keyword":{}}],["delete=^[0",{"_index":8776,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["deleteunrestorablefiles(boolean",{"_index":8451,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["deliber",{"_index":6557,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["deliv",{"_index":2645,"title":{},"name":{},"text":{"31":{},"35":{},"53":{},"55":{},"58":{},"63":{},"71":{},"73":{},"77":{}},"component":{},"keyword":{}}],["deliveri",{"_index":6403,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["deliverpreflightrequests=tru",{"_index":7890,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["delta",{"_index":2797,"title":{},"name":{},"text":{"31":{},"48":{}},"component":{},"keyword":{}}],["demand",{"_index":3272,"title":{"56-4":{},"58-10":{},"78-3":{}},"name":{},"text":{"31":{},"46":{},"51":{},"52":{},"53":{},"55":{},"56":{},"58":{},"66":{},"67":{},"71":{},"73":{},"74":{},"78":{},"79":{}},"component":{},"keyword":{}}],["demand+pul",{"_index":7354,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["demand+push",{"_index":7351,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["demand/read",{"_index":4982,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["demandedcontentlistener.oncontent(respons",{"_index":7352,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["demander.run",{"_index":5476,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["demo",{"_index":1476,"title":{"38-4":{}},"name":{},"text":{"18":{},"20":{},"30":{},"31":{},"38":{},"60":{}},"component":{},"keyword":{}}],["demonstr",{"_index":1078,"title":{},"name":{},"text":{"8":{},"59":{}},"component":{},"keyword":{}}],["deni",{"_index":6873,"title":{},"name":{},"text":{"63":{},"71":{}},"component":{},"keyword":{}}],["denial",{"_index":2839,"title":{},"name":{},"text":{"31":{},"37":{},"61":{},"71":{}},"component":{},"keyword":{}}],["depend",{"_index":864,"title":{"30-8":{}},"name":{},"text":{"7":{},"12":{},"14":{},"15":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"27":{},"28":{},"29":{},"30":{},"31":{},"34":{},"35":{},"36":{},"38":{},"39":{},"41":{},"43":{},"48":{},"50":{},"51":{},"52":{},"53":{},"55":{},"58":{},"59":{},"60":{},"62":{},"65":{},"68":{},"69":{},"71":{},"73":{},"74":{},"77":{},"79":{}},"component":{},"keyword":{}}],["deploy",{"_index":1065,"title":{"22":{},"32":{},"69":{},"20-5":{},"20-6":{},"20-7":{},"22-8":{},"22-9":{},"22-12":{},"22-13":{},"22-14":{},"22-17":{},"22-18":{},"31-11":{},"31-14":{},"31-17":{},"31-51":{},"62-3":{},"66-2":{},"69-1":{},"69-2":{},"69-3":{},"69-4":{}},"name":{"69":{}},"text":{"8":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"27":{},"28":{},"30":{},"31":{},"32":{},"35":{},"36":{},"38":{},"39":{},"41":{},"43":{},"44":{},"59":{},"62":{},"65":{},"66":{},"67":{},"69":{},"70":{},"71":{},"75":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}
1],["deploy,ee{8,9,10,11",{"_index":2670,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["deploy.ini",{"_index":1710,"title":{},"name":{},"text":{"20":{},"22":{}},"component":{},"keyword":{}}],["deploy.mod",{"_index":7120,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["deploy/redeploy/undeploy",{"_index":1826,"title":{},"name":{},"text":{"22":{},"31":{},"69":{}},"component":{},"keyword":{}}],["deploy/undeploy",{"_index":1739,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["deploy</artifactid",{"_index":7394,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["deploy[distribut",{"_index":6610,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["deployed/redeploy",{"_index":1886,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["deploymentexcept",{"_index":8663,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["deploymentscann",{"_index":2671,"title":{},"name":{},"text":{"31":{},"69":{}},"component":{},"keyword":{}}],["deploymentscanner(serv",{"_index":7402,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["deploymentscanner.environmentconfig",{"_index":7416,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["deploymod",{"_index":6619,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["deprec",{"_index":280,"title":{"17-1":{}},"name":{},"text":{"2":{},"17":{},"20":{},"31":{},"41":{},"44":{},"66":{}},"component":{},"keyword":{}}],["dequeu",{"_index":5417,"title":{},"name":{},"text":{"51":{},"52":{}},"component":{},"keyword":{}}],["derbi",{"_index":2044,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["deriv",{"_index":1746,"title":{},"name":{},"text":{"22":{},"30":{},"32":{},"43":{},"52":{},"71":{},"77":{}},"component":{},"keyword":{}}],["descend",{"_index":5133,"title":{},"name":{},"text":{"47":{},"71":{},"79":{}},"component":{},"keyword":{}}],["describ",{"_index":1747,"title":{},"name":{},"text":{"22":{},"28":{},"30":{},"31":{},"34":{},"35":{},"39":{},"40":{},"43":{},"44":{},"45":{},"47":{},"51":{},"57":{},"58":{},"62":{},"67":{},"69":{},"71":{},"73":{},"74":{},"77":{},"79":{},"83":{}},"component":{},"keyword":{}}],["descript",{"_index":917,"title":{"30-5":{}},"name":{},"text":{"7":{},"10":{},"27":{},"28":{},"29":{},"30":{},"31":{},"36":{},"38":{},"41":{},"43":{},"45":{},"48":{},"62":{},"64":{},"65":{},"77":{}},"component":{},"keyword":{}}],["descriptor",{"_index":868,"title":{"59-3":{},"59-7":{}},"name":{},"text":{"7":{},"8":{},"19":{},"20":{},"31":{},"32":{},"59":{},"62":{}},"component":{},"keyword":{}}],["descriptor>${project.basedir}/src/over/here/web.xml</descriptor",{"_index":6693,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["deseri",{"_index":4307,"title":{},"name":{},"text":{"39":{},"46":{}},"component":{},"keyword":{}}],["deserv",{"_index":8193,"title":{},"name":{},"text":{"73":{},"74":{}},"component":{},"keyword":{}}],["design",{"_index":1402,"title":{},"name":{},"text":{"17":{},"20":{},"39":{},"53":{},"54":{},"55":{},"57":{},"62":{},"71":{},"73":{},"74":{},"75":{}},"component":{},"keyword":{}}],["desir",{"_index":1472,"title":{},"name":{},"text":{"18":{},"24":{},"31":{},"41":{},"42":{},"47":{},"48":{},"52":{},"71":{},"84":{}},"component":{},"keyword":{}}],["despit",{"_index":1516,"title":{},"name":{},"text":{"19":{},"51":{},"52":{},"53":{},"66":{},"73":{}},"component":{},"keyword":{}}],["destin",{"_index":1032,"title":{},"name":{},"text":{"8":{},"23":{},"50":{},"51":{},"77":{}},"component":{},"keyword":{}}],["destination.getconnectionpool().precreateconnections(precr",{"_index":5412,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["destination.getorigin().getaddress().gethost().equals(\"domain.com",{"_index":5382,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["detail",{"_index":421,"title":{"81-3":{}},"name":{},"text":{"3":{},"9":{},"10":{},"15":{},"18":{},"20":{},"22":{},"24":{},"31":{},"33":{},"34":{},"35":{},"39":{},"41":{},"45":{},"46":{},"47":{},"48":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"58":{},"62":{},"66":{},"67":{},"69":{},"71":{},"73":{},"74":{},"76":{},"78":{},"81":{}},"component":{},"keyword":{}}],["detaileddump",{"_index":8769,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["detect",{"_index":1834,"title":{"75-3":{}},"name":{},"text":{"22":{},"31":{},"43":{},"45":{},"62":{},"71":{},"75":{},"77":{},"83":{}},"component":{},"keyword":{}}],["detector",{"_index":8253,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["detectorconnectionfactori",{"_index":8251,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["detectorconnectionfactory(tl",{"_index":8255,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["determin",{"_index":2291,"title":{},"name":{},"text":{"28":{},"30":{},"36":{},"39":{},"47":{},"51":{},"52":{},"56":{},"60":{},"62":{},"69":{},"77":{},"78":{}},"component":{},"keyword":{}}],["determinist",{"_index":6404,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["dev",{"_index":736,"title":{},"name":{},"text":{"4":{},"6":{}},"component":{},"keyword":{}}],["develop",{"_index":10,"title":{"4-5":{},"59-5":{}},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"6":{},"7":{},"8":{},"9":{},"11":{},"12":{},"14":{},"16":{},"17":{},"24":{},"28":{},"31":{},"32":{},"34":{},"48":{},"59":{},"60":{},"62":{},"65":{},"71":{},"81":{},"84":{}},"component":{},"keyword":{}}],["development=tru",{"_index":2317,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["deviat",{"_index":7797,"title":{},"name":{},"text":{"71":{},"77":{}},"component":{},"keyword":{}}],["devic",{"_index":5161,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["devop",{"_index":950,"title":{},"name":{},"text":{"8":{},"14":{},"16":{}},"component":{},"keyword":{}}],["dextra=opt",{"_index":4555,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["dgoal=<goalnam",{"_index":6618,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["dh",{"_index":3906,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["dhost",{"_index":4320,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["dhost=127.0.0.1",{"_index":4318,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["dhost=myhost",{"_index":4327,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["diagnos",{"_index":4323,"title":{},"name":{},"text":{"39":{},"45":{},"46":{},"58":{},"81":{}},"component":{},"keyword":{}}],["diagram",{"_index":3507,"title":{},"name":{},"text":{"34":{},"35":{},"52":{},"71":{}},"component":{},"keyword":{}}],["diagrammat",{"_index":8299,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["dick",{"_index":4012,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["dictat",{"_index":3943,"title":{},"name":{},"text":{"36":{},"71":{}},"component":{},"keyword":{}}],["diff",{"_index":1050,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["differ",{"_index":766,"title":{"22-23":{},"22-24":{}},"name":{},"text":{"4":{},"8":{},"15":{},"18":{},"20":{},"22":{},"23":{},"24":{},"28":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"39":{},"41":{},"42":{},"43":{},"45":{},"46":{},"48":{},"51":{},"52":{},"56":{},"57":{},"58":{},"63":{},"64":{},"66":{},"67":{},"69":{},"70":{},"71":{},"75":{},"77":{},"79":{}},"component":{},"keyword":{}}],["differenti",{"_index":1957,"title":{},"name":{},"text":{"22":{},"33":{},"35":{}},"component":{},"keyword":{}}],["difficult",{"_index":3850,"title":{},"name":{},"text":{"35":{},"46":{},"52":{},"58":{},"71":{}},"component":{},"keyword":{}}],["digest",{"_index":4668,"title":{},"name":{},"text":{"42":{},"51":{},"63":{}},"component":{},"keyword":{}}],["digestauthent",{"_index":6874,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["digestauthentication(serveruri",{"_index":5808,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["digit",{"_index":4212,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["digit].[digit].[digit].[digit",{"_index":4213,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["diminish",{"_index":5940,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["dir",{"_index":2409,"title":{},"name":{},"text":{"30":{},"41":{},"60":{},"62":{}},"component":{},"keyword":{}}],["dir=<path",{"_index":4647,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["direct",{"_index":370,"title":{"30-4":{}},"name":{},"text":{"3":{},"8":{},"20":{},"22":{},"30":{},"31":{},"35":{},"39":{},"41":{},"43":{},"45":{},"47":{},"58":{},"62":{},"71":{},"79":{},"81":{}},"component":{},"keyword":{}}],["directli",{"_index":367,"title":{},"name":{},"text":{"3":{},"4":{},"8":{},"11":{},"31":{},"34":{},"35":{},"38":{},"41":{},"43":{},"50":{},"51":{},"52":{},"58":{},"62":{},"65":{},"71":{},"73":{},"74":{},"77":{},"79":{}},"component":{},"keyword":{}}],["directori",{"_index":988,"title":{"22-1":{},"62-25":{}},"name":{},"text":{"8":{},"15":{},"18":{},"19":{},"20":{},"22":{},"23":{},"26":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"39":{},"41":{},"45":{},"59":{},"60":{},"62":{},"66":{},"67":{},"69":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["directory>src/oth",{"_index":6699,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["dirti",{"_index":4203,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["disabl",{"_index":884,"title":{"35-10":{},"41-3":{}},"name":{},"text":{"7":{},"22":{},"28":{},"31":{},"34":{},"35":{},"41":{},"42":{},"45":{},"51":{},"52":{},"53":{},"58":{},"62":{},"73":{},"77":{}},"component":{},"keyword":{}}],["disallow",{"_index":7887,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["disappear",{"_index":5985,"title":{},"name":{},"text":{"53":{},"55":{},"73":{},"74":{}},"component":{},"keyword":{}}],["disassoci",{"_index":4891,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["discard",{"_index":3488,"title":{},"name":{},"text":{"34":{},"51":{},"58":{},"70":{},"71":{}},"component":{},"keyword":{}}],["discov",{"_index":1564,"title":{},"name":{},"text":{"19":{},"31":{},"51":{},"62":{},"71":{},"79":{}},"component":{},"keyword":{}}],["discover",{"_index":6730,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["discoveri",{"_index":3360,"title":{},"name":{},"text":{"32":{},"40":{},"65":{},"79":{}},"component":{},"keyword":{}}],["discuss",{"_index":782,"title":{},"name":{},"text":{"6":{},"10":{},"20":{},"22":{},"24":{},"40":{},"49":{},"52":{},"53":{},"55":{},"66":{},"71":{},"73":{},"79":{}},"component":{},"keyword":{}}],["disk",{"_index":3482,"title":{},"name":{},"text":{"34":{},"62":{}},"component":{},"keyword":{}}],["dispatch",{"_index":2884,"title":{},"name":{},"text":{"31":{},"39":{},"64":{},"71":{},"77":{}},"component":{},"keyword":{}}],["dispens",{"_index":8400,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["display",{"_index":1473,"title":{"41-9":{},"41-10":{}},"name":{},"text":{"18":{},"41":{},"48":{},"79":{}},"component":{},"keyword":{}}],["displaysourcefrag",{"_index":2285,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["dispos",{"_index":4176,"title":{},"name":{},"text":{"39":{},"58":{},"71":{}},"component":{},"keyword":{}}],["disposed/recycl",{"_index":5584,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["disposeresourc",{"_index":6351,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["disposing/recycl",{"_index":5587,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["distinct",{"_index":6647,"title":{},"name":{},"text":{"62":{},"77":{}},"component":{},"keyword":{}}],["distinguish",{"_index":3401,"title":{},"name":{},"text":{"33":{},"35":{},"36":{},"71":{},"75":{}},"component":{},"keyword":{}}],["distribut",{"_index":200,"title":{"62-6":{}},"name":{},"text":{"2":{},"7":{},"14":{},"15":{},"18":{},"20":{},"23":{},"27":{},"31":{},"33":{},"39":{},"62":{},"71":{},"77":{}},"component":{},"keyword":{}}],["distributing/persist",{"_index":4118,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["distro",{"_index":6631,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["dive",{"_index":4121,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["djava.io.tmpdir='/path/to/jetty.hom",{"_index":4505,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["djava.rmi.server.hostname=localhost",{"_index":2180,"title":{},"name":{},"text":{"24":{},"31":{},"48":{}},"component":{},"keyword":{}}],["djavax.net.ssl.truststore=/path/to/truststor",{"_index":5207,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["djavax.net.ssl.truststore=/path/to/truststore.p12",{"_index":2224,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["djavax.net.ssl.truststorepassword=password",{"_index":2225,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["djavax.net.ssl.truststorepassword=secret",{"_index":5208,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["djdk.virtualthreadscheduler.parallelism=2",{"_index":5974,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["djdk.virtualthreadscheduler.parallelism=n",{"_index":5972,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["djetty.base='/path/to/jetty.hom",{"_index":4507,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["djetty.home='/path/to/jetty.hom",{"_index":4506,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["djetty.http.port=9999",{"_index":6623,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["djetty.skip",{"_index":6641,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["djunit.jupiter.execution.parallel.config.fixed.parallelism=[numb",{"_index":893,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["djunit.jupiter.execution.parallel.enabled=[boolean",{"_index":892,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["djunit.jupiter.execution.parallel.enabled=fals",{"_index":891,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["dmaven.build.cache.enabled=fals",{"_index":886,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["dn",{"_index":1911,"title":{"56-1":{}},"name":{},"text":{"22":{},"56":{},"57":{}},"component":{},"keyword":{}}],["dname",{"_index":3390,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["do",{"_index":1096,"title":{"31-15":{}},"name":{},"text":{"8":{},"19":{},"31":{},"39":{},"71":{}},"component":{},"keyword":{}}],["doc",{"_index":191,"title":{"8-5":{}},"name":{},"text":{"2":{},"8":{}},"component":{"5":{}},"keyword":{}}],["docheckexpired(set<str",{"_index":8442,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["docker",{"_index":910,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["docleanorphans(long",{"_index":8444,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["docs.project.org",{"_index":1809,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["docs.project.org.xml",{"_index":1799,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["docs/#_proj",{"_index":1811,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["doctyp",{"_index":1510,"title":{},"name":{},"text":{"19":{},"22":{},"26":{},"29":{},"30":{},"31":{},"35":{},"36":{},"38":{},"44":{},"59":{},"69":{},"71":{}},"component":{},"keyword":{}}
1],["document",{"_index":26,"title":{"5":{},"8":{},"8-1":{},"8-2":{},"8-6":{},"8-9":{},"8-10":{}},"name":{},"text":{"1":{},"5":{},"6":{},"7":{},"8":{},"10":{},"13":{},"14":{},"15":{},"20":{},"22":{},"24":{},"34":{},"36":{},"39":{},"44":{},"45":{},"48":{},"50":{},"59":{},"62":{},"71":{},"77":{}},"component":{},"keyword":{}}],["document.getelementbyid('loginform').submit",{"_index":6986,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["document.getelementbyid('messagefield').valu",{"_index":6985,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["document.getelementbyid('signaturefield').valu",{"_index":6983,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["document.getelementbyid('siwe').addeventlistener('click",{"_index":6964,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["document.getelementbyid('siweresult').innertext",{"_index":6963,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["document.getelementbyid('siweresult').parentelement.style.display",{"_index":6989,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["document.txt",{"_index":7734,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["document.txt.gz",{"_index":7733,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["documentation/jetti",{"_index":960,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["doe",{"_index":5288,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["doesnât",{"_index":1138,"title":{},"name":{},"text":{"8":{},"28":{},"39":{}},"component":{},"keyword":{}}],["doexists(str",{"_index":8438,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["doget",{"_index":8711,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["doget(httpservletrequest",{"_index":6502,"title":{},"name":{},"text":{"59":{},"79":{}},"component":{},"keyword":{}}],["dogetexpired(long",{"_index":8443,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["doload(str",{"_index":8441,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["domain",{"_index":1909,"title":{"57-2":{}},"name":{},"text":{"22":{},"31":{},"33":{},"35":{},"46":{},"51":{},"57":{},"64":{},"71":{},"75":{},"77":{}},"component":{},"keyword":{}}],["domain(\"domain.com",{"_index":5709,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["domain(\"example.org",{"_index":7281,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["domain.com",{"_index":3405,"title":{},"name":{},"text":{"33":{},"35":{},"48":{},"51":{},"71":{}},"component":{},"keyword":{}}],["domain.com.csr",{"_index":3415,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["domain.com\\r\\n",{"_index":5821,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["domain.contains(\".bad.com",{"_index":7968,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["domain.org",{"_index":3406,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["domain.war",{"_index":1958,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["domain.xml",{"_index":1960,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["don't",{"_index":2788,"title":{},"name":{},"text":{"31":{},"46":{},"75":{},"77":{}},"component":{},"keyword":{}}],["done",{"_index":1439,"title":{},"name":{},"text":{"18":{},"20":{},"24":{},"31":{},"37":{},"38":{},"46":{},"48":{},"51":{},"53":{},"55":{},"60":{},"62":{},"64":{},"71":{},"77":{},"79":{},"80":{}},"component":{},"keyword":{}}],["donât",{"_index":802,"title":{},"name":{},"text":{"6":{},"8":{},"13":{},"18":{},"19":{},"23":{},"31":{},"34":{},"35":{},"36":{},"39":{},"41":{},"46":{},"57":{},"58":{},"62":{},"77":{}},"component":{},"keyword":{}}],["dopost",{"_index":8712,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["dorg.eclipse.jetty.http2.level=debug",{"_index":8958,"title":{},"name":{},"text":{"84":{}},"component":{},"keyword":{}}],["dorg.eclipse.jetty.level=debug",{"_index":8957,"title":{},"name":{}
1,"text":{"84":{}},"component":{},"keyword":{}}],["doshandl",{"_index":2683,"title":{"71-46":{}},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["doshandler.delayedrejecthandler(10000",{"_index":7919,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["doshandler.id_from_remote_address",{"_index":7917,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["doshandler.leakingbuckettrackerfactory(50",{"_index":7918,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["doshandler.sethandler(new",{"_index":7922,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["doshandler.statusrejecthandl",{"_index":7920,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["dosometh",{"_index":1277,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["dostart",{"_index":5113,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["dostop",{"_index":5118,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["dostore(str",{"_index":8439,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["dot",{"_index":4628,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["doubl",{"_index":1302,"title":{},"name":{},"text":{"13":{},"50":{},"51":{},"71":{},"77":{}},"component":{},"keyword":{}}],["down",{"_index":1322,"title":{},"name":{},"text":{"13":{},"31":{},"41":{},"45":{},"51":{},"52":{},"71":{},"77":{},"81":{}},"component":{},"keyword":{}}],["downcast",{"_index":8015,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["download",{"_index":175,"title":{"2":{},"20-2":{}},"name":{"2":{}},"text":{"8":{},"17":{},"20":{},"24":{},"30":{},"34":{},"39":{},"41":{},"46":{},"48":{},"51":{},"58":{},"62":{},"71":{}},"component":{},"keyword":{}}],["download(content.sink",{"_index":5068,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["download=<uri>|<loc",{"_index":4634,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["downloadlength",{"_index":5073,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["doxyz",{"_index":8713,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["dprod",{"_index":6559,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["dri",{"_index":4501,"title":{},"name":{},"text":{"41":{},"45":{}},"component":{},"keyword":{}}],["drive",{"_index":7645,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["driver",{"_index":2003,"title":{},"name":{},"text":{"23":{},"31":{},"34":{},"36":{},"39":{},"41":{},"42":{},"77":{}},"component":{},"keyword":{}}],["driveradaptor",{"_index":8483,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["driveradaptor.setdriverinfo(\"com.mysql.jdbc.driv",{"_index":8484,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["driverinfo",{"_index":8478,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["driverâ",{"_index":4707,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["drop",{"_index":1454,"title":{},"name":{},"text":{"18":{},"32":{},"36":{}},"component":{},"keyword":{}}],["drupal",{"_index":3747,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["ds",{"_index":4001,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["dsa",{"_index":3398,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["dt_socket",{"_index":4840,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["due",{"_index":346,"title":{},"name":{},"text":{"2":{},"7":{},"31":{},"39":{},"41":{},"45":{},"46":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"62":{},"66":{},"67":{},"71":{},"73":{},"77":{},"83":{}},"component":{},"keyword":{}}],["dummi",{"_index":5407,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["dump",{"_index":2287,"title":{"81":{},"85":{},"45-1":{},"45-2":{},"81-1":{},"81-2":{},"81-4":{}},"name":{"81":{},"85":{}},"text":{"28":{},"31":{},"45":{},"47":{},"52":{},"81":{},"83":{}},"component":{},"keyword":{}}],["dumpsmap",{"_index":2286,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["dumpstr",{"_index":8760,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["duplex",{"_index":2828,"title":{},"name":{},"text":{"31":{},"35":{}},"component":{},"keyword":{}}],["duplexconnectionpool",{"_index":5386,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["duplic",{"_index":4701,"title":{},"name":{},"text":{"43":{},"62":{},"77":{}},"component":{},"keyword":{}}],["durat",{"_index":3052,"title":{},"name":{},"text":{"31":{},"46":{},"53":{},"55":{},"57":{},"58":{},"73":{},"74":{}},"component":{},"keyword":{}}],["dure",{"_index":973,"title":{},"name":{},"text":{"8":{},"24":{},"28":{},"31":{},"32":{},"34":{},"35":{},"39":{},"46":{},"47":{},"50":{},"51":{},"52":{},"60":{},"62":{},"64":{},"68":{},"71":{},"77":{}},"component":{},"keyword":{}}],["dverbos",{"_index":4321,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["dverbose=true|fals",{"_index":4319,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["dwebapps.dir=/opt/myapp",{"_index":1883,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["dynam",{"_index":2,"title":{"1-2":{},"51-36":{}},"name":{},"text":{"20":{},"22":{},"28":{},"34":{},"35":{},"41":{},"51":{},"53":{},"55":{},"58":{},"59":{},"62":{},"66":{},"71":{}},"component":{},"keyword":{}}],["dynamictransport",{"_index":5632,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["d}u",{"_index":3114,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["e",{"_index":5516,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["e.g",{"_index":1034,"title":{},"name":{},"text":{"8":{},"10":{},"13":{},"31":{},"33":{},"35":{},"41":{},"46":{},"51":{},"57":{},"65":{},"71":{},"77":{}},"component":{},"keyword":{}}],["e0",{"_index":3691,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["e4",{"_index":3679,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["e99386749a0a4888cd9b555ffc96a476fd48d94",{"_index":1647,"title":{},"name":{},"text":{"20":{},"35":{},"41":{},"45":{}},"component":{},"keyword":{}}],["each",{"_index":829,"title":{},"name":{},"text":{"7":{},"8":{},"9":{},"15":{},"18":{},"20":{},"22":{},"23":{},"24":{},"30":{},"31":{},"32":{},"33":{},"35":{},"39":{},"41":{},"43":{},"44":{},"46":{},"47":{},"48":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"60":{},"62":{},"66":{},"69":{},"71":{},"73":{},"74":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["eager",{"_index":59,"title":{"31-16":{}},"name":{},"text":{"1":{},"31":{}},"component":{},"keyword":{}}],["eagercontenthandl",{"_index":2715,"title":{"71-44":{}},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["eagerli",{"_index":2716,"title":{},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["earli",{"_index":4700,"title":{},"name":{},"text":{"43":{},"51":{},"71":{}},"component":{},"keyword":{}}],["earlier",{"_index":179,"title":{},"name":{},"text":{"2":{},"5":{},"17":{},"30":{},"70":{}},"component":{},"keyword":{}}],["earliest",{"_index":7811,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["earlyhints103handl",{"_index":8129,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["earlyhints103handler(handl",{"_index":8130,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["easi",{"_index":1041,"title":{},"name":{},"text":{"8":{},"30":{},"48":{},"51":{},"71":{},"75":{},"84":{}},"component":{},"keyword":{}}],["easier",{"_index":1051,"title":{},"name":{},"text":{"8":{},"79":{}},"component":{},"keyword":{}}],["easiest",{"_index":780,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["easili",{"_index":801,"title":{},"name":{},"text":{"6":{},"29":{},"30":{},"41":{},"43":{},"45":{},"46":{},"59":{},"70":{},"71":{},"80":{}},"component":{},"keyword":{}}],["eat",{"_index":5921,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["eatwhatyoukil",{"_index":5917,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["eca",{"_index":1162,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["ecaâ",{"_index":1165,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["echo",{"_index":4554,"title":{"46-6":{}},"name":{},"text":{"41":{},"46":{},"51":{},"58":{},"62":{},"67":{},"75":{}},"component":{},"keyword":{}}],["echoconnect",{"_index":4950,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["echoconnection(endpoint",{"_index":4953,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["echoendpoint",{"_index":8723,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["echoiteratingcallback",{"_index":4952,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["eclips",{"_index":6,"title":{"9":{},"14":{},"21":{},"25":{}},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"16":{},"17":{},"20":{},"21":{},"28":{},"39":{},"41":{},"54":{},"76":{},"81":{}},"component":{},"keyword":{}}],["eclipse.org",{"_index":1168,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["ecosystem",{"_index":107,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["edg",{"_index":95,"title":{},"name":{},"text":{"1":{},"41":{}},"component":{},"keyword":{}}],["edit",{"_index":1830,"title":{"41-4":{}},"name":{},"text":{"22":{},"23":{},"24":{},"27":{},"28":{},"29":{},"31":{},"35":{},"36":{},"38":{},"41":{},"84":{}},"component":{},"keyword":{}}],["editor",{"_index":14,"title":{},"name":{},"text":{"1":{},"59":{},"81":{}},"component":{},"keyword":{}}],["ee",{"_index":355,"title":{"32":{},"19-3":{},"22-4":{},"22-18":{},"36-3":{},"40-2":{},"41-13":{},"59-5":{},"63-2":{}},"name":{},"text":{"2":{},"8":{},"14":{},"15":{},"17":{},"19":{},"20":{},"21":{},"22":{},"23":{},"26":{},"31":{},"32":{},"35":{},"37":{},"38":{},"40":{},"41":{},"43":{},"59":{},"60":{},"62":{},"63":{},"66":{},"69":{},"71":{},"79":{}},"component":{},"keyword":{}}
1],["ee10",{"_index":269,"title":{},"name":{},"text":{"2":{},"7":{},"8":{},"14":{},"66":{}},"component":{},"keyword":{}}],["ee10/jetti",{"_index":920,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["ee10/servlet",{"_index":924,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["ee11",{"_index":262,"title":{},"name":{},"text":{"2":{},"8":{},"14":{},"20":{},"22":{},"27":{},"28":{},"31":{},"32":{},"35":{},"38":{},"41":{},"43":{},"59":{},"60":{},"62":{},"64":{},"66":{},"69":{},"71":{},"79":{}},"component":{},"keyword":{}}],["ee11.war",{"_index":1735,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["ee11.xml",{"_index":1887,"title":{},"name":{},"text":{"22":{},"31":{}},"component":{},"keyword":{}}],["ee12",{"_index":1080,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["ee7",{"_index":1341,"title":{},"name":{},"text":{"14":{}},"component":{},"keyword":{}}],["ee8",{"_index":260,"title":{},"name":{},"text":{"2":{},"7":{},"8":{},"14":{},"35":{}},"component":{},"keyword":{}}],["ee8.war",{"_index":1734,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["ee8/ee9/ee10/ee11",{"_index":7006,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["ee8/jetti",{"_index":929,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["ee8/servlet",{"_index":930,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["ee9",{"_index":273,"title":{},"name":{},"text":{"2":{},"7":{},"8":{},"14":{},"22":{},"38":{},"79":{}},"component":{},"keyword":{}}],["ee9/jetti",{"_index":927,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["ee9/servlet",{"_index":928,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["ee<n",{"_index":4569,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["een",{"_index":1075,"title":{},"name":{},"text":{"8":{},"31":{}},"component":{},"keyword":{}}],["eex",{"_index":6611,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["ee{8,9,10",{"_index":1074,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["ee{8,9,10,11",{"_index":1484,"title":{"31-17":{},"31-18":{},"31-19":{},"31-20":{}},"name":{},"text":{"19":{},"20":{},"22":{},"23":{},"26":{},"27":{},"28":{},"31":{},"32":{},"37":{},"62":{},"67":{},"71":{}},"component":{},"keyword":{}}],["effect",{"_index":2112,"title":{},"name":{},"text":{"23":{},"28":{},"32":{},"41":{},"46":{},"51":{},"62":{},"66":{},"71":{}},"component":{},"keyword":{}}],["effectivewebxml",{"_index":6735,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["effici",{"_index":1330,"title":{},"name":{},"text":{"14":{},"31":{},"34":{},"35":{},"46":{},"47":{},"51":{},"52":{},"58":{},"66":{},"67":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["effort",{"_index":49,"title":{},"name":{},"text":{"1":{},"18":{},"71":{}},"component":{},"keyword":{}}],["eg",{"_index":4639,"title":{},"name":{},"text":{"41":{},"62":{},"77":{}},"component":{},"keyword":{}}],["eip",{"_index":6892,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["el",{"_index":2320,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["elabor",{"_index":5085,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["elaps",{"_index":4603,"title":{},"name":{},"text":{"41":{},"71":{}},"component":{},"keyword":{}}],["element",{"_index":2265,"title":{},"name":{},"text":{"28":{},"30":{},"32":{},"37":{},"40":{},"44":{},"62":{},"77":{}},"component":{},"keyword":{}}],["elig",{"_index":4169,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["elimin",{"_index":6605,"title":{},"name":{},"text":{"62":{},"77":{}},"component":{},"keyword":{}}],["elk",{"_index":3534,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["elsewher",{"_index":2429,"title":{},"name":{},"text":{"30":{},"46":{},"58":{}},"component":{},"keyword":{}}],["email",{"_index":390,"title":{},"name":{},"text":{"3":{},"9":{},"10":{},"11":{},"23":{}},"component":{},"keyword":{}}],["emb",{"_index":6122,"title":{},"name":{},"text":{"54":{},"59":{},"62":{},"71":{},"76":{}},"component":{},"keyword":{}}],["embed",{"_index":754,"title":{"39-22":{},"39-24":{},"39-29":{},"59-1":{},"59-4":{},"62-4":{}},"name":{},"text":{"4":{},"6":{},"7":{},"39":{},"62":{},"64":{},"65":{},"71":{},"77":{},"80":{}},"component":{},"keyword":{}}],["embedded.ini",{"_index":4304,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["embeddedquerymanag",{"_index":8538,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["embeddedservletopt",{"_index":2293,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["embodi",{"_index":157,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["embrac",{"_index":100,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["emit",{"_index":4846,"title":{},"name":{},"text":{"45":{},"47":{},"48":{},"51":{},"55":{},"56":{},"58":{},"71":{},"74":{}},"component":{},"keyword":{}}],["employ",{"_index":4255,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["empti",{"_index":1618,"title":{},"name":{},"text":{"20":{},"22":{},"23":{},"31":{},"34":{},"41":{},"42":{},"44":{},"46":{},"51":{},"62":{},"67":{},"70":{},"71":{}},"component":{},"keyword":{}}],["emul",{"_index":4111,"title":{"39-37":{}},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["en",{"_index":4467,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["enabl",{"_index":903,"title":{"24-1":{},"24-2":{},"32-1":{},"39-38":{},"41-2":{},"41-5":{},"45-3":{},"45-5":{},"45-6":{},"48-1":{},"48-2":{},"64-4":{}},"name":{},"text":{"7":{},"15":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"41":{},"43":{},"45":{},"48":{},"51":{},"52":{},"55":{},"62":{},"64":{},"65":{},"67":{},"71":{},"73":{},"74":{},"77":{},"80":{},"84":{}},"component":{},"keyword":{}}],["enable/dis",{"_index":2598,"title":{},"name":{},"text":{"31":{},"51":{}},"component":{},"keyword":{}}],["enable_push",{"_index":8206,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["enabled|copy.\\.properti",{"_index":3459,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["enablepool",{"_index":2290,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["enablepush",{"_index":8208,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["encapsul",{"_index":4703,"title":{},"name":{},"text":{"43":{},"53":{},"55":{},"73":{},"74":{},"77":{}},"component":{},"keyword":{}}],["enclos",{"_index":5731,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["encod",{"_index":2307,"title":{},"name":{},"text":{"28":{},"31":{},"32":{},"33":{},"35":{},"36":{},"51":{},"67":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["encoding=\"utf",{"_index":1779,"title":{},"name":{},"text":{"22":{},"29":{},"35":{},"40":{},"44":{},"59":{},"79":{}},"component":{},"keyword":{}}],["encount",{"_index":6299,"title":{},"name":{},"text":{"58":{},"68":{}},"component":{},"keyword":{}}],["encourag",{"_index":66,"title":{},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"8":{},"11":{},"35":{},"59":{},"77":{}},"component":{},"keyword":{}}],["encrypt",{"_index":3356,"title":{"71-18":{},"71-20":{}},"name":{},"text":{"31":{},"35":{},"46":{},"48":{},"51":{},"53":{},"57":{},"71":{},"75":{},"76":{}},"component":{},"keyword":{}}],["end",{"_index":221,"title":{"4-2":{}},"name":{},"text":{"2":{},"8":{},"12":{},"30":{},"31":{},"34":{},"35":{},"46":{},"47":{},"51":{},"60":{},"62":{},"71":{},"81":{}},"component":{},"keyword":{}}],["end_session_endpoint",{"_index":7004,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["endp",{"_index":4954,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}
1],["endpoint",{"_index":2613,"title":{"46-2":{},"46-3":{},"58-9":{},"58-11":{},"58-13":{},"79-4":{},"79-9":{},"79-16":{}},"name":{},"text":{"31":{},"35":{},"40":{},"46":{},"57":{},"58":{},"64":{},"66":{},"71":{},"75":{},"76":{},"78":{},"79":{}},"component":{},"keyword":{}}],["endpoint(",{"_index":8694,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["endpoint,socketchannelendpoint",{"_index":4873,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["endpoint.fill(bytebuff",{"_index":4970,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["endpoint.fillinterested(callback",{"_index":4882,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["endpoint.sslsessiondata",{"_index":5664,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["endpoint.upgrade(connect",{"_index":4875,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["endpoint.writ",{"_index":4940,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["endpoint.write(callback",{"_index":4887,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["endpointclosed(endpoint",{"_index":6214,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["endpointopened(endpoint",{"_index":6212,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["endstream=fals",{"_index":6029,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["endstream=tru",{"_index":6020,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["enforc",{"_index":2696,"title":{},"name":{},"text":{"31":{},"43":{},"52":{},"70":{},"71":{}},"component":{},"keyword":{}}],["engag",{"_index":5,"title":{"1-4":{}},"name":{},"text":{"6":{},"10":{}},"component":{},"keyword":{}}],["engineoptionsclass",{"_index":2292,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["enhanc",{"_index":82,"title":{},"name":{},"text":{"1":{},"29":{},"30":{}},"component":{},"keyword":{}}],["enhance_your_calm",{"_index":2843,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["enjoy",{"_index":3796,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["enlarg",{"_index":5986,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["enough",{"_index":3544,"title":{},"name":{},"text":{"34":{},"39":{},"43":{},"45":{},"48":{},"51":{},"52":{},"58":{},"71":{},"75":{},"80":{}},"component":{},"keyword":{}}],["enrich",{"_index":5775,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["ensur",{"_index":692,"title":{},"name":{},"text":{"4":{},"10":{},"19":{},"23":{},"32":{},"34":{},"35":{},"36":{},"39":{},"41":{},"52":{},"53":{},"55":{},"62":{},"65":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["enter",{"_index":4675,"title":{},"name":{},"text":{"42":{},"58":{},"62":{}},"component":{},"keyword":{}}],["entir",{"_index":1319,"title":{},"name":{},"text":{"13":{},"28":{},"31":{},"34":{},"35":{},"40":{},"45":{},"51":{},"61":{},"70":{}},"component":{},"keyword":{}}],["entiti",{"_index":384,"title":{},"name":{},"text":{"3":{},"11":{},"58":{}},"component":{},"keyword":{}}],["entitydatamodel",{"_index":8587,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["entri",{"_index":1724,"title":{"22-19":{},"33-2":{},"44-8":{}},"name":{},"text":{"20":{},"22":{},"23":{},"31":{},"36":{},"38":{},"39":{},"41":{},"44":{},"51":{},"62":{},"77":{},"81":{}},"component":{},"keyword":{}}],["enum",{"_index":5337,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["enumer",{"_index":7467,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["env",{"_index":2007,"title":{"44-14":{}},"name":{},"text":{"23":{},"31":{},"41":{},"44":{},"48":{},"62":{},"77":{}},"component":{},"keyword":{}}],["env.put(\"com.sun.management.jmxremote.access.fil",{"_index":5182,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["env.put(\"com.sun.management.jmxremote.password.fil",{"_index":5184,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["env.xml",{"_index":2010,"title":{},"name":{},"text":{"23":{},"62":{}},"component":{},"keyword":{}}],["env.xml</jettyenvxml",{"_index":6695,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["env=<environmentnam",{"_index":4631,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["envbuild",{"_index":7406,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["envbuilder.addclasspath(\"/path/to/jakarta.servlet",{"_index":7428,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["envbuilder.addclasspath(\"/path/to/jetti",{"_index":7414,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["envbuilder.build",{"_index":7408,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["envconfig",{"_index":7417,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["envconfig.setdefaultcontexthandlerclassname(\"org.eclipse.jetty.coreapp.coreappcontext",{"_index":7423,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["envconfig.setdefaultcontexthandlerclassname(\"org.eclipse.jetty.ee11.webapp.webappcontext",{"_index":7430,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["envconfig.setdefaultcontexthandlerclassname(\"org.eclipse.jetty.staticapp.staticappcontext",{"_index":7418,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["envconfig.setdefaultsdescriptor(\"/path/to/ee11",{"_index":7431,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["enventri",{"_index":2026,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["environ",{"_index":1019,"title":{"22-11":{},"22-12":{},"22-13":{},"22-15":{},"41-13":{},"69-5":{}},"name":{},"text":{"8":{},"9":{},"20":{},"22":{},"23":{},"27":{},"28":{},"31":{},"36":{},"38":{},"39":{},"41":{},"44":{},"45":{},"51":{},"52":{},"59":{},"60":{},"62":{},"64":{},"65":{},"66":{},"69":{},"77":{},"81":{}},"component":{},"keyword":{}}],["environment",{"_index":7397,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["environment(",{"_index":1452,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["environment=<environ",{"_index":1757,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["environment=ee11",{"_index":1871,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["environment=ee9",{"_index":1863,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["environment=stat",{"_index":1818,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["environmentbuild",{"_index":7405,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["environmentbuilder(\"cor",{"_index":7421,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["environmentbuilder(\"ee11",{"_index":7427,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["environmentbuilder(\"simpl",{"_index":7407,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["environmentbuilder(\"stat",{"_index":7413,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}
1],["environmentsdir",{"_index":2675,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["envs=$(java",{"_index":4553,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["eoc",{"_index":222,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["eof",{"_index":5011,"title":{},"name":{},"text":{"46":{},"67":{}},"component":{},"keyword":{}}],["eol",{"_index":194,"title":{},"name":{},"text":{"2":{},"4":{},"14":{}},"component":{},"keyword":{}}],["epl",{"_index":1120,"title":{},"name":{},"text":{"8":{},"41":{}},"component":{},"keyword":{}}],["epoch",{"_index":4208,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["epub",{"_index":1036,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["equival",{"_index":1502,"title":{},"name":{},"text":{"19":{},"22":{},"23":{},"30":{},"31":{},"32":{},"43":{},"44":{},"51":{},"52":{},"62":{},"71":{},"75":{},"77":{}},"component":{},"keyword":{}}],["erc",{"_index":6935,"title":{},"name":{},"text":{"64":{},"66":{}},"component":{},"keyword":{}}],["error",{"_index":1624,"title":{},"name":{},"text":{"20":{},"22":{},"28":{},"31":{},"32":{},"34":{},"36":{},"39":{},"40":{},"41":{},"43":{},"46":{},"50":{},"51":{},"52":{},"53":{},"55":{},"58":{},"62":{},"64":{},"65":{},"66":{},"67":{},"71":{},"74":{},"77":{},"81":{}},"component":{},"keyword":{}}],["error.messag",{"_index":6988,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["error_description_jetti",{"_index":6911,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["errorcode.cancel_stream_error.cod",{"_index":6079,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["errorcode.refused_stream_error.cod",{"_index":8198,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["erroronusebeaninvalidclassattribut",{"_index":2294,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["escap",{"_index":2333,"title":{},"name":{},"text":{"28":{},"34":{},"41":{}},"component":{},"keyword":{}}],["esoter",{"_index":5618,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["especi",{"_index":2216,"title":{},"name":{},"text":{"24":{},"42":{},"43":{},"45":{},"48":{},"52":{},"56":{},"58":{},"71":{}},"component":{},"keyword":{}}],["essenc",{"_index":7538,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["essenti",{"_index":6785,"title":{},"name":{},"text":{"62":{},"77":{}},"component":{},"keyword":{}}],["establish",{"_index":1536,"title":{},"name":{},"text":{"19":{},"24":{},"30":{},"31":{},"33":{},"35":{},"45":{},"48":{},"51":{},"53":{},"55":{},"56":{},"57":{},"58":{},"71":{},"74":{},"75":{}},"component":{},"keyword":{}}],["etc",{"_index":1335,"title":{},"name":{},"text":{"14":{},"20":{},"24":{},"29":{},"30":{},"31":{},"34":{},"35":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"51":{},"57":{},"58":{},"60":{},"62":{},"63":{},"66":{},"67":{},"69":{},"71":{},"73":{},"74":{},"77":{},"81":{},"83":{}},"component":{},"keyword":{}}],["etc/acm",{"_index":2401,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["etc/custom",{"_index":2370,"title":{},"name":{},"text":{"29":{},"30":{}},"component":{},"keyword":{}}],["etc/custom/components.xml",{"_index":2473,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["etc/haproxy/haproxy.cfg",{"_index":3902,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["etc/host",{"_index":2156,"title":{},"name":{},"text":{"24":{},"31":{},"56":{}},"component":{},"keyword":{}}],["etc/jaspi/jetti",{"_index":4060,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["etc/jetti",{"_index":2542,"title":{},"name":{},"text":{"31":{},"36":{}},"component":{},"keyword":{}}],["etc/login.conf",{"_index":3950,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["etc/realm.properti",{"_index":3008,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["etc/tl",{"_index":3810,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["etc/utc",{"_index":8951,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["eth_requestaccount",{"_index":6966,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["etheremauthent",{"_index":6897,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["ethereum",{"_index":6880,"title":{},"name":{},"text":{"63":{},"64":{},"66":{}},"component":{},"keyword":{}}],["ethereum</button",{"_index":6947,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["ethereumauthent",{"_index":6879,"title":{},"name":{},"text":{"63":{},"64":{},"66":{}},"component":{},"keyword":{}}],["evalu",{"_index":3152,"title":{},"name":{},"text":{"31":{},"39":{},"46":{}},"component":{},"keyword":{}}],["even",{"_index":901,"title":{},"name":{},"text":{"7":{},"17":{},"18":{},"20":{},"22":{},"23":{},"24":{},"30":{},"31":{},"39":{},"46":{},"47":{},"51":{},"52":{},"53":{},"58":{},"63":{},"70":{},"71":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["event",{"_index":1294,"title":{"51-16":{},"53-10":{},"58-10":{},"71-2":{}},"name":{},"text":{"13":{},"29":{},"31":{},"45":{},"46":{},"47":{},"48":{},"49":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"69":{},"71":{},"73":{},"74":{},"75":{},"77":{},"79":{},"80":{}},"component":{},"keyword":{}}],["event.getsslengin",{"_index":5696,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["eventshandl",{"_index":2381,"title":{"71-38":{}},"name":{},"text":{"29":{},"71":{}},"component":{},"keyword":{}}],["eventshandler.sethandler(apphandl",{"_index":7834,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["eventu",{"_index":2537,"title":{},"name":{},"text":{"31":{},"33":{},"35":{},"41":{},"46":{},"51":{},"52":{},"53":{},"58":{},"70":{},"71":{},"73":{},"79":{}},"component":{},"keyword":{}}],["everyth",{"_index":31,"title":{},"name":{},"text":{"1":{},"24":{},"29":{},"60":{}},"component":{},"keyword":{}}],["evict",{"_index":3324,"title":{},"name":{},"text":{"31":{},"39":{},"51":{},"52":{},"71":{},"77":{}},"component":{},"keyword":{}}],["evict_on_inact",{"_index":4391,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["evict_on_inactivity_polici",{"_index":4392,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["evict_on_session_exit",{"_index":4390,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["evid",{"_index":2476,"title":{},"name":{},"text":{"30":{},"71":{}},"component":{},"keyword":{}}],["evolv",{"_index":1403,"title":{},"name":{},"text":{"17":{},"70":{}},"component":{},"keyword":{}}],["exact",{"_index":4252,"title":{},"name":{},"text":{"39":{},"40":{},"41":{},"70":{},"77":{}},"component":{},"keyword":{}}],["exactli",{"_index":1981,"title":{},"name":{},"text":{"22":{},"24":{},"36":{},"44":{},"48":{},"51":{},"57":{},"62":{},"66":{},"71":{},"75":{}},"component":{},"keyword":{}}],["examin",{"_index":8258,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["exampl",{"_index":941,"title":{"8-11":{},"64-9":{},"65-3":{},"68-5":{},"81-4":{}},"name":{},"text":{"8":{},"15":{},"17":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"26":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"69":{},"70":{},"71":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"84":{}},"component":{},"keyword":{}}],["example.com",{"_index":3153,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["example.mod",{"_index":2440,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["example.org",{"_index":6259,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["exampleendpoint",{"_index":7388,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["examplewebsocketservlet",{"_index":7380,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["exce",{"_index":2316,"title":{},"name":{},"text":{"28":{},"31":{},"39":{},"71":{},"77":{}},"component":{},"keyword":{}}],["exceed",{"_index":4168,"title":{},"name":{},"text":{"39":{},"46":{},"51":{},"71":{}},"component":{},"keyword":{}}],["excel",{"_index":720,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["except",{"_index":1068,"title":{},"name":{},"text":{"8":{},"13":{},"28":{},"34":{},"44":{},"46":{},"47":{},"51":{},"57":{},"58":{},"65":{},"67":{},"71":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["exceptionally(funct",{"_index":8084,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["excess",{"_index":2328,"title":{},"name":{},"text":{"28":{},"31":{},"51":{},"58":{},"70":{},"71":{}},"component":{},"keyword":{}}],["exchang",{"_index":2829,"title":{},"name":{},"text":{"31":{},"50":{},"53":{},"55":{},"58":{},"73":{},"74":{},"80":{}},"component":{},"keyword":{}}],["exclud",{"_index":1542,"title":{},"name":{},"text":{"19":{},"31":{},"35":{},"41":{},"60":{},"62":{},"71":{}},"component":{},"keyword":{}}],["exclude>**/foo.class</exclud",{"_index":6698,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["exclude>**/myspecial.properties</exclud",{"_index":6704,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["exclude>**/myspecial.xml</exclud",{"_index":6703,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["exclude>bar.jsp</exclud",{"_index":6762,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["exclude>baz.jsp</exclud",{"_index":6763,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["excludedgo",{"_index":6642,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["excludes>**/*.fff</exclud",{"_index":6585,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["exclus",{"_index":1483,"title":{"19-6":{}},"name":{},"text":{"19":{},"31":{},"34":{},"35":{},"62":{},"71":{}},"component":{},"keyword":{}}],["exec",{"_index":2406,"title":{"30-16":{}},"name":{},"text":{"30":{},"31":{},"34":{},"41":{},"43":{},"45":{}},"component":{},"keyword":{}}],["exec:java",{"_index":6490,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["execut",{"_index":822,"title":{"7-5":{},"52-1":{},"52-3":{},"52-4":{},"52-5":{}},"name":{},"text":{"7":{},"8":{},"18":{},"20":{},"23":{},"31":{},"32":{},"34":{},"35":{},"36":{},"39":{},"41":{},"46":{},"51":{},"52":{},"56":{},"59":{},"60":{},"62":{},"66":{},"71":{},"81":{}},"component":{},"keyword":{}}],["execution><goals><goal>java</goal></goals></execut",{"_index":6488,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["executionstrategi",{"_index":5905,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["executor",{"_index":4896,"title":{},"name":{},"text":{"46":{},"52":{},"57":{},"75":{}},"component":{},"keyword":{}}],["executors.newsinglethreadscheduledexecutor",{"_index":4758,"title":{},"name":{},"text":{"44":{},"47":{}},"component":{},"keyword":{}}],["exercis",{"_index":2355,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["exhaust",{"_index":5968,"title":{},"name":{},"text":{"52":{},"58":{}},"component":{},"keyword":{}}],["exist",{"_index":1101,"title":{"29-1":{}},"name":{},"text":{"8":{},"19":{},"22":{},"26":{},"29":{},"30":{},"31":{},"35":{},"39":{},"41":{},"44":{},"51":{},"53":{},"55":{},"58":{},"60":{},"62":{},"70":{},"71":{},"73":{},"74":{},"76":{},"77":{}},"component":{},"keyword":{}}],["exit",{"_index":3180,"title":{},"name":{},"text":{"31":{},"39":{},"41":{},"46":{},"51":{},"58":{},"62":{},"77":{}},"component":{},"keyword":{}}],["expand",{"_index":1584,"title":{},"name":{},"text":{"20":{},"30":{},"62":{}},"component":{},"keyword":{}}],["expans",{"_index":2456,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["expect",{"_index":2059,"title":{},"name":{},"text":{"23":{},"31":{},"41":{},"45":{},"52":{},"62":{},"71":{}},"component":{},"keyword":{}}],["expects100",{"_index":8157,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["expens",{"_index":2326,"title":{},"name":{},"text":{"28":{},"45":{},"81":{}},"component":{},"keyword":{}}],["experienc",{"_index":70,"title":{},"name":{},"text":{"1":{},"39":{}},"component":{},"keyword":{}}],["experiment",{"_index":3709,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["expert",{"_index":793,"title":{},"name":{},"text":{"6":{},"8":{}},"component":{},"keyword":{}}],["expertis",{"_index":768,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["expir",{"_index":3041,"title":{},"name":{},"text":{"31":{},"33":{},"36":{},"39":{},"51":{},"57":{},"77":{}},"component":{},"keyword":{}}],["expiri",{"_index":4167,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["expiry]_[contextpath]_[virtualhost]_[id",{"_index":4207,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["expirytim",{"_index":4268,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["explain",{"_index":2174,"title":{},"name":{},"text":{"24":{},"30":{},"31":{},"35":{},"37":{},"41":{},"42":{},"43":{},"45":{},"46":{},"51":{},"52":{},"56":{},"67":{},"69":{},"71":{},"75":{},"78":{},"79":{},"81":{}},"component":{},"keyword":{}}],["explicit",{"_index":3011,"title":{"79-15":{}},"name":{},"text":{"31":{},"43":{},"44":{},"46":{},"51":{},"52":{},"61":{},"67":{},"77":{}},"component":{},"keyword":{}}],["explicitdemandlistenerendpoint",{"_index":6326,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["explicitli",{"_index":902,"title":{},"name":{},"text":{"7":{},"19":{},"20":{},"22":{},"23":{},"30":{},"31":{},"34":{},"35":{},"39":{},"41":{},"43":{},"44":{},"47":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"66":{},"67":{},"71":{},"73":{},"74":{},"76":{},"77":{},"79":{}},"component":{},"keyword":{}}],["explod",{"_index":7398,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["explor",{"_index":1627,"title":{},"name":{},"text":{"20":{},"28":{},"33":{}},"component":{},"keyword":{}}],["export",{"_index":1586,"title":{},"name":{},"text":{"20":{},"24":{},"30":{},"31":{},"33":{},"43":{},"45":{},"47":{},"48":{},"58":{},"71":{},"81":{}},"component":{},"keyword":{}}],["exportcert",{"_index":3433,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["expos",{"_index":2138,"title":{},"name":{},"text":{"24":{},"30":{},"35":{},"45":{},"47":{},"48":{},"52":{},"57":{},"58":{},"66":{},"71":{},"76":{},"77":{}},"component":{},"keyword":{}}],["express",{"_index":1525,"title":{},"name":{},"text":{"19":{},"22":{},"28":{},"30":{},"31":{},"35":{},"56":{},"71":{},"78":{},"79":{}},"component":{},"keyword":{}}],["ext",{"_index":2004,"title":{"31-18":{},"31-21":{}},"name":{},"text":{"23":{},"26":{},"31":{},"33":{},"41":{}},"component":{},"keyword":{}}],["ext.ini",{"_index":1901,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["ext.mod",{"_index":1900,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["extend",{"_index":1899,"title":{},"name":{},"text":{"22":{},"29":{},"31":{},"34":{},"35":{},"41":{},"44":{},"46":{},"47":{},"48":{},"51":{},"57":{},"58":{},"59":{},"63":{},"65":{},"67":{},"68":{},"71":{},"75":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["extending/impl",{"_index":3729,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["extens",{"_index":108,"title":{},"name":{},"text":{"1":{},"7":{},"24":{},"31":{},"33":{},"35":{},"41":{},"48":{},"51":{},"60":{},"62":{},"64":{},"71":{}},"component":{},"keyword":{}}],["extern",{"_index":1561,"title":{"65-1":{}},"name":{},"text":{"19":{},"22":{},"23":{},"24":{},"29":{},"31":{},"35":{},"39":{},"50":{},"51":{},"58":{},"62":{},"65":{}},"component":{},"keyword":{}}],["extra",{"_index":2001,"title":{},"name":{},"text":{"23":{},"24":{},"26":{},"28":{},"31":{},"39":{},"41":{},"43":{},"62":{},"69":{},"71":{},"77":{}},"component":{},"keyword":{}}],["extra.xml",{"_index":1888,"title":{},"name":{},"text":{"22":{},"41":{}},"component":{},"keyword":{}}],["extraclasspath",{"_index":1562,"title":
1{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["extract",{"_index":1395,"title":{"22-25":{}},"name":{},"text":{"15":{},"20":{},"22":{},"31":{},"39":{},"60":{},"64":{},"77":{},"79":{}},"component":{},"keyword":{}}],["extraprop=valu",{"_index":4556,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["extrem",{"_index":1153,"title":{},"name":{},"text":{"8":{},"42":{},"46":{},"52":{},"71":{}},"component":{},"keyword":{}}],["f",{"_index":3095,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["f0",{"_index":3683,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["f2",{"_index":3690,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["face",{"_index":2230,"title":{"26":{}},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["facil",{"_index":392,"title":{},"name":{},"text":{"3":{},"75":{}},"component":{},"keyword":{}}],["fact",{"_index":3277,"title":{},"name":{},"text":{"31":{},"35":{},"43":{},"53":{},"58":{},"67":{},"71":{},"73":{}},"component":{},"keyword":{}}],["facto",{"_index":3864,"title":{},"name":{},"text":{"35":{},"70":{}},"component":{},"keyword":{}}],["factor",{"_index":2528,"title":{},"name":{},"text":{"31":{},"51":{}},"component":{},"keyword":{}}],["factori",{"_index":2060,"title":{},"name":{},"text":{"23":{},"36":{},"38":{},"57":{},"68":{},"71":{},"75":{},"77":{},"79":{}},"component":{},"keyword":{}}],["factory.addmapping(\"/ws/someuri",{"_index":8707,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["factory.setcreator(new",{"_index":7383,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["factory.setmaxtextmessagesize(1048576",{"_index":8706,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["fail",{"_index":1855,"title":{},"name":{},"text":{"22":{},"28":{},"31":{},"32":{},"35":{},"36":{},"39":{},"44":{},"46":{},"47":{},"51":{},"53":{},"55":{},"57":{},"58":{},"67":{},"71":{},"75":{},"77":{},"79":{}},"component":{},"keyword":{}}],["fail(throw",{"_index":6397,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["failed(failur",{"_index":7244,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["failed(throw",{"_index":4936,"title":{},"name":{},"text":{"46":{},"55":{},"67":{},"71":{}},"component":{},"keyword":{}}],["failed(x",{"_index":6416,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["failur",{"_index":879,"title":{},"name":{},"text":{"7":{},"31":{},"35":{},"39":{},"46":{},"47":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"66":{},"67":{},"71":{},"74":{},"75":{}},"component":{},"keyword":{}}],["failure.printstacktrac",{"_index":6265,"title":{},"name":{},"text":{"57":{},"58":{}},"component":{},"keyword":{}}],["fairli",{"_index":6768,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["fake",{"_index":3532,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["fall",{"_index":4088,"title":{},"name":{},"text":{"38":{},"62":{},"77":{}},"component":{},"keyword":{}}],["fallback",{"_index":3931,"title":{},"name":{},"text":{"35":{},"77":{}},"component":{},"keyword":{}}],["fals",{"_index":1374,"title":{},"name":{},"text":{"15":{},"19":{},"23":{},"28":{},"31":{},"34":{},"35":{},"36":{},"39":{},"41":{},"46":{},"51":{},"53":{},"55":{},"57":{},"58":{},"60":{},"62":{},"64":{},"65":{},"71":{},"73":{},"74":{},"77":{},"81":{}},"component":{},"keyword":{}}],["familiar",{"_index":1614,"title":{},"name":{},"text":{"20":{},"29":{},"34":{},"41":{},"79":{}},"component":{},"keyword":{}}],["fanci",{"_index":5646,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["fantast",{"_index":12,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["faq",{"_index":1164,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["far",{"_index":5453,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["fashion",{"_index":1199,"title":{},"name":{},"text":{"10":{},"36":{},"39":{},"52":{}},"component":{},"keyword":{}}],["fast",{"_index":818,"title":{"7-2":{}},"name":{},"text":{"52":{},"56":{}},"component":{},"keyword":{}}],["fastcgi",{"_index":258,"title":{"72":{},"35-12":{},"51-35":{}},"name":{"72":{}},"text":{"2":{},"17":{},"35":{},"51":{},"54":{},"71":{},"75":{}},"component":{},"keyword":{}}],["fastcgiproxyhandl",{"_index":3794,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["faster",{"_index":1728,"title":{"32":{}},"name":{},"text":{"21":{},"32":{},"35":{},"39":{},"58":{},"71":{}},"component":{},"keyword":{}}],["fatal",{"_index":4987,"title":{},"name":{},"text":{"46":{},"53":{},"55":{},"58":{},"71":{},"74":{}},"component":{},"keyword":{}}],["favicon",{"_index":8200,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["favicon.ico",{"_index":3172,"title":{},"name":{},"text":{"31":{},"69":{},"71":{}},"component":{},"keyword":{}}],["faviconbuff",{"_index":8201,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["faviconbuffer.slic",{"_index":8222,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["favor",{"_index":7053,"title":{},"name":{},"text":{"66":{},"67":{},"79":{}},"component":{},"keyword":{}}],["fcgi",{"_index":3753,"title":{},"name":{},"text":{"35":{},"54":{},"67":{},"76":{}},"component":{},"keyword":{}}],["fcgi.mod",{"_index":7121,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["fe_http",{"_index":3910,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["featur",{"_index":81,"title":{"21":{},"4-9":{}},"name":{},"text":{"1":{},"4":{},"6":{},"8":{},"10":{},"15":{},"18":{},"20":{},"21":{},"22":{},"24":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"39":{},"41":{},"45":{},"46":{},"47":{},"48":{},"51":{},"52":{},"53":{},"55":{},"62":{},"64":{},"65":{},"70":{},"71":{},"73":{},"74":{},"77":{},"79":{},"84":{}},"component":{},"keyword":{}}],["feb",{"_index":581,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["feedback",{"_index":102,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["fetch",{"_index":3807,"title":{},"name":{},"text":{"35":{},"64":{},"71":{}},"component":{},"keyword":{}}],["fetch('/auth/nonc",{"_index":6971,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["few",{"_index":726,"title":{},"name":{},"text":{"4":{},"13":{},"32":{},"35":{},"39":{},"41":{},"45":{},"56":{},"57":{},"62":{},"71":{},"81":{}},"component":{},"keyword":{}}],["fewer",{"_index":5898,"title":{},"name":{},"text":{"52":{},"71":{}},"component":{},"keyword":{}}],["ffm",{"_index":6128,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["field",{"_index":898,"title":{},"name":{},"text":{"7":{},"13":{},"31":{},"39":{},"41":{},"44":{},"50":{},"51":{},"61":{},"64":{},"65":{},"67":{},"71":{},"75":{},"77":{}},"component":{},"keyword":{}}],["figur",{"_index":3001,"title":{},"name":{},"text":{"31":{},"35":{},"45":{},"71":{},"75":{},"80":{}},"component":{},"keyword":{}}],["file",{"_index":198,"title":{"6-3":{},"20-6":{},"22-2":{},"22-14":{},"22-16":{},"22-17":{},"22-18":{},"22-25":{},"23-9":{},"30-11":{},"34-4":{},"39-12":{},"41-4":{},"59-9":{},"62-30":{}},"name":{},"text":{"2":{},"4":{},"6":{},"7":{},"8":{},"13":{},"15":{},"17":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"51":{},"53":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"67":{},"69":{},"70":{},"71":{},"73":{},"75":{},"77":{},"79":{},"81":{},"84":{}},"component":{},"keyword":{}}],["file(",{"_index":2234,"title":{},"name":{},"text":{"26":{},"30":{}},"component":{},"keyword":{}}],["file(\"/tmp/sess",{"_index":8454,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["file(paths.get(\"file_to_upload.txt",{"_index":5447,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["file/",{"_index":6627,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["file/directori",{"_index":1723,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["file:///path/to/jetty.hom",{"_index":4476,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["file:///path/to/jetty.project/documentation/jetty/target/site/index.html",{"_index":1021,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["file:/home/simon/.m2/repository/com/aayushatharva/brotli4j/brotli4j/1.17.0/brotli4j",{"_index":5530,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["file:/home/simon/opensource/jetty/12.1.x/jetti",{"_index":6134,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["file:/opt/jetty/lib/jetti",{"_index":8036,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["file:/path/to/jetty.hom",{"_index":8931,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["file:/path/to/jetty.home/lib/jetti",{"_index":8934,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["file:/path/to/jetty.home/lib/logging/jetti",{"_index":8933,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["file:/path/to/jetty.home/lib/logging/slf4j",{"_index":8932,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["file:/usr/local/server/context/class",{"_index":8029,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["file:/usr/local/server/context/lib/context.jar",{"_index":8028,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["file:/usr/local/server/lib/some.jar",{"_index":8024,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["file=\"/somewhere/somefile.prop",{"_index":4004,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["file=<fil",{"_index":4607,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["file=<filenam",{"_index":4643,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["file=start.log",{"_index":4608,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["file>.properti",{"_index":4651,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["file>.xml",{"_index":4650,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["filechannel.clos",{"_index":5027,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["filechannel.write(chunk.getbytebuff",{"_index":5026,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["fileinputstream",{"_index":5490,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["fileinputstream(\"/path/to/hotrod",{"_index":8558,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["fileinputstream(\"file_to_upload.txt",{"_index":5493,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["filenam",{"_index":1905,"title":{},"name":{},"text":{"22":{},"31":{},"41":{}},"component":{},"keyword":{}}],["files=<modul",{"_index":4283,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["files=<modulename>(,<modulenam",{"_index":4645,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["files=<uri>|<loc",{"_index":4633,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["filesessiondatastor",{"_index":8287,"title":{"77-17":{}},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["filesessiondatastorefactori",{"_index":8448,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["filesystem",{"_index":1022,"title":{},"name":{},"text":{"8":{},"31":{},"39":{},"45":{},"77":{}},"component":{},"keyword":{}}],["filesystem.getpathmatch",{"_index":6689,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["fill",{"_index":4180,"title":{},"name":{},"text":{"39":{},"45":{},"46":{},"57":{},"75":{}},"component":{},"keyword":{}}],["fillabl",{"_index":4964,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["fillinterest",{"_index":4900,"title":{},"name":{},"text":{"46":{},"57":{},"75":{}},"component":{},"keyword":{}}],["fillinterested(thi",{"_index":4963,"title":{},"name":{},"text":{"46":{},"75":{}},"component":{},"keyword":{}}],["filter",{"_index":2585,"title":{"71-64":{}},"name":{},"text":{"31":{},"43":{},"51":{},"62":{},"67":{},"71":{},"79":{}},"component":{},"keyword":{}}],["filter(destin",{"_index":5381,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["filter/servlet",{"_index":8153,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["filterhandl",{"_index":8058,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["filterhandler(handl",{"_index":8059,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["filterhandler(new",{"_index":8071,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["fin",{"_index":6358,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["final",{"_index":1031,"title":{},"name":{},"text":{"8":{},"13":{},"18":{},"32":{},"35":{},"38":{},"41":{},"46":{},"47":{},"48":{},"50":{},"51":{},"53":{},"57":{},"58":{},"60":{},"71":{},"75":{}},"component":{},"keyword":{}}],["find",{"_index":178,"title":{},"name":{},"text":{"2":{},"6":{},"7":{},"20":{},"24":{},"26":{},"32":{},"39":{},"41":{},"45":{},"46":{},"47":{},"51":{},"52":{},"63":{},"71":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["findani",{"_index":5383,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["fine",{"_index":2175,"title":{},"name":{},"text":{"24":{},"34":{},"39":{},"48":{},"51":{},"71":{},"79":{}},"component":{},"keyword":{}}],["finish",{"_index":1003,"title":{},"name":{},"text":{"8":{},"31":{},"39":{},"41":{},"46":{},"51":{},"58":{},"71":{},"77":{}},"component":{},"keyword":{}}],["fire",{"_index":5458,"title":{},"name":{},"text":{"51":{},"53":{},"73":{}},"component":{},"keyword":{}}],["firefox/17.0",{"_index":5433,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["firewal",{"_index":2149,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["first",{"_index":986,"title":{},"name":{},"text":{"8":{},"9":{},"19":{},"20":{},"22":{},"23":{},"24":{},"31":{},"32":{},"33":{},"35":{},"36":{},"38":{},"39":{},"41":{},"44":{},"45":{},"46":{},"47":{},"48":{},"50":{},"51":{},"53":{},"55":{},"58":{},"59":{},"62":{},"66":{},"67":{},"69":{},"70":{},"71":{},"73":{},"74":{},"75":{},"77":{},"79":{},"84":{}},"component":{},"keyword":{}}],["firstli",{"_index":8436,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["firstnam",{"_index":5285,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["fist",{"_index":7317,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["fit",{"_index":6433,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["five",{"_index":1142,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["fix",{"_index":152,"title":{},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"12":{},"41":{},"66":{},"84":{}},"component":{},"keyword":{}}],["flag",{"_index":795,"title":{},"name":{},"text":{"6":{},"7":{},"8":{},"20":{},"36":{},"41":{},"46":{},"60":{}},"component":{},"keyword":{}}],["flaki",{"_index":876,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["flavor",{"_index":5254,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["flaw",{"_index":1608,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["flexibl",{"_index":374,"title":{},"name":{},"text":{"3":{},"11":{},"23":{},"35":{},"36":{},"41":{},"44":{},"48":{},"51":{},"71":{},"79":{}},"component":{},"keyword":{}}],["fli",{"_index":3276,"title":{},"name":{},"text":{"31":{},"35":{},"39":{},"42":{},"46":{},"77":{},"81":{}},"component":{},"keyword":{}}],["float",{"_index":8194,"title":{},"name":{},"text":{"73":{},"74":{}},"component":{},"keyword":{}}],["flow",{"_index":1140,"title":{"53-2":{},"73-2":{}},"name":{},"text":{"8":{},"15":{},"52":{},"53":{},"71":{},"73":{},"78":{},"79":{}},"component":{},"keyword":{}}],["fluent",{"_index":5439,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["flush",{"_index":2902,"title":{},"name":{},"text":{"31":{},"36":{},"67":{},"71":{}},"component":{},
1"keyword":{}}],["flushinghandl",{"_index":8106,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["flushonresponsecommit",{"_index":8391,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["focus",{"_index":740,"title":{},"name":{},"text":{"4":{},"6":{}},"component":{},"keyword":{}}],["folder",{"_index":991,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["follow",{"_index":702,"title":{},"name":{},"text":{"4":{},"5":{},"7":{},"8":{},"9":{},"10":{},"13":{},"17":{},"19":{},"20":{},"22":{},"23":{},"24":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"51":{},"52":{},"53":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"65":{},"66":{},"69":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["font",{"_index":2568,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["foo",{"_index":1526,"title":{},"name":{},"text":{"19":{},"44":{}},"component":{},"keyword":{}}],["foo.com",{"_index":1926,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["foo.jsp",{"_index":6757,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["foo/bar",{"_index":2776,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["foo/bar%2fbaz",{"_index":2951,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["foo/bar;jsessionid=a8b38cd02b1c",{"_index":7482,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["foo=\"bar;baz\";version=1;path=\"/secur",{"_index":5732,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["foo=bar",{"_index":2960,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["fooprop=222",{"_index":6804,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["fooprop>222</fooprop",{"_index":6802,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["footprint",{"_index":4190,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["for=2.36.72.144:21216;proto=http",{"_index":3865,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["forbid",{"_index":2940,"title":{},"name":{},"text":{"31":{},"63":{}},"component":{},"keyword":{}}],["forbidden",{"_index":6807,"title":{},"name":{},"text":{"63":{},"64":{},"71":{}},"component":{},"keyword":{}}],["forc",{"_index":3566,"title":{},"name":{},"text":{"35":{},"39":{},"41":{},"51":{},"62":{},"71":{},"77":{}},"component":{},"keyword":{}}],["forcebindinglogin=\"fals",{"_index":4034,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["foreign",{"_index":6127,"title":{},"name":{},"text":{"55":{},"71":{},"74":{}},"component":{},"keyword":{}}],["foreign/target/class",{"_index":6138,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["foreign</artifactid",{"_index":6130,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["forev",{"_index":8085,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["forg",{"_index":141,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["forgeri",{"_index":2634,"title":{},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["forget",{"_index":4161,"title":{},"name":{},"text":{"39":{},"71":{}},"component":{},"keyword":{}}],["fork",{"_index":2296,"title":{"62-5":{}},"name":{},"text":{"28":{},"30":{},"31":{},"35":{},"41":{},"43":{},"45":{},"62":{},"71":{}},"component":{},"keyword":{}}],["forkwebxml",{"_index":6629,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["form",{"_index":1187,"title":{"37":{},"61":{},"37-1":{},"61-1":{},"61-2":{},"61-3":{}},"name":{"37":{},"61":{}},"text":{"10":{},"15":{},"20":{},"31":{},"36":{},"37":{},"39":{},"41":{},"42":{},"44":{},"53":{},"57":{},"58":{},"61":{},"63":{},"64":{},"67":{},"71":{},"73":{},"77":{},"79":{}},"component":{},"keyword":{}}],["formal",{"_index":7474,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["format",{"_index":975,"title":{"22-3":{},"22-4":{},"22-5":{},"22-6":{},"22-7":{},"39-25":{}},"name":{},"text":{"8":{},"10":{},"13":{},"20":{},"22":{},"24":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"39":{},"41":{},"44":{},"48":{},"50":{},"51":{},"63":{},"64":{},"69":{},"71":{},"75":{},"81":{}},"component":{},"keyword":{}}],["format|timezon",{"_index":3103,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["format|timezone|local",{"_index":3104,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["format|timezone|locale}t",{"_index":3102,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["format}a",{"_index":3081,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["format}p",{"_index":3084,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["formauthent",{"_index":6875,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["formencodedmethod",{"_index":8877,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["former",{"_index":4142,"title":{},"name":{},"text":{"39":{},"62":{}},"component":{},"keyword":{}}],["former(",{"_index":1904,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["formfield",{"_index":6595,"title":{},"name":{},"text":{"61":{},"71":{}},"component":{},"keyword":{}}],["formfields.from(request",{"_index":8075,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["formfields.getfields(request",{"_index":6600,"title":{},"name":{},"text":{"61":{}},"component":{},"keyword":{}}],["formfields.onfields(request",{"_index":7247,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["formhandl",{"_index":8078,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["forthcom",{"_index":1061,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["fortun",{"_index":4713,"title":{},"name":{},"text":{"43":{},"58":{}},"component":{},"keyword":{}}],["forward",{"_index":1236,"title":{"24-3":{},"31-31":{},"35-24":{},"48-5":{}},"name":{},"text":{"12":{},"18":{},"24":{},"31":{},"35":{},"48":{},"51":{},"54":{},"58":{},"71":{},"76":{},"77":{},"78":{}},"component":{},"keyword":{}}],["forwardcontent(respons",{"_index":5605,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["forwardedrequestcustom",{"_index":2970,"title":{"71-5":{}},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["forwardproxi",{"_index":7960,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["forwardtorest(partialtext",{"_index":6372,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["forwardtorest(payload",{"_index":6359,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["forwardtorest(read",{"_index":6377,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["fossil",{"_index":322,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["foster",{"_index":105,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["found",{"_index":1518,"title":{},"name":{},"text":{"19":{},"20":{},"22":{},"24":{},"28":{},"31":{},"34":{},"35":{},"39":{},"48":{},"51":{},"60":{},"62":{},"65":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["foundat",{"_index":354,"title":{},"name":{},"text":{"2":{},"9":{},"12":{},"15":{},"39":{}},"component":{},"keyword":{}}],["four",{"_index":6200,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["fpm",{"_index":3744,"title":{},"name":{},"text":{"35":{},"51":{}},"component":{},"keyword":{}}],["fpm.sock",{"_index":3749,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["fpm.sock</arg></call></set",{"_index":3785,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["fraction",{"_index":5281,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["fragment",{"_index":1772,"title":{},"name":{},"text":{"22":{},"28":{},"58":{},"60":{},"62":{}},"component":{},"keyword":{}}],["fragment.jar!/meta",{"_index":6745,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["fragment.xml",{"_index":2009,"title":{},"name":{},"text":{"23":{},"32":{}},"component":{},"keyword":{}}],["fragment.xml):23",{"_index":6747,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["fragment.xml,overrid",{"_index":6738,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["fragment.xml`",{"_index":6731,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["frame",{"_index":1181,"title":{"10-5":{}},"name":{},"text":{"10":{},"31":{},"35":{},"46":{},"51":{},"53":{},"55":{},"58":{},"71":{},"73":{},"74":{},"76":{},"81":{}},"component":{},"keyword":{}}],["frame.getmetadata",{"_index":6050,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["frame.getset",{"_index":8207,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}
1],["frame.isendstream",{"_index":6055,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["frame.islast",{"_index":6170,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["framework",{"_index":115,"title":{},"name":{},"text":{"1":{},"31":{},"32":{},"34":{},"36":{},"38":{},"44":{},"52":{}},"component":{},"keyword":{}}],["fred",{"_index":4006,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["free",{"_index":4971,"title":{},"name":{},"text":{"46":{},"48":{},"51":{},"52":{},"62":{},"71":{}},"component":{},"keyword":{}}],["freeli",{"_index":1337,"title":{},"name":{},"text":{"14":{}},"component":{},"keyword":{}}],["frequenc",{"_index":2282,"title":{},"name":{},"text":{"28":{},"71":{},"77":{}},"component":{},"keyword":{}}],["frequent",{"_index":37,"title":{},"name":{},"text":{"1":{},"13":{},"31":{},"34":{},"39":{},"71":{}},"component":{},"keyword":{}}],["fresh",{"_index":6633,"title":{},"name":{},"text":{"62":{},"77":{}},"component":{},"keyword":{}}],["freshli",{"_index":8386,"title":{},"name":{},"text":{"77":{},"81":{}},"component":{},"keyword":{}}],["friday",{"_index":7846,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["friend",{"_index":5348,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["friendli",{"_index":4092,"title":{},"name":{},"text":{"38":{},"64":{}},"component":{},"keyword":{}}],["friendship",{"_index":143,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["from/to",{"_index":5334,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["fromjson(map<str",{"_index":5296,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["front",{"_index":2997,"title":{},"name":{},"text":{"31":{},"35":{},"71":{},"75":{}},"component":{},"keyword":{}}],["frontend",{"_index":3909,"title":{},"name":{},"text":{"35":{},"71":{}},"component":{},"keyword":{}}],["full",{"_index":820,"title":{"7-3":{}},"name":{},"text":{"7":{},"8":{},"13":{},"17":{},"35":{},"36":{},"41":{},"50":{},"51":{},"59":{},"62":{},"64":{},"65":{},"71":{},"75":{},"77":{}},"component":{},"keyword":{}}],["fulli",{"_index":685,"title":{},"name":{},"text":{"4":{},"22":{},"31":{},"36":{},"38":{},"39":{},"44":{},"46":{},"50":{},"51":{},"67":{},"71":{},"77":{}},"component":{},"keyword":{}}],["function",{"_index":1064,"title":{},"name":{},"text":{"8":{},"20":{},"29":{},"33":{},"34":{},"35":{},"45":{},"47":{},"52":{},"55":{},"57":{},"62":{},"67":{},"71":{},"74":{},"77":{}},"component":{},"keyword":{}}],["fund",{"_index":686,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["fundament",{"_index":1370,"title":{},"name":{},"text":{"15":{},"35":{},"71":{}},"component":{},"keyword":{}}],["further",{"_index":1706,"title":{},"name":{},"text":{"20":{},"22":{},"24":{},"31":{},"35":{},"39":{},"40":{},"41":{},"46":{},"48":{},"51":{},"63":{},"66":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["furthermor",{"_index":144,"title":{},"name":{},"text":{"1":{},"14":{},"33":{},"35":{},"39":{},"41":{},"43":{},"45":{},"51":{},"52":{},"55":{},"58":{},"66":{},"69":{},"71":{},"74":{},"75":{},"81":{}},"component":{},"keyword":{}}],["futur",{"_index":693,"title":{},"name":{},"text":{"4":{},"17":{},"35":{},"41":{},"51":{},"52":{},"55":{},"66":{},"71":{},"74":{}},"component":{},"keyword":{}}],["g",{"_index":6343,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["gae_module_inst",{"_index":4150,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["gain",{"_index":2898,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["garbag",{"_index":2524,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["garbl",{"_index":8055,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["gate",{"_index":1315,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["gateway",{"_index":7953,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["gather",{"_index":4557,"title":{},"name":{},"text":{"41":{},"46":{},"53":{},"55":{},"71":{}},"component":{},"keyword":{}}],["gc",{"_index":4438,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["gcloud",{"_index":4136,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["gcloud.ini",{"_index":4352,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}
1],["gcloud_project",{"_index":4344,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["gclouddatastor",{"_index":4110,"title":{"39-33":{},"39-37":{}},"name":{},"text":{},"component":{},"keyword":{}}],["gcloudsess",{"_index":4361,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["gcloudsessiondatastor",{"_index":8293,"title":{"77-23":{}},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["gcloudsessiondatastorefactori",{"_index":8577,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["gecko",{"_index":3529,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["gecko/20100101",{"_index":5432,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["gener",{"_index":75,"title":{"50-3":{},"50-4":{}},"name":{},"text":{"1":{},"2":{},"4":{},"8":{},"10":{},"11":{},"13":{},"20":{},"28":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"39":{},"40":{},"41":{},"45":{},"46":{},"50":{},"51":{},"52":{},"53":{},"55":{},"56":{},"57":{},"58":{},"60":{},"62":{},"64":{},"66":{},"70":{},"71":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{}},"component":{},"keyword":{}}],["generatedclass",{"_index":6538,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["generateorigin",{"_index":6750,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["generator.tojson(object",{"_index":5346,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["genkeypair",{"_index":3382,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["genstraschararray",{"_index":2297,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["geograph",{"_index":3510,"title":{},"name":{},"text":{"34":{},"71":{}},"component":{},"keyword":{}}],["get",{"_index":1017,"title":{"12":{},"20":{}},"name":{},"text":{"8":{},"30":{},"44":{},"67":{},"71":{}},"component":{},"keyword":{}}],["get/set",{"_index":5224,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["getaddress",{"_index":5315,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["getcount",{"_index":5234,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["getcountservic",{"_index":5239,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["getcountservice().addcount(valu",{"_index":5244,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["getcountservice().getcount",{"_index":5242,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["getendpoint().clos",{"_index":4933,"title":{},"name":{},"text":{"46":{},"57":{},"75":{}},"component":{},"keyword":{}}],["getendpoint().close(caus",{"_index":4966,"title":{},"name":{},"text":{"46":{},"75":{}},"component":{},"keyword":{}}],["getendpoint().close(x",{"_index":4934,"title":{},"name":{},"text":{"46":{},"57":{}},"component":{},"keyword":{}}],["getendpoint().fill(buff",{"_index":4931,"title":{},"name":{},"text":{"46":{},"57":{},"75":{}},"component":{},"keyword":{}}],["getendpoint().fill(buffer.getbytebuff",{"_index":4960,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["getendpoint().write(callback",{"_index":6257,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["getendpoint().write(thi",{"_index":4932,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["getfailur",{"_index":4984,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["getfield",{"_index":6597,"title":{},"name":{},"text":{"61":{}},"component":{},"keyword":{}}],["getfoo",{"_index":4766,"title":{},"name":{},"text":{"44":{},"48":{}},"component":{},"keyword":{}}],["getinvocationtyp",{"_index":4968,"title":{},"name":{},"text":{"46":{},"71":{}},"component":{},"keyword":{}}],["getpathinfo",{"_index":7498,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["getpriority(request",{"_index":7859,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["getprivatefield",{"_index":1276,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["getrequesturi",{"_index":7500,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["getresourcebytes(request",{"_index":8188,"title":{},"name":{},"text":{"73":{},"74":{}},"component":{},"keyword":{}}],["getresult",{"_index":5038,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}
1],["getschedul",{"_index":6210,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["getselector",{"_index":6211,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["getservice(@name(valu",{"_index":5220,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["getservicecount",{"_index":5213,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["getservletpath",{"_index":7497,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["getsessionscr",{"_index":8375,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["getsessiontimemax",{"_index":8376,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["getsessiontimemean",{"_index":8378,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["getsessiontimestddev",{"_index":8379,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["getsessiontimetot",{"_index":8380,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["getter",{"_index":1269,"title":{},"name":{},"text":{"13":{},"44":{},"48":{},"50":{}},"component":{},"keyword":{}}],["getworkernam",{"_index":8322,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["ghsa",{"_index":530,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["git",{"_index":981,"title":{"10-1":{}},"name":{},"text":{"8":{},"9":{},"10":{},"12":{},"20":{},"35":{},"41":{},"45":{}},"component":{},"keyword":{}}],["github",{"_index":40,"title":{"4-9":{}},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"10":{},"11":{},"12":{},"30":{}},"component":{},"keyword":{}}],["github.com",{"_index":1777,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["githubâ",{"_index":1198,"title":{},"name":{},"text":{"10":{}},"component":{},"keyword":{}}],["gitâ",{"_index":1196,"title":{},"name":{},"text":{"10":{}},"component":{},"keyword":{}}],["give",{"_index":145,"title":{},"name":{},"text":{"1":{},"8":{},"22":{},"24":{},"30":{},"31":{},"34":{},"44":{},"51":{},"58":{},"71":{},"79":{},"84":{}},"component":{},"keyword":{}}],["given",{"_index":1298,"title":{},"name":{},"text":{"13":{},"22":{},"23":{},"30":{},"31":{},"40":{},"41":{},"46":{},"48":{},"50":{},"51":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["glassfish",{"_index":2245,"title":{},"name":{},"text":{"27":{},"67":{}},"component":{},"keyword":{}}],["glob",{"_index":6687,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["global",{"_index":1127,"title":{},"name":{},"text":{"8":{},"35":{},"41":{},"51":{}},"component":{},"keyword":{}}],["glossari",{"_index":1343,"title":{"15":{}},"name":{"15":{}},"text":{"15":{}},"component":{},"keyword":{}}],["gmt",{"_index":3108,"title":{},"name":{},"text":{"31":{},"34":{}},"component":{},"keyword":{}}],["go",{"_index":1378,"title":{},"name":{},"text":{"15":{},"31":{},"35":{},"39":{},"45":{},"48":{},"60":{},"62":{},"79":{},"84":{}},"component":{},"keyword":{}}],["goal",{"_index":769,"title":{"62-2":{}},"name":{},"text":{"4":{},"6":{},"8":{},"60":{},"62":{},"71":{}},"component":{},"keyword":{}}],["goal>jspc</goal",{"_index":6528,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["goal>set",{"_index":6797,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["goal>start</go",{"_index":6713,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["goal>stop</go",{"_index":6716,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["goals><goal>exploded</goal></go",{"_index":6568,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["goals><goal>war</goal></go",{"_index":6576,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["goaway",{"_index":6096,"title":{},"name":{},"text":{"53":{},"55":{}},"component":{},"keyword":{}}],["goe",{"_index":3814,"title":{},"name":{},"text":{"35":{},"46":{},"51":{},"52":{},"71":{}},"component":{},"keyword":{}}],["good",{"_index":729,"title":{},"name":{},"text":{"4":{},"8":{},"13":{},"22":{},"52":{},"63":{},"69":{},"71":{}},"component":{},"keyword":{}}],["googl",{"_index":3021,"title":{"39-31":{},"39-34":{},"39-35":{},"39-38":{}},"name":{},"text":{"31":{},"39":{},"65":{},"77":{}},"component":{},"keyword":{}}],["google.com",{"_index":5723,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["google_application_credentials=/path/to/my/key.json",{"_index":4345,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}
1],["googleonlycookiestor",{"_index":5718,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["googleâ",{"_index":3836,"title":{},"name":{},"text":{"35":{},"71":{}},"component":{},"keyword":{}}],["govern",{"_index":2283,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["grace",{"_index":2496,"title":{"31-22":{}},"name":{},"text":{"31":{},"41":{},"71":{}},"component":{},"keyword":{}}],["gracefulhandl",{"_index":2784,"title":{"71-47":{}},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["gracefulhandler.sethandler(contexthandl",{"_index":7928,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["gracefulli",{"_index":2783,"title":{"41-16":{}},"name":{},"text":{"31":{},"41":{},"71":{}},"component":{},"keyword":{}}],["graceperiod",{"_index":8434,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["gradl",{"_index":6442,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["grain",{"_index":5509,"title":{},"name":{},"text":{"51":{},"79":{}},"component":{},"keyword":{}}],["grant",{"_index":5533,"title":{},"name":{},"text":{"51":{},"55":{},"63":{},"71":{},"74":{}},"component":{},"keyword":{}}],["graph",{"_index":909,"title":{},"name":{},"text":{"7":{},"30":{},"41":{},"43":{}},"component":{},"keyword":{}}],["graph=<filenam",{"_index":4627,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["graphic",{"_index":1616,"title":{},"name":{},"text":{"20":{},"24":{},"33":{},"48":{}},"component":{},"keyword":{}}],["graphviz",{"_index":904,"title":{},"name":{},"text":{"7":{},"41":{}},"component":{},"keyword":{}}],["great",{"_index":758,"title":{},"name":{},"text":{"4":{},"6":{},"8":{},"51":{},"59":{}},"component":{},"keyword":{}}],["greater",{"_index":871,"title":{},"name":{},"text":{"7":{},"22":{},"31":{},"46":{},"53":{},"55":{},"58":{},"71":{},"73":{},"79":{}},"component":{},"keyword":{}}],["greatli",{"_index":6407,"title":{},"name":{},"text":{"58":{},"70":{},"71":{}},"component":{},"keyword":{}}],["green",{"_index":5883,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["greet",{"_index":6033,"title":{},"name":{},"text":{"53":{},"55":{}},"component":{},"keyword":{}}],["grid",{"_index":8529,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["grind",{"_index":5926,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["group",{"_index":127,"title":{},"name":{},"text":{"1":{},"8":{},"35":{},"41":{},"46":{},"70":{},"71":{}},"component":{},"keyword":{}}],["groupid",{"_index":6613,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["groupid>com.acme</groupid",{"_index":6752,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["groupid>jakarta.servlet</groupid",{"_index":6516,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["groupid>jakarta.websocket</groupid",{"_index":8640,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["groupid>org.apache.maven.plugins</groupid",{"_index":6554,"title":{},"name":{},"text":{"60":{},"62":{}},"component":{},"keyword":{}}],["groupid>org.codehaus.mojo</groupid",{"_index":6485,"title":{},"name":{},"text":{"59":{},"62":{}},"component":{},"keyword":{}}],["groupid>org.eclipse.jetty.compression</groupid",{"_index":5522,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["groupid>org.eclipse.jetty.ee11.websocket</groupid",{"_index":8643,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["groupid>org.eclipse.jetty.ee11</groupid",{"_index":6521,"title":{},"name":{},"text":{"59":{},"60":{},"62":{}},"component":{},"keyword":{}}],["groupid>org.eclipse.jetty.ee{8,9,10,11}</groupid",{"_index":7993,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["groupid>org.eclipse.jetty.http2</groupid",{"_index":5978,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["groupid>org.eclipse.jetty.http3</groupid",{"_index":6123,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["groupid>org.eclipse.jetty.quic</groupid",{"_index":6124,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["groupid>org.eclipse.jetty.websocket</groupid",{"_index":6273,"title":{},"name":{},"text":{"58":{},"79":{}},"component":{},"keyword":{}}],["groupid>org.eclipse.jetty.{e",{"_index":6572,"title":{},"name":{},"text":{"60":{},"62":{}},"component":{},"keyword":{}}],["groupid>org.eclipse.jetty</groupid",{"_index":5164,"title":{},"name":{},"text":{"48":{},"50":{},"51":{},"59":{},"69":{},"71":{}},"component":{},"keyword":{}}],["groupid>org.example</groupid",{"_index":6474,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["groupprincipalcallback",{"_index":4098,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["grow",{"_index":5897,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["guarante",{"_index":2447,"title":{},"name":{},"text":{"30":{},"39":{},"51":{},"52":{},"58":{},"71":{},"73":{}},"component":{},"keyword":{}}],["guid",{"_index":69,"title":{"16":{},"17":{},"8-1":{},"8-7":{},"14-1":{},"14-2":{},"68-2":{}},"name":{},"text":{"1":{},"6":{},"8":{},"10":{},"14":{},"15":{},"16":{},"17":{},"20":{},"24":{},"35":{},"36":{},"37":{},"39":{},"40":{},"48":{}},"component":{"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{}},"keyword":{}}],["guidanc",{"_index":8163,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["gzip",{"_index":1601,"title":{"31-7":{}},"name":{},"text":{"20":{},"31":{},"51":{},"66":{},"71":{}},"component":{},"keyword":{}}],["gzip.mod",{"_index":7055,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["gzip.setdefaultdecoderconfig(gzipdecoderconfig",{"_index":5541,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["gzip</artifactid",{"_index":5523,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["gzipcompress",{"_index":5538,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["gzipcontentdecod",{"_index":7049,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["gzipdecoderconfig",{"_index":5539,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["gzipdecoderconfig.setbuffersize(4096",{"_index":5540,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["gziphandl",{"_index":7050,"title":{"71-33":{}},"name":{},"text":{"66":{},"71":{}},"component":{},"keyword":{}}],["gziphandler(new",{"_index":7776,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["gziphandler.addexcludedmimetypes(\"font/ttf",{"_index":7773,"t
1itle":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["gziphandler.addincludedmethods(\"post",{"_index":7772,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["gziphandler.setexcludedpaths(\"/uncompress",{"_index":7771,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["gziphandler.sethandler(context",{"_index":7774,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["gziphandler.sethandler(sequ",{"_index":7703,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["gziphandler.setmingzipsize(1024",{"_index":7770,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["h",{"_index":3096,"title":{},"name":{},"text":{"31":{},"51":{},"52":{}},"component":{},"keyword":{}}],["h1",{"_index":7561,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["h2",{"_index":3635,"title":{},"name":{},"text":{"35":{},"71":{}},"component":{},"keyword":{}}],["h2)}{0.0.0.0:8443",{"_index":3705,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["h2,http/1.1",{"_index":3915,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["h2altsvc",{"_index":7674,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["h2altsvc.setmaxage(duration.ofhours(24",{"_index":7676,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["h2altsvc.setpersist(tru",{"_index":7677,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["h2c",{"_index":3649,"title":{},"name":{},"text":{"35":{},"51":{},"71":{}},"component":{},"keyword":{}}],["h2c)}{0.0.0.0:8080",{"_index":3645,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["h3",{"_index":7666,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["h3)}{0.0.0.0:8444",{"_index":3712,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["h3=\":843",{"_index":7665,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["hackathon",{"_index":136,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["half",{"_index":5410,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["halt",{"_index":4818,"title":{},"name":{},"text":{"45":{},"52":{}},"component":{},"keyword":{}}],["hand",{"_index":4160,"title":{},"name":{},"text":{"39":{},"41":{},"46":{},"56":{},"71":{},"79":{}},"component":{},"keyword":{}}],["handi",{"_index":4564,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["handl",{"_index":397,"title":{"39-47":{},"51-12":{},"51-13":{}},"name":{},"text":{"3":{},"10":{},"15":{},"22":{},"24":{},"29":{},"31":{},"34":{},"35":{},"41":{},"46":{},"47":{},"51":{},"52":{},"53":{},"57":{},"58":{},"62":{},"63":{},"64":{},"65":{},"67":{},"70":{},"71":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"81":{}},"component":{},"keyword":{}}],["handle(bifunct",{"_index":8083,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["handle(request",{"_index":6457,"title":{},"name":{},"text":{"59":{},"63":{},"65":{},"67":{},"71":{},"78":{},"79":{}},"component":{},"keyword":{}}],["handlefatalfailure(chunk.getfailur",{"_index":5006,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["handlefatalfailure(failur",{"_index":5020,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["handler",{"_index":1361,"title":{"45-8":{},"64-8":{},"67-6":{},"67-7":{},"67-8":{},"67-9":{},"67-10":{},"67-12":{},"71-26":{},"71-27":{},"71-55":{},"71-62":{},"71-63":{},"71-64":{},"78-1":{}},"name":{},"text":{"15":{},"22":{},"28":{},"29":{},"31":{},"47":{},"58":{},"59":{},"62":{},"63":{},"65":{},"66":{},"67":{},"69":{},"71":{},"73":{},"74":{},"77":{},"78":{},"79":{},"81":{},"83":{}},"component":{},"keyword":{}}],["handler'",{"_index":8634,"title":{},"name":{},"text":{"78":{}},"component":{},"keyword":{}}],["handler.abstract",{"_index":6819,"title":{},"name":{},"text":{"63":{},"65":{},"67":{},"71":{},"78":{},"79":{}},"component":{},"keyword":{}}],["handler.abstract(invocationtyp",{"_index":8628,"title":{},"name":{},"text":{"78":{}},"component":{},"keyword":{}}],["handler.abstract.nonblock",{"_index":6456,"title":{},"name":{},"text":{"59":{},"71":{}},"component":{},"keyword":{}}],["handler.abstractcontain",{"_index":7707,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}
1],["handler.addservlet(myjavaxwebsocketinitializerservlet.class",{"_index":8655,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["handler.addservlet(myjettywebsocketinitializerservlet.class",{"_index":8684,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["handler.addservlet(myjettywebsocketservlet.class",{"_index":8704,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["handler.collect",{"_index":7724,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["handler.contain",{"_index":7699,"title":{},"name":{},"text":{"71":{},"78":{}},"component":{},"keyword":{}}],["handler.handl",{"_index":7327,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["handler.handle(request",{"_index":7324,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["handler.handle(str",{"_index":7322,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["handler.sequ",{"_index":7344,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["handler.setacceptranges(tru",{"_index":7740,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["handler.setbaseresource(resourc",{"_index":7745,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["handler.setbaseresource(resourcefactory.of(handler).newresource(\"/path/to/static/resourc",{"_index":7737,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["handler.setdirallowed(fals",{"_index":7738,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["handler.setwelcomefiles(list.of(\"index.html",{"_index":7739,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["handler.wrapp",{"_index":7701,"title":{},"name":{},"text":{"71":{},"78":{}},"component":{},"keyword":{}}],["handler/request/respons",{"_index":3265,"title":{},"name":{},"text":{"31":{},"45":{},"71":{},"83":{}},"component":{},"keyword":{}}],["handler</titl",{"_index":6464,"title":{},"name":{},"text":{"59":{},"71":{}},"component":{},"keyword":{}}],["handlercollect",{"_index":7078,"title":{"67-13":{}},"name":{},"text":{},"component":{},"keyword":{}}],["handlerlist",{"_index":7079,"title":{"67-13":{}},"name":{},"text":{},"component":{},"keyword":{}}],["handlerthreadinfo",{"_index":7901,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["handlestyp",{"_index":1497,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["handletransientfailure(chunk.getfailur",{"_index":5008,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["handshak",{"_index":3240,"title":{},"name":{},"text":{"31":{},"35":{},"51":{},"71":{}},"component":{},"keyword":{}}],["handshakefailed(ev",{"_index":5699,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["handshakesucceeded(ev",{"_index":5693,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["hang",{"_index":5900,"title":{},"name":{},"text":{"52":{},"71":{}},"component":{},"keyword":{}}],["happen",{"_index":1311,"title":{},"name":{},"text":{"13":{},"20":{},"24":{},"30":{},"35":{},"39":{},"45":{},"46":{},"48":{},"51":{},"53":{},"55":{},"58":{},"66":{},"71":{},"73":{},"74":{},"79":{}},"component":{},"keyword":{}}],["happi",{"_index":381,"title":{},"name":{},"text":{"3":{},"11":{}},"component":{},"keyword":{}}],["haproxi",{"_index":3554,"title":{"35-26":{}},"name":{},"text":{"35":{},"71":{}},"component":{},"keyword":{}}],["haproxy.cfg",{"_index":3904,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["haproxyâ",{"_index":3898,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["harbor",{"_index":703,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["hard",{"_index":749,"title":{},"name":{},"text":{"4":{},"8":{},"22":{},"30":{},"34":{},"46":{},"77":{}},"component":{},"keyword":{}}],["hardwar",{"_index":865,"title":{},"name":{},"text":{"7":{},"31":{},"52":{}},"component":{},"keyword":{}}],["hark",{"_index":4183,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["harmless",{"_index":2846,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["harri",{"_index":4008,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["hash",{"_index":2502,"title":{"31-35":{}},"name":{},"text":{"31":{},"39":{},"42":{}},"component":{},"keyword":{}}],["hash.ini",{"_index":4188,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["hashcod",{"_index":3160,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["hashloginservic",{"_index":3003,"title":{},"name":{},"text":{"31":{},"62":{},"63":{},"64":{},"65":{}},"component":{},"keyword":{}}],["hashmap",{"_index":4186,"title":{},"name":{},"text":{"39":{},"44":{},"48":{},"50":{},"53":{},"55":{},"57":{},"73":{},"74":{}},"component":{},"keyword":{}}],["hashset",{"_index":5149,"title":{},"name":{},"text":{"47":{},"50":{}},"component":{},"keyword":{}}],["have",{"_index":1082,"title":{},"name":{},"text":{"8":{},"17":{},"18":{},"22":{},"24":{},"31":{},"33":{},"35":{},"41":{},"46":{},"47":{},"48":{},"51":{},"53":{},"69":{},"71":{},"73":{},"77":{},"79":{}},"component":{},"keyword":{}}],["havenât",{"_index":1620,"title":{},"name":{},"text":{"20":{},"39":{}},"component":{},"keyword":{}}],["hazelcast",{"_index":4107,"title":{"39-26":{},"39-27":{},"39-29":{}},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["hazelcastsessiondatastor",{"_index":8424,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["head",{"_index":5426,"title":{},"name":{},"text":{"51":{},"52":{},"59":{},"71":{}},"component":{},"keyword":{}}],["header",{"_index":1104,"title":{"35-24":{}},"name":{},"text":{"8":{},"28":{},"31":{},"35":{},"51":{},"53":{},"55":{},"58":{},"63":{},"66":{},"67":{},"70":{},"71":{},"73":{},"74":{}},"component":{},"keyword":{}}],["headercachecasesensitive=fals",{"_index":8885,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["headercachesize=1024",{"_index":8884,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["headers(head",{"_index":5868,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["headersfram",{"_index":6021,"title":{},"name":{},"text":{"53":{},"55":{},"73":{},"74":{}},"component":{},"keyword":{}}],["headersframe(pushedstream.getid",{"_index":8218,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["headersframe(request",{"_index":6022,"title":{},"name":{},"text":{"53":{},"55":{}},"component":{},"keyword":{}}],["headersframe(respons",{"_index":8243,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["headersframe(stream.getid",{"_index":8190,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["health",{"_index":7865,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["heap",{"_index":2479,"title":{},"name":{},"text":{"30":{},"31":{},"41":{},"81":{}},"component":{},"keyword":{}}],["hear",{"_index":1209,"title":{},"name":{},"text":{"10":{}},"component":{},"keyword":{}}],["heart",{"_index":30,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["heartbeat",{"_index":3621,"title":{},"name":{},"text":{"35":{},"39":{},"58":{},"77":{}},"component":{},"keyword":{}}],["heavi",{"_index":4819,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["heavili",{"_index":1122,"title":{},"name":{},"text":{"8":{},"31":{},"39":{},"51":{}},"component":{},"keyword":{}}],["held",{"_index":2549,"title":{},"name":{},"text":{"31":{},"39":{},"62":{}},"component":{},"keyword":{}}],["hello",{"_index":6034,"title":{"71-63":{}},"name":{},"text":{"53":{},"55":{},"59":{},"67":{},"71":{},"75":{}},"component":{},"keyword":{}}],["helloservlet",{"_index":6500,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["helloworld",{"_index":6437,"title":{"59-2":{},"59-4":{}},"name":{"59":{}},"text":{"59":{}},"component":{},"keyword":{}}],["helloworld</nam",{"_index":6481,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["helloworldhandl",{"_index":6455,"title":{},"name":{},"text":{"59":{},"71":{}},"component":{},"keyword":{}}],["help",{"_index":167,"title":{"6-4":{}},"name":{},"text":{"1":{},"4":{},"6":{},"7":{},"8":{},"10":{},"18":{},"20":{},"39":{},"41":{},"44":{},"45":{},"52":{},"59":{},"62":{},"71":{},"77":{},"83":{},"84":{}},"component":{},"keyword":{}}],["henc",{"_index":5364,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["here",{"_index":334,"title":{},"name":{},"text":{"2":{},"7":{},"8":{},"19":{},"23":{},"24":{},"28":{},"29":{},"30":{},"31":{},"35":{},"36":{},"38":{},"39":{},"41":{},"42":{},"44":{},"45":{},"46":{},"51":{},"53":{},"55":{},"56":{},"58":{},"60":{},"62":{},"65":{},"66":{},"67":{},"69":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{},"83":{}},"component":{},"keyword":{}}],["hereâ",{"_index":1508,"title":{},"name":{},"text":{"19":{},"23":{},"28":{},"36":{},"51":{},"60":{},"62":{},"77":{}},"component":{},"keyword":{}}],["heterogen",{"_index":8284,"title":{"77-12":{}},"name":{},"text":{},"component":{},"keyword":{}}],["heurist",{"_index":2550,"title":{},"name":{},"text":{"31":{},"39":{},"52":{}},"component":{},"keyword":{}}],["hh:mm:ss.sss",{"_index":3457,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["hidden",{"_index":1770,"title":{},"name":{},"text":{"22":{},"31":{},"34":{},"71":{}},"component":{},"keyword":{}}],["hide",{"_index":3467,"title":{},"name":{},"text":{"34":{},"51":{},"71":{}},"component":{},"keyword":{}}],["hierarchi",{"_index":1521,"title":{},"name":{},"text":{"19":{},"22":{},"41":{},"43":{},"69":{},"71":{}},"component":{},"keyword":{}}],["high",{"_index":409,"title":{},"name":{},"text":{"3":{},"31":{},"39":{},"46":{},"51":{},"53":{},"54":{},"55":{},"57":{},"67":{},"71":{},"73":{},"74":{},"76":{}},"component":{},"keyword":{}}],["higher",{"_index":1557,"title":{},"name":{},"text":{"19":{},"30":{},"31":{},"35":{},"41":{},"53":{},"55":{},"71":{}},"component":{},"keyword":{}}],["highest",{"_index":7860,"title":{},"name":{},"text":{"71":{},"77":{}},"component":{},"keyword":{}}],["highli",{"_index":1329,"title":{},"name":{},"text":{"14":{},"81":{}},"component":{},"keyword":{}}],["highlight",{"_index":1720,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["highlight=(?i)stop.key",{"_index":4587,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["highlight=([a",{"_index":1628,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["highlight=(\\{.*:8080",{"_index":1641,"title":{},"name":{},"text":{"20":{},"35":{}},"component":{},"keyword":{}}],["highlight=(\\{.*:8443",{"_index":3586,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["highlight=(\\{.*:8444",{"_index":3693,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["highlight=(\\{.*:9999",{"_index":1678,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["highlight=(\\{.+:8080",{"_index":3641,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["highlight=(log",{"_index":3458,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["highlight=5005",{"_index":4839,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["highlight=webappcontext",{"_index":1718,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["hint",{"_index":5859,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["histor",{"_index":4184,"title":{},"name":{},"text":{"39":{},"51":{},"76":{}},"component":{},"keyword":{}}],["histori",{"_index":171,"title":{"2-2":{}},"name":{},"text":{},"component":{},"keyword":{}}],["hit",{"_index":4422,"title":{},"name":{},"text":{"41":{},"42":{},"62":{}},"component":{},"keyword":{}}],["hobbi",{"_index":1914,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["hobby.war",{"_index":1959,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["hobby.xml",{"_index":1963,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["hold",{"_index":1890,"title":{},"name":{},"text":{"22":{},"23":{},"31":{},"36":{},"51":{},"71":{}},"component":{},"keyword":{}}],["holder",{"_index":8009,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["home",{"_index":231,"title":{},"name":{},"text":{"2":{},"7":{},"8":{},"20":{},"34":{},"35":{},"41":{},"45":{},"81":{}},"component":{},"keyword":{}}],["home/target/jetti",{"_index":918,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["home=/home/ubuntu/.cache/antora/collector/jetty.project@jetti",{"_index":1621,"title":{},"name":{},"text":{"20":{},"34":{},"35":{},"41":{},"45":{},"81":{}},"component":{},"keyword":{}}],["home}/.m2/repositori",{"_index":4663,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["hood",{"_index":8665,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["hook",{"_index":1173,"title":{},"name":{},"text":{"9":{},"31":{},"41":{},"51":{}},"component":{},"keyword":{}}],["hopefulli",{"_index":7914,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["host",{"_index":1725,"title":{"22-20":{},"22-21":{},"22-22":{},"22-23":{},"58-3":{}},"name":{},"text":{"20":{},"22":{},"24":{},"30":{},"31":{},"33":{},"35":{},"39":{},"41":{},"45":{},"46":{},"48":{},"51":{},"56":{},"57":{},"62":{},"67":{},"71":{},"77":{},"80":{}},"component":{},"keyword":{}}],["host(backendhost",{"_index":7991,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["host,port",{"_index":8518,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["host/address",{"_index":2790,"title":{},"name":{},"text":{"31":{},"67":{}},"component":{},"keyword":{}}],["host/port",{"_index":2152,"title":{},"name":{},"text":{"24":{},"39":{}},"component":{},"keyword":{}}],["host[:port",{"_index":6916,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["hostheadercustom",{"_index":7514,"title":{"71-6":{}},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["hostnam",{"_index":4036,"title":{},"name":{},"text":{"36":{},"38":{},"77":{}},"component":{},"keyword":{}}],["hostname.com",{"_index":1924,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["hostname.endswith(\".domain.com",{"_index":5691,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["hostname=\"ldap.example.com",{"_index":4018,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["host}uri",{"_index":3127,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["hot",{"_index":1729,"title":{"22-8":{}},"name":{},"text":{"22":{},"30":{},"31":{},"62":{}},"component":{},"keyword":{}}],["hotrod",{"_index":4306,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["hotrodproperti",{"_index":8556,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["hotrodproperties.load(new",{"_index":8557,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["housekeep",{"_index":4124,"title":{"77-4":{}},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["housekeeper.setintervalsec(600l",{"_index":8319,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}
1],["housekeeper.setsessionidmanager(idmgr",{"_index":8318,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["hpack",{"_index":7085,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["hsqldb",{"_index":3979,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["html",{"_index":976,"title":{},"name":{},"text":{"8":{},"20":{},"35":{},"59":{},"63":{},"64":{},"71":{}},"component":{},"keyword":{}}],["http",{"_index":1363,"title":{"39":{},"51":{},"71":{},"77":{},"31-23":{},"31-29":{},"31-32":{},"39-1":{},"39-7":{},"39-12":{},"39-14":{},"39-16":{},"39-18":{},"39-26":{},"39-31":{},"39-40":{},"51-30":{},"58-6":{},"58-7":{},"70-1":{},"71-18":{},"71-40":{},"71-71":{},"71-72":{},"71-73":{}},"name":{"51":{},"71":{}},"text":{"15":{},"17":{},"18":{},"20":{},"21":{},"22":{},"24":{},"25":{},"29":{},"30":{},"31":{},"34":{},"35":{},"38":{},"39":{},"41":{},"43":{},"45":{},"46":{},"47":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"62":{},"63":{},"65":{},"67":{},"70":{},"71":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"81":{}},"component":{},"keyword":{}}],["http,ee11",{"_index":6639,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["http.getprotocol",{"_index":8248,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["http.ini",{"_index":1663,"title":{},"name":{},"text":{"20":{},"22":{},"29":{},"34":{},"35":{},"41":{}},"component":{},"keyword":{}}],["http.xml",{"_index":4500,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["http/0.9",{"_index":1932,"title":{},"name":{},"text":{"22":{},"70":{}},"component":{},"keyword":{}}],["http/1",{"_index":2895,"title":{},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["http/1.0",{"_index":329,"title":{},"name":{},"text":{"2":{},"22":{},"31":{},"35":{},"57":{},"70":{},"71":{},"76":{}},"component":{},"keyword":{}}],["http/1.0\\r\\n",{"_index":6264,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["http/1.1",{"_index":250,"title":{"35-1":{},"35-2":{},"35-26":{},"51-32":{},"58-4":{},"71-17":{},"71-18":{}},"name":{},"text":{"2":{},"14":{},"15":{},"17":{},"20":{},"21":{},"25":{},"30":{},"31":{},"34":{},"35":{},"41":{},"45":{},"46":{},"51":{},"52":{},"54":{},"57":{},"58":{},"66":{},"70":{},"71":{},"75":{},"76":{},"81":{}},"component":{},"keyword":{}}],["http/1.1)}{0.0.0.0:8080",{"_index":1653,"title":{},"name":{},"text":{"20":{},"35":{},"41":{},"81":{}},"component":{},"keyword":{}}],["http/1.1)}{0.0.0.0:8443",{"_index":3607,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["http/1.1)}{0.0.0.0:9999",{"_index":1682,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["http/1.1\\r\\n",{"_index":5820,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["http/1.x",{"_index":2873,"title":{},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["http/2",{"_index":111,"title":{"53":{},"73":{},"35-3":{},"35-4":{},"35-5":{},"35-6":{},"35-26":{},"51-33":{},"53-2":{},"53-8":{},"53-10":{},"58-5":{},"71-19":{},"71-20":{},"73-2":{},"73-7":{}},"name":{},"text":{"1":{},"2":{},"14":{},"15":{},"17":{},"18":{},"20":{},"21":{},"25":{},"31":{},"35":{},"45":{},"46":{},"51":{},"52":{},"53":{},"54":{},"57":{},"58":{},"66":{},"71":{},"73":{},"76":{},"84":{}},"component":{},"keyword":{}}],["http/2.0",{"_index":7463,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["http/2â",{"_index":3725,"title":{},"name":{},"text":{"35":{},"71":{}},"component":{},"keyword":{}}],["http/3",{"_index":112,"title":{"55":{},"74":{},"35-7":{},"51-34":{},"71-21":{}},"name":{},"text":{"1":{},"2":{},"14":{},"15":{},"17":{},"18":{},"20":{},"21":{},"25":{},"31":{},"35":{},"46":{},"51":{},"54":{},"55":{},"57":{},"66":{},"71":{},"74":{},"76":{}},"component":{},"keyword":{}}],["http/3+quic",{"_index":3708,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["http1",{"_index":5405,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["http1.1",{"_index":3651,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["http1.setinitializeconnections(tru",{"_index":5406,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["http11",{"_index":7650,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["http11.getprotocol",{"_index":7653,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["http11transport",{"_index":5851,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["http1respons",{"_index":5860,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["http1transport",{"_index":5621,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["http2",{"_index":1384,"title":{"31-26":{}},"name":{"53":{},"73":{}},"text":{"15":{},"30":{},"31":{},"35":{},"41":{},"51":{},"53":{},"67":{},"71":{},"73":{}},"component":{},"keyword":{}}],["http2.setconnectprotocolenabled(tru",{"_index":8174,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["http2.setmaxconcurrentstreams(128",{"_index":8173,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["http2c",{"_index":2499,"title":{"31-27":{}},"name":{},"text":{"31":{},"35":{}},"component":{},"keyword":{}}],["http2client",{"_index":4903,"title":{"53-1":{}},"name":{},"text":{"46":{},"51":{},"53":{},"58":{}},"component":{},"keyword":{}}],["http2client(clientconnector",{"_index":5623,"title":{},"name":{},"text":{"51":{},"58":{},"71":{}},"component":{},"keyword":{}}],["http2client(connector",{"_index":5853,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["http2client.addbean(new",{"_index":6118,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["http2client.connect(connector.getsslcontextfactori",{"_index":6004,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["http2client.connect(serveraddress",{"_index":6000,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["http2client.getclientconnector",{"_index":6003,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["http2client.initialstreamrecvwindow",{"_index":6010,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["http2client.setinitialsessionrecvwindow(64",{"_index":5834,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["http2client.setstreamidletimeout(15000",{"_index":5980,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["http2client.setusealpn(tru",{"_index":5835,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["http2client.start",{"_index":5981,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["http2client.stop",{"_index":5982,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["http2cserverconnectionfactori",{"_index":7656,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["http2cserverconnectionfactory(httpconfig",{"_index":7657,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["http2respons",{"_index":5863,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["http2serverconnectionfactori",{"_index":7563,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["http2serverconnectionfactory(httpconfig",{"_index":7660,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["http2serverconnectionfactory(httpsconfig",{"_index":7564,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["http2serverconnectionfactory(secureconfig",{"_index":7617,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["http2serverconnectionfactory.altsvccustom",{"_index":7673,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["http2session.framelisten",{"_index":6100,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["http2session.lifecyclelisten",{"_index":6099,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["http2transport",{"_index":5625,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["http3",{"_index":2500,"title":{"31-28":{}},"name":{"55":{},"74":{}},"text":{"31":{},"35":{},"51":{},"55":{},"67":{},"71":{},"74":{}},"component":{},"keyword":{}}],["http3.gethttp3configuration().setstreamidletimeout(15000",{"_index":8232,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["http3client",{"_index":4904,"title":{"55-1":{}},"name":{},"text":{"46":{},"51":{},"55":{}},"component":{},"keyword":{}}],["http3client(clientquicconfig",{"_index":5842,"title":{},"name":{},"text":{"51":{},"55":{}},"component":{},"keyword":{}}],["http3client.connect(new",{"_index":6149,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["http3client.gethttp3configuration().setstreamidletimeout(15000",{"_index":6143,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["http3client.start",{"_index":6144,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["http3client.stop",{"_index":6145,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["http3clientquicconfiguration.configure(new",{"_index":5841,"title":{},"name":{},"text":{"51":{},"55":{}},"component":{},"keyword":{}}],["http3connector",{"_index":7625,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["http3connector.setport(port",{"_index":7633,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["http3respons",{"_index":5865,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["http3serverconnectionfactori",{"_index":7596,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["http3serverquicconfiguration.configure(new",{"_index":7593,"title":{},"name":{},"text":{"71":{},"74":{}},"component":{},"keyword":{}}],["http://backend1/proxy/path",{"_index":7976,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["http://backend:9090/path",{"_index":2758,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["http://backend:9090/path/bar",{"_index":2763,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["http://backend:9090/path/foo/bar",{"_index":2777,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["http://bugs.acme.org/<ani",{"_index":1793,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["http://chat.domain.com",{"_index":7882,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["http://cross.domain.com",{"_index":7879,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}
1],["http://dev.eclipse.org/mhonarc/lists/jetti",{"_index":746,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["http://docs.project.org",{"_index":1919,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["http://domain.biz",{"_index":1915,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["http://domain.com",{"_index":7877,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["http://domain.com:8080/path?param=valu",{"_index":7868,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["http://download.eclipse.org/jetty/updates/jetti",{"_index":340,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["http://example.com",{"_index":7880,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["http://example.com/new",{"_index":5748,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["http://example.com/old",{"_index":5747,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["http://hobby.net",{"_index":1916,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["http://localhost/path",{"_index":8260,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["http://localhost:8080",{"_index":1595,"title":{},"name":{},"text":{"20":{},"22":{},"35":{},"59":{},"62":{}},"component":{},"keyword":{}}],["http://localhost:8080/<basenam",{"_index":1854,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["http://localhost:8080/ee11",{"_index":1721,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["http://localhost:8080/hello",{"_index":6523,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["http://localhost:8080/j_security_check",{"_index":6994,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["http://localhost:8080/stat",{"_index":1814,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["http://localhost:9090",{"_index":1966,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["http://maven.apache.org/maven",{"_index":6471,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["http://mywebapp.com/mywebapp",{"_index":1951,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["http://mywebapp.com/oth",{"_index":1955,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["http://mywebapp.net/mywebapp",{"_index":1953,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["http://newdomain.com/ctx/path",{"_index":7930,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["http://olddomain.com/path",{"_index":7929,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["http://other.com/mywebapp",{"_index":1956,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["http://project.org",{"_index":1918,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["http://proxy:8080/ctx/foo/bar",{"_index":2761,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["http://www.mywebapp.com/mywebapp",{"_index":1952,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["http://www.mywebapp.net/mywebapp",{"_index":1954,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["httpchannel.onrequest",{"_index":7540,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpclient",{"_index":2765,"title":{"51-1":{},"51-2":{},"51-3":{},"51-4":{},"51-5":{},"51-7":{},"51-8":{},"51-9":{},"51-10":{},"51-17":{},"51-18":{},"51-19":{},"51-20":{},"51-21":{},"51-22":{},"51-26":{},"51-27":{},"51-28":{},"51-31":{},"66-9":{},"67-15":{}},"name":{},"text":{"31":{},"46":{},"47":{},"48":{},"51":{},"52":{},"56":{},"58":{},"65":{},"67":{},"71":{},"81":{}},"component":{},"keyword":{}}],["httpclient'",{"_index":5365,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient(dynamictransport",{"_index":5634,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient(httpclienttransport",{"_index":5846,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient(new",{"_index":5647,"title":{},"name":{},"text":{"51":{},"52":{},"58":{},"71":{}},"component":{},"keyword":{}}],["httpclient(transport",{"_index":5832,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.addbean(listen",{"_index":5701,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.addbean(mbeancontain",{"_index":5171,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["httpclient.addbean(new",{"_index":4924,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["httpclient.connectblock",{"_index":5679,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.connecttimeout",{"_index":5681,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.get",{"_index":5424,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.get(\"http://domain.com/path",{"_index":5791,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.get(\"http://domain.com/path?queri",{"_index":5423,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.getauthenticationstor",{"_index":5756,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.getauthenticationstore().clearauthenticationresult",{"_index":5769,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.getcontentdecoderfactori",{"_index":7057,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["httpclient.getcontentdecoderfactories().clear",{"_index":5535,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.getcontentdecoderfactories().put(new",{"_index":5542,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.getdestinations().stream",{"_index":5380,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.gethttpclienttransport",{"_index":5402,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.gethttpclienttransport().setconnectionpoolfactory(destin",{"_index":5397,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.gethttpclienttransport().setinvocationtype(invocable.invocationtype.non_block",{"_index":6182,"title":{},"name":{},"text":{"56":{}},"component":{},"keyword":{}}],["httpclient.gethttpcookiestor",{"_index":5704,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.getmaxconnectionsperdestin",{"_index":5394,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.getproxyconfigur",{"_index":5789,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.getproxyconfiguration().addproxy(new",{"_index":6277,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["httpclient.idletimeout",{"_index":5677,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.maxconnectionsperdestin",{"_index":5418,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.maxrequestsqueuedperdestin",{"_index":5421,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.newrequest",{"_index":5438,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.newrequest(\"http://domain.com/path",{"_index":5459,"title":{},"name":{},"text":{"51":{},"56":{}},"component":{},"keyword":{}}],["httpclient.newrequest(\"http://domain.com/path?queri",{"_index":5427,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.newrequest(\"http://example.com/old\").send",{"_index":5749,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.newrequest(\"http://localhost",{"_index":5644,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["httpclient.newrequest(\"http://localhost/process",{"_index":5656,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.newrequest(\"http://localhost/valid",{"_index":5652,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.newrequest(\"https://host",{"_index":5408,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.newrequest(\"https://third",{"_index":5649,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.newrequest(\"jetty.org",{"_index":5635,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.newrequest(host1",{"_index":5592,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.newrequest(host2",{"_index":5597,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.newrequest(serveruri).send",{"_index":5813,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.newrequest(uri",{"_index":5777,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.post(\"http://domain.com/entity/1",{"_index":5442,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.post(\"http://domain.com/upload",{"_index":5446,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.post(\"http://localhost:8080",{"_index":5514,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.resolvedestination(request",{"_index":5409,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.setfollowredirects(fals",{"_index":5363,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.sethttpcookiestore(new",{"_index":5717,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.setredirectcache(new",{"_index":5745,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclient.start",{"_index":4926,"title":{},"name":{},"text":{"46":{},"51":{},"56":{},"71":{}},"component":{},"keyword":{}}],["httpclient.stop",{"_index":5366,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclientconnectionfactory.http11",{"_index":5628,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["httpclienttransport",{"_index":4879,"title":{},"name":{},"text":{"46":{},"47":{},"51":{},"52":{},"56":{}},"component":{},"keyword":{}}],["httpclienttransportdynam",{"_index":5631,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclienttransportdynamic(clientconnector",{"_index":5633,"title":{},"name":{},"text":{"51":{},"58":{},"71":{}},"component":{},"keyword":{}}],["httpclienttransportdynamic(connector",{"_index":5852,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclienttransportoverfcgi",{"_index":5830,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclienttransportoverfcgi(scriptroot",{"_index":5848,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclienttransportoverhttp",{"_index":5404,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclienttransportoverhttp(clientconnector",{"_index":5622,"title":{},"name":{},"text":{"51":{},"52":{}},"component":{},"keyword":{}}],["httpclienttransportoverhttp.setinitializeconnections(tru",{"_index":5415,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclienttransportoverhttp2",{"_index":5624,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclienttransportoverhttp2(http2cli",{"_index":5626,"title":{},"name":{},"text":{"51":{},"58":{}},"component":{},"keyword":{}}],["httpclienttransportoverhttp3",{"_index":5829,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpclienttransportoverhttp3(http3cli",{"_index":5845,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpcomplianc",{"_index":2938,"title":{},"name":{},"text":{"31":{},"70":{}},"component":{},"keyword":{}}],["httpcompliance.from(\"rfc9110,multiple_content_length",{"_index":7471,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["httpcompliance.from(str",{"_index":2941,"title":{},"name":{},"text":{"31":{},"70":{}},"component":{},"keyword":{}}],["httpcompliance.rfc9110",{"_index":2944,"title":{},"name":{},"text":{"31":{},"70":{}},"component":{},"keyword":{}}],["httpcompliance.viol",{"_index":7466,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["httpcompliance.violation.case_insensitive_method",{"_index":7454,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["httpcompliance.violation.multiple_content_length",{"_index":2943,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["httpcompliance=rfc9110[lf_header_termin",{"_index":8898,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["httpconfig",{"_index":7648,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpconfig.addcustomizer(new",{"_index":7652,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpconfig.getcustomizer(http2serverconnectionfactory.altsvccustomizer.class",{"_index":7675,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpconfig.setsecureport(secureport",{"_index":7871,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpconfig.setsendserverversion(fals",{"_index":7649,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpconfig2",{"_index":7606,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpconfig2.sethttpcompliance(httpcompliance.legaci",{"_index":7607,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpconfigur",{"_index":2864,"title":{},"name":{},"text":{"31":{},"44":{},"70":{},"71":{}},"component":{},"keyword":{}}],["httpconfiguration(httpconfig",{"_index":7872,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpconfiguration(plainconfig",{"_index":7614,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpconfiguration.custom",{"_index":7557,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpconfiguration.maxresponseheaders",{"_index":7043,"title":{"66-12":{}},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["httpconfiguration.responseheaders",{"_index":7068,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["httpconfiguration.sethttpcompliance(customhttpcompli",{"_index":7472,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["httpconfiguration.sethttpcompliance(httpcompliance.rfc9110",{"_index":7468,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["httpconfiguration.setmultipartcompliance(custom",{"_index":7513,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["httpconfiguration.setrequestcookiecompliance(cookiecompliance.rfc6265",{"_index":7505,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["httpconfiguration.setrequestcookiecompliance(customuricompli",{"_index":7509,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["httpconfiguration.setresponsecookiecompliance(cookiecompliance.rfc6265",{"_index":7506,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["httpconfiguration.seturicompliance(customuricompli",{"_index":7496,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["httpconfiguration.seturicompliance(uricompliance.rfc3986",{"_index":7492,"t
1itle":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["httpconnect",{"_index":7647,"title":{},"name":{},"text":{"71":{},"75":{}},"component":{},"keyword":{}}],["httpconnectionfactori",{"_index":5640,"title":{},"name":{},"text":{"51":{},"71":{},"75":{}},"component":{},"keyword":{}}],["httpconnectionfactory(httpconfig",{"_index":7651,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpconnectionfactory(httpconfig2",{"_index":7609,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpconnectionfactory(httpsconfig",{"_index":7562,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpconnectionfactory(plainconfig",{"_index":7622,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpconnectionfactory(secureconfig",{"_index":7616,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpconnector",{"_index":6621,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["httpconstraint",{"_index":1495,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["httpcooki",{"_index":5707,"title":{},"name":{},"text":{"51":{},"67":{},"71":{}},"component":{},"keyword":{}}],["httpcookie(\"nam",{"_index":6293,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["httpcookie.build(\"foo",{"_index":5708,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpcookie.build(\"nam",{"_index":7280,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["httpcookie.samesite.lax",{"_index":8346,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["httpcookie.samesite.non",{"_index":8344,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["httpcookie.samesite.strict",{"_index":8345,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["httpcookiestor",{"_index":5703,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpcookiestore.default",{"_index":5719,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpcookiestore.empti",{"_index":5716,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpd",{"_index":7537,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpfield",{"_index":6012,"title":{},"name":{},"text":{"53":{},"55":{},"67":{},"71":{}},"component":{},"keyword":{}}],["httpfields.build",{"_index":6014,"title":{},"name":{},"text":{"53":{},"55":{},"67":{},"71":{}},"component":{},"keyword":{}}],["httpfields.build().put(\"checksum",{"_index":7294,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["httpfields.empti",{"_index":8119,"title":{},"name":{},"text":{"71":{},"73":{},"74":{}},"component":{},"keyword":{}}],["httpfields.mut",{"_index":7270,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["httpheadervalue.continue.asstr",{"_index":8117,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpheadervalue.continue.is(request.getheader(\"expect",{"_index":8158,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpmethod.get.is(request.getmethod",{"_index":8186,"title":{},"name":{},"text":{"73":{},"74":{}},"component":{},"keyword":{}}],["httpmethod.post.is(request.getmethod",{"_index":8156,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpmethodconstraint",{"_index":1496,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["httpproxi",{"_index":5784,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpproxy(\"localhost",{"_index":6278,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["httpproxy(\"proxy.net",{"_index":5812,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpproxy(\"proxyhost",{"_index":5785,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httprespons",{"_index":5872,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["https.getprotocol",{"_index":7619,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["https.ini",{"_index":2374,"title":{},"name":{},"text":{"29":{},"35":{}},"component":{},"keyword":{}}],["https.xml",{"_index":2988,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["https/http2",{"_index":7632,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["https://${domain}\\nvers",{"_index":6978,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}
1],["https://acme.com/favicon.ico|webapps/acme/favicon.ico",{"_index":2469,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["https://api.domain.com/product",{"_index":7719,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["https://cloud.google.com/docs/authentication#prepar",{"_index":4340,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["https://cloud.google.com/sdk/?hl=en",{"_index":4342,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["https://community.metamask.io/tos\\n\\nuri",{"_index":6977,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["https://dev.eclipse.org/mailman/listinfo/jetti",{"_index":744,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["https://docs.domain.com/$1",{"_index":7792,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/zip/deflater.html",{"_index":2587,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["https://domain.com/path",{"_index":7975,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["https://domain.com:8443/path?param=valu",{"_index":7869,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["https://eips.ethereum.org/eips/eip",{"_index":6894,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["https://en.wikipedia.org/wiki/database_catalog",{"_index":4254,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["https://en.wikipedia.org/wiki/database_schema",{"_index":4253,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["https://example.com/auth",{"_index":7001,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["https://example.com/issu",{"_index":6996,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["https://example.com/j_security_check",{"_index":6993,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["https://example.com/logout",{"_index":7003,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["https://example.com/token",{"_index":6999,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["https://facebook.github.io/zstd/zstd_manual.html#chapter5",{"_index":2604,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["https://github.com/acme/acme/issu",{"_index":1795,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["https://github.com/eclipse/jetty.project",{"_index":1222,"title":{},"name":{},"text":{"12":{}},"component":{},"keyword":{}}],["https://github.com/eclipse/jetty.project.git",{"_index":1226,"title":{},"name":{},"text":{"12":{}},"component":{},"keyword":{}}],["https://github.com/eclipse/jetty.toolchain",{"_index":1229,"title":{},"name":{},"text":{"12":{}},"component":{},"keyword":{}}],["https://github.com/jetti",{"_index":1228,"title":{},"name":{},"text":{"12":{}},"component":{},"keyword":{}}],["https://github.com/jetty/jetty.project/issues/2919",{"_index":4308,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["https://google.com",{"_index":5685,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["https://graphviz.org",{"_index":4629,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["https://host/store/cart",{"_index":1433,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["https://jakarta.ee/xml/ns/jakartaee/web",{"_index":1985,"title":{},"name":{},"text":{"22":{},"35":{},"40":{},"59":{},"79":{}},"component":{},"keyword":{}}],["https://javadoc.jetty.org/jetti",{"_index":1968,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["https://jetty.org/configure_10_0.dtd",{"_index":1512,"title":{},"name":{},"text":{"19":{},"22":{},"26":{},"29":{},"30":{},"31":{},"35":{},"36":{},"38":{},"44":{},"69":{}},"component":{},"keyword":{}}],["https://jetty.org/doc",{"_index":2244,"title":{},"name":{},"text":{"27":{},"28":{},"31":{},"36":{},"38":{}},"component":{},"keyword":{}}],["https://jetty.org/download.html",{"_index":1600,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["https://localhost:8443",{"_index":3611,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}
1],["https://opensource.org/license/mit",{"_index":4489,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["https://repo1.maven.org/maven2",{"_index":4665,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["https://shop.domain.com/cart",{"_index":7718,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["https://www.apache.org/licenses/licens",{"_index":1118,"title":{},"name":{},"text":{"8":{},"30":{}},"component":{},"keyword":{}}],["https://www.eclipse.org/jetty/configure_10_0.dtd",{"_index":1780,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["https://www.eclipse.org/legal/epl",{"_index":1117,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["httpsconfig",{"_index":7559,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpsconfig.addcustomizer(new",{"_index":7560,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpservlet",{"_index":6501,"title":{},"name":{},"text":{"59":{},"67":{},"71":{},"79":{}},"component":{},"keyword":{}}],["httpservletrequest",{"_index":3555,"title":{},"name":{},"text":{"35":{},"67":{},"70":{}},"component":{},"keyword":{}}],["httpservletrequest.getinputstream",{"_index":7333,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["httpservletrequest.getparametermap",{"_index":7907,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpservletrequest.getpart",{"_index":7909,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpservletrequest.startasync",{"_index":7328,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["httpservletrespons",{"_index":3557,"title":{},"name":{},"text":{"35":{},"51":{},"59":{},"67":{},"71":{},"79":{}},"component":{},"keyword":{}}],["httpservletresponse.getoutputstream",{"_index":7335,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["httpsession",{"_index":4286,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["httpsessionactivationlisten",{"_index":8428,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["httpsessionlisten",{"_index":4301,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["httpsessionlistener.destroy",{"_index":4175,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["httpstatus.bad_request_400",{"_index":8081,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpstatus.forbidden_403",{"_index":7971,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpstatus.not_found_404",{"_index":8139,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpstatus.ok_200",{"_index":5560,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["httpstatus.payload_too_large_413",{"_index":8126,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpstatus.service_unavailable_503",{"_index":7310,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["httpstatus.upgrade_required_426",{"_index":8736,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["httpstream",{"_index":8097,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpstream.failed(throw",{"_index":8099,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpstream.succeed",{"_index":8098,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpuri",{"_index":6085,"title":{},"name":{},"text":{"53":{},"67":{},"71":{},"73":{}},"component":{},"keyword":{}}],["httpuri.build",{"_index":7989,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpuri.build(\"http://backend1/proxi",{"_index":7978,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpuri.build(request.gethttpuri()).path(\"/favicon.ico",{"_index":8211,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["httpuri.build(request.gethttpuri()).query(nul",{"_index":7144,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["httpuri.build(uri).path(newpath).asimmut",{"_index":8066,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["httpuri.from(\"http://localhost:8080/path",{"_index":6018,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["httpuri.from(\"http://localhost:8444/path",{"_index":6158,"t
1itle":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["httpurl>|<pathnam",{"_index":2468,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["httpversion.http_2",{"_index":6019,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["httpversion.http_3",{"_index":6159,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["hub",{"_index":44,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["huffman",{"_index":2586,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["human",{"_index":967,"title":{},"name":{},"text":{"8":{},"35":{}},"component":{},"keyword":{}}],["hundr",{"_index":859,"title":{},"name":{},"text":{"7":{},"32":{},"57":{}},"component":{},"keyword":{}}],["hunt",{"_index":5918,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["i.",{"_index":1444,"title":{},"name":{},"text":{"18":{},"24":{},"31":{},"35":{},"39":{},"44":{},"46":{},"48":{},"51":{},"57":{},"60":{},"71":{},"75":{}},"component":{},"keyword":{}}],["i/o",{"_index":2820,"title":{"46":{},"57":{},"75":{},"46-1":{},"46-2":{},"46-3":{},"46-4":{},"46-5":{},"46-6":{}},"name":{},"text":{"31":{},"45":{},"46":{},"51":{},"52":{},"54":{},"56":{},"57":{},"58":{},"71":{},"75":{},"76":{},"81":{}},"component":{},"keyword":{}}],["iana",{"_index":3357,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["icon",{"_index":1151,"title":{},"name":{},"text":{"8":{},"71":{}},"component":{},"keyword":{}}],["id",{"_index":402,"title":{"8-14":{},"13-1":{}},"name":{},"text":{"3":{},"8":{},"13":{},"28":{},"29":{},"30":{},"31":{},"34":{},"36":{},"39":{},"40":{},"44":{},"47":{},"62":{},"64":{},"65":{},"77":{},"80":{},"84":{}},"component":{},"keyword":{}}],["id=\"cf",{"_index":2126,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["id=\"httpconfig",{"_index":4809,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["id=\"jsp",{"_index":2252,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["id=\"loginform",{"_index":6948,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["id=\"messagefield",{"_index":6955,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["id=\"myd",{"_index":4682,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["id=\"myhost",{"_index":4749,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["id=\"mylist",{"_index":4740,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["id=\"mystr",{"_index":4733,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["id=\"myvers",{"_index":4788,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["id=\"realmresourc",{"_index":6922,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["id=\"resourcefactori",{"_index":6919,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["id=\"rewrit",{"_index":3147,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["id=\"root",{"_index":3759,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["id=\"serv",{"_index":2452,"title":{},"name":{},"text":{"30":{},"36":{},"44":{},"62":{}},"component":{},"keyword":{}}],["id=\"signaturefield",{"_index":6953,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["id=\"siwe\">sign",{"_index":6946,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["id=\"siweresult\"></span></p",{"_index":6960,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["id=\"stderr",{"_index":4721,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["id=\"threadpool",{"_index":2420,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["id=\"tx",{"_index":2103,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["id=\"vers",{"_index":4769,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["id=\"wac",{"_index":2046,"title":{},"name":{},"text":{"23":{},"64":{}},"component":{},"keyword":{}}],["id>jspc</id",{"_index":6527,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["id>pack</id",{"_index":6575,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["id>prod</id",{"_index":6560,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["id>start",{"_index":6709,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["id>stderr</id",{"_index":4726,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["id>stop",{"_index":6714,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["id>unpack</id",{"_index":6567,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}
1],["id_from_connect",{"_index":2687,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["id_from_remote_address",{"_index":2684,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["id_from_remote_address_port",{"_index":2686,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["id_from_remote_port",{"_index":2685,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["ide.xml",{"_index":1245,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["idea",{"_index":46,"title":{},"name":{},"text":{"1":{},"57":{}},"component":{},"keyword":{}}],["ideal",{"_index":762,"title":{},"name":{},"text":{"4":{},"41":{},"59":{}},"component":{},"keyword":{}}],["ident",{"_index":1088,"title":{},"name":{},"text":{"8":{},"31":{},"34":{},"36":{},"40":{},"42":{},"51":{},"64":{},"77":{}},"component":{},"keyword":{}}],["identif",{"_index":3227,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["identifi",{"_index":382,"title":{},"name":{},"text":{"3":{},"4":{},"6":{},"8":{},"11":{},"24":{},"28":{},"30":{},"31":{},"36":{},"38":{},"39":{},"40":{},"44":{},"51":{},"53":{},"55":{},"65":{},"70":{},"71":{},"77":{}},"component":{},"keyword":{}}],["identityservic",{"_index":4099,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["idiomat",{"_index":4999,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["idl",{"_index":2310,"title":{},"name":{},"text":{"28":{},"31":{},"39":{},"46":{},"52":{},"53":{},"55":{},"57":{},"58":{},"62":{},"71":{},"73":{},"74":{},"75":{},"77":{},"81":{}},"component":{},"keyword":{}}],["idle_timeout",{"_index":6434,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["idletimeout",{"_index":2786,"title":{},"name":{},"text":{"31":{},"58":{},"62":{},"81":{}},"component":{},"keyword":{}}],["idletimeout=30000",{"_index":8925,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["idmgr",{"_index":8307,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["idmgr.setsessionhousekeeper(housekeep",{"_index":8320,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["idmgr.setworkername(\"server3",{"_index":8310,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["idmgr.setworkername(\"server7",{"_index":8317,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["idn",{"_index":1939,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["idtoken",{"_index":3040,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["ie",{"_index":4157,"title":{},"name":{},"text":{"39":{},"60":{},"62":{},"77":{}},"component":{},"keyword":{}}],["ieclassid",{"_index":2299,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["ietf",{"_index":2909,"title":{},"name":{},"text":{"31":{},"70":{}},"component":{},"keyword":{}}],["iff",{"_index":8324,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["ignor",{"_index":1159,"title":{},"name":{},"text":{"8":{},"28":{},"35":{},"46":{},"62":{},"71":{},"79":{}},"component":{},"keyword":{}}],["illeg",{"_index":5741,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["illegalargumentexcept",{"_index":5742,"title":{},"name":{},"text":{"51":{},"70":{}},"component":{},"keyword":{}}],["illegalstateexcept",{"_index":8105,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["illustr",{"_index":4069,"title":{},"name":{},"text":{"38":{},"44":{},"46":{}},"component":{},"keyword":{}}],["imag",{"_index":945,"title":{"8-15":{}},"name":{},"text":{"8":{},"35":{},"58":{},"71":{}},"component":{},"keyword":{}}],["image::small_powered_by.gif[image,width=145",{"_index":1136,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["immedi",{"_index":1212,"title":{},"name":{},"text":{"10":{},"31":{},"39":{},"46":{},"51":{},"52":{},"57":{},"58":{},"62":{},"63":{},"71":{},"74":{},"77":{}},"component":{},"keyword":{}}],["immut",{"_index":8053,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["impact",{"_index":404,"title":{},"name":{},"text":{"3":{},"32":{},"45":{},"48":{},"71":{},"81":{}},"component":{},"keyword":{}}],["imper",{"_index":4229,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["impl",{"_index":2240,"title":{},"name":{},"text":{"26":{},"34":{},"41":{},"62":{},"68":{},"81":{},"84":{}},"component":{},"keyword":{}}],["implement",{"_index":113,"title":{"63-3":{},"63-4":{},"63-5":{},"64-7":{},"71-62":{},"77-5":{},"77-11":{},"79-2":{},"79-7":{},"79-12":{}},"name":{},"text":{"1":{},"15":{},"19":{},"22":{},"23":{},"26":{},"29":{},"30":{},"31":{},"34":{},"35":{},"36":{},"38":{},"39":{},"41":{},"44":{},"45":{},"46":{},"47":{},"48":{},"50":{},"51":{},"52":{},"53":{},"55":{},"56":{},"57":{},"58":{},"59":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"69":{},"70":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{},"84":{}},"component":{},"keyword":{}}],["implementation=\"org.eclipse.jetty.ee11.maven.plugin.mavenwebappcontext",{"_index":6780,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["implementation=\"org.eclipse.jetty.maven.mavenresourc",{"_index":6771,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["implementation=\"org.eclipse.jetty.security.hashloginservic",{"_index":6769,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["impli",{"_index":3503,"title":{},"name":{},"text":{"34":{},"41":{},"43":{},"45":{}},"component":{},"keyword":{}}],["implicit",{"_index":4712,"title":{"79-14":{}},"name":{},"text":{"43":{},"44":{},"46":{},"67":{}},"component":{},"keyword":{}}],["implicitli",{"_index":1771,"title":{},"name":{},"text":{"22":{},"46":{},"53":{},"58":{},"67":{},"71":{},"73":{},"79":{}},"component":{},"keyword":{}}],["import",{"_index":1143,"title":{"33-4":{}},"name":{},"text":{"8":{},"13":{},"20":{},"22":{},"24":{},"33":{},"35":{},"39":{},"46":{},"48":{},"51":{},"52":{},"53":{},"57":{},"59":{},"67":{},"71":{},"73":{},"75":{},"77":{},"81":{}},"component":{},"keyword":{}}],["importcert",{"_index":3419,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["impos",{"_index":5449,"title":{},"name":{},"text":{"51":{},"52":{},"63":{},"70":{}},"component":{},"keyword":{}}],["improv",{"_index":90,"title":{},"name":{},"text":{"1":{},"71":{},"77":{}},"component":{},"keyword":{}}],["in",{"_index":971,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["inact",{"_index":4192,"title":{},"name":{},"text":{"39":{},"57":{},"77":{}},"component":{},"keyword":{}}],["inadvert",{"_index":1856,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["incident",{"_index":2182,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["includ",{"_index":199,"title":{},"name":{},"text":{"2":{},"4":{},"8":{},"10":{},"15":{},"19":{},"20":{},"22":{},"24":{},"28":{},"30":{},"31":{},"34":{},"35":{},"39":{},"41":{},"43":{},"45":{},"48":{},"50":{},"51":{},"52":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"64":{},"69":{},"70":{},"71":{},"77":{},"81":{},"83":{}},"component":{},"keyword":{}}],["include/exclud",{"_index":6688,"title":{},"name":{},"text":{"62":{},"71":{}},"component":{},"keyword":{}}],["include>**/*.properties</includ",{"_index":6702,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["include>**/*.xml</includ",{"_index":6701,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["includes>**/*.foo</includ",{"_index":6584,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["inclus",{"_index":53,"title":{},"name":{},"text":{"1":{},"19":{}},"component":{},"keyword":{}}],["incom",{"_index":1175,"title":{},"name":{},"text":{"9":{},"15":{},"24":{},"31":{},"34":{},"35":{},"46":{},"53":{},"58":{},"71":{},"75":{}},"component":{},"keyword":{}}],["incompat",{"_index":4405,"title":{},"name":{},"text":{"39":{},"51":{},"75":{}},"component":{},"keyword":{}}],["incomplet",{"_index":5256,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["incomplete/non",{"_index":1609,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["inconsist",{"_index":2347,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["incorpor",{"_index":6773,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["incorrectli",{"_index":3861,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["increas",{"_index":2123,"title":{},"name":{},"text":{"23":{},"31":{},"39":{},"52":{},"57":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["incur",{"_index":5743,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["inde",{"_index":5686,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["indefinit",{"_index":4385,"title":{},"name":{},"text":{"39":{},"52":{}},"component":{},"keyword":{}}],["indent",{"_index":1257,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["independ",{"_index":877,"title":{},"name":{},"text":{"7":{},"15":{},"35":{},"36":{},"39":{},"41":{},"47":{},"50":{},"55":{},"67":{},"71":{},"74":{},"77":{},"79":{}},"component":{},"keyword":{}}],["indetermin",{"_index":4397,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["index",{"_index":771,"title":{"39-36":{}},"name":{"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"30":{},"32":{},"33":{},"34":{},"35":{},"39":{},"41":{},"42":{},"44":{},"45":{},"54":{},"63":{},"76":{},"82":{}},"text":{"39":{},"71":{},"77":{}},"component":{},"keyword":{}}],["index.adoc",{"_index":1102,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["index.html",{"_index":1696,"title":{},"name":{},"text":{"20":{},"22":{},"51":{},"69":{},"71":{}},"component":{},"keyword":{}}],["index.yaml",{"_index":4347,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["indic",{"_index":1931,"title":{},"name":{},"text":{"22":{},"23":{},"28":{},"30":{},"31":{},"33":{},"35":{},"39":{},"46":{},"48":{},"51":{},"52":{},"60":{},"62":{},"63":{},"71":{},"73":{},"74":{},"75":{}},"component":{},"keyword":{}}],["indirect",{"_index":8838,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["indirectli",{"_index":6382,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["individu",{"_index":1029,"title":{},"name":{},"text":{"8":{},"12":{},"35":{},"41":{},"47":{},"70":{},"77":{}},"component":{},"keyword":{}}],["ineffici",{"_index":2817,"title":{},"name":{},"text":{"31":{},"46":{}},"component":{},"keyword":{}}],["inetaddress.getallbyname(str",{"_index":6178,"title":{},"name":{},"text":{"56":{}},"component":{},"keyword":{}}],["inetaddress.getbyname(\"jdk.java.net",{"_index":4753,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["inetsocketaddress(\"localhost",{"_index":5997,"title":{},"name":{},"text":{"53":{},"55":{},"77":{}},"component":{},"keyword":{}}],["inetsocketaddress(host",{"_index":4867,"title":{},"name":{},"text":{"46":{},"57":{}},"component":{},"keyword":{}}],["inf",{"_index":1697,"title":{},"name":{},"text":{"20":{},"22":{},"32":{},"59":{},"62":{},"71":{}},"component":{},"keyword":{}}],["inf/class",{"_index":1534,"title":{},"name":{},"text":{"19":{},"20":{},"71":{},"79":{}},"component":{},"keyword":{}}
1],["inf/classes/:acme.war!/web",{"_index":7435,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["inf/jetti",{"_index":1902,"title":{},"name":{},"text":{"22":{},"23":{},"37":{}},"component":{},"keyword":{}}],["inf/lib",{"_index":1535,"title":{},"name":{},"text":{"19":{},"20":{},"35":{},"62":{},"71":{},"79":{}},"component":{},"keyword":{}}],["inf/lib/*.jar",{"_index":7436,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["inf/lib/test",{"_index":6744,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["inf/quickstart",{"_index":3366,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["inf/special.xml",{"_index":6761,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["inf/web",{"_index":6746,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["inf/web.xml",{"_index":1705,"title":{},"name":{},"text":{"20":{},"59":{},"60":{},"62":{},"71":{}},"component":{},"keyword":{}}],["inf/web.xml):22",{"_index":6742,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["inf/web.xml</webxml",{"_index":6583,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["infer",{"_index":4256,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["infinispan",{"_index":4105,"title":{"39-18":{},"39-19":{},"39-21":{},"39-22":{},"39-24":{}},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["infinispanidletimeoutsec",{"_index":8537,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["infinispansessiondata",{"_index":8532,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["infinispansessiondatastor",{"_index":8292,"title":{"77-22":{}},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["infinispansessiondatastore.setcache(localcach",{"_index":8546,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["infinispansessiondatastore.setcache(remotecach",{"_index":8573,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["infinispansessiondatastore.setgraceperiodsec(3600",{"_index":8551,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["infinispansessiondatastore.setinfinispanidletimeoutsec(0",{"_index":8548,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["infinispansessiondatastore.setquerymanager(new",{"_index":8549,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["infinispansessiondatastore.setsaveperiodsec(0",{"_index":8552,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["infinispansessiondatastore.setserialization(fals",{"_index":8547,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["infinispansessiondatastore.setserialization(tru",{"_index":8574,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["infinispansessiondatastorefactori",{"_index":8530,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["infinispansessionlegacyconvert",{"_index":4317,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["infinit",{"_index":5609,"title":{},"name":{},"text":{"51":{},"58":{}},"component":{},"keyword":{}}],["inflat",{"_index":2574,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["influenc",{"_index":1756,"title":{},"name":{},"text":{"22":{},"52":{},"62":{},"71":{},"78":{}},"component":{},"keyword":{}}],["info",{"_index":999,"title":{},"name":{},"text":{"8":{},"13":{},"20":{},"28":{},"31":{},"34":{},"35":{},"45":{},"48":{},"71":{},"84":{}},"component":{},"keyword":{}}],["info.class",{"_index":4695,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["info.java",{"_index":6306,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["inform",{"_index":396,"title":{"51-15":{},"81-3":{}},"name":{},"text":{"3":{},"8":{},"9":{},"13":{},"15":{},"18":{},"20":{},"22":{},"23":{},"24":{},"31":{},"33":{},"34":{},"35":{},"36":{},"39":{},"40":{},"41":{},"45":{},"46":{},"48":{},"51":{},"53":{},"57":{},"58":{},"59":{},"62":{},"63":{},"65":{},"67":{},"71":{},"73":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}
1],["infrastructur",{"_index":2099,"title":{"39-34":{},"39-35":{}},"name":{},"text":{"23":{},"36":{},"71":{},"77":{}},"component":{},"keyword":{}}],["infrequ",{"_index":2897,"title":{},"name":{},"text":{"31":{},"39":{},"77":{}},"component":{},"keyword":{}}],["ing",{"_index":8315,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["inherit",{"_index":3346,"title":{},"name":{},"text":{"31":{},"45":{},"46":{},"47":{},"71":{},"75":{}},"component":{},"keyword":{}}],["inheritablethreadloc",{"_index":3350,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["ini",{"_index":1669,"title":{"30-14":{},"30-15":{},"41-4":{}},"name":{},"text":{"20":{},"29":{},"30":{},"31":{},"34":{},"36":{},"39":{},"41":{},"43":{}},"component":{},"keyword":{}}],["init",{"_index":1990,"title":{},"name":{},"text":{"22":{},"28":{},"64":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["initi",{"_index":1632,"title":{"58-6":{},"58-7":{}},"name":{},"text":{"20":{},"31":{},"34":{},"35":{},"38":{},"39":{},"46":{},"51":{},"58":{},"62":{},"67":{},"70":{},"71":{},"75":{},"79":{}},"component":{},"keyword":{}}],["innov",{"_index":4,"title":{"1-3":{}},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["input",{"_index":2867,"title":{},"name":{},"text":{"31":{},"42":{},"51":{},"58":{},"64":{},"71":{}},"component":{},"keyword":{}}],["inputbuffers",{"_index":6388,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["inputstream",{"_index":5023,"title":{},"name":{},"text":{"46":{},"51":{},"58":{},"67":{},"71":{}},"component":{},"keyword":{}}],["inputstream.read",{"_index":7237,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["inputstream.read(byt",{"_index":6381,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["inputstreamrequestcont",{"_index":5491,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["inputstreamrequestcontent(\"text/plain",{"_index":5492,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["inputstreamresponselisten",{"_index":5556,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["insecur",{"_index":4644,"title":{},"name":{},"text":{"41":{},"42":{}},"component":{},"keyword":{}}],["insensit",{"_index":1852,"title":{},"name":{},"text":{"22":{},"70":{}},"component":{},"keyword":{}}],["insert",{"_index":2397,"title":{},"name":{},"text":{"29":{},"31":{},"60":{},"83":{}},"component":{},"keyword":{}}],["inserthandl",{"_index":2396,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["insertionmark",{"_index":6539,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["insid",{"_index":1845,"title":{"39-35":{}},"name":{},"text":{"22":{},"23":{},"34":{},"35":{},"39":{},"51":{},"58":{},"60":{},"77":{}},"component":{},"keyword":{}}],["insight",{"_index":140,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["insist",{"_index":4991,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["inspect",{"_index":2632,"title":{"58-7":{}},"name":{},"text":{"31":{},"32":{},"34":{},"58":{},"71":{},"79":{}},"component":{},"keyword":{}}],["instal",{"_index":851,"title":{"20-3":{}},"name":{},"text":{"7":{},"8":{},"14":{},"16":{},"17":{},"18":{},"20":{},"31":{},"35":{},"39":{},"51":{},"62":{},"64":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["instanc",{"_index":862,"title":{},"name":{},"text":{"7":{},"8":{},"15":{},"19":{},"22":{},"23":{},"29":{},"30":{},"31":{},"35":{},"37":{},"38":{},"39":{},"40":{},"41":{},"44":{},"45":{},"46":{},"47":{},"48":{},"50":{},"51":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"65":{},"69":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{},"81":{}},"component":{},"keyword":{}}],["instanceof",{"_index":5403,"title":{},"name":{},"text":{"51":{},"53":{},"55":{},"67":{}},"component":{},"keyword":{}}],["instanti",{"_index":1369,"title":{},"name":{},"text":{"15":{},"29":{},"30":{},"39":{},"41":{},"43":{},"44":{},"51":{},"53":{},"55":{},"58":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["instead",{"_index":391,"title":{},"name":{},"text":{"3":{},"8":{},"18":{},"28":{},"31":{},"34":{},"35":{},"36":{},"39":{},"41":{},"47":{},"51":{},"52":{},"57":{},"59":{},"62":{},"64":{},"66":{},"67":{},"70":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["instruct",{"_index":1170,"title":{},"name":{},"text":{"9":{},"20":{},"39":{},"77":{},"80":{}},"component":{},"keyword":{}}],["insuffici",{"_index":8151,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["int",{"_index":1261,"title":{},"name":{},"text":{"13":{},"35":{},"41":{},"46":{},"48":{},"50":{},"51":{},"52":{},"53":{},"57":{},"58":{},"61":{},"67":{},"71":{},"75":{}},"component":{},"keyword":{}}],["int[]{100",{"_index":8609,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["integ",{"_index":2029,"title":{},"name":{},"text":{"23":{},"39":{},"50":{},"53":{},"62":{},"73":{},"77":{}},"component":{},"keyword":{}}],["integr",{"_index":93,"title":{"38-5":{}},"name":{},"text":{"1":{},"3":{},"7":{},"8":{},"11":{},"14":{},"29":{},"31":{},"36":{},"38":{},"52":{},"62":{},"65":{},"79":{}},"component":{},"keyword":{}}],["intellij",{"_index":13,"title":{},"name":{},"text":{"1":{},"13":{}},"component":{},"keyword":{}}],["intellij.xml",{"_index":1243,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["intellijâ",{"_index":1244,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["intend",{"_index":5687,"title":{},"name":{},"text":{"51":{},"63":{}},"component":{},"keyword":{}}],["intent",{"_index":5815,"title":{},"name":{},"text":{"51":{},"70":{},"71":{}},"component":{},"keyword":{}}],["inter",{"_index":6194,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["interact",{"_index":721,"title":{},"name":{},"text":{"4":{},"13":{},"38":{},"39":{},"41":{},"44":{},"48":{},"51":{},"53":{},"57":{},"58":{},"63":{},"64":{},"71":{},"73":{}},"component":{},"keyword":{}}],["intercept",{"_index":7950,"title":{},"name":{},"text":{"71":{},"79":{}},"component":{},"keyword":{}}],["interest",{"_index":162,"title":{},"name":{},"text":{"1":{},"3":{},"4":{},"6":{},"8":{},"10":{},"11":{},"29":{},"45":{},"46":{},"53":{},"54":{},"55":{},"57":{},"58":{},"71":{},"73":{},"75":{},"76":{}},"component":{},"keyword":{}}],["interfac",{"_index":1379,"title":{},"name":{},"text":{"15":{},"19":{},"20":{},"22":{},"23":{},"24":{},"35":{},"38":{},"44":{},"46":{},"47":{},"48":{},"51":{},"52":{},"57":{},"58":{},"62":{},"66":{},"67":{},"71":{},"73":{},"74":{},"75":{},"77":{},"79":{},"80":{}},"component":{},"keyword":{}}],["interfer",{"_index":7814,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["interim",{"_index":7529,"title":{"71-70":{}},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["interimhead",{"_index":8133,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["interleav",{"_index":1300,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["intermediari",{"_index":3616,"title":{},"name":{},"text":{"35":{},"71":{}},"component":{},"keyword":{}}],["intermitt",{"_index":878,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["intern",{"_index":741,"title":{},"name":{},"text":{"4":{},"6":{},"23":{},"31":{},"33":{},"34":{},"41":{},"43":{},"45":{},"46":{},"47":{},"49":{},"51":{},"52":{},"62":{},"66":{},"71":{}},"component":{},"keyword":{}}],["internet",{"_index":1908,"title":{},"name":{},"text":{"22":{},"28":{},"31":{},"41":{},"57":{},"70":{}},"component":{},"keyword":{}}],["interpret",{"_index":1858,"title":{},"name":{},"text":{"22":{},"32":{},"35":{},"36":{},"41":{},"42":{},"57":{},"62":{},"69":{},"70":{},"71":{},"75":{},"76":{}},"component":{},"keyword":{}}],["interrog",{"_index":8474,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["interv",{"_index":1821,"title":{},"name":{},"text":{"22":{},"28":{},"31":{},"39":{},"62":{},"77":{}},"component":{},"keyword":{}}],["intervalsec",{"_index":8314,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["intra",{"_index":5655,"title":{},"name":{},"text":{"51":{},"57":{}},"component":{},"keyword":{}}],["intrins",{"_index":4996,"title":{},"name":{},"text":{"46":{},"71":{}},"component":{},"keyword":{}}],["intro",{"_index":1812,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["introduc",{"_index":83,"title":{"53-1":{},"55-1":{}},"name":{},"text":{"1":{},"30":{},"31":{},"34":{},"35":{},"41":{},"43":{},"51":{},"52":{},"57":{},"66":{},"67":{},"70":{}},"component":{},"keyword":{}}],["introduct",{"_index":5352,"title":{"51-1":{},"64-1":{},"73-1":{},"74-1":{}},"name":{},"text":{"51":{},"67":{},"71":{},"82":{}},"component":{},"keyword":{}}
1],["invalid",{"_index":1205,"title":{},"name":{},"text":{"10":{},"31":{},"35":{},"39":{},"45":{},"51":{},"58":{},"63":{},"71":{},"73":{},"74":{},"77":{}},"component":{},"keyword":{}}],["invalidateonshutdown",{"_index":8389,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["invert",{"_index":8014,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["invoc",{"_index":1572,"title":{},"name":{},"text":{"19":{},"24":{},"46":{},"51":{},"52":{},"56":{},"58":{},"60":{},"66":{},"71":{},"78":{},"81":{}},"component":{},"keyword":{}}],["invocable.combine(invocationtyp",{"_index":8619,"title":{},"name":{},"text":{"78":{}},"component":{},"keyword":{}}],["invocable.invocationtyp",{"_index":5882,"title":{},"name":{},"text":{"52":{},"78":{}},"component":{},"keyword":{}}],["invocable.invocationtype.non_block",{"_index":8621,"title":{},"name":{},"text":{"78":{}},"component":{},"keyword":{}}],["invocable.task",{"_index":6184,"title":{},"name":{},"text":{"56":{},"78":{}},"component":{},"keyword":{}}],["invocable.task.abstract(invocable.invocationtype.non_block",{"_index":6187,"title":{},"name":{},"text":{"56":{}},"component":{},"keyword":{}}],["invocable.task.abstract(invocationtype.non_block",{"_index":8632,"title":{},"name":{},"text":{"78":{}},"component":{},"keyword":{}}],["invocationtyp",{"_index":4967,"title":{"56-3":{},"56-4":{},"66-5":{},"78-1":{},"78-2":{},"78-3":{}},"name":{},"text":{"46":{},"52":{},"56":{},"66":{},"71":{},"78":{}},"component":{},"keyword":{}}],["invocationtype.non_block",{"_index":4969,"title":{},"name":{},"text":{"46":{},"71":{}},"component":{},"keyword":{}}],["invok",{"_index":1011,"title":{},"name":{},"text":{"8":{},"18":{},"19":{},"28":{},"34":{},"41":{},"44":{},"45":{},"46":{},"48":{},"50":{},"51":{},"52":{},"53":{},"55":{},"56":{},"57":{},"58":{},"60":{},"62":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{},"81":{},"83":{}},"component":{},"keyword":{}}],["invokeappl",{"_index":8275,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["invokeapplication(request",{"_index":8273,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["involv",{"_index":781,"title":{},"name":{},"text":{"6":{},"45":{},"56":{},"71":{}},"component":{},"keyword":{}}],["io",{"_index":4493,"title":{},"name":{"46":{},"57":{},"75":{}},"text":{"41":{},"71":{},"81":{}},"component":{},"keyword":{}}],["ioexcept",{"_index":4862,"title":{},"name":{},"text":{"46":{},"59":{},"71":{},"79":{}},"component":{},"keyword":{}}],["ioexception(\"unexpect",{"_index":5564,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["ip",{"_index":1912,"title":{},"name":{},"text":{"22":{},"31":{},"33":{},"34":{},"35":{},"48":{},"51":{},"56":{},"71":{},"75":{},"79":{}},"component":{},"keyword":{}}],["ip:port",{"_index":7558,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["ipv4",{"_index":3409,"title":{},"name":{},"text":{"33":{},"75":{}},"component":{},"keyword":{}}],["ipv6",{"_index":3410,"title":{},"name":{},"text":{"33":{},"51":{},"75":{}},"component":{},"keyword":{}}],["irrelev",{"_index":2380,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["isen",{"_index":5215,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["isfoo",{"_index":4767,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["isidinuse(str",{"_index":8323,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["isnât",{"_index":1097,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["iso",{"_index":3476,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["isol",{"_index":900,"title":{},"name":{},"text":{"7":{},"71":{}},"component":{},"keyword":{}}],["isolated(\"access",{"_index":899,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["ispassiv",{"_index":8426,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["ispng",{"_index":6340,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["ispost",{"_index":8155,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["issu",{"_index":41,"title":{"3-1":{},"4-9":{},"6-3":{}},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"6":{},"7":{},"10":{},"11":{},"12":{},"22":{},"28":{},"29":{},"31":{},"33":{},"35":{},"39":{},"41":{},"45":{},"46":{},"51":{},"52":{},"62":{},"66":{},"67":{},"71":{},"79":{},"81":{}},"component":{},"keyword":{}}],["issuer",{"_index":3024,"title":{},"name":{},"text":{"31":{},"40":{},"65":{}},"component":{},"keyword":{}}],["it'",{"_index":6240,"title":{},"name":{},"text":{"57":{},"73":{}},"component":{},"keyword":{}}],["ital",{"_index":8008,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["item",{"_index":2273,"title":{"44-10":{}},"name":{},"text":{"28":{},"33":{},"35":{},"36":{},"39":{},"44":{},"71":{},"77":{}},"component":{},"keyword":{}}],["item>@port8080</item",{"_index":1970,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["item>@port9090</item",{"_index":1971,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["item>^tls_dhe_.*$</item",{"_index":3826,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["item>domain.biz</item",{"_index":1962,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["item>hobby.net</item",{"_index":1965,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["item>
1host</item",{"_index":4778,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["item>literalstring</item",{"_index":4783,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["item>mywebapp.com</item",{"_index":1947,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["item>mywebapp.net</item",{"_index":1949,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["item>org.eclipse.jetty.ee11.security.jaspi.modules.basicauthenticationauthmodule</item",{"_index":4075,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["item>org.eclipse.jetty.ee11.security.jaspi.modules.realmname</item",{"_index":4077,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["item>serverauthmodule</item",{"_index":4074,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["item>test",{"_index":4078,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["item>tls_chacha20_poly1305_sha256</item",{"_index":3827,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["item>tlsv1.0</item",{"_index":3823,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["item>tlsv1.1</item",{"_index":3824,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["item>www.mywebapp.com</item",{"_index":1948,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["item>www.mywebapp.net</item",{"_index":1950,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["iter",{"_index":4943,"title":{},"name":{},"text":{"46":{},"58":{},"67":{},"71":{},"75":{},"81":{}},"component":{},"keyword":{}}],["iteratingcallback",{"_index":4944,"title":{"66-10":{}},"name":{},"text":{"46":{},"58":{},"66":{},"75":{}},"component":{},"keyword":{}}],["iteratingcallback.iter",{"_index":4945,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["iteratingcallback.oncompletefailure(throw",{"_index":7063,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["iteratingcallback.onfailure(throw",{"_index":7064,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["iteratingcallback.process",{"_index":4946,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["itself",{"_index":369,"title":{},"name":{},"text":{"3":{},"7":{},"11":{},"18":{},"22":{},"24":{},"34":{},"36":{},"41":{},"46":{},"48":{},"51":{},"52":{},"57":{},"58":{},"62":{},"67":{},"71":{},"75":{},"77":{}},"component":{},"keyword":{}}],["itâ",{"_index":86,"title":{},"name":{},"text":{"1":{},"6":{},"8":{},"29":{},"33":{},"35":{},"41":{},"44":{},"51":{},"62":{},"71":{}},"component":{},"keyword":{}}],["j2me",{"_index":317,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["j_security_check",{"_index":6876,"title":{},"name":{},"text":{"63":{},"65":{}},"component":{},"keyword":{}}],["jaa",{"_index":1333,"title":{"36":{},"36-2":{},"36-3":{},"36-4":{}},"name":{"36":{}},"text":{"14":{},"21":{},"36":{},"48":{},"63":{}},"component":{},"keyword":{}}],["jaas.xml",{"_index":3945,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["jaasloginservic",{"_index":6887,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["jakarta",{"_index":259,"title":{"26":{},"32":{},"19-3":{},"22-4":{},"22-18":{},"36-3":{},"40-2":{},"41-13":{},"59-5":{},"63-2":{},"69-4":{}},"name":{},"text":{"2":{},"8":{},"14":{},"15":{},"17":{},"19":{},"20":{},"21":{},"22":{},"23":{},"26":{},"31":{},"32":{},"34":{},"35":{},"37":{},"38":{},"40":{},"41":{},"43":{},"59":{},"60":{},"62":{},"63":{},"66":{},"67":{},"69":{},"71":{},"79":{}},"component":{},"keyword":{}}],["jakarta.activ",{"_index":2097,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["jakarta.mail",{"_index":2096,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["jakarta.mail.sess",{"_index":2074,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["jakarta.mod",{"_index":7135,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["jakarta.servlet",{"_index":925,"title":{},"name":{},"text":{"7":{},"39":{},"69":{}},"component":{},"keyword":{}}],["jakarta.servlet.http.cooki",{"_index":5734,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["jakarta.servlet.http.httpservlet",{"_index":6497,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["jakarta.servlet.http.httpservletrequest",{"_index":6498,"title":{},"name":{},"text":{"59":{},"71":{}},"component":{},"keyword":{}}],["jakarta.servlet.http.httpservletrespons",{"_index":6499,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["jakarta.servlet.servletcontaineriniti",{"_index":1499,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["jakarta.servlet.servletexcept",{"_index":6496,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["jakarta.transaction.usertransact",{"_index":2102,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["jakarta.websocket",{"_index":8639,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["jakarta.websocket.endpoint",{"_index":8652,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["jakarta.websocket.server.serverapplicationconfig",{"_index":8653,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["jakarta.websocket.server.servercontain",{"_index":8644,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["jakartaauthent",{"_index":4056,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}
1],["jakartae",{"_index":263,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["jakartaenv",{"_index":7444,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["jakartaenvbuild",{"_index":7441,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["jakartaenvbuilder.addclasspath(\"/path/to/jakarta.servlet",{"_index":7442,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["jakartaenvbuilder.addclasspath(\"/path/to/jetti",{"_index":7443,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["jakartaenvbuilder.build",{"_index":7445,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["jakartaenvconfig",{"_index":7449,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["jakartaenvconfig.setdefaultcontexthandlerclassname(\"org.eclipse.jetty.ee11.webapp.webappcontext",{"_index":7451,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["jakartaenvconfig.setdefaultsdescriptor(\"/path/to/ee11",{"_index":7452,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["jakartawebsocketservletcontaineriniti",{"_index":8645,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["jakartawebsocketservletcontainerinitializer.configur",{"_index":8651,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["jakartawebsocketservletcontainerinitializer.configure(handl",{"_index":8650,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["jan",{"_index":655,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["januari",{"_index":225,"title":{},"name":{},"text":{"2":{},"4":{}},"component":{},"keyword":{}}],["jar",{"_index":359,"title":{},"name":{},"text":{"2":{},"8":{},"18":{},"19":{},"20":{},"22":{},"24":{},"26":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"38":{},"39":{},"40":{},"41":{},"43":{},"45":{},"60":{},"62":{},"64":{},"69":{},"71":{},"79":{}},"component":{},"keyword":{}}],["jar$</arg",{"_index":1548,"title":{},"name":{},"text":{"19":{},"26":{}},"component":{},"keyword":{}}],["jar$|.*/bar",{"_index":1531,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["jar$|.*/classes/.*</arg",{"_index":1532,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["jar$|.*/javax.servlet.jsp.jstl",{"_index":2238,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["jar$|.*/jsf",{"_index":2241,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["jar$|.*/org.apache.taglibs.taglib",{"_index":2239,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["jar$|.*jakarta.servlet.jsp.jstl",{"_index":2751,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jar$|.*wasp",{"_index":2750,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jar$|.jakarta.servlet.jsp.jstl",{"_index":6678,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["jar`",{"_index":7432,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["jar|.taglib",{"_index":6679,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["jasper",{"_index":2246,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["jaspi",{"_index":4051,"title":{"38":{},"38-2":{},"38-3":{},"38-4":{}},"name":{"38":{}},"text":{"38":{},"67":{}},"component":{},"keyword":{}}],["jaspi.mod",{"_index":7124,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["jaspi/jakarta.authent",{"_index":4058,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["jaspiauthent",{"_index":6883,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["jaspiauthenticatorfactori",{"_index":4085,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["java",{"_index":57,"title":{"28":{},"13-2":{},"52-13":{},"67-1":{},"68-1":{}},"name":{},"text":{"1":{},"2":{},"7":{},"8":{},"12":{},"13":{},"14":{},"18":{},"20":{},"22":{},"24":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"50":{},"51":{},"52":{},"55":{},"56":{},"57":{},"60":{},"62":{},"64":{},"66":{},"67":{},"68":{},"69":{},"71":{},"74":{},"75":{},"79":{},"80":{},"81":{},"84":{}},"component":{},"keyword":{}}],["java'",{"_index":5114,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["java.bas",{"_index":4763,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["java.hom",{"_index":4454,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["java.io.ioexcept",{"_index":6495,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["java.io.tmpdir",{"_index":2331,"title":{},"name":{},"text":{"28":{},"41":{}},"component":{},"keyword":{}}],["java.lang.boolean",{"_index":2040,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["java.lang.byt",{"_index":2039,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["java.lang.charact",{"_index":2038,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["java.lang.doubl",{"_index":2035,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["java.lang.float",{"_index":2034,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["java.lang.foreign.addresslayout",{"_index":6131,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["java.lang.foreign.addresslayout::withtargetlayout",{"_index":6132,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["java.lang.illegalaccessexcept",{"_index":4759,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["java.lang.integ",{"_index":2033,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["java.lang.long",{"_index":2036,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["java.lang.object",{"_index":5245,"title":{},"name":{},"text":{"48":{},"51":{}},"component":{},"keyword":{}}],["java.lang.short",{"_index":2037,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["java.lang.str",{"_index":2032,"title":{},"name":{},"text":{"23":{},"44":{},"71":{}},"component":{},"keyword":{}}],["java.lang.system",{"_index":5526,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["java.lang.system::loadlibrari",{"_index":5527,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["java.net.cookiestor",{"_index":5702,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["java.net.inetaddress",{"_index":4807,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["java.net.url",{"_index":4806,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["java.nio.channels.datagramchannel",{"_index":7582,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["java.nio.channels.selectablechannel",{"_index":4857,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["java.nio.channels.selectionkey",{"_index":4856,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["java.nio.channels.selector",{"_index":4855,"title":{},"name":{},"text":{"46":{},"52":{}},"component":{},"keyword":{}}],["java.nio.channels.serversocketchannel",{"_index":7580,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["java.nio.channels.socketchannel",{"_index":4858,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["java.nio.fil",{"_index":5445,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["java.nio.file.path",{"_index":5485,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["java.nio.selector",{"_index":6218,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["java.rmi.server.hostnam",{"_index":2179,"title":{},"name":{},"text":{"24":{},"31":{},"48":{}},"component":{},"keyword":{}}],["java.runtime.nam",{"_index":4462,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["java.runtime.vers",{"_index":4463,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["java.security.auth.login.config",{"_index":3946,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["java.sql",{"_index":4710,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["java.sql.connect",{"_index":8016,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["java.tim",{"_index":3109,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}
1],["java.time.zoneid",{"_index":2628,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["java.util.concurrent.executor",{"_index":5896,"title":{},"name":{},"text":{"52":{},"57":{}},"component":{},"keyword":{}}],["java.util.concurrent.executors$delegatedexecutorservic",{"_index":4762,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["java.util.concurrent.executorservic",{"_index":4764,"title":{},"name":{},"text":{"44":{},"52":{}},"component":{},"keyword":{}}],["java.util.concurrent.locks.condit",{"_index":5483,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["java.util.concurrent.timeoutexcept",{"_index":5452,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["java.util.d",{"_index":5335,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["java.util.eventlisten",{"_index":5139,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["java.util.locale.forlanguagetag",{"_index":3110,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["java.util.log",{"_index":3446,"title":{"34-9":{}},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["java.util.logging.config.fil",{"_index":3505,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["java.util.map",{"_index":4776,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["java.util.zip.deflat",{"_index":2583,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["java.vers",{"_index":4472,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["java.version.platform",{"_index":4474,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["java.version=21.0.8",{"_index":4512,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["java.vm.info",{"_index":4461,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["java.vm.nam",{"_index":4459,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["java.vm.vendor",{"_index":4456,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["java.vm.vers",{"_index":4458,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["java/jakarta",{"_index":2743,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["java:comp",{"_index":2017,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["java:comp/env",{"_index":2018,"title":{},"name":{},"text":{"23":{},"36":{}},"component":{},"keyword":{}}],["java:comp/env/${dnjndinam",{"_index":4000,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["java:comp/env/jdbc/<datasourc",{"_index":2063,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["java:comp/env/jdbc/us",{"_index":2065,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["java:comp/env/jms/inqueu",{"_index":2073,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}
1],["java:comp/env/mail/sess",{"_index":2090,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["java:comp/env/mail/smtp",{"_index":2095,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["java:comp/env/myspecialvalu",{"_index":2028,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["java:comp/usertransact",{"_index":2098,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["java_home/bin/keytool",{"_index":3380,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["java_home/conf/management/jmxremote.access",{"_index":5187,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["java_home/conf/management/jmxremote.password.templ",{"_index":5191,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["javaag",{"_index":4439,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["javabean",{"_index":4765,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["javadoc",{"_index":1255,"title":{},"name":{},"text":{"13":{},"35":{},"45":{},"46":{},"51":{},"53":{},"55":{},"57":{},"58":{},"62":{},"67":{},"71":{},"73":{},"74":{},"77":{}},"component":{},"keyword":{}}],["javae",{"_index":266,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["javaencod",{"_index":2306,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["javascript",{"_index":7731,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["javaserv",{"_index":2242,"title":{"27":{}},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["javax",{"_index":351,"title":{},"name":{},"text":{"2":{},"22":{},"35":{},"68":{}},"component":{},"keyword":{}}],["javax.management.remote.jmxconnectorserv",{"_index":2191,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["javax.naming.refer",{"_index":2041,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["javax.naming.referenc",{"_index":2042,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["javax.net.ssl.sslparameters#setendpointidentificationalgorithm(str",{"_index":3228,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["javax.security.auth.spi.loginmodul",{"_index":3963,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["javax.servlet",{"_index":931,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["javax.servlet.context.tempdir",{"_index":2330,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["javax.servlet.httpservlet",{"_index":8710,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["javax.servlet.servletcontaineriniti",{"_index":1498,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["javax.sql.datasourc",{"_index":2061,"title":{},"name":{},"text":{"23":{},"36":{},"43":{}},"component":{},"keyword":{}}],["javax.util.serviceload",{"_index":1519,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["javax.websocket",{"_index":286,"title":{},"name":{},"text":{"2":{},"35":{},"58":{},"79":{}},"component":{},"keyword":{}}],["javaxwebsocketservletcontaineriniti",{"_index":8649,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["javaâ",{"_index":2139,"title":{},"name":{},"text":{"24":{},"51":{},"52":{},"71":{}},"component":{},"keyword":{}}],["jax",{"_index":7904,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["jcl",{"_index":3501,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["jconsol",{"_index":5209,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["jdbc",{"_index":1906,"title":{"39-14":{}},"name":{},"text":{"22":{},"23":{},"31":{},"34":{},"36":{},"39":{},"41":{},"42":{},"43":{},"63":{},"71":{},"77":{}},"component":{},"keyword":{}}],["jdbc.ini",{"_index":4230,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jdbc/employe",{"_index":2116,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["jdbc/myd",{"_index":2045,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["jdbc/user",{"_index":2064,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["jdbc/workforc",{"_index":2115,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["jdbc:mysql://127.0.0.1:3306/sessions?user=sessionsadmin",{"_index":4237,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["jdbcloginmodul",{"_index":3933,"title":{"36-6":{}},"name":{},"text":{},"component":{},"keyword":{}}],["jdbcloginservic",{"_index":6884,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["jdbcsessiondatastor",{"_index":8288,"title":{"77-18":{}},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["jdbcsessiondatastorefactori",{"_index":8470,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["jdk",{"_index":816,"title":{"7-1":{}},"name":{},"text":{"7":{},"33":{},"35":{},"42":{},"43":{},"44":{},"48":{},"51":{},"71":{}},"component":{},"keyword":{}}],["jdk.internal.loader.classloaders$appclassloader@639fee48",{"_index":8935,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["jdk.internal.loader.classloaders$platformclassloader@1f9e9475",{"_index":8940,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["jdk18on",{"_index":3283,"title":{},"name":{},"text":{"31":{},"35":{}},"component":{},"keyword":{}}
1],["jdk18on/${bouncycastle.version}|lib/bouncycastle/bcpkix",{"_index":3282,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jdk18on/${bouncycastle.version}|lib/bouncycastle/bcprov",{"_index":3286,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jdk18on/${bouncycastle.version}|lib/bouncycastle/bcutil",{"_index":3288,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jdk18on/1.85/bcpkix",{"_index":3577,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jdk18on/1.85/bcprov",{"_index":3581,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jdk18on/1.85/bcutil",{"_index":3584,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jdk9",{"_index":356,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["jdkâ",{"_index":6126,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["jdt",{"_index":2276,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["jdwp",{"_index":8758,"title":{},"name":{},"text":{"80":{}},"component":{},"keyword":{}}],["jep",{"_index":5356,"title":{},"name":{},"text":{"51":{},"57":{}},"component":{},"keyword":{}}],["jetbrain",{"_index":17,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["jetti",{"_index":7,"title":{"2":{},"3":{},"5":{},"7":{},"14":{},"16":{},"17":{},"21":{},"25":{},"29":{},"30":{},"34":{},"35":{},"41":{},"42":{},"43":{},"44":{},"46":{},"47":{},"48":{},"49":{},"50":{},"52":{},"60":{},"62":{},"63":{},"66":{},"67":{},"68":{},"81":{},"82":{},"2-4":{},"3-2":{},"4-5":{},"4-6":{},"4-7":{},"18-2":{},"20-2":{},"20-3":{},"20-4":{},"22-5":{},"22-6":{},"22-7":{},"22-14":{},"22-16":{},"22-17":{},"22-18":{},"23-9":{},"35-23":{},"35-26":{},"38-5":{},"38-6":{},"39-25":{},"39-34":{},"39-35":{},"41-11":{},"41-14":{},"41-15":{},"41-17":{},"44-1":{},"45-1":{},"45-4":{},"46-1":{},"46-2":{},"46-3":{},"46-4":{},"46-5":{},"46-6":{},"47-1":{},"47-2":{},"48-6":{},"58-8":{},"59-1":{},"59-5":{},"61-3":{},"62-6":{},"63-1":{},"65-2":{},"67-4":{},"67-6":{},"69-2":{},"69-3":{},"71-25":{},"71-27":{},"71-60":{},"79-12":{},"84-1":{}},"name":{"59":{},"60":{},"62":{}},"text":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"83":{},"84":{}},"component":{"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{}},"keyword":{}}],["jetty'",{"_index":7684,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["jetty(12.1.13",{"_index":2907,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.acceptratelimit.acceptratelimit=1000",{"_index":2519,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.acceptratelimit.period=1000",{"_index":2520,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.acceptratelimit.units=millisecond",{"_index":2521,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.alpn.defaultprotocol=http/1.1",{"_index":2511,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.alpn.protocols=h2,http/1.1",{"_index":2510,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.bas",{"_index":1626,"title":{},"name":{},"text":{"20":{},"41":{}},"component":{},"keyword":{}}],["jetty.base.uri",{"_index":4475,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.base.uri='file:///path/to/jetty.hom",{"_index":4514,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.base='/path/to/jetty.hom",{"_index":4513,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}
1],["jetty.base=<directori",{"_index":4653,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.base}/environ",{"_index":1713,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["jetty.base}/lib/bouncycastl",{"_index":3575,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jetty.base}/lib/bouncycastle/bcpkix",{"_index":3579,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jetty.base}/lib/bouncycastle/bcprov",{"_index":3582,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jetty.base}/lib/bouncycastle/bcutil",{"_index":3585,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jetty.base}/lib/postgresql",{"_index":4494,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.base}/modules/*.mod",{"_index":4610,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.base}/resourc",{"_index":1636,"title":{},"name":{},"text":{"20":{},"34":{},"35":{},"41":{}},"component":{},"keyword":{}}],["jetty.base}/resources/jetti",{"_index":1639,"title":{},"name":{},"text":{"20":{},"34":{},"35":{}},"component":{},"keyword":{}}],["jetty.base}/start.d",{"_index":1630,"title":{},"name":{},"text":{"20":{},"34":{},"35":{},"41":{}},"component":{},"keyword":{}}],["jetty.base}/start.d/*.ini",{"_index":4624,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.base}/start.d/bytebufferpool.ini",{"_index":4447,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.base}/start.d/ee11",{"_index":1709,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["jetty.base}/start.d/forwarded.ini",{"_index":3869,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jetty.base}/start.d/http",{"_index":4448,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.base}/start.d/http.ini",{"_index":1633,"title":{},"name":{},"text":{"20":{},"34":{},"41":{}},"component":{},"keyword":{}}],["jetty.base}/start.d/https.ini",{"_index":3569,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jetty.base}/start.d/jvm.ini",{"_index":4451,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.base}/start.d/postgresql.ini",{"_index":4453,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.base}/start.d/proxi",{"_index":3874,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jetty.base}/start.d/scheduler.ini",{"_index":4449,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.base}/start.d/server.ini",{"_index":4452,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.base}/start.d/ssl.ini",{"_index":3570,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jetty.base}/start.d/test",{"_index":3573,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jetty.base}/start.d/threadpool.ini",{"_index":4450,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.base}/start.ini",{"_index":4623,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.base}/webapp",{"_index":1712,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["jetty.build",{"_index":4471,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.bytebufferpool.factor=4096",{"_index":2546,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.bytebufferpool.maxbuckets",{"_index":2548,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.bytebufferpool.maxcapacity=65536",{"_index":2545,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.bytebufferpool.maxdirectmemori",{"_index":2558,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.bytebufferpool.maxdirectmemory=0",{"_index":2553,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.bytebufferpool.maxheapmemori",{"_index":2556,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.bytebufferpool.maxheapmemory=0",{"_index":2552,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.bytebufferpool.mincapacity=0",{"_index":2544,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.bytebufferpool.statisticsenabled=fals",{"_index":2555,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.brotli.decoder.buffersize=16384",{"_index":2565,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.brotli.encoder.buffersize=4096",{"_index":2566,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.brotli.encoder.compressionlevel=11",{"_index":2567,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.brotli.encoder.lgwindow=22",{"_index":2572,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.brotli.encoder.strategy=0",{"_index":2569,"t
1itle":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.brotli.mincompresssize=48",{"_index":2563,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.gzip.decoder.buffersize=512",{"_index":2581,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.gzip.deflaterpool.capacity=1024",{"_index":2578,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.gzip.deflaterpool.compressionlevel",{"_index":2579,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.gzip.deflaterpool.nowrap=tru",{"_index":2580,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.gzip.encoder.buffersize=512",{"_index":2582,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.gzip.encoder.compressionlevel",{"_index":2584,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.gzip.encoder.strategy=0",{"_index":2588,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.gzip.encoder.syncflush=fals",{"_index":2592,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.gzip.inflaterpool.capacity=1024",{"_index":2575,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.gzip.inflaterpool.nowrap=tru",{"_index":2576,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.gzip.mincompresssize=32",{"_index":2573,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.zstandard.decoder.buffersize=128000",{"_index":2597,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.zstandard.decoder.magicless=fals",{"_index":2600,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.zstandard.encoder.buffersize=128000",{"_index":2601,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.zstandard.encoder.checksum=fals",{"_index":2608,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.zstandard.encoder.compressionlevel=3",{"_index":2603,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.zstandard.encoder.magicless=fals",{"_index":2606,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.zstandard.encoder.strategi",{"_index":2605,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.compression.zstandard.mincompresssize=48",{"_index":2594,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.consol",{"_index":2622,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.crossorigin.allowcredentials=fals",{"_index":2638,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.crossorigin.allowedheaders=cont",{"_index":2639,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.crossorigin.allowedmethods=get,post,head",{"_index":2640,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.crossorigin.allowedoriginpattern",{"_index":2642,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.crossorigin.allowedtimingoriginpattern",{"_index":2643,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.crossorigin.delivernonallowedoriginrequests=tru",{"_index":2647,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.crossorigin.delivernonallowedoriginwebsocketupgraderequests=fals",{"_index":2648,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.crossorigin.deliverpreflightrequests=fals",{"_index":2646,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.crossorigin.exposedhead",{"_index":2649,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.crossorigin.preflightmaxage=60",{"_index":2650,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}
1],["jetty.debug.showheaders=tru",{"_index":2667,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.debuglog.append=fals",{"_index":2663,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.debuglog.dir",{"_index":2654,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.debuglog.dir=log",{"_index":2662,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.debuglog.retaindays=90",{"_index":2664,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.debuglog.timezone=gmt",{"_index":2665,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.deploy.baseresource.dirallowed=<true|fals",{"_index":1761,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["jetty.deploy.baseresource.dirallowed=fals",{"_index":1819,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["jetty.deploy.baseresource=<pathtobaseresourc",{"_index":1759,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["jetty.deploy.configurationclass",{"_index":2748,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.deploy.containerscanjarpattern=.*/jakarta.servlet",{"_index":2749,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.deploy.contextpath",{"_index":1851,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["jetty.deploy.contextpath=<contextpath",{"_index":1758,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["jetty.deploy.defaultcontexthandlerclass=org.eclipse.jetty.ee11.webapp.webappcontext",{"_index":2781,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.deploy.defaultsdescriptorpath=${jetty.base}/etc/webdefault",{"_index":2744,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.deploy.deferinitialscan=fals",{"_index":2680,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.deploy.environmentsdir",{"_index":1742,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["jetty.deploy.environmentsdir=environ",{"_index":2673,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.deploy.extractwars=tru",{"_index":2745,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.deploy.parentloaderpriority=tru",{"_index":2747,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.deploy.scaninterv",{"_index":1820,"title":{},"name":{},"text":{"22":{},"31":{}},"component":{},"keyword":{}}],["jetty.deploy.scaninterval=0",{"_index":2677,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.deploy.scaninterval=5",{"_index":1828,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["jetty.deploy.servletcontainerinitializerexclusionpattern",{"_index":2753,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.deploy.servletcontainerinitializerord",{"_index":2754,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.deploy.webappsdir",{"_index":1741,"title":{},"name":{},"text":{"22":{},"31":{}},"component":{},"keyword":{}}],["jetty.deploy.webappsdir=webapp",{"_index":2672,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.deploy.webinfscanjarpattern",{"_index":2752,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.deploymod",{"_index":6620,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["jetty.dos.exclude.inet",{"_index":2713,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.dos.exclude.method",{"_index":2709,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.dos.exclude.path",{"_index":2711,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.dos.id.class=org.eclipse.jetty.server.handler.doshandl",{"_index":2689,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.dos.id.type=id_from_remote_address",{"_index":2688,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.dos.include.inet",{"_index":2712,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.dos.include.method",{"_index":2708,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.dos.include.path",{"_index":2710,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}
1],["jetty.dos.leakingbuckettracker.bucketsize=100",{"_index":2697,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.dos.leakingbuckettracker.idletimeout=1",{"_index":2698,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.dos.leakingbuckettracker.maxrequestspersecond=100",{"_index":2693,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.dos.maxtrackers=100000",{"_index":2702,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.dos.rejecthandler.delayed.delayms=1000",{"_index":2700,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.dos.rejecthandler.delayed.maxdelayqueue=1000",{"_index":2701,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.dos.rejecthandler=org.eclipse.jetty.server.handler.doshandler$delayedrejecthandl",{"_index":2692,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.dos.rejectstatus=429",{"_index":2707,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.dos.rejectuntracked=fals",{"_index":2705,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.dos.trackerfactory=org.eclipse.jetty.server.handler.doshandler$leakingbuckettrackerfactori",{"_index":2690,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.eager.content.framingoverhead",{"_index":2734,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.eager.content.maxretainedbyt",{"_index":2732,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.eager.content.rejectwhenexceeded=fals",{"_index":2736,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.eager.exclude.inet",{"_index":2742,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.eager.exclude.method",{"_index":2738,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.eager.exclude.path",{"_index":2740,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.eager.form.maxfield",{"_index":2719,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.eager.form.maxlength",{"_index":2721,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.eager.include.inet",{"_index":2741,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.eager.include.method",{"_index":2737,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.eager.include.path",{"_index":2739,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.eager.multipart.compliancemode=rfc7578",{"_index":2730,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.eager.multipart.location=/tmp",{"_index":2722,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.eager.multipart.maxheaderssize=8192",{"_index":2728,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.eager.multipart.maxmemorypartsize=1024",{"_index":2727,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.eager.multipart.maxparts=100",{"_index":2723,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.eager.multipart.maxpartsize=10485760",{"_index":2726,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.eager.multipart.maxsize=52428800",{"_index":2725,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.eager.multipart.usefilesforpartswithoutfilename=tru",{"_index":2729,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.graceful.shutdownidletimeout=1000",{"_index":2789,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.hashloginservice.config=etc/realm.properti",{"_index":3013,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.hashloginservice.fullvalidate=fals",{"_index":3015,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.hashloginservice.nam",{"_index":3009,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.hashloginservice.name=default",{"_index":3012,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.hashloginservice.reloadinterval=0",{"_index":3014,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.hom",{"_index":1612,"title":{},"name":{},"text":{"20":{},"41":{}},"component":{},"keyword":{}}],["jetty.home.uri",{"_index":4477,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.home.uri='file:///path/to/jetty.hom",{"_index":4516,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.home/start.jar",{"_index":6638,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["jetty.home='/path/to/jetty.hom",{"_index":4515,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.home=<directori",{"_index":4652,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.home}
1/etc/jetti",{"_index":4497,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.home}/etc/jetty.xml",{"_index":4499,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.home}/lib/jetti",{"_index":4492,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.home}/lib/logging/jetti",{"_index":4490,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.home}/lib/logging/slf4j",{"_index":4487,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.home}/modules/*.mod",{"_index":4611,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.home}/modules/logging/jetty/resources/jetti",{"_index":1637,"title":{},"name":{},"text":{"20":{},"34":{},"35":{}},"component":{},"keyword":{}}],["jetty.host}/start.jar",{"_index":4625,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.http.acceptedreceivebuffers",{"_index":2806,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http.acceptedsendbuffers",{"_index":2808,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http.acceptedtcpnodelay=tru",{"_index":2804,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http.acceptor",{"_index":2810,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http.acceptorprioritydelta=0",{"_index":2798,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http.acceptors=1",{"_index":2793,"title":{},"name":{},"text":{"31":{},"81":{}},"component":{},"keyword":{}}],["jetty.http.acceptqueuesize=0",{"_index":2796,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http.host",{"_index":3925,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jetty.http.host=0.0.0.0",{"_index":2791,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http.host=127.0.0.1",{"_index":3923,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jetty.http.idletimeout",{"_index":2809,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http.idletimeout=30000",{"_index":2792,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http.port",{"_index":1673,"title":{},"name":{},"text":{"20":{},"31":{},"41":{},"62":{}},"component":{},"keyword":{}}],["jetty.http.port=8080",{"_index":1672,"title":{},"name":{},"text":{"20":{},"31":{},"41":{}},"component":{},"keyword":{}}],["jetty.http.port=8282",{"_index":3924,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jetty.http.port=8888",{"_index":4626,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.http.port=9876",{"_index":4426,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.http.port=9999",{"_index":1676,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["jetty.http.reuseaddress=tru",{"_index":2800,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http.reuseport=fals",{"_index":2802,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http.selector",{"_index":2794,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http2.initialsessionrecvwindow=1048576",{"_index":2835,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http2.initialstreamrecvwindow=524288",{"_index":2834,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http2.maxconcurrentstreams=128",{"_index":2832,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http2.maxsettingskeys=64",{"_index":2837,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http2.ratecontrol.maxeventspersecond",{"_index":2841,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http2.ratecontrol.maxeventspersecond=128",{"_index":2840,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http2c.initialsessionrecvwindow=1232896",{"_index":2850,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http2c.initialstreamrecvwindow=524288",{"_index":2849,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http2c.maxconcurrentstreams=128",{"_index":2848,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http2c.maxsettingskeys=64",{"_index":2851,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http2c.ratecontrol.maxeventspersecond=128",{"_index":2852,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.http3.streamidletimeout=30000",{"_index":2863,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.compli",{"_index":2936,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.compliance=rfc9110",{"_index":2919,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.compliance=rfc9110,multiple_content_length",{"_index":2942,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.forwardedciphersuiteheader=proxi",{"_index":2984,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.forwardedforheader=x",{"_index":2980,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.forwardedheader=forward",{"_index":2975,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.forwardedhostheader=x",{"_index":2976,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.forwardedhttpsheader=x",{"_index":2982,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.forwardedonly=fals",{"_index":2972,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.forwardedportasauthority=tru",{"_index":2974,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.forwardedportheader=x",{"_index":2981,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.forwardedprotoheader=x",{"_index":2978,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.forwardedproxyasauthority=fals",{"_index":2973,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.forwardedserverheader=x",{"_index":2977,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.forwardedsslsessionidheader=proxi",{"_index":2983,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.generateredirectbody=fals",{"_index":2888,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.headercaches",{"_index":2894,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.headercachesize=1024",{"_index":2883,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.inputbuffersize=8192",{"_index":2870,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.maxerrordispatches=10",{"_index":2885,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.maxresponseheadersize=16384",{"_index":2878,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.mininputbufferspace=1024",{"_index":2891,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.multipartcompli",{"_index":2962,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.multipartcompliance=rfc7578",{"_index":2935,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.outputaggregations",{"_index":2900,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.outputaggregationsize=8192",{"_index":2872,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.outputbuffersize=32768",{"_index":2871,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.persistentconnectionsenabled=tru",{"_index":2874,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.redirecturicompliance=default_redirect",{"_index":2925,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.relativeredirectallowed=tru",{"_index":2886,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.requestcookiecompli",{"_index":2954,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.requestcookiecompliance=rfc6265",{"_index":2931,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.requestheaders",{"_index":2892,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.requestheadersize=8192",{"_index":2875,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.responsecookiecompli",{"_index":2955,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.responsecookiecompliance=rfc6265",{"_index":2932,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}
1],["jetty.httpconfig.responseheaders",{"_index":2877,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.responseheadersize=8192",{"_index":2876,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.secureport=8443",{"_index":2866,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.securescheme=http",{"_index":2865,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.senddateheader=fals",{"_index":2881,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.sendserververs",{"_index":2905,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.sendserverversion=tru",{"_index":2879,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.uricompli",{"_index":2945,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.uricompliance=default",{"_index":2923,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.uricompliance=rfc3986",{"_index":2948,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.useinputdirectbytebuffers=tru",{"_index":2889,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.httpconfig.useoutputdirectbytebuffers=tru",{"_index":2890,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.jaas.login.conf",{"_index":3949,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["jetty.jaas.login.conf=etc/login.conf",{"_index":3947,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["jetty.jmxremote.rmiregistryhost=localhost",{"_index":2992,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.jmxremote.rmiregistryport=1099",{"_index":2993,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.jmxremote.rmiserverhost=localhost",{"_index":2989,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.jmxremote.rmiserverport=1099",{"_index":2991,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.mindatarate.minreadrate=0",{"_index":3018,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.mindatarate.minwriterate=0",{"_index":3019,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.mod",{"_index":2414,"title":{},"name":{},"text":{"30":{},"67":{}},"component":{},"keyword":{}}],["jetty.networkconnectionlimit.endpointidletimeout=1000",{"_index":2614,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.networkconnectionlimit.maxnetworkconnectioncount=1000",{"_index":2610,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.openid.authenticatenewus",{"_index":4419,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["jetty.openid.authenticatenewusers=fals",{"_index":3035,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.openid.authenticationmethod=client_secret_post",{"_index":3039,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.openid.clientid",{"_index":3046,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.openid.clientid=test1234",{"_index":3031,"title":{},"name":{},"text":{"31":{},"40":{}},"component":{},"keyword":{}}],["jetty.openid.clientsecret",{"_index":3047,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.openid.clientsecret=xt_mafv_aucgheucaky8p",{"_index":3033,"title":{},"name":{},"text":{"31":{},"40":{}},"component":{},"keyword":{}}],["jetty.openid.logoutwhenidtokenisexpired=fals",{"_index":3042,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.openid.provid",{"_index":3043,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.openid.provider.authorizationendpoint=https://id.example.com/author",{"_index":3028,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.openid.provider.tokenendpoint=https://id.example.com/token",{"_index":3030,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.openid.provider=https://id.example.com",{"_index":3026,"title":{},"name":{},"text":{"31":{},"40":{}},"component":{},"keyword":{}}],["jetty.openid.scopes=email,profil",{"_index":3034,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.openid.sslcontextfactory.trustall=fals",{"_index":3036,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.proxy.contextpath",{"_index":2755,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.proxy.idletimeout=30000",{"_index":2768,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.proxy.maxconnections=256",{"_index":2767,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.proxy.maxrequestheaderssize=8192",{"_index":2772,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.proxy.maxresponseheaderssize=8192",{"_index":2773,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.proxy.maxthreads=128",{"_index":2766,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.proxy.prefix",{"_index":2764,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.proxy.prefix=/foo",{"_index":2762,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.proxy.proxyto",{"_index":2759,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.proxy.requestbuffersize=4096",{"_index":2770,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.proxy.responsebuffersize=16384",{"_index":2771,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.proxy.selectors=1",{"_index":2774,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}
1],["jetty.proxy.servletclass=org.eclipse.jetty.ee11.proxy.proxyservlet$transpar",{"_index":2756,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.proxy.servletmap",{"_index":2757,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.proxy.timeout=60000",{"_index":2769,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.qos.exclude.inet",{"_index":3059,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.qos.exclude.method",{"_index":3055,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.qos.exclude.path",{"_index":3057,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.qos.include.inet",{"_index":3058,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.qos.include.method",{"_index":3054,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.qos.include.path",{"_index":3056,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.qos.maxrequestcount=0",{"_index":3050,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.qos.maxsuspendduration=0",{"_index":3053,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.qos.maxsuspendedrequestcount=1024",{"_index":3051,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.quic.bidirectionalmaxstreams=131072",{"_index":2860,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.quic.host=0.0.0.0",{"_index":2857,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.quic.idletimeout=30000",{"_index":2859,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.quic.port=8444",{"_index":2858,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.quic.remotebidirectionalstreammaxdata=16777216",{"_index":2862,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.quic.sessionmaxdata=25165824",{"_index":2861,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.quickstart.mod",{"_index":3370,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["jetty.quickstart.origin",{"_index":3371,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["jetty.quickstart.xml",{"_index":3376,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["jetty.requestlog.append=fals",{"_index":3074,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.requestlog.dir=log",{"_index":3069,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.requestlog.filenamedateformat=yyyy_mm_dd",{"_index":3072,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.requestlog.filepath=${jetty.requestlog.dir}/yyyy_mm_dd.request.log",{"_index":3070,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.requestlog.formatstr",{"_index":3076,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.requestlog.formatstring=%{client}a",{"_index":3061,"title":{},"name":{},"text":{"31":{},"34":{}},"component":{},"keyword":{}}],["jetty.requestlog.retaindays=90",{"_index":3073,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.requestlog.rollover.timezone=gmt",{"_index":3075,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.requestlog.slf4j.loggername=com.example.requestlog",{"_index":3540,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["jetty.requestlog.slf4j.loggername=org.eclipse.jetty.server.requestlog",{"_index":3132,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.rewrite.originalpathattribute=jetty.rewrite.originalrequestpath",{"_index":3141,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.scheduler.daemon=fals",{"_index":3163,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.scheduler.nam",{"_index":3162,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.scheduler.threads=1",{"_index":3164,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.server.contexts.dynamic=tru",{"_index":3170,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.server.default.servefavicon=tru",{"_index":3173,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.server.default.showcontexts=tru",{"_index":3174,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.server.dumpafterstart",{"_index":3175,"title":{},"name":{},"text":{"31":{},"45":{}},"component":{},"keyword":{}}],["jetty.server.dumpafterstart=fals",{"_index":3166,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.server.dumpafterstart=tru",{"_index":4429,"title":{},"name":{},"text":{"41":{},"45":{},"81":{}},"component":{},"keyword":{}}],["jetty.server.dumpbeforestop",{"_index":3177,"title":{},"name":{},"text":{"31":{},"45":{}},"component":{},"keyword":{}}],["jetty.server.dumpbeforestop=fals",{"_index":3168,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.server.stopatshutdown",{"_index":3178,"title":{},"name":{},"text":{"31":{},"41":{}},"component":{},"keyword":{}}],["jetty.server.stopatshutdown=tru",{"_index":3165,"title":{},"name":{},"text":{"31":{},"41":{}},"component":{},"keyword":{}}],["jetty.server.stoptimeout=5000",{"_index":2785,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.server.tempdirectori",{"_index":3167,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.session.evictionpolici",{"_index":4189,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.file.deleteunrestorablefil",{"_index":4220,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.flushonresponsecommit",{"_index":4202,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.gcloud.backoffm",{"_index":4355,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.gcloud.maxretri",{"_index":4353,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.gcloud.model.access",{"_index":4367,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.gcloud.model.attribut",{"_index":4377,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.gcloud.model.contextpath",{"_index":4363,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.gcloud.model.cookiesettim",{"_index":4371,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.gcloud.model.createtim",{"_index":4370,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.gcloud.model.expiri",{"_index":4374,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.gcloud.model.id",{"_index":4362,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.gcloud.model.kind",{"_index":4360,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.gcloud.model.lastaccess",{"_index":4368,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.gcloud.model.lastnod",{"_index":4373,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.gcloud.model.maxinact",{"_index":4375,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.gcloud.model.vhost",{"_index":4365,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.gcloud.namespac",{"_index":4357,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.graceperiod.second",{"_index":4221,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.hazelcast.address",{"_index":4336,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.hazelcast.configurationloc",{"_index":4334,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.hazelcast.hazelcastinstancenam",{"_index":4338,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.hazelcast.mapnam",{"_index":4332,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.hazelcast.onlycli",{"_index":4333,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.hazelcast.usequeri",{"_index":4335,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.infinispan.idletimeout.second",{"_index":4300,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.infinispan.remotecachenam",{"_index":4299,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.invalidateonshutdown",{"_index":4204,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.jdbc.blobtyp",{"_index":4238,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.jdbc.datasourcenam",{"_index":4232,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.jdbc.driverclass",{"_index":4233,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.jdbc.driverurl",{"_index":4235,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.jdbc.longtyp",{"_index":4244,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.jdbc.schema.accesstimecolumn",{"_index":4260,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.jdbc.schema.catalognam",{"_index":4251,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.jdbc.schema.contextpathcolumn",{"_index":4262,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.jdbc.schema.cookietimecolumn",{"_index":4263,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.jdbc.schema.createtimecolumn",{"_index":4265,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.jdbc.schema.expirytimecolumn",{"_index":4267,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.jdbc.schema.idcolumn",{"_index":4272,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.jdbc.schema.lastaccesstimecolumn",{"_index":4269,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.jdbc.schema.lastnodecolumn",{"_index":4274,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.jdbc.schema.lastsavedtimecolumn",{"_index":4270,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.jdbc.schema.mapcolumn",{"_index":4279,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.jdbc.schema.maxintervalcolumn",{"_index":4277,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.jdbc.schema.schemanam",{"_index":4250,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.jdbc.schema.t",{"_index":4258,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.jdbc.schema.virtualhostcolumn",{"_index":4276,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.jdbc.stringtyp",{"_index":4248,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.memcached.expirysec",{"_index":4384,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.memcached.heartbeat",{"_index":4386,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.memcached.host",{"_index":4381,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.memcached.port",{"_index":4382,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.mongo.collectionnam",{"_index":4287,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.mongo.connectionstr",{"_index":4294,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.mongo.dbnam",{"_index":4285,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.mongo.host",{"_index":4290,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.mongo.port",{"_index":4291,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.removeunloadablesess",{"_index":4200,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.saveoncr",{"_index":4199,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.saveoninactiveevict",{"_index":4193,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.saveperiod.second",{"_index":4223,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.session.storedir",{"_index":4219,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.sessionidmanager.workernam",{"_index":4143,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}
1],["jetty.sessionscavengeinterval.second",{"_index":4153,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty.sh",{"_index":4618,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.sizelimit.maxrequestcontents",{"_index":3182,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sizelimit.maxresponsecontents",{"_index":3183,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.ssl.acceptedreceivebuffers",{"_index":3194,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.ssl.acceptedsendbuffers",{"_index":3195,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.ssl.acceptedtcpnodelay=tru",{"_index":3193,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.ssl.acceptor",{"_index":3210,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.ssl.acceptorprioritydelta=0",{"_index":3190,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.ssl.acceptors=1",{"_index":3187,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.ssl.acceptqueuesize=0",{"_index":3189,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.ssl.host=0.0.0.0",{"_index":3184,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.ssl.idletimeout",{"_index":3208,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.ssl.idletimeout=30000",{"_index":3186,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.ssl.port",{"_index":3206,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.ssl.port=8443",{"_index":3185,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.ssl.reuseaddress=tru",{"_index":3191,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.ssl.reuseport=fals",{"_index":3192,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.ssl.selector",{"_index":3188,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.ssl.snihostcheck",{"_index":3855,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jetty.ssl.snihostcheck=tru",{"_index":3201,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.ssl.snirequir",{"_index":3853,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jetty.ssl.snirequired=fals",{"_index":3198,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.ssl.snirequired=tru",{"_index":3854,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jetty.ssl.stsincludesubdomains=tru",{"_index":3205,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.ssl.stsmaxageseconds=31536000",{"_index":3204,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.alia",{"_index":3247,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.endpointidentificationalgorithm",{"_index":3229,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.excludeciphersuites=^.*_(md5|sha|sha1)$,^ssl_.*$,^.*_null_.*$,^.*_anon_",{"_index":3246,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.excludeprotocols=ssl,sslv2,sslv2hello,sslv3",{"_index":3244,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.includeciphersuit",{"_index":3245,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.includeprotocol",{"_index":3243,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.keymanagerfactoryalgorithm",{"_index":3254,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.keymanagerpassword",{"_index":3222,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.keystorepassword",{"_index":3218,"title":{},"name":{},"text":{"31":{},"35":{}},"component":{},"keyword":{}}],["jetty.sslcontext.keystorepassword=obf:1yta1t331v8w1v9q1t331ytc",{"_index":4678,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["jetty.sslcontext.keystorepassword?=obf:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4",{"_index":3300,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.keystorepath",{"_index":3258,"title":{},"name":{},"text":{"31":{},"35":{}},"component":{},"keyword":{}}],["jetty.sslcontext.keystorepath=etc/keystore.p12",{"_index":3217,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.keystorepath?=etc/test",{"_index":3297,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.keystoreprovid",{"_index":3220,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.keystoretype=pkcs12",{"_index":3219,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.keystoretype?=pkcs12",{"_index":3299,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.needclientauth",{"_index":3260,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.needclientauth=fals",{"_index":3230,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.protocol",{"_index":3242,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.provid",{"_index":3216,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.provider?=conscrypt",{"_index":2437,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}
1],["jetty.sslcontext.reload.scaninterval=1",{"_index":3263,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.renegotiationallowed=tru",{"_index":3238,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.renegotiationlimit=5",{"_index":3239,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.securerandomalgorithm",{"_index":3252,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.sessioncachingenabled=tru",{"_index":3257,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.snirequir",{"_index":3845,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jetty.sslcontext.snirequired=fals",{"_index":3241,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.snirequired=tru",{"_index":3849,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jetty.sslcontext.sslsessioncaches",{"_index":3235,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.sslsessiontimeout",{"_index":3236,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.trustmanagerfactoryalgorithm",{"_index":3256,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.truststorepassword",{"_index":3224,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.truststorepath=etc/keystore.p12",{"_index":3223,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.truststoreprovid",{"_index":3226,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.truststoretype=pkcs12",{"_index":3225,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.useciphersuitesorder=tru",{"_index":3233,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.validatecertificates=fals",{"_index":3248,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.validatepeercertificates=fals",{"_index":3250,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.wantclientauth",{"_index":3261,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.sslcontext.wantclientauth=fals",{"_index":3231,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.statetracking.completehandlercallbackattimeout=fals",{"_index":3271,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.statetracking.demandcallbacktimeout=0",{"_index":3273,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.statetracking.handlercallbacktimeout=0",{"_index":3270,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.statetracking.writecallbacktimeout=0",{"_index":3275,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.statetracking.writetimeout=0",{"_index":3274,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.systempropertiesfil",{"_index":6806,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["jetty.tag.vers",{"_index":4470,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.threadlimit.enabled=tru",{"_index":3307,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadlimit.exclude.inet",{"_index":3314,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadlimit.exclude.method",{"_index":3310,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadlimit.exclude.path",{"_index":3312,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadlimit.forwardedheader=forward",{"_index":3306,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadlimit.forwardedheader=x",{"_index":3305,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadlimit.include.inet",{"_index":3313,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadlimit.include.method",{"_index":3309,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadlimit.include.path",{"_index":3311,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}
1],["jetty.threadlimit.threadlimit=10",{"_index":3308,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.detaileddump",{"_index":3328,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.detaileddump=fals",{"_index":3326,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.idletimeout",{"_index":3330,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.idletimeout=60000",{"_index":3323,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.maxconcurrenttasks=200",{"_index":3333,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.maxevictcount=1",{"_index":3325,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.maxthread",{"_index":2427,"title":{},"name":{},"text":{"30":{},"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.maxthreads=200",{"_index":3320,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.minthreads=10",{"_index":3319,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.minthreads=4",{"_index":8771,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["jetty.threadpool.nameprefix",{"_index":3327,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.nameprefix=qtp<hashcod",{"_index":3318,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.nameprefix=vtp<hashcod",{"_index":3332,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.reservedthread",{"_index":3321,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.tracking=fals",{"_index":3335,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.usevirtualthreads=fals",{"_index":3322,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.virtual.allowsetthreadloc",{"_index":3348,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.virtual.allowsetthreadlocals=tru",{"_index":3345,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.virtual.inheritinheritablethreadloc",{"_index":3349,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.virtual.inheritinheritablethreadlocals=tru",{"_index":3347,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.virtual.maxconcurrenttask",{"_index":3344,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.virtual.maxconcurrenttasks=200",{"_index":3340,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.virtual.nameprefix",{"_index":3342,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.virtual.nameprefix=qtp<hashcod",{"_index":3339,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.virtual.track",{"_index":3343,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.threadpool.virtual.tracking=fals",{"_index":3341,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.vers",{"_index":4469,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.version}.jar",{"_index":3290,"title":{},"name":{},"text":{"31":{},"38":{}},"component":{},"keyword":{}}],["jetty.webapp.addhiddenclass",{"_index":4478,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty.webapp.addhiddenclasses+=,${jetty.base.uri}/lib/bouncycastl",{"_index":3296,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.webapp.addhiddenclasses+=,org.exampl",{"_index":2780,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.webapp.addhiddenclasses='org.eclipse.jetty.logging.,file:///path/to/jetty.home/lib/logging/,org.slf4j",{"_index":4517,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}
1],["jetty.webapp.addprotectedclasses+=,com.acm",{"_index":2434,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["jetty.webapp.addprotectedclasses+=,org.exampl",{"_index":2779,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.wellknown.dir=.wel",{"_index":3358,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.wellknown.listdirectories=fals",{"_index":3359,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty.xml",{"_index":2450,"title":{},"name":{},"text":{"30":{},"62":{}},"component":{},"keyword":{}}],["jetty//configure//en",{"_index":1511,"title":{},"name":{},"text":{"19":{},"22":{},"26":{},"29":{},"30":{},"31":{},"35":{},"36":{},"38":{},"44":{},"69":{}},"component":{},"keyword":{}}],["jetty/jakarta",{"_index":8638,"title":{"79-7":{}},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["jetty:effect",{"_index":6603,"title":{"62-19":{}},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["jetty:help",{"_index":6616,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["jetty:run",{"_index":6522,"title":{"62-9":{},"62-11":{},"62-27":{}},"name":{},"text":{"59":{},"62":{}},"component":{},"keyword":{}}],["jetty:start",{"_index":6601,"title":{"62-13":{},"62-15":{}},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["jetty:stop",{"_index":6602,"title":{"62-17":{}},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["jetty</id",{"_index":6710,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["jetty_bas",{"_index":1375,"title":{"18-3":{},"41-1":{}},"name":{},"text":{"15":{},"18":{},"20":{},"22":{},"24":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"41":{},"45":{}},"component":{},"keyword":{}}],["jetty_base/.wel",{"_index":3352,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty_base/environ",{"_index":1743,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["jetty_base/etc",{"_index":2417,"title":{},"name":{},"text":{"30":{},"36":{}},"component":{},"keyword":{}}],["jetty_base/etc/acm",{"_index":2388,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["jetty_base/etc/custom",{"_index":2357,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["jetty_base/etc/jaspi/jaspi",{"_index":4068,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["jetty_base/etc/jetti",{"_index":3145,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty_base/etc/jmxremote.access",{"_index":2204,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["jetty_base/etc/jmxremote.password",{"_index":2198,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["jetty_base/etc/keystore.p12",{"_index":3259,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty_base/etc/login.conf",{"_index":3951,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["jetty_base/etc/openid",{"_index":4417,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["jetty_base/etc/sessions/gcloud/index.yaml",{"_index":4348,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["jetty_base/etc/tl",{"_index":3813,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jetty_base/lib",{"_index":2387,"title":{},"name":{},"text":{"29":{},"30":{},"39":{}},"component":{},"keyword":{}}],["jetty_base/lib/*.jar",{"_index":4560,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty_base/lib/ee{8,9,10,11}/ext",{"_index":2006,"title":{},"name":{},"text":{"23":{},"26":{},"31":{}},"component":{},"keyword":{}}],["jetty_base/lib/ext",{"_index":2005,"title":{},"name":{},"text":{"23":{},"31":{},"41":{}},"component":{},"keyword":{}}],["jetty_base/lib/ext/acm",{"_index":4568,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty_base/lib/ext/util",{"_index":4567,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty_base/lib/hazelcast",{"_index":4330,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty_base/lib/infinispan",{"_index":4298,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty_base/lib/nosql",{"_index":4282,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty_base/lib/postgresql",{"_index":2472,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}
1],["jetty_base/log",{"_index":2653,"title":{},"name":{},"text":{"31":{},"34":{}},"component":{},"keyword":{}}],["jetty_base/logs/yyyy_mm_dd.request.log",{"_index":3514,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["jetty_base/modul",{"_index":2408,"title":{},"name":{},"text":{"30":{},"41":{}},"component":{},"keyword":{}}],["jetty_base/modules/*.mod",{"_index":4430,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty_base/modules/acm",{"_index":2398,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["jetty_base/modules/custom",{"_index":2366,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["jetty_base/modules/jpms.mod",{"_index":4697,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["jetty_base/modules/jvm.mod",{"_index":4441,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty_base/modules/postgresql.mod",{"_index":4432,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty_base/resourc",{"_index":3134,"title":{},"name":{},"text":{"31":{},"34":{},"41":{}},"component":{},"keyword":{}}],["jetty_base/resources/jetti",{"_index":3135,"title":{},"name":{},"text":{"31":{},"41":{}},"component":{},"keyword":{}}],["jetty_base/resources/log4j2.xml",{"_index":3500,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["jetty_base/resources/logback.xml",{"_index":3494,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["jetty_base/sess",{"_index":4206,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty_base/start.d",{"_index":1591,"title":{},"name":{},"text":{"20":{},"34":{},"35":{},"39":{}},"component":{},"keyword":{}}],["jetty_base/start.d/*.ini",{"_index":4424,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty_base/start.d/acm",{"_index":2405,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["jetty_base/start.d/deploy",{"_index":1831,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["jetty_base/start.d/http.ini",{"_index":3926,"title":{},"name":{},"text":{"35":{},"41":{}},"component":{},"keyword":{}}],["jetty_base/start.d/jaas.ini",{"_index":3948,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["jetty_base/start.d/jmx",{"_index":2219,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["jetty_base/start.d/openid.ini",{"_index":4409,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["jetty_base/start.d/postgresql.ini",{"_index":4436,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty_base/start.d/requestlog",{"_index":3538,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["jetty_base/start.d/requestlog.ini",{"_index":3513,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["jetty_base/start.d/server.ini",{"_index":4576,"title":{},"name":{},"text":{"41":{},"45":{}},"component":{},"keyword":{}}],["jetty_base/start.d/sess",{"_index":4187,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty_base/start.d/sessions.ini",{"_index":4140,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty_base/start.d/ssl",{"_index":3808,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jetty_base/start.d/start.d/sess",{"_index":4337,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty_base/start.d/threadpool.ini",{"_index":3546,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["jetty_base/webapp",{"_index":1592,"title":{},"name":{},"text":{"20":{},"22":{},"66":{}},"component":{},"keyword":{}}],["jetty_base/webapps/bugs.acme.org.xml",{"_index":1790,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["jetty_base/webapps/docs.project.org.xml",{"_index":1808,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["jetty_base/webapps/mi",{"_index":1861,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}
1],["jetty_base/webapps/wordpress.xml",{"_index":3758,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["jetty_base=/path/to/jetty.bas",{"_index":1617,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["jetty_distributed_session_inst",{"_index":4339,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty_hom",{"_index":1376,"title":{"18-3":{}},"name":{},"text":{"15":{},"18":{},"20":{},"30":{},"41":{}},"component":{},"keyword":{}}],["jetty_home/environ",{"_index":1885,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["jetty_home/environments/ee11",{"_index":1895,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["jetty_home/environments/ee11.xml",{"_index":1892,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["jetty_home/etc",{"_index":2418,"title":{},"name":{},"text":{"30":{},"41":{}},"component":{},"keyword":{}}],["jetty_home/etc/sessions/id",{"_index":4138,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty_home/etc/webdefault.xml",{"_index":2251,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["jetty_home/lib/jetti",{"_index":4559,"title":{},"name":{},"text":{"41":{},"43":{}},"component":{},"keyword":{}}],["jetty_home/modul",{"_index":2410,"title":{},"name":{},"text":{"30":{},"41":{}},"component":{},"keyword":{}}],["jetty_home/modules/accept",{"_index":2517,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty_home/modules/bytebufferpool.mod",{"_index":2538,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty_home/modules/https.mod",{"_index":2986,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty_home/modules/network",{"_index":2609,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty_home/modules/test",{"_index":3278,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jetty_home/start.jar",{"_index":1091,"title":{},"name":{},"text":{"8":{},"18":{},"20":{},"22":{},"24":{},"29":{},"32":{},"34":{},"35":{},"38":{},"40":{},"41":{},"43":{},"45":{},"64":{}},"component":{},"keyword":{}}],["jetty_home/webapp",{"_index":1891,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["jetty_home=/path/to/jetti",{"_index":1587,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["jetty_maven_local_repo",{"_index":4661,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jetty_worker_inst",{"_index":4149,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["jetty_worker_nam",{"_index":8305,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["jettybas",{"_index":6632,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["jettyenvxml",{"_index":6666,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["jettyenvxml>${project.basedir}/src/over/here/jetti",{"_index":6694,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["jettyhom",{"_index":6635,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["jettyloggerfactorymbean.setloggerlevel(str",{"_index":4822,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["jettymavenhellowarapp",{"_index":6491,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["jettymavenhellowebapp",{"_index":6492,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["jettymavenhelloworld",{"_index":6445,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["jettyopt",{"_index":6636,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["jettyproperti",{"_index":6646,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["jettyrequest",{"_index":7323,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["jettyserverupgraderespons",{"_index":7393,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["jettysess",{"_index":4259,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["jettyupgradelisten",{"_index":6297,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["jettyversion>12.1.13</jettyvers",{"_index":6482,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["jettywebsocketcr",{"_index":7391,"title":{},"name":{},"text":{"68":{},"79":{}},"component":{},"keyword":{}}],["jettywebsocketservercontain",{"_index":7361,"title":{"79-8":{},"79-10":{}},"name":{},"text":{"67":{},"79":{}},"component":{},"keyword":{}}],["jettywebsocketservercontainer.addmap",{"_index":8696,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["jettywebsocketservercontainer.getcontainer(getservletcontext",{"_index":8686,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["jettywebsocketservercontainer.upgrad",{"_index":8698,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["jettywebsocketservlet",{"_index":7389,"title":{"79-11":{}},"name":{},"text":{"68":{},"79":{}},"component":{},"keyword":{}}],["jettywebsocketservlet.configur",{"_index":8680,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["jettywebsocketservletcontaineriniti",{"_index":8681,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["jettywebsocketservletcontainerinitializer.configur",{"_index":8683,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["jettywebsocketservletcontainerinitializer.configure(handl",{"_index":8682,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["jettywebsocketservletfactori",{"_index":8679,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["jettyxml",{"_index":6622,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["jettyxml>
1src/main/etc/jetty.xml</jettyxml",{"_index":6794,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["jettyâ",{"_index":119,"title":{},"name":{},"text":{"1":{},"7":{},"8":{},"9":{},"12":{},"13":{},"15":{},"20":{},"23":{},"30":{},"31":{},"34":{},"35":{},"36":{},"38":{},"41":{},"45":{},"48":{},"51":{},"52":{},"58":{},"66":{},"67":{},"71":{},"79":{}},"component":{},"keyword":{}}],["jm",{"_index":1996,"title":{"23-5":{}},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["jmc",{"_index":2145,"title":{},"name":{},"text":{"24":{},"45":{},"48":{},"81":{}},"component":{},"keyword":{}}],["jms/inqueu",{"_index":2072,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["jmx",{"_index":1331,"title":{"24":{},"48":{},"24-1":{},"24-2":{},"24-3":{},"24-4":{},"24-5":{},"31-33":{},"31-34":{},"48-1":{},"48-2":{},"48-3":{},"48-4":{},"48-5":{},"48-6":{},"81-2":{}},"name":{"48":{}},"text":{"14":{},"21":{},"24":{},"30":{},"31":{},"34":{},"45":{},"47":{},"48":{},"71":{},"77":{},"81":{}},"component":{},"keyword":{}}],["jmx.*mbean",{"_index":5246,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["jmx</artifactid",{"_index":5166,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["jmxconnector",{"_index":5196,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["jmxconnectorfactory.connect(jmxurl",{"_index":5204,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["jmxconnectorserv",{"_index":2217,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["jmxremote.access",{"_index":2194,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["jmxremote.password",{"_index":2195,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["jmxserver",{"_index":5178,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["jmxserviceurl",{"_index":2160,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["jmxserviceurl(\"rmi",{"_index":5176,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["jmxserviceurl(\"service:jmx:rmi:///jndi/rmi://domain.com:1100/jmxrmi",{"_index":5200,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["jmxurl",{"_index":5175,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["jna",{"_index":6125,"title":{},"name":{},"text":{"55":{},"71":{},"74":{}},"component":{},"keyword":{}}],["jna</artifactid",{"_index":6129,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["jndi",{"_index":1332,"title":{"23":{},"22-19":{}},"name":{},"text":{"14":{},"20":{},"21":{},"22":{},"23":{},"36":{},"43":{},"62":{},"67":{},"77":{}},"component":{},"keyword":{}}],["jndi/rmi:///jmxrmi",{"_index":5177,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["jni'",{"_index":2596,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["job",{"_index":3804,"title":{},"name":{},"text":{"35":{},"49":{}},"component":{},"keyword":{}}],["john",{"_index":5286,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["join",{"_index":743,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["jpm",{"_index":343,"title":{"43":{},"30-17":{},"43-1":{},"43-3":{}},"name":{"43":{}},"text":{"2":{},"30":{},"41":{},"43":{},"51":{},"55":{},"58":{},"71":{},"74":{}},"component":{},"keyword":{}}],["jpms.mod",{"_index":4698,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["jrt",{"_index":8037,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["jrt:/modulenam",{"_index":8026,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["jrt:/org.eclipse.jetty.util",{"_index":8038,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["js",{"_index":1701,"title":{},"name":{},"text":{"20":{},"35":{}},"component":{},"keyword":{}}],["jsessionid",{"_index":7483,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["jsf",{"_index":2236,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["json",{"_index":2830,"title":{"50":{},"50-1":{},"50-3":{},"66-7":{}},"name":{"50":{}},"text":{"31":{},"39":{},"50":{},"66":{},"71":{},"75":{},"77":{}},"component":{},"keyword":{}}],["json.convert",{"_index":5282,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["json.convertor",{"_index":5283,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["json.output",{"_index":5321,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["json.stringsource(json",{"_index":5260,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["jsonchunk1",{"_index":5267,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["jsonchunk2",{"_index":5272,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["jsoncollectionconvertor",{"_index":5330,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["jsondateconvertor",{"_index":5333,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["jsonenumconvertor",{"_index":5336,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["jsonhttp",{"_index":8259,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}
1],["jsonhttpconnect",{"_index":8263,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["jsonhttpconnection(endpoint",{"_index":8267,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["jsonhttpconnectionfactori",{"_index":8262,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["jsonhttpiteratingcallback",{"_index":8270,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["jsonhttprequest",{"_index":8276,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["jsonhttprequest.getmethod",{"_index":8277,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["jsonhttprespons",{"_index":8279,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["jsonhttpresponse.setstatus(int",{"_index":8280,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["jsonhttpservic",{"_index":8282,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["jsonpojoconvertor",{"_index":5338,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["jsp",{"_index":235,"title":{"28-1":{},"60-3":{}},"name":{},"text":{"2":{},"19":{},"20":{},"21":{},"27":{},"28":{},"30":{},"35":{},"39":{},"60":{},"62":{},"66":{},"67":{}},"component":{},"keyword":{}}],["jsp.1.6",{"_index":2322,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["jsp.mod",{"_index":7116,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["jsp:plugin",{"_index":2300,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["jspc",{"_index":6526,"title":{"60":{}},"name":{"60":{}},"text":{"60":{},"67":{}},"component":{},"keyword":{}}],["jspf",{"_index":2254,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["jspidletimeout",{"_index":2309,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["jspx",{"_index":2255,"title":{},"name":{},"text":{"28":{},"60":{}},"component":{},"keyword":{}}],["jsr",{"_index":256,"title":{},"name":{},"text":{"2":{},"35":{},"58":{}},"component":{},"keyword":{}}],["jsr45",{"_index":2289,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["jsse",{"_index":3215,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["jstl",{"_index":2243,"title":{},"name":{},"text":{"27":{},"67":{}},"component":{},"keyword":{}}],["jstl.mod",{"_index":7123,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["jta",{"_index":2014,"title":{},"name":{},"text":{"23":{},"43":{}},"component":{},"keyword":{}}],["jul",{"_index":425,"title":{},"name":{},"text":{"3":{},"34":{}},"component":{},"keyword":{}}],["jump",{"_index":1615,"title":{},"name":{},"text":{"20":{},"21":{},"62":{},"71":{}},"component":{},"keyword":{}}],["jun",{"_index":564,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["junit5â",{"_index":887,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["jvm",{"_index":233,"title":{"85":{},"41-8":{},"41-10":{}},"name":{},"text":{"2":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"30":{},"31":{},"34":{},"35":{},"41":{},"42":{},"43":{},"44":{},"45":{},"47":{},"48":{},"51":{},"52":{},"55":{},"57":{},"62":{},"71":{},"74":{},"80":{},"81":{}},"component":{},"keyword":{}}],["jvm.mod",{"_index":4442,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["jvmarg",{"_index":6628,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["jvmti",{"_index":8757,"title":{},"name":{},"text":{"80":{}},"component":{},"keyword":{}}],["k",{"_index":3098,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["keep",{"_index":1040,"title":{},"name":{},"text":{"8":{},"18":{},"28":{},"31":{},"39":{},"46":{},"48":{},"58":{},"70":{},"71":{},"75":{},"77":{}},"component":{},"keyword":{}}],["keepgener",{"_index":2312,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["keepsourc",{"_index":6544,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["kept",{"_index":2621,"title":{},"name":{},"text":{"31":{},"39":{}},"component":{},"keyword":{}}],["key",{"_index":2836,"title":{},"name":{},"text":{"31":{},"33":{},"34":{},"35":{},"39":{},"44":{},"51":{},"57":{},"61":{},"62":{},"64":{},"66":{},"69":{},"71":{},"77":{},"81":{}},"component":{},"keyword":{}}],["key/certif",{"_index":3411,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["key/valu",{"_index":4780,"title":{},"name":{},"text":{"44":{},"62":{},"71":{}},"component":{},"keyword":{}}],["keyalg",{"_index":3385,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["keymanag",{"_index":3221,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["keymanagerfactori",{"_index":3253,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["keys=0",{"_index":8914,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["keysiz",{"_index":3387,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["keystor",{"_index":2211,"title":{"33":{},"31-52":{},"33-1":{},"33-2":{},"33-5":{},"35-15":{},"35-19":{},"71-24":{}},"name":{},"text":{"24":{},"30":{},"31":{},"33":{},"35":{},"42":{},"48":{},"51":{},"71":{}},"component":{},"keyword":{}}],["keystore,h=[localhost],a=[],w",{"_index":3594,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["keystore,proxi",{"_index":3883,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["keystore.ini",{"_index":3574,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["keystore.mod",{"_index":3279,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["keystore.p12",{"_index":3298,"title":{},"name":{},"text":{"31":{},"33":{},"35":{}},"component":{},"keyword":{}}],["keystore.p12,truststore=nul",{"_index":3597,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["keystore.xml",{"_index":3294,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["keystorescann",{"_index":7689,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["keystorescanner(sslcontextfactori",{"_index":7690,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["keystorescanner.setscaninterval(60",{"_index":7691,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["keytool",{"_index":3381,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["keyword",{"_index":4242,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["khtml",{"_index":3528,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["kib",{"_index":5546,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["kick",{"_index":4609,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["kill",{"_index":4574,"title":{},"name":{},"text":{"41":{},"52":{}},"component":{},"keyword":{}}],["kind",{"_index":4225,"title":{},"name":{},"text":{"39":{},"51":{},"58":{},"71":{},"77":{}},"component":{},"keyword":{}}],["kit",{"_index":827,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["knit",{"_index":131,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["know",{"_index":1451,"title":{},"name":{},"text":{"18":{},"19":{},"21":{},"32":{},"35":{},"39":{},"45":{},"46":{},"51":{},"53":{},"58":{},"62":{},"71":{},"75":{}},"component":{},"keyword":{}}],["knowledg",{"_index":3653,"title":{},"name":{},"text":{"35":{},"51":{},"71":{}},"component":{},"keyword":{}}],["known",{"_index":77,"title":{"31-58":{}},"name":{},"text":{"1":{},"8":{},"18":{},"24":{},"31":{},"35":{},"39":{},"40":{},"52":{},"64":{},"65":{},"70":{},"71":{},"75":{}},"component":{},"keyword":{}}],["known.ini",{"_index":3353,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["known/openid",{"_index":3025,"title":{},"name":{},"text":{"31":{},"40":{}},"component":{},"keyword":{}}],["knowntyp",{"_index":7182,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["knowntype.getcharset",{"_index":7186,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["l",{"_index":2183,"title":{},"name":{},"text":{"24":{},"33":{},"48":{},"51":{},"52":{}},"component":{},"keyword":{}}],["l1",{"_index":4128,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["l2",{"_index":4112,"title":{"39-40":{}},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["l=citi",{"_index":3394,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["label",{"_index":763,"title":{},"name":{},"text":{"4":{},"6":{}},"component":{},"keyword":{}}
1],["lack",{"_index":4403,"title":{},"name":{},"text":{"39":{},"71":{}},"component":{},"keyword":{}}],["lambda",{"_index":5396,"title":{},"name":{},"text":{"51":{},"56":{},"78":{},"79":{}},"component":{},"keyword":{}}],["land",{"_index":1215,"title":{},"name":{},"text":{"10":{}},"component":{},"keyword":{}}],["languag",{"_index":962,"title":{},"name":{},"text":{"8":{},"35":{},"76":{}},"component":{},"keyword":{}}],["larg",{"_index":9,"title":{},"name":{},"text":{"1":{},"31":{},"39":{},"45":{},"46":{},"51":{},"52":{},"58":{},"61":{},"67":{},"71":{},"77":{},"81":{}},"component":{},"keyword":{}}],["largedownload",{"_index":5067,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["largedownload(content.sink",{"_index":5072,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["largedownload(sink",{"_index":5069,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["larger",{"_index":779,"title":{},"name":{},"text":{"6":{},"31":{},"39":{},"51":{},"52":{},"71":{}},"component":{},"keyword":{}}],["last",{"_index":142,"title":{},"name":{},"text":{"1":{},"20":{},"23":{},"29":{},"31":{},"39":{},"45":{},"46":{},"51":{},"53":{},"55":{},"56":{},"58":{},"62":{},"67":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["last=fals",{"_index":4989,"title":{},"name":{},"text":{"46":{},"55":{}},"component":{},"keyword":{}}],["last=tru",{"_index":4988,"title":{},"name":{},"text":{"46":{},"55":{}},"component":{},"keyword":{}}],["lastaccess",{"_index":4369,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["lastaccesstim",{"_index":4224,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["lastcont",{"_index":5504,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["lastli",{"_index":3752,"title":{},"name":{},"text":{"35":{},"71":{},"79":{}},"component":{},"keyword":{}}],["lastnam",{"_index":5287,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["lastnod",{"_index":4275,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["lastsav",{"_index":8512,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["lastsavedtim",{"_index":4271,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["lastsavetim",{"_index":8440,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["latenc",{"_index":5892,"title":{},"name":{},"text":{"52":{},"71":{}},"component":{},"keyword":{}}],["later",{"_index":2011,"title":{},"name":{},"text":{"23":{},"30":{},"31":{},"34":{},"39":{},"43":{},"46":{},"47":{},"51":{},"52":{},"53":{},"55":{},"66":{},"71":{},"73":{},"74":{},"75":{},"77":{}},"component":{},"keyword":{}}],["latest",{"_index":88,"title":{},"name":{},"text":{"1":{},"2":{},"8":{},"31":{},"70":{},"77":{}},"component":{},"keyword":{}}],["latter",{"_index":1903,"title":{},"name":{},"text":{"22":{},"24":{},"39":{},"62":{},"77":{}},"component":{},"keyword":{}}],["launch",{"_index":2226,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["lax",{"_index":7278,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["layer",{"_index":2903,"title":{"57-1":{},"57-4":{}},"name":{},"text":{"31":{},"34":{},"35":{},"38":{},"41":{},"46":{},"55":{},"57":{},"58":{},"66":{},"71":{},"74":{}},"component":{},"keyword":{}}],["lazili",{"_index":3997,"title":{},"name":{},"text":{"36":{},"39":{},"77":{}},"component":{},"keyword":{}}],["ldap",{"_index":4015,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["ldaploginmodul",{"_index":3936,"title":{"36-9":{}},"name":{},"text":{},"component":{},"keyword":{}}],["lead",{"_index":2327,"title":{},"name":{},"text":{"28":{},"31":{},"46":{},"51":{},"58":{},"62":{},"71":{}},"component":{},"keyword":{}}],["leaf",{"_index":7700,"title":{},"name":{},"text":{"71":{},"78":{}},"component":{},"keyword":{}}],["leak",{"_index":4993,"title":{},"name":{},"text":{"46":{},"71":{}},"component":{},"keyword":{}}],["leaki",{"_index":2694,"title":{},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["learn",{"_index":60,"title":{},"name":{},"text":{"1":{},"4":{},"8":{}},"component":{},"keyword":{}}],["leas",{"_index":5928,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["leav",{"_index":1842,"title":{},"name":{},"text":{"22":{},"31":{},"35":{},"39":{},"52":{},"62":{},"77":{}},"component":{},"keyword":{}}],["leeway",{"_index":8435,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["left",{"_index":2339,"title":{},"name":{},"text":{"28":{},"29":{},"39":{},"60":{},"64":{},"65":{}},"component":{},"keyword":{}}
1],["legaci",{"_index":2918,"title":{},"name":{},"text":{"31":{},"34":{},"70":{}},"component":{},"keyword":{}}],["legal",{"_index":5100,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["legend",{"_index":8764,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["legendari",{"_index":328,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["length",{"_index":2562,"title":{},"name":{},"text":{"31":{},"34":{},"35":{},"36":{},"39":{},"46":{},"51":{},"58":{},"66":{},"67":{},"71":{}},"component":{},"keyword":{}}],["less",{"_index":1424,"title":{},"name":{},"text":{"17":{},"18":{},"23":{},"28":{},"31":{},"45":{},"46":{},"52":{},"58":{},"66":{},"71":{},"77":{}},"component":{},"keyword":{}}],["let",{"_index":6654,"title":{},"name":{},"text":{"62":{},"77":{}},"component":{},"keyword":{}}],["letâ",{"_index":1419,"title":{},"name":{},"text":{"17":{},"29":{},"31":{},"33":{},"35":{},"39":{},"45":{},"51":{},"53":{},"73":{},"75":{}},"component":{},"keyword":{}}],["level",{"_index":767,"title":{},"name":{},"text":{"4":{},"8":{},"13":{},"20":{},"22":{},"23":{},"28":{},"31":{},"34":{},"35":{},"36":{},"41":{},"43":{},"45":{},"46":{},"47":{},"48":{},"51":{},"53":{},"54":{},"55":{},"57":{},"58":{},"67":{},"71":{},"73":{},"74":{},"76":{},"84":{}},"component":{},"keyword":{}}],["level=\"info",{"_index":3543,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["levelnam",{"_index":4824,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["leverag",{"_index":1464,"title":{},"name":{},"text":{"18":{},"30":{},"31":{},"35":{},"41":{},"62":{}},"component":{},"keyword":{}}],["lib",{"_index":1698,"title":{"30-12":{}},"name":{},"text":{"20":{},"22":{},"23":{},"29":{},"30":{},"31":{},"34":{},"38":{},"41":{},"69":{},"71":{}},"component":{},"keyword":{}}],["lib/acm",{"_index":2400,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["lib/bouncycastle/bcpkix",{"_index":3291,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["lib/bouncycastle/bcprov",{"_index":3292,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["lib/bouncycastle/bcutil",{"_index":3293,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["lib/custom",{"_index":2368,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["lib/ee11",{"_index":4057,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["lib/jetti",{"_index":3289,"title":{},"name":{},"text":{"31":{},"38":{}},"component":{},"keyword":{}}],["lib/postgresql",{"_index":2470,"title":{},"name":{},"text":{"30":{},"41":{}},"component":{},"keyword":{}}],["librari",{"_index":954,"title":{"27":{},"53":{},"54":{},"55":{},"71":{},"72":{},"73":{},"74":{},"76":{},"71-60":{}},"name":{},"text":{"8":{},"14":{},"15":{},"17":{},"18":{},"19":{},"22":{},"23":{},"27":{},"29":{},"30":{},"31":{},"34":{},"35":{},"41":{},"43":{},"46":{},"47":{},"50":{},"51":{},"53":{},"54":{},"55":{},"56":{},"57":{},"64":{},"66":{},"69":{},"71":{},"73":{},"74":{},"75":{},"76":{},"77":{},"84":{}},"component":{},"keyword":{}}],["libs=<classpath",{"_index":4632,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["licens",{"_index":15,"title":{"8-12":{},"30-18":{}},"name":{},"text":{"1":{},"8":{},"14":{},"30":{},"34":{},"35":{},"39":{},"41":{}},"component":{},"keyword":{}}],["life",{"_index":681,"title":{"4-2":{}},"name":{},"text":{"8":{},"34":{},"47":{},"49":{},"53":{},"55":{},"73":{},"74":{}},"component":{},"keyword":{}}],["lifecycl",{"_index":694,"title":{"47-1":{}},"name":{},"text":{"4":{},"8":{},"15":{},"39":{},"46":{},"47":{},"53":{},"58":{},"62":{},"69":{},"71":{},"77":{}},"component":{},"keyword":{}}],["lifecycle.listen",{"_index":5101,"title":{"47-3":{}},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["lifecycle.stop",{"_index":5367,"title":{},"name":{},"text":{"51":{},"58":{}},"component":{},"keyword":{}}],["lifecycle.stop(httpclient)).start",{"_index":5370,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["lifecycle.stop(websocketclient)).start",{"_index":6280,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["lifecyclefailure(lifecycl",{"_index":5143,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["lifecyclestarted(lifecycl",{"_index":5141,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["lifecyclestopped(lifecycl",{"_index":5144,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["lighter",{"_index":2535,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["likelihood",{"_index":4394,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["likewis",{"_index":1400,"title":{},"name":{},"text":{"17":{},"22":{},"35":{},"47":{}},"component":{},"keyword":{}}],["limit",{"_index":869,"title":{"37":{},"61":{},"31-2":{},"31-9":{},"31-46":{},"31-53":{},"37-1":{},"61-1":{},"61-2":{},"61-3":{},"71-15":{}},"name":{},"text":{"7":{},"19":{},"28":{},"31":{},"35":{},"37":{},"51":{},"52":{},"53":{},"61":{},"64":{},"66":{},"71":{}},"component":{},"keyword":{}}],["limit.mod",{"_index":2518,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["line",{"_index":1044,"title":{"41-5":{},"41-6":{},"41-10":{}},"name":{},"text":{"8":{},"13":{},"18":{},"20":{},"22":{},"28":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"39":{},"41":{},"42":{},"43":{},"45":{},"48":{},"51":{},"52":{},"55":{},"57":{},"60":{},"62":{},"67":{},"71":{},"74":{},"79":{},"80":{},"84":{}},"component":{},"keyword":{}}],["linearli",{"_index":2539,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["linefe",{"_index":1049,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}
1],["link",{"_index":184,"title":{},"name":{},"text":{"2":{},"5":{},"8":{},"23":{},"34":{},"47":{},"58":{},"63":{},"69":{},"71":{},"75":{}},"component":{},"keyword":{}}],["link:http://php.net/manual/en/install.fpm.php",{"_index":5849,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["linkag",{"_index":6668,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["linkedlist",{"_index":5332,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["linux",{"_index":2155,"title":{},"name":{},"text":{"24":{},"31":{},"34":{},"35":{},"41":{},"51":{},"81":{}},"component":{},"keyword":{}}],["linuxâ",{"_index":7642,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["list",{"_index":36,"title":{"4-4":{},"4-5":{},"4-6":{},"4-7":{},"6-1":{}},"name":{},"text":{"1":{},"2":{},"4":{},"6":{},"18":{},"19":{},"20":{},"22":{},"29":{},"30":{},"31":{},"33":{},"35":{},"39":{},"40":{},"41":{},"44":{},"46":{},"49":{},"50":{},"51":{},"53":{},"55":{},"57":{},"58":{},"60":{},"62":{},"64":{},"65":{},"68":{},"71":{},"73":{},"74":{},"75":{}},"component":{},"keyword":{}}],["list.of(\"mari",{"_index":5343,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["list<content.chunk",{"_index":5034,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["list<httpcooki",{"_index":5705,"title":{},"name":{},"text":{"51":{},"67":{}},"component":{},"keyword":{}}],["list<local",{"_index":7192,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["list<object",{"_index":5278,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["list<str",{"_index":8725,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["listen",{"_index":1353,"title":{"49":{},"47-2":{},"51-11":{},"53-10":{},"56-3":{},"58-11":{},"71-67":{}},"name":{"49":{}},"text":{"15":{},"18":{},"20":{},"24":{},"30":{},"31":{},"35":{},"39":{},"41":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"51":{},"53":{},"55":{},"56":{},"57":{},"58":{},"62":{},"71":{},"73":{},"74":{},"75":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["listener.get(5",{"_index":5558,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["listener.getinputstream",{"_index":5562,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["listenerendpoint",{"_index":6330,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["listenerâ",{"_index":6005,"title":{},"name":{},"text":{"53":{},"55":{}},"component":{},"keyword":{}}],["liter",{"_index":3079,"title":{},"name":{},"text":{"31":{},"39":{},"44":{}},"component":{},"keyword":{}}],["littl",{"_index":1305,"title":{},"name":{},"text":{"13":{},"23":{},"31":{},"36":{},"71":{},"81":{}},"component":{},"keyword":{}}],["live",{"_index":1134,"title":{},"name":{},"text":{"8":{},"39":{},"47":{},"77":{}},"component":{},"keyword":{}}],["load",{"_index":1448,"title":{"35-23":{},"39-45":{},"39-46":{},"45-4":{},"71-25":{},"71-58":{}},"name":{},"text":{"18":{},"20":{},"22":{},"25":{},"28":{},"31":{},"34":{},"35":{},"39":{},"41":{},"43":{},"45":{},"51":{},"52":{},"58":{},"69":{},"71":{},"75":{},"77":{},"81":{}},"component":{},"keyword":{}}],["loadbalanc",{"_index":4182,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["loader",{"_index":1367,"title":{},"name":{},"text":{"15":{},"22":{},"67":{},"69":{},"71":{},"81":{}},"component":{},"keyword":{}}],["local",{"_index":845,"title":{"24-1":{}},"name":{},"text":{"7":{},"8":{},"9":{},"12":{},"24":{},"29":{},"31":{},"34":{},"39":{},"41":{},"48":{},"51":{},"56":{},"58":{},"62":{},"65":{},"67":{},"71":{},"77":{}},"component":{},"keyword":{}}],["local_vari",{"_index":1280,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["localaddress",{"_index":7210,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["localaddress=nul",{"_index":8910,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["localcach",{"_index":8544,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["localhost",{"_index":2181,"title":{},"name":{},"text":{"24":{},"31":{},"39":{},"48":{},"56":{},"57":{}},"component":{},"keyword":{}}],["localhost:1099",{"_index":2186,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["localhost:8080",{"_index":3652,"title":{},"name":{},"text":{"35":{},"51":{}},"component":{},"keyword":{}}],["localhost:9000",{"_index":3750,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["localport",{"_index":7213,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["locat",{"_index":759,"title":{},"name":{},"text":{"4":{},"7":{},"18":{},"20":{},"22":{},"23":{},"31":{},"32":{},"36":{},"39":{},"41":{},"45":{},"60":{},"62":{},"67":{},"70":{},"71":{},"77":{}},"component":{},"keyword":{}}],["location(path.of(\"/tmp",{"_index":7252,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["lock",{"_index":2813,"title":{},"name":{},"text":{"31":{},"51":{},"52":{},"71":{}},"component":{},"keyword":{}}],["lockup",{"_index":3317,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}
1],["log",{"_index":1239,"title":{"84":{},"13-3":{},"34-1":{},"34-2":{},"34-4":{},"34-6":{},"34-7":{},"34-8":{},"34-10":{},"34-11":{},"41-18":{},"45-3":{},"45-5":{},"45-6":{},"71-3":{}},"name":{"84":{}},"text":{"13":{},"15":{},"18":{},"20":{},"25":{},"28":{},"29":{},"30":{},"31":{},"34":{},"35":{},"36":{},"39":{},"41":{},"45":{},"47":{},"53":{},"58":{},"62":{},"67":{},"71":{},"73":{},"74":{},"77":{},"80":{},"81":{},"84":{}},"component":{},"keyword":{}}],["log.debug",{"_index":1286,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["log.debug(\"someth",{"_index":1310,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["log.info(\"someth",{"_index":1317,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["log.isdebugen",{"_index":1289,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["log.warn",{"_index":1301,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["log.warn(\"someth",{"_index":1324,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["log2(lz",{"_index":2570,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["log4j",{"_index":3485,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["log4j.properti",{"_index":4562,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["log4j.xml",{"_index":4563,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["log4j1",{"_index":3484,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["log4j2",{"_index":3131,"title":{"34-7":{}},"name":{},"text":{"31":{},"34":{},"84":{}},"component":{},"keyword":{}}],["log4j2,http",{"_index":3496,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["log4j2.ini",{"_index":3499,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["log4j2.mod",{"_index":2416,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["log4j2.xml",{"_index":3498,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["logarithmic.mod",{"_index":7117,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["logback",{"_index":3130,"title":{"34-6":{}},"name":{},"text":{"31":{},"34":{},"62":{},"84":{}},"component":{},"keyword":{}}],["logback,http",{"_index":3490,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["logback.ini",{"_index":3493,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["logback.xml",{"_index":3492,"title":{},"name":{},"text":{"34":{},"41":{}},"component":{},"keyword":{}}],["logger",{"_index":1325,"title":{},"name":{},"text":{"13":{},"31":{},"34":{},"41":{},"45":{},"62":{},"71":{},"84":{}},"component":{},"keyword":{}}],["loggernam",{"_index":4823,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["logging.mod",{"_index":2413,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["logging.properti",{"_index":1638,"title":{},"name":{},"text":{"20":{},"22":{},"29":{},"31":{},"34":{},"35":{},"41":{},"45":{},"84":{}},"component":{},"keyword":{}}],["logging/slf4j",{"_index":1634,"title":{},"name":{},"text":{"20":{},"34":{},"35":{},"41":{}},"component":{},"keyword":{}}],["loggingframelisten",{"_index":6119,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["logging|default",{"_index":2415,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["logic",{"_index":3082,"title":{},"name":{},"text":{"31":{},"46":{},"47":{},"51":{},"56":{},"58":{},"63":{},"71":{},"79":{}},"component":{},"keyword":{}}],["login",{"_index":3010,"title":{"64-9":{}},"name":{},"text":{"31":{},"36":{},"39":{},"40":{},"62":{},"63":{},"64":{},"71":{},"77":{}},"component":{},"keyword":{}}],["login.html",{"_index":6941,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["loginhandl",{"_index":7949,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["loginmodul",{"_index":3932,"title":{"36-5":{}},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["loginpath",{"_index":6899,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["loginservic",{"_index":2501,"title":{"31-35":{},"63-5":{},"64-6":{}},"name":{},"text":{"31":{},"38":{},"40":{},"62":{},"63":{},"64":{},"65":{}},"component":{},"keyword":{}}
1],["loginservice.login",{"_index":6813,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["loginservice.setconfig(resourcefactory.of(contexthandler).newclassloaderresource(\"realm.properti",{"_index":6823,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["loginservice.setconfig(resourcefactory.of(webapp).newclassloaderresource(\"realm.properti",{"_index":6852,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["logout",{"_index":6908,"title":{},"name":{},"text":{"64":{},"65":{}},"component":{},"keyword":{}}],["logoutredirect",{"_index":7018,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["logwrit",{"_index":7549,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["logwriter.setretaindays(14",{"_index":7551,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["logwriter.settimezone(timezone.getdefault().getid",{"_index":7553,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["long",{"_index":711,"title":{},"name":{},"text":{"4":{},"13":{},"22":{},"31":{},"35":{},"39":{},"46":{},"47":{},"50":{},"51":{},"52":{},"53":{},"55":{},"58":{},"67":{},"71":{},"74":{},"77":{}},"component":{},"keyword":{}}],["long)request.getattribute(\"beforehandlingnanotim",{"_index":7829,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["longconsum",{"_index":7353,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["longer",{"_index":700,"title":{},"name":{},"text":{"4":{},"31":{},"39":{},"51":{},"52":{},"62":{},"71":{},"77":{},"81":{}},"component":{},"keyword":{}}],["longest",{"_index":8377,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["look",{"_index":805,"title":{},"name":{},"text":{"6":{},"20":{},"22":{},"23":{},"31":{},"34":{},"35":{},"36":{},"39":{},"41":{},"44":{},"46":{},"47":{},"48":{},"51":{},"54":{},"57":{},"58":{},"62":{},"63":{},"67":{},"71":{},"75":{},"76":{},"77":{},"79":{}},"component":{},"keyword":{}}],["lookup",{"_index":2027,"title":{"56-1":{}},"name":{},"text":{"23":{},"36":{},"41":{},"44":{},"57":{}},"component":{},"keyword":{}}],["loop",{"_index":2844,"title":{},"name":{},"text":{"31":{},"46":{},"51":{},"52":{},"67":{},"71":{},"75":{}},"component":{},"keyword":{}}],["loopback",{"_index":2171,"title":{},"name":{},"text":{"24":{},"35":{},"48":{},"75":{}},"component":{},"keyword":{}}],["lost",{"_index":1468,"title":{},"name":{},"text":{"18":{},"39":{},"50":{}},"component":{},"keyword":{}}],["lot",{"_index":1016,"title":{},"name":{},"text":{"8":{},"24":{},"31":{},"35":{},"39":{},"48":{},"52":{},"62":{},"71":{}},"component":{},"keyword":{}}],["low",{"_index":465,"title":{},"name":{},"text":{"3":{},"35":{},"51":{},"53":{},"54":{},"55":{},"57":{},"67":{},"71":{},"73":{},"74":{},"76":{}},"component":{},"keyword":{}}],["lower",{"_index":1558,"title":{},"name":{},"text":{"19":{},"28":{},"30":{},"34":{},"41":{},"46":{},"51":{}},"component":{},"keyword":{}}],["lowest",{"_index":7867,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["lowlat",{"_index":8947,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["lt",{"_index":1649,"title":{},"name":{},"text":{"20":{},"35":{},"41":{},"45":{},"81":{}},"component":{},"keyword":{}}],["ltd",{"_index":1111,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["m",{"_index":1190,"title":{},"name":{},"text":{"10":{},"20":{},"31":{},"51":{}},"component":{},"keyword":{}}],["m.foo.com",{"_index":1928,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["ma",{"_index":7668,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["machin",{"_index":1225,"title":{},"name":{},"text":{"12":{},"24":{},"31":{},"35":{},"39":{},"45":{},"48":{},"62":{}},"component":{},"keyword":{}}],["machine_host",{"_index":2188,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["made",{"_index":202,"title":{},"name":{},"text":{"2":{},"4":{},"8":{},"18":{},"22":{},"35":{},"51":{},"58":{},"62":{},"64":{},"67":{},"71":{},"73":{},"74":{},"75":{}},"component":{},"keyword":{}}],["magicless",{"_index":2599,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["mail",{"_index":35,"title":{"4-4":{},"6-1":{},"23-6":{}},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"6":{},"22":{},"23":{},"31":{}},"component":{},"keyword":{}}
1],["mail/smtp",{"_index":2094,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["mailsessionrefer",{"_index":2093,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["main",{"_index":1027,"title":{"18-1":{}},"name":{},"text":{"8":{},"14":{},"18":{},"33":{},"34":{},"41":{},"43":{},"45":{},"46":{},"47":{},"50":{},"51":{},"53":{},"55":{},"56":{},"58":{},"66":{},"69":{},"71":{},"76":{},"78":{}},"component":{},"keyword":{}}],["main=$(java",{"_index":4551,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["mainclass>org.example.helloworld</mainclass",{"_index":6489,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["maintain",{"_index":788,"title":{},"name":{},"text":{"6":{},"7":{},"8":{},"9":{},"12":{},"18":{},"52":{},"53":{},"71":{},"73":{},"79":{}},"component":{},"keyword":{}}],["mainten",{"_index":1232,"title":{},"name":{},"text":{"12":{},"77":{}},"component":{},"keyword":{}}],["major",{"_index":773,"title":{},"name":{},"text":{"5":{},"17":{},"33":{},"50":{},"53":{},"55":{},"73":{},"74":{},"77":{}},"component":{},"keyword":{}}],["major=12",{"_index":1408,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["major>.<minor>.<micro",{"_index":1407,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["make",{"_index":120,"title":{},"name":{},"text":{"1":{},"6":{},"8":{},"9":{},"10":{},"12":{},"13":{},"17":{},"20":{},"22":{},"23":{},"24":{},"27":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"39":{},"41":{},"43":{},"45":{},"46":{},"47":{},"51":{},"52":{},"53":{},"58":{},"62":{},"63":{},"65":{},"71":{},"75":{},"77":{},"79":{}},"component":{},"keyword":{}}],["malici",{"_index":6586,"title":{},"name":{},"text":{"61":{}},"component":{},"keyword":{}}],["manag",{"_index":1013,"title":{"24":{},"39":{},"77":{}},"name":{},"text":{"8":{},"12":{},"15":{},"18":{},"21":{},"23":{},"24":{},"31":{},"35":{},"36":{},"39":{},"46":{},"47":{},"48":{},"51":{},"53":{},"55":{},"57":{},"58":{},"59":{},"62":{},"65":{},"71":{},"73":{},"74":{},"75":{},"77":{},"81":{}},"component":{},"keyword":{}}],["managedattribut",{"_index":5159,"title":{"48-8":{}},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["managedattribute(\"th",{"_index":5241,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["managedattribute(valu",{"_index":5212,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["managedobject",{"_index":5158,"title":{"48-7":{}},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["managedobject(\"servic",{"_index":5210,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["managedobject(\"th",{"_index":5236,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["managedoper",{"_index":5160,"title":{"48-9":{}},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["managedoperation(valu",{"_index":5219,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["managedselector",{"_index":4854,"title":{},"name":{},"text":{"46":{},"71":{}},"component":{},"keyword":{}}],["managedsess",{"_index":8298,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["manager.xml",{"_index":4139,"title":{},"name":{},"text":{"39":{},"41":{}},"component":{},"keyword":{}}],["mandat",{"_index":4398,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["mandatori",{"_index":1265,"title":{},"name":{},"text":{"13":{},"31":{},"36":{},"39":{},"44":{},"57":{},"64":{},"71":{}},"component":{},"keyword":{}}],["mani",{"_index":211,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"8":{},"14":{},"18":{},"19":{},"22":{},"24":{},"28":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"41":{},"42":{},"45":{},"46":{},"49":{},"51":{},"52":{},"54":{},"58":{},"62":{},"71":{},"73":{},"74":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["manifest",{"_index":4711,"title":{},"name":{},"text":{"43":{},"60":{}},"component":{},"keyword":{}}],["manner",{"_index":1549,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["manual",{"_index":3495,"title":{},"name":{},"text":{"34":{},"35":{},"39":{},"59":{},"62":{},"65":{},"71":{},"77":{}},"component":{},"keyword":{}}],["manywrites(content.sink",{"_index":5056,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["map",{"_index":2158,"title":{"44-8":{},"79-17":{}},"name":{},"text":{"24":{},"28":{},"31":{},"38":{},"39":{},"44":{},"50":{},"57":{},"58":{},"59":{},"61":{},"62":{},"63":{},"67":{},"71":{},"73":{},"74":{},"75":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["map(destination::getconnectionpool",{"_index":5384,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["map.get(\"method",{"_index":8278,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["map.put(\"statu",{"_index":8281,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["map<integ",{"_index":6007,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["map<long",{"_index":6153,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["map<sess",{"_index":6102,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["map<str",{"_index":4861,"title":{},"name":{},"text":{"46":{},"48":{},"50":{},"57":{},"65":{},"67":{},"75":{},"79":{}},"component":{},"keyword":{}}],["mapfactori",{"_index":8604,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["mapfactory.setaddresses(new",{"_index":8607,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["mapfactory.setexpirysec(0",{"_index":8605,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["mapfactory.setheartbeats(tru",{"_index":8606,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["mapfactory.setweights(new",{"_index":8608,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["mappedfil",{"_index":2313,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["mapping>",{"_index":2258,"title":{},"name":{},"text":{"28":{},"60":{}},"component":{},"keyword":{}}],["mar",{"_index":460,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["mari",{"_index":5349,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["mark",{"_index":220,"title":{},"name":{},"text":{"2":{},"8":{},"60":{},"67":{},"77":{}},"component":{},"keyword":{}}],["marker",{"_index":6540,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["markup",{"_index":961,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["marley",{"_index":2203,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["massiv",{"_index":1470,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["match",{"_index":1172,"title":{},"name":{},"text":{"9":{},"10":{},"19":{},"22":{},"23":{},"26":{},"31":{},"33":{},"35":{},"38":{},"40":{},"42":{},"44":{},"50":{},"51":{},"58":{},"62":{},"63":{},"64":{},"71":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["materi",{"_index":1085,"title":{},"name":{},"text":{"8":{},"24":{},"31":{},"33":{},"35":{},"48":{}},"component":{},"keyword":{}}],["math.min(chunk_s",{"_index":5077,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["matter",{"_index":6308,"title":{},"name":{},"text":{"58":{},"76":{}},"component":{},"keyword":{}}],["maven",{"_index":181,"title":{"59":{},"60":{},"62":{},"7-1":{},"7-4":{},"8-4":{},"59-1":{},"59-5":{},"62-22":{},"62-23":{},"67-2":{},"68-3":{}},"name":{"59":{},"60":{},"62":{}},"text":{"2":{},"4":{},"5":{},"7":{},"8":{},"30":{},"34":{},"41":{},"48":{},"50":{},"51":{},"53":{},"55":{},"58":{},"59":{},"60":{},"62":{},"67":{},"68":{},"69":{},"71":{},"73":{},"74":{},"79":{}},"component":{},"keyword":{}}],["maven.local.repo",{"_index":4637,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["maven.local.repo=<dir",{"_index":4660,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["maven.offlin",{"_index":4480,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["maven.offline=fals",{"_index":4518,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["maven.repo.uri",{"_index":4638,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["maven.repo.uri=<url",{"_index":4664,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["maven://<groupid>/<artifactid>/<version>[/<type>]|<pathnam",{"_index":2457,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["maven://org.bouncycastle/bcpkix",{"_index":3281,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["maven://org.bouncycastle/bcprov",{"_index":3285,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["maven://org.bouncycastle/bcutil",{"_index":3287,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["maven://org.postgresql/postgresql/${postgresql",{"_index":2459,"title":{},"name":{},"text":{"30":{},"41":{}},"component":{},"keyword":{}}],["maven_local_repo",{"_index":4662,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["max",{"_index":2478,"title":{},"name":{},"text":{"30":{},"31":{},"41":{},"51":{},"52":{},"58":{},"64":{},"71":{},"73":{},"74":{},"77":{}},"component":{},"keyword":{}}],["max_concurrent_stream",{"_index":5420,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["max_field_section_s",{"_index":7073,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["max_header_list_s",{"_index":7072,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["maxage(duration.ofdays(1).tosecond",{"_index":7283,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["maxage(timeunit.days.toseconds(1",{"_index":5710,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["maxbinarymessages",{"_index":6385,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["maxchildstartcheck",{"_index":6722,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["maxchildstartcheckm",{"_index":6723,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["maxconnectionsperdestin",{"_index":5393,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["maxerrordispatches=10",{"_index":8893,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["maxfield",{"_index":6598,"title":{},"name":{},"text":{"61":{}},"component":{},"keyword":{}}],["maxformcontents",{"_index":6594,"title":{},"name":{},"text":{"61":{}},"component":{},"keyword":{}}],["maxformkey",{"_index":6589,"title":{},"name":{},"text":{"61":{}},"component":{},"keyword":{}}],["maxformsizeinbyt",{"_index":6590,"title":{},"name":{},"text":{"61":{}},"component":{},"keyword":{}}],["maxframes",{"_index":6387,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["maxidl",{"_index":8510,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["maxidletim",{"_index":4227,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["maximum",{"_index":1554,"title":{},"name":{},"text":{"19":{},"28":{},"31":{},"35":{},"39":{},"45":{},"51":{},"52":{},"53":{},"58":{},"61":{},"62":{},"71":{},"73":{},"77":{},"79":{}},"component":{},"keyword":{}}],["maxinact",{"_index":4376,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["maxinterv",{"_index":4278,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["maxleasedthread",{"_index":5943,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["maxlength",{"_index":6599,"title":{},"name":{},"text":{"61":{}},"component":{},"keyword":{}}],["maxloadedjsp",{"_index":2315,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["maxoutgoingframes=4",{"_index":6402,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["maxrequestr",{"_index":8197,"title":{},"name":{},"text":{"73":{},"74":{}},"component":{},"keyword":{}}],["maxrequestsperconnect",{"_index":5395,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["maxresponseheadersize=16384",{"_index":8883,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["maxretainedbyt",{"_index":2735,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["maxretri",{"_index":8585,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["maxtextmessages",{"_index":6386,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["maxthread",{"_index":3315,"title":{},"name":{},"text":{"31":{},"52":{},"71":{}},"component":{},"keyword":{}}],["maxtrack",{"_index":2704,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["maxunconsumedrequestcontentreads=16",{"_index":8911,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["mbean",{"_index":2142,"title":{},"name":{},"text":{"24":{},"47":{},"48":{},"71":{},"81":{}},"component":{},"keyword":{}}],["mbeancontain",{"_index":5156,"title":{},"name":{},"text":{"47":{},"48":{}},"component":{},"keyword":{}}],["mbeancontainer(managementfactory.getplatformmbeanserv",{"_index":5169,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["mbeanserv",{"_index":2136,"title":{},"name":{},"text":{"24":{},"47":{},"48":{}},"component":{},"keyword":{}}],["md5",{"_index":4676,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["md5:164c88b302622e17050af52c89945d44,us",{"_index":4011,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["md5:5ebe2294ecd0e0f08eab7690d2a6ee69",{"_index":4670,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["md:sha",{"_index":4671,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["md:sha3",{"_index":4673,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["mean",{"_index":207,"title":{},"name":{},"text":{"2":{},"7":{},"8":{},"18":{},"22":{},"23":{},"24":{},"30":{},"31":{},"35":{},"39":{},"41":{},"43":{},"46":{},"48":{},"51":{},"52":{},"53":{},"57":{},"62":{},"64":{},"66":{},"67":{},"70":{},"71":{},"73":{},"77":{}},"component":{},"keyword":{}}],["meaning",{"_index":5218,"title":{},"name":{},"text":{"48":{},"58":{}},"component":{},"keyword":{}}],["measur",{"_index":2378,"title":{},"name":{},"text":{"29":{},"71":{}},"component":{},"keyword":{}}],["mechan",{"_index":1430,"title":{"41":{},"18-4":{},"38-5":{},"41-18":{}},"name":{},"text":{"18":{},"19":{},"20":{},"24":{},"30":{},"31":{},"32":{},"35":{},"38":{},"39":{},"41":{},"43":{},"48":{},"51":{},"53":{},"55":{},"58":{},"63":{},"66":{},"67":{},"71":{},"74":{},"77":{},"79":{}},"component":{},"keyword":{}}],["med",{"_index":433,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["mediat",{"_index":8423,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["medium",{"_index":652,"title":{},"name":{},"text":{"3":{},"47":{}},"component":{},"keyword":{}}],["meet",{"_index":5939,"title":{},"name":{},"text":{"52":{},"58":{},"71":{},"77":{}},"component":{},"keyword":{}}],["meetup",{"_index":134,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["melt",{"_index":21,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["mem(free/total/max",{"_index":8948,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["member",{"_index":71,"title":{},"name":{},"text":{"1":{},"4":{},"9":{},"44":{}},"component":{},"keyword":{}}],["memcach",{"_index":4378,"title":{},"name":{},"text":{"39":{},"71":{},"77":{}},"component":{},"keyword":{}}],["memcachedsessiondatamap",{"_index":4113,"title":{"39-41":{}},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["memcachedsessiondatamapfactori",{"_index":8603,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["memori",{"_index":858,"title":{"39-8":{},"57-3":{}},"name":{},"text":{"7":{},"14":{},"18":{},"31":{},"35":{},"36":{},"39":{},"41":{},"46":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"61":{},"71":{},"73":{},"74":{},"77":{},"81":{}},"component":{},"keyword":{}}],["memoryconnector",{"_index":5638,"title":{},"name":{},"text":{"51":{},"57":{},"71":{}},"component":{},"keyword":{}}],["memoryconnector(serv",{"_index":5639,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["memorytransport",{"_in
1dex":5642,"title":{},"name":{},"text":{"51":{},"57":{}},"component":{},"keyword":{}}],["memorytransport(connector",{"_index":7597,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["memorytransport(memoryconnector",{"_index":5643,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["mention",{"_index":4561,"title":{},"name":{},"text":{"41":{},"51":{},"71":{},"77":{}},"component":{},"keyword":{}}],["merg",{"_index":1163,"title":{},"name":{},"text":{"9":{},"10":{},"12":{},"60":{},"62":{},"67":{}},"component":{},"keyword":{}}],["mergefrag",{"_index":6543,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["messag",{"_index":1180,"title":{"10-2":{},"58-12":{},"58-14":{}},"name":{},"text":{"10":{},"13":{},"28":{},"31":{},"34":{},"35":{},"38":{},"39":{},"46":{},"51":{},"53":{},"55":{},"58":{},"62":{},"64":{},"66":{},"67":{},"71":{},"73":{},"74":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["message.startswith(\"echo",{"_index":6335,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["messagedigest",{"_index":4677,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["met",{"_index":7746,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["metadata",{"_index":1501,"title":{},"name":{},"text":{"19":{},"31":{},"34":{},"40":{},"41":{},"48":{},"53":{},"55":{},"59":{},"65":{},"77":{}},"component":{},"keyword":{}}],["metadata.gethttpfield",{"_index":6058,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["metadata.isrespons",{"_index":6051,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["metadata.request",{"_index":6016,"title":{},"name":{},"text":{"53":{},"55":{},"73":{},"74":{}},"component":{},"keyword":{}}],["metadata.request(\"get",{"_index":6017,"title":{},"name":{},"text":{"53":{},"55":{},"73":{}},"component":{},"keyword":{}}],["metadata.request(\"post",{"_index":6028,"title":{},"name":{},"text":{"53":{},"55":{}},"component":{},"keyword":{}}],["metadata.request)frame.getmetadata",{"_index":8182,"title":{},"name":{},"text":{"73":{},"74":{}},"component":{},"keyword":{}}],["metadata.respons",{"_index":6052,"title":{},"name":{},"text":{"53":{},"55":{},"73":{},"74":{}},"component":{},"keyword":{}}],["metadata.response(httpstatus.ok_200",{"_index":8185,"title":{},"name":{},"text":{"73":{},"74":{}},"component":{},"keyword":{}}],["metadata.response)frame.getmetadata",{"_index":6168,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["metadata.response)metadata",{"_index":6053,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["metamask",{"_index":6896,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["method",{"_index":371,"title":{},"name":{},"text":{"3":{},"13":{},"17":{},"19":{},"24":{},"29":{},"30":{},"31":{},"35":{},"36":{},"38":{},"39":{},"40":{},"44":{},"45":{},"46":{},"48":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"61":{},"62":{},"63":{},"64":{},"66":{},"67":{},"70":{},"71":{},"73":{},"74":{},"75":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["method(httpmethod.head",{"_index":5428,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["method(httpmethod.post",{"_index":5653,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["method=\"post",{"_index":6950,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["method>form</auth",{"_index":3953,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["method>openid</auth",{"_index":4412,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["methodhandl",{"_index":6305,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["mib",{"_index":5425,"title":{},"name":{},"text":{"51":{},"52":{},"79":{},"81":{}},"component":{},"keyword":{}}],["micro",{"_index":1413,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["micro=5",{"_index":1410,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["microsecond",{"_index":3092,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["microservic",{"_index":1399,"title":{},"name":{},"text":{"17":{},"35":{}},"component":{},"keyword":{}}],["microsoft",{"_index":3022,"title":{},"name":{},"text":{"31":{},"65":{}},"component":{},"keyword":{}}
1],["midnight",{"_index":2619,"title":{},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["migrat",{"_index":7044,"title":{"66":{},"67":{},"68":{},"67-6":{},"68-2":{}},"name":{},"text":{"67":{},"68":{},"77":{}},"component":{},"keyword":{}}],["mileston",{"_index":1603,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["millisecond",{"_index":2612,"title":{},"name":{},"text":{"31":{},"32":{},"39":{},"56":{},"62":{},"77":{}},"component":{},"keyword":{}}],["mime",{"_index":1366,"title":{},"name":{},"text":{"15":{},"71":{}},"component":{},"keyword":{}}],["mimetypes.getcharsetfromcontenttype(contenttypefield",{"_index":7185,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["mimetypes.getmimetypefromcontenttype(contenttypefield",{"_index":7183,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["mimetypes.typ",{"_index":7181,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["mimetypes.type.form_encoded.is(contenttyp",{"_index":8079,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["mimetypes.type.multipart_form_data.is(contenttyp",{"_index":8088,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["min",{"_index":232,"title":{"31-36":{}},"name":{},"text":{"2":{},"8":{},"31":{},"39":{}},"component":{},"keyword":{}}],["mind",{"_index":770,"title":{},"name":{},"text":{"4":{},"6":{},"13":{}},"component":{},"keyword":{}}],["minim",{"_index":3903,"title":{"39-44":{}},"name":{},"text":{"35":{},"39":{},"44":{},"45":{},"57":{},"58":{},"67":{},"71":{},"77":{}},"component":{},"keyword":{}}],["minimalist",{"_index":7533,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["minimum",{"_index":828,"title":{},"name":{},"text":{"7":{},"8":{},"19":{},"30":{},"31":{},"36":{},"52":{},"71":{}},"component":{},"keyword":{}}],["minimumdataratehandl",{"_index":3016,"title":{"71-37":{}},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["minimumdataratehandler(1024l",{"_index":7805,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["minor",{"_index":1415,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["minor=0",{"_index":1409,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["minrequestdatarate=0",{"_index":8896,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["minresponsedatarate=0",{"_index":8897,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["minut",{"_index":4162,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["minutia",{"_index":742,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["mismatch",{"_index":1207,"title":{},"name":{},"text":{"10":{},"24":{}},"component":{},"keyword":{}}],["miss",{"_index":1009,"title":{},"name":{},"text":{"8":{},"10":{},"22":{},"31":{},"35":{},"41":{},"43":{},"63":{},"71":{}},"component":{},"keyword":{}}],["mission",{"_index":2144,"title":{},"name":{},"text":{"24":{},"45":{},"48":{},"81":{}},"component":{},"keyword":{}}],["mistak",{"_index":4980,"title":{},"name":{},"text":{"46":{},"71":{}},"component":{},"keyword":{}}],["mitig",{"_index":4401,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["mix",{"_index":1857,"title":{},"name":{},"text":{"22":{},"34":{},"41":{},"51":{},"67":{},"79":{}},"component":{},"keyword":{}}],["mixtur",{"_index":4566,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["mkdir",{"_index":1588,"title":{},"name":{},"text":{"20":{},"34":{},"35":{},"59":{}},"component":{},"keyword":{}}],["mm",{"_index":3455,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["mod",{"_index":2474,"title":{},"name":{},"text":{"30":{},"41":{},"67":{}},"component":{},"keyword":{}}],["mod_rewrit",{"_index":3139,"title":{},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["mode",{"_index":2325,"title":{"70":{},"62-3":{},"70-1":{},"70-2":{},"70-3":{},"70-4":{},"70-5":{}},"name":{},"text":{"28":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"39":{},"41":{},"43":{},"51":{},"52":{},"55":{},"62":{},"70":{},"71":{},"74":{},"77":{}},"component":{},"keyword":{}}],["mode>",{"_index":8362,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["model",{"_index":4983,"title":{},"name":{},"text":{"46":{},"51":{},"52":{},"59":{},"67":{},"69":{},"71":{},"77":{}},"component":{},"keyword":{}}],["modelversion>4.0.0</modelvers",{"_index":6473,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["moder",{"_index":491,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["modern",{"_index":3842,"title":{},"name":{},"text":{"35":{},"42":{}},"component":{},"keyword":{}}],["modif",{"_index":1844,"title":{},"name":{},"text":{"22":{},"36":{},"71":{}},"component":{},"keyword":{}}],["modifi",{"_index":896,"title":{"29-1":{}},"name":{},"text":{"7":{},"15":{},"20":{},"22":{},"29":{},"30":{},"31":{},"34":{},"35":{},"39":{},"40":{},"41":{},"43":{},"44":{},"48":{},"57":{},"71":{},"79":{},"81":{}},"component":{},"keyword":{}}],["modificationtestinterv",{"_index":2284,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["modifiers{param}cod",{"_index":3077,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["modul",{"_index":344,"title":{"29":{},"30":{},"31":{},"18-2":{},"29-1":{},"29-2":{},"30-1":{},"30-2":{},"30-3":{},"30-4":{},"31-1":{},"31-2":{},"31-3":{},"31-4":{},"31-5":{},"31-6":{},"31-7":{},"31-8":{},"31-9":{},"31-10":{},"31-11":{},"31-12":{},"31-13":{},"31-14":{},"31-15":{},"31-16":{},"31-17":{},"31-18":{},"31-19":{},"31-20":{},"31-21":{},"31-22":{},"31-23":{},"31-26":{},"31-27":{},"31-28":{},"31-29":{},"31-31":{},"31-32":{},"31-33":{},"31-34":{},"31-35":{},"31-36":{},"31-37":{},"31-38":{},"31-39":{},"31-40":{},"31-41":{},"31-42":{},"31-43":{},"31-44":{},"31-46":{},"31-47":{},"31-48":{},"31-49":{},"31-50":{},"31-51":{},"31-52":{},"31-53":{},"31-54":{},"31-55":{},"31-56":{},"31-57":{},"31-58":{},"36-2":{},"38-2":{},"39-3":{},"39-4":{},"39-7":{},"39-12":{},"39-14":{},"39-16":{},"39-18":{},"39-19":{},"39-21":{},"39-22":{},"39-24":{},"39-26":{},"39-31":{},"39-38":{},"39-40":{},"41-2":{},"41-3":{},"41-5":{},"41-7":{},"41-8":{},"43-2":{},"67-4":{}},"name":{},"text":{"2":{},"7":{},"8":{},"15":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"41":{},"43":{},"44":{},"45":{},"51":{},"55":{},"58":{},"62":{},"64":{},"66":{},"67":{},"69":{},"71":{},"74":{},"77":{},"79":{},"81":{},"84":{}},"component":{},"keyword":{}}],["module'",{"_index":4621,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["module(",{"_index":1442,"title":{},"name":{},"text":{"18":{},"45":{},"51":{},"55":{},"71":{},"74":{}},"component":{},"keyword":{}}],["module=<nam",{"_index":4425,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["module=demo",{"_index":1593,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["module=deploy",{"_index":1833,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["module=http",{"_index":1640,"title":{},"name":{},"text":{"20":{},"41":{}},"component":{},"keyword":{}}],["module=jmx",{"_index":2222,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["module=nam",{"_index":4485,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["module=proxi",{"_index":3876,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["module=ssl",{"_index":3809,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["module>(,<modul",{"_index":2480,"title":{},"name":{},"text":{"30":{},"43":{}},"component":{},"keyword":{}}],["module>(,<target",{"_index":2483,"title":{},"name":{},"text":{"30":{},"43":{}},"component":{},"keyword":{}}],["module>/<package>=<target",{"_index":2482,"title":{},"name":{},"text":{"30":{},"43":{}},"component":{},"keyword":{}}],["module>=<file>(:<fil",{"_index":2481,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["module>=<file>(<path",{"_index":4714,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["module>=<target",{"_index":2484,"title":{},"name":{},"text":{"30":{},"43":{}},"component":{},"keyword":{}}],["module_name>[|default",{"_index":2441,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["modulelay",{"_index":4694,"title":{"43-2":{}},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["modulename>/<mainclassnam",{"_index":4642,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["modules/root",{"_index":1026,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["modules=<module>(,<modul",{"_index":4613,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["modules=<modulename>(,<modulenam",{"_index":4620,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["modules=<tag",{"_index":2439,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["modules=<tag>(,<tag",{"_index":4612,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["modules=al",{"_index":4696,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["modules=bouncycastl",{"_index":3841,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["modules=connector",{"_index":3559,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["modules=conscrypt",{"_index":3839,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["modules=demo",{"_index":1477,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["modules=ee11",{"_index":1707,"title":{},"name":{},"text":{"20":{},"22":{},"32":{},"38":{}},"component":{},"keyword":{}}],["modules=ee12",{"_index":1093,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}
1],["modules=forward",{"_index":3868,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["modules=http",{"_index":1478,"title":{},"name":{},"text":{"18":{},"20":{},"34":{},"35":{},"41":{},"81":{}},"component":{},"keyword":{}}],["modules=http,acm",{"_index":2404,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["modules=http,deploy,ee11",{"_index":1719,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["modules=http,ee10",{"_index":4536,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["modules=http,ee11",{"_index":1590,"title":{},"name":{},"text":{"20":{},"35":{}},"component":{},"keyword":{}}],["modules=http,http2c",{"_index":3640,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["modules=http,https,http2c,http2,{e",{"_index":3727,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["modules=http,jvm",{"_index":4502,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["modules=http,requestlog",{"_index":3511,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["modules=http2,websocket",{"_index":3726,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["modules=https,custom",{"_index":2373,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["modules=https,http2",{"_index":4423,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["modules=https,test",{"_index":3882,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["modules=jmx",{"_index":2141,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["modules=jpm",{"_index":4699,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["modules=jvm",{"_index":4445,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["modules=log",{"_index":3489,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["modules=openid",{"_index":4407,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["modules=postgresql",{"_index":4435,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["modules=proxi",{"_index":3873,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["modules=serv",{"_index":3567,"title":{},"name":{},"text":{"35":{},"41":{}},"component":{},"keyword":{}}],["modules=server,http,postgresql,jvm",{"_index":4446,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["modules=server,remot",{"_index":4837,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["modules=siw",{"_index":6898,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["modules=ssl",{"_index":3832,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["modules=ssl,http",{"_index":3568,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["modules=ssl,http2,http",{"_index":3624,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["modules=ssl,http2,https,test",{"_index":3625,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["modules=ssl,http3",{"_index":3692,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["modules=ssl,http3,test",{"_index":3695,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["modules=ssl,https,fcgi",{"_index":3756,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["modules=ssl,https,test",{"_index":3587,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["modules=test",{"_index":3572,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["modules=threadpool",{"_index":3547,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["modules=threadpool,http",{"_index":3545,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["moduleâ",{"_index":1685,"title":{},"name":{},"text":{"20":{},"30":{}},"component":{},"keyword":{}}],["moment",{"_index":1659,"title":{},"name":{},"text":{"20":{},"71":{},"77":{}},"component":{},"keyword":{}}],["mongo",{"_index":4135,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["mongo.ini",{"_index":4284,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["mongodb",{"_index":4104,"title":{"39-16":{}},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostn[:portn]]][/[database][?opt",{"_index":4295,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["mongodb://localhost",{"_index":8517,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["mongosessiondatastor",{"_index":8291,"title":{"77-21":{}},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["mongosessiondatastorefactori",{"_index":8513,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["mongosessiondatastorefactory.setcollectionname(\"jettysess",{"_index":8525,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["mongosessiondatastorefactory.setconnectionstring(\"mongodb:://localhost:27017",{"_index":8526,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["mongosessiondatastorefactory.setdbname(\"httpsess",{"_index":8524,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["mongosessiondatastorefactory.setgraceperiodsec(3600",{"_index":8522,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["mongosessiondatastorefactory.sethost(\"localhost",{"_index":8527,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["mongosessiondatastorefactory.setport(27017",{"_index":8528,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["mongosessiondatastorefactory.setsaveperiodsec(0",{"_index":8523,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["mongouri",{"_index":4293,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["monitor",{"_index":1726,"title":{"24":{},"22-1":{}},"name":{},"text":{"21":{},"22":{},"24":{},"31":{},"35":{},"47":{},"48":{},"62":{},"69":{},"71":{}},"component":{},"keyword":{}}
1],["more",{"_index":126,"title":{"62-26":{}},"name":{},"text":{"1":{},"3":{},"4":{},"6":{},"8":{},"9":{},"15":{},"17":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"39":{},"40":{},"41":{},"43":{},"44":{},"45":{},"46":{},"47":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"60":{},"62":{},"63":{},"64":{},"67":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{},"80":{},"81":{},"84":{}},"component":{},"keyword":{}}],["moreov",{"_index":6767,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["mort",{"_index":1107,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["mortbay",{"_index":326,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["mostli",{"_index":3622,"title":{},"name":{},"text":{"35":{},"39":{},"44":{},"71":{}},"component":{},"keyword":{}}],["move",{"_index":1052,"title":{},"name":{},"text":{"8":{},"22":{},"30":{},"41":{},"48":{}},"component":{},"keyword":{}}],["movedcontexthandl",{"_index":1773,"title":{"71-48":{}},"name":{},"text":{"22":{},"71":{}},"component":{},"keyword":{}}],["movedcontexthandler.setcontextpath",{"_index":7932,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["movedcontexthandler.setdiscardquery(tru",{"_index":7935,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["movedcontexthandler.setredirecturi(\"https://newdomain.com/ctx",{"_index":7934,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["movedcontexthandler.setstatuscode(httpstatus.moved_permanently_301",{"_index":7933,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["movedcontexthandler.setvirtualhosts(list.of(\"olddomain.com",{"_index":7931,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["movement",{"_index":161,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["mozilla/5.0",{"_index":3524,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["ms",{"_index":3112,"title":{},"name":{},"text":{"31":{},"39":{},"71":{},"77":{}},"component":{},"keyword":{}}],["much",{"_index":3899,"title":{},"name":{},"text":{"35":{},"43":{},"45":{},"51":{},"52":{}},"component":{},"keyword":{}}],["multi",{"_index":1481,"title":{"19-4":{}},"name":{},"text":{"19":{},"39":{},"62":{},"77":{}},"component":{},"keyword":{}}],["multiauthent",{"_index":6882,"title":{},"name":{},"text":{"63":{},"66":{}},"component":{},"keyword":{}}],["multipart",{"_index":2718,"title":{"70-5":{}},"name":{},"text":{"31":{},"70":{},"71":{}},"component":{},"keyword":{}}],["multipart/form",{"_index":6934,"title":{},"name":{},"text":{"64":{},"70":{},"71":{}},"component":{},"keyword":{}}],["multipartcompli",{"_index":2963,"title":{},"name":{},"text":{"31":{},"70":{}},"component":{},"keyword":{}}],["multipartcompliance.from(\"rfc7578",{"_index":7512,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["multipartcompliance.from(str",{"_index":2964,"title":{},"name":{},"text":{"31":{},"70":{}},"component":{},"keyword":{}}],["multipartcompliance.rfc7578",{"_index":2968,"title":{},"name":{},"text":{"31":{},"70":{}},"component":{},"keyword":{}}],["multipartcompliance.viol",{"_index":7511,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["multipartcompliance.violation.content_transfer_encod",{"_index":2966,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["multipartcompliance=rfc7578",{"_index":8906,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["multipartconfig",{"_index":1489,"title":{},"name":{},"text":{"19":{},"67":{},"71":{}},"component":{},"keyword":{}}],["multipartconfig.build",{"_index":7251,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["multipartformdata",{"_index":8090,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["multipartformdata.onparts(request",{"_index":7253,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["multipartformdata.pars",{"_index":8086,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["multipartformdata.part",{"_index":7908,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["multipartformdatahandl",{"_index":8087,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["multipl",{"_index":939,"title":{"8-10":{},"8-11":{},"22-13":{},"33-2":{},"40-4":{},"62-25":{},"69-5":{},"71-14":{}},"name":{},"text":{"8":{},"15":{},"18":{},"22":{},"24":{},"31":{},"33":{},"35":{},"39":{},"40":{},"46":{},"48":{},"51":{},"52":{},"53":{},"55":{},"58":{},"62":{},"63":{},"66":{},"69":{},"71":{},"73":{},"74":{},"77":{},"79":{}},"component":{},"keyword":{}}],["multiplex",{"_index":2177,"title":{},"name":{},"text":{"24":{},"31":{},"35":{},"48":{},"51":{},"52":{},"53":{},"55":{},"71":{},"73":{},"74":{}},"component":{},"keyword":{}}],["multiplexconnectionpool",{"_index":5387,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["multipli",{"_index":6220,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["multireleas",{"_index":358,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["mutabl",{"_index":5440,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["mutual",{"_index":160,"title":{},"name":{},"text":{"1":{},"31":{},"33":{},"34":{}},"component":{},"keyword":{}}],["mvn",{"_index":848,"title":{},"name":{},"text":{"7":{},"8":{},"59":{},"60":{},"62":{}},"component":{},"keyword":{}}],["my/custom/class",{"_index":4325,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["myapp",{"_index":1750,"title":{},"name":{},"text":{"22":{},"71":{}},"component":{},"keyword":{}}],["myapp.war",{"_index":1749,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["myapphandl",{"_index":8143,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["myclassnam",{"_index":1256,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["myconnect",{"_index":4894,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["myconnection(endpoint",{"_index":4895,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["mycontext",{"_index":6662,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["myeventshandl",{"_index":7823,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["myhost",{"_index":4324,"title":{},"name":{},"text":{"39":{},"44":{}},"component":{},"keyword":{}}
1],["myjavaxwebsocketinitializerservlet",{"_index":8656,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["myjettywebsocketendpoint",{"_index":8702,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["myjettywebsocketendpoint.class",{"_index":8689,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["myjettywebsocketinitializerservlet",{"_index":8685,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["myjettywebsocketservlet",{"_index":8705,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["mykey",{"_index":3383,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["mylist",{"_index":4743,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["myotherjettywebsocketendpoint",{"_index":8693,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["myrealm",{"_index":5761,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["myspecialvalu",{"_index":2019,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["mysql",{"_index":4236,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["mystr",{"_index":4732,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["mysys.prop",{"_index":6803,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["mythic",{"_index":332,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["myvers",{"_index":4814,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["mywebapp",{"_index":1846,"title":{},"name":{},"text":{"22":{},"71":{}},"component":{},"keyword":{}}],["mywebapp.properti",{"_index":1841,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["mywebapp.war",{"_index":1695,"title":{},"name":{},"text":{"20":{},"22":{}},"component":{},"keyword":{}}],["mywebapp.xml",{"_index":1840,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["mywebsocketroomendpoint(room",{"_index":8754,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["n",{"_index":874,"title":{},"name":{},"text":{"7":{},"8":{},"22":{},"34":{},"48":{},"51":{},"52":{},"57":{},"58":{},"71":{}},"component":{},"keyword":{}}],["n/a",{"_index":7134,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["n>,server",{"_index":8772,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["naiv",{"_index":4927,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["name",{"_index":1063,"title":{"22-21":{},"30-1":{},"48-10":{},"51-23":{},"68-4":{}},"name":{},"text":{"8":{},"19":{},"20":{},"22":{},"23":{},"24":{},"26":{},"28":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"48":{},"51":{},"52":{},"53":{},"55":{},"56":{},"58":{},"59":{},"62":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["name/valu",{"_index":4573,"title":{},"name":{},"text":{"41":{},"62":{}},"component":{},"keyword":{}}],["name=\"\">/$1</set",{"_index":1807,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["name=\"addbean",{"_index":3967,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["name=\"addeventlisten",{"_index":1896,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["name=\"addexcludeciphersuit",{"_index":3825,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["name=\"addexcludeprotocol",{"_index":3821,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["name=\"addhandl",{"_index":6787,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["name=\"addmap",{"_index":3773,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["name=\"addrul",{"_index":1804,"title":{},"name":{},"text":{"22":{},"31":{}},"component":{},"keyword":{}}],["name=\"addvirtualhost",{"_index":3155,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["name=\"baseresourceasstring\"><ref",{"_index":3762,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["name=\"ciphercompar",{"_index":2359,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["name=\"com.acme.audit.some.properti",{"_index":2394,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["name=\"com.acme.http.port",{"_index":4798,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name=\"com.acme.ssl.cipherlist",{"_index":2361,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["name=\"com.myapps.mywiki.context.path",{"_index":4792,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name=\"com_acme_http_port",{"_index":4802,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name=\"compile\"><arg>(.+?\\\\.php)</arg></call></set",{"_index":3780,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["name=\"config\"><ref",{"_index":6930,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["name=\"configurationdiscovered\">false</set",{"_index":1514,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["name=\"contextpath",{"_index":4791,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name=\"contextpath\">/</set",{"_index":1785,"title":{},"name":{},"text":{"22":{},"35":{}},"component":{},"keyword":{}}],["name=\"contextpath\">/acme</set",{"_index":7410,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["name=\"contextpath\">/b</set",{"_index":6790,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["name=\"contextpath\">/c</set",{"_index":6792,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["name=\"contextpath\">/mywebapp</set",{"_index":1944,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["name=\"contextpath\">/wiki</set",{"_index":1868,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["name=\"contextpath\"><properti",{"_index":1875,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["name=\"createdatabase\">create</set",{"_index":2053,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name=\"databasename\">test</set",{"_index":2052,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name=\"datasourceclassname\">org.postgresql.ds.pgsimpledatasource</set",{"_index":4685,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["name=\"deobfusc",{"_index":4689,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["name=\"dirallowed\">false</set",{"_index":3793,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["name=\"discardpathincontext\">true</set",{"_index":1788,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["name=\"discardquery\">true</set",{"_index":1789,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["name=\"dryrun\">true</set",{"_index":4773,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name=\"environ",{"_index":2106,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name=\"err",{"_index":4723,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name=\"extractwar\">false</set",{"_index":1976,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["name=\"fastcgisecure\">true</set",{"_index":3781,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["name=\"getbynam",{"_index":4750,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name=\"getfactori",{"_index":4071,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["name=\"getsecurityhandl",{"_index":6927,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["name=\"handl",{"_index":1802,"title":{},"name":{},"text":{"22":{},"35":{},"69":{}},"component":{},"keyword":{}}],["name=\"host",{"_index":4781,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name=\"inserthandl",{"_index":2391,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["name=\"jetty.bas",{"_index":6925,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["name=\"jetty.threadpool.maxthread",{"_index":2424,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["name=\"listiter",{"_index":4745,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name=\"location\">
1/new/$1</set",{"_index":3151,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["name=\"location\">/support</set",{"_index":3159,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["name=\"loginmodulename\">xyz</set",{"_index":3962,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["name=\"loginservic",{"_index":3970,"title":{},"name":{},"text":{"36":{},"64":{}},"component":{},"keyword":{}}],["name=\"mail.debug\">true</put",{"_index":2085,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name=\"mail.from\">me@me</put",{"_index":2084,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name=\"mail.smtp.host\">xxx</put",{"_index":2083,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name=\"maxformcontentsize\">200000</set",{"_index":4044,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["name=\"maxformkeys\">200</set",{"_index":4045,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["name=\"maxthread",{"_index":2422,"title":{},"name":{},"text":{"30":{},"44":{}},"component":{},"keyword":{}}],["name=\"messag",{"_index":6956,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["name=\"name\">myrealm</set",{"_index":6929,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["name=\"name\">test",{"_index":3960,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["name=\"newresourc",{"_index":6923,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["name=\"newsinglethreadscheduledexecutor",{"_index":4755,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name=\"next",{"_index":4747,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name=\"of",{"_index":3769,"title":{},"name":{},"text":{"35":{},"64":{}},"component":{},"keyword":{}}],["name=\"of\"><arg>/index.php</arg></call></set",{"_index":3789,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["name=\"of\"><arg>/run/php/php",{"_index":3784,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["name=\"org.eclipse.jetty.server.requestlog",{"_index":3542,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["name=\"originalpathattribute\">wordpress.originalpath</set",{"_index":3765,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["name=\"originalqueryattribute\">wordpress.originalquery</set",{"_index":3766,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["name=\"overridedescriptor\">/opt/webapps/mywebapp",{"_index":1979,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["name=\"password",{"_index":4687,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["name=\"password\">obf:1xmk1w261z0f1w1c1xmq</set",{"_index":2079,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name=\"path",{"_index":3767,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["name=\"pattern\">/advice</set",{"_index":3158,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["name=\"pattern\">/docs/#_(.*)</set",{"_index":1806,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["name=\"pattern\">/old/(.*)</set",{"_index":3150,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["name=\"port",{"_index":4737,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name=\"println",{"_index":4724,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name=\"properti",{"_index":2080,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name=\"redirecturi\">https://github.com/acme/acme/issues</set",{"_index":1786,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["name=\"registerconfigprovid",{"_index":4072,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["name=\"requestlog",{"_index":4774,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name=\"scriptpattern\"><cal",{"_index":3778,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["name=\"securescheme\">https</set",{"_index":4811,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name=\"securityhandl",{"_index":3968,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["name=\"setattribut",{"_index":1528,"title":{},"name":{},"text":{"19":{},"22":{},"26":{},"37":{}},"component":{},"keyword":{}}],["name=\"shutdown",{"_index":4757,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name=\"signatur",{"_index":6954,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["name=\"someproperti",{"_index":2393,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["name=\"statuscode\">301</set",{"_index":1787,"title":{},"name":{},"text":{"22":{},"31":{}},"component":{},"keyword":{}}],["name=\"stoptimeout\">5000</set",{"_index":4808,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name=\"threadpool",{"_index":4812,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name=\"unixdomainpath\"><cal",{"_index":3782,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["name=\"user\">fred</set",{"_index":2078,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name=\"username\">dbuser</set",{"_index":4686,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["name=\"valueof\"><arg>rehandle</arg></call></set",{"_index":3792,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["name=\"vers",{"_index":4770,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name=\"virtualhost",{"_index":1782,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["name=\"war\">../../b.war</set",{"_index":6791,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["name=\"war\">../../c.war</set",{"_index":6793,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["name=\"war\">/opt/myapps/myapp.war</set",{"_index":1869,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["name=\"war\">/opt/myapps/mywiki.war</set",{"_index":4794,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name=\"war\">/opt/webapps/domain.war</set",{"_index":1961,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["name=\"war\">/opt/webapps/hobby.war</set",{"_index":1964,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["name=\"war\">/opt/webapps/mywebapp.war</set",{"_index":1945,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["name=\"war\"><systemproperti",{"_index":1877,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["name=\"webapps.dir\"/>/myapp.war</set",{"_index":1878,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["name=\"welcomefiles\"><cal",{"_index":3788,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["name=\"welcomemode\"><cal",{"_index":3790,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["name=\"wiki.contextpath\"/></set",{"_index":1876,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["name>+=<valu",{"_index":2432,"title":{},"name":{},"text":{"30":{},"41":{}},"component":{},"keyword":{}}],["name>.mod",{"_index":2407,"title":{},"name":{},"text":{"30":{},"67":{}},"component":{},"keyword":{}}],["name>:<messag",{"_index":3452,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["name>:<thread",{"_index":3451,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["name>=<valu",{"_index":2430,"title":{},"name":{},"text":{"30":{},"41":{}},"component":{},"keyword":{}}],["name>?=<valu",{"_index":2435,"title":{},"name":{},"text":{"30":{},"41":{}},"component":{},"keyword":{}}],["name>err</nam",{"_index":4727,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name>hello</servlet",{"_index":6511,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["name>host</param",{"_index":1992,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["name>
1https://accounts.google.com</realm",{"_index":4413,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["name>jdbc/employees</r",{"_index":2118,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name>jdbc/myds</r",{"_index":2055,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name>jetti",{"_index":6480,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["name>jms/connectionfactory</r",{"_index":2070,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name>jsp</servlet",{"_index":2261,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["name>keepgenerated</param",{"_index":2262,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["name>logback.configurationfile</nam",{"_index":6799,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["name>maxtextmessagesize</param",{"_index":8676,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["name>mi",{"_index":1988,"title":{},"name":{},"text":{"22":{},"79":{}},"component":{},"keyword":{}}],["name>org.eclipse.jetty.ee11.websocket.servlet.websocketupgradefilter</filt",{"_index":8674,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["name>org.eclipse.jetty.security.openid.error_page</param",{"_index":4414,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["name>org.eclipse.jetty.websocket.jakarta</param",{"_index":3735,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["name>println</nam",{"_index":4729,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["name>security</filt",{"_index":8671,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["name>test",{"_index":3954,"title":{},"name":{},"text":{"36":{},"62":{}},"component":{},"keyword":{}}],["namespac",{"_index":264,"title":{},"name":{},"text":{"2":{},"8":{},"23":{},"30":{},"39":{},"77":{}},"component":{},"keyword":{}}],["nanotim",{"_index":6117,"title":{},"name":{},"text":{"53":{},"58":{},"71":{}},"component":{},"keyword":{}}],["nanotime.millissince(beforehandlingnanotim",{"_index":7831,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["nanotime.now",{"_index":6109,"title":{},"name":{},"text":{"53":{},"71":{}},"component":{},"keyword":{}}],["nanotime.since(opennanotime.nanotim",{"_index":6115,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["nanotime.since(start",{"_index":6427,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["narrowli",{"_index":739,"title":{},"name":{},"text":{"4":{},"6":{}},"component":{},"keyword":{}}],["nasti",{"_index":1156,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["nation",{"_index":5305,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["nativ",{"_index":2856,"title":{},"name":{},"text":{"31":{},"35":{},"51":{},"52":{},"55":{},"66":{},"71":{},"74":{}},"component":{},"keyword":{}}],["natur",{"_index":1059,"title":{},"name":{},"text":{"8":{},"12":{},"31":{},"77":{}},"component":{},"keyword":{}}],["navig",{"_index":844,"title":{},"name":{},"text":{"7":{},"35":{},"41":{}},"component":{},"keyword":{}}],["ncsa",{"_index":3060,"title":{},"name":{},"text":{"31":{},"34":{},"71":{}},"component":{},"keyword":{}}],["ndc",{"_index":5309,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["near",{"_index":5912,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["nearli",{"_index":1087,"title":{},"name":{},"text":{"8":{},"31":{}},"component":{},"keyword":{}}],["necessari",{"_index":1098,"title":{},"name":{},"text":{"8":{},"18":{},"24":{},"29":{},"30":{},"31":{},"35":{},"41":{},"44":{},"45":{},"46":{},"48":{},"51":{},"52":{},"55":{},"56":{},"57":{},"58":{},"62":{},"63":{},"64":{},"70":{},"71":{},"79":{}},"component":{},"keyword":{}}],["necessarili",{"_index":755,"title":{},"name":{},"text":{"4":{},"52":{}},"component":{},"keyword":{}}],["need",{"_index":792,"title":{},"name":{},"text":{"6":{},"7":{},"8":{},"13":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"26":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"39":{},"40":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"62":{},"64":{},"65":{},"69":{},"71":{},"73":{},"74":{},"75":{},"76":{},"77":{},"79":{},"80":{},"84":{}},"component":{},"keyword":{}}],["neg",{"_index":5931,"title":{},"name":{},"text":{"52":{},"77":{}},"component":{},"keyword":{}}],["negat",{"_index":3078,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["negoti",{"_index":2509,"title":{},"name":{},"text":{"31":{},"35":{},"51":{},"71":{}},"component":{},"keyword":{}}],["nest",{"_index":4735,"title":{"64-6":{}},"name":{},"text":{"44":{},"64":{},"65":{},"71":{},"77":{}},"component":{},"keyword":{}}
1],["nestedloginservic",{"_index":7009,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["nestedloginservice.setuserstore(userstor",{"_index":7013,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["netih",{"_index":4243,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["netti",{"_index":5895,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["network",{"_index":1354,"title":{"31-9":{},"46-6":{}},"name":{},"text":{"15":{},"18":{},"20":{},"22":{},"24":{},"29":{},"31":{},"35":{},"41":{},"45":{},"46":{},"48":{},"50":{},"51":{},"52":{},"53":{},"55":{},"56":{},"57":{},"58":{},"71":{},"74":{},"75":{},"76":{},"79":{}},"component":{},"keyword":{}}],["network/transport",{"_index":6389,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["networkconnectionlimit",{"_index":7635,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["networkconnectionlimit(1024",{"_index":7637,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["networkconnectionlimit(64",{"_index":7640,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["networkconnector.listen",{"_index":7628,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["never",{"_index":1285,"title":{},"name":{},"text":{"13":{},"28":{},"39":{},"46":{},"51":{},"52":{},"53":{},"57":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["never_evict",{"_index":4393,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["new",{"_index":80,"title":{"29-2":{},"44-4":{}},"name":{},"text":{"1":{},"6":{},"10":{},"13":{},"17":{},"20":{},"22":{},"23":{},"29":{},"30":{},"31":{},"32":{},"33":{},"35":{},"36":{},"38":{},"39":{},"41":{},"42":{},"44":{},"46":{},"47":{},"48":{},"50":{},"51":{},"52":{},"53":{},"55":{},"56":{},"57":{},"58":{},"59":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{},"81":{}},"component":{},"keyword":{}}],["new_path",{"_index":8063,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["new_valu",{"_index":875,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["newcom",{"_index":58,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["newconnection(connector",{"_index":8266,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["newer",{"_index":357,"title":{},"name":{},"text":{"2":{},"30":{},"51":{},"57":{},"70":{}},"component":{},"keyword":{}}],["newhttpclient",{"_index":7954,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["newli",{"_index":2815,"title":{},"name":{},"text":{"31":{},"33":{},"35":{},"39":{},"44":{},"51":{},"77":{}},"component":{},"keyword":{}}],["newlin",{"_index":6249,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["newpath",{"_index":8062,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["newproxytoserverrequest",{"_index":7956,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["newproxytoserverrequestcont",{"_index":7957,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["newrequest",{"_index":8067,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["newselectormanag",{"_index":6208,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["newservertoproxyresponselisten",{"_index":7958,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["newsessionid(httpservletrequest",{"_index":8325,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["newuri",{"_index":8065,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["next",{"_index":74,"title":{},"name":{},"text":{"1":{},"17":{},"28":{},"29":{},"31":{},"38":{},"41":{},"46":{},"48":{},"51":{},"58":{},"71":{},"75":{},"79":{}},"component":{},"keyword":{}}],["nginx",{"_index":3140,"title":{},"name":{},"text":{"31":{},"35":{},"51":{},"71":{}},"component":{},"keyword":{}}],["nginx(via",{"_index":7693,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["nginx/apach",{"_index":7735,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["nice",{"_index":7902,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["nicer",{"_index":4731,"title":{},"name":{},"text":{"44":{},"71":{}},"component":{},"keyword":{}}],["nio",{"_index":2812,"title":{},"name":{},"text":{"31":{},"46":{},"52":{},"71":{}},"component":{},"keyword":{}}],["nnn",{"_index":1188,"title":{},"name":{},"text":{"10":{}},"component":{},"keyword":{}}],["no_flush",{"_index":2591,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["nocert",{"_index":3431,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["node",{"_index":2882,"title":{},"name":{},"text":{"31":{},"33":{},"39":{},"41":{},"71":{},"77":{},"81":{}},"component":{},"keyword":{}}],["node0",{"_index":4151,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["node0ek3vx7x2y1e7pmi3z00uqj1k0",{"_index":4215,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["node[jetty_worker_nam",{"_index":8304,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["nodej",{"_index":5894,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["noisi",{"_index":8388,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["nomin",{"_index":6724,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["non",{"_index":1227,"title":{"51-10":{}},"name":{},"text":{"12":{},"22":{},"24":{},"28":{},"30":{},"31":{},"39":{},"41":{},"43":{},"44":{},"46":{},"47":{},"50":{},"51":{},"52":{},"54":{},"56":{},"57":{},"58":{},"62":{},"63":{},"66":{},"67":{},"70":{},"71":{},"75":{},"77":{},"78":{},"79":{},"81":{}},"component":{},"keyword":{}}],["non_block",{"_index":5908,"title":{},"name":{},"text":{"52":{},"56":{},"78":{},"81":{}},"component":{},"keyword":{}}],["nonblockinghandl",{"_index":8630,"title":{},"name":{},"text":{"78":{}},"component":{},"keyword":{}}],["nonblockingsendendpoint",{"_index":6392,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["nonc",{"_index":6901,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["noncedata",{"_index":6972,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["noncedata.nonc",{"_index":6974,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["noncerespons",{"_index":6970,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["nonceresponse.json",{"_index":6973,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["nonce}\\nissu",{"_index":6981,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["none",{"_index":4089,"title":{},"name":{},"text":{"38":{},"60":{},"64":{},"71":{}},"component":{},"keyword":{}}],["none;\">result",{"_index":6958,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["noop",{"_index":3487,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["normal",{"_index":1860,"title":{},"name":{},"text":{"22":{},"31":{},"32":{},"34":{},"35":{},"46":{},"48":{},"52":{},"62":{},"67":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["nosql",{"_index":4134,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["notabl",{"_index":1769,"title":{},"name":{},"text":{"22":{},"71":{}},"component":{},"keyword":{}}],["notat",{"_index":2994,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["note",{"_index":188,"title":{},"name":{},"text":{"2":{},"7":{},"8":{},"10":{},"19":{},"20":{},"22":{},"23":{},"24":{},"28":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"39":{},"41":{},"42":{},"43":{},"45":{},"46":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"67":{},"71":{},"75":{},"77":{},"79":{}},"component":{},"keyword":{}}],["noth",{"_index":1438,"title":{},"name":{},"text":{"18":{},"30":{},"31":{},"41":{},"43":{},"77":{}},"component":{},"keyword":{}}],["notic",{"_index":272,"title":{},"name":{},"text":{"2":{},"28":{},"51":{},"81":{}},"component":{},"keyword":{}}],["notifi",{"_index":4880,"title":{},"name":{},"text":{"46":{},"47":{},"48":{},"49":{},"51":{},"53":{},"55":{},"56":{},"57":{},"58":{},"71":{},"73":{},"74":{},"75":{}},"component":{},"keyword":{}}],["notifyremoteasyncerrors=tru",{"_index":8907,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["notori",{"_index":7895,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["nov",{"_index":588,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["novic",{"_index":791,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["now",{"_index":698,"title":{},"name":{},"text":{"4":{},"8":{},"17":{},"20":{},"23":{},"29":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"41":{},"42":{},"43":{},"45":{},"46":{},"48":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"66":{},"67":{},"71":{},"73":{},"74":{},"75":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["nowaday",{"_index":3620,"title":{},"name":{},"text":{"35":{},"71":{}},"component":{},"keyword":{}}],["ns",{"_index":5675,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["nt",{"_index":5273,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["nth",{"_index":7709,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["null",{"_index":1281,"title":{},"name":{},"text":{"13":{},"23":{},"31":{},"35":{},"39":{},"41":{},"44":{},"46":{},"48":{},"51":{},"53":{},"55":{},"56":{},"57":{},"58":{},"63":{},"65":{},"67":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["null.ini",{"_index":4205,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["nullpointerexcept",{"_index":4580,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["nullsessioncach",{"_index":4395,"title":{"77-10":{}},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["nullsessioncache(app2.getsessionhandl",{"_index":8417,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["nullsessioncache.setflushonresponsecommit(tru",{"_index":8418,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["nullsessioncache.setremoveunloadablesessions(tru",{"_index":8419,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["nullsessioncache.setsaveoncreate(tru",{"_index":8420,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["nullsessioncache.setsessiondatastore(new",{"_index":8421,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["nullsessioncachefactori",{"_index":8410,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["nullsessiondatastor",{"_index":8286,"title":{"77-16":{}},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["number",{"_index":894,"title":{},"name":{},"text":{"7":{},"8":{},"11":{},"12":{},"17":{},"19":{},"20":{},"28":{},"29":{},"31":{},"33":{},"34":{},"35":{},"39":{},"41":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"61":{},"62":{},"71":{},"73":{},"74":{},"77":{},"79":{},"84":{}},"component":{},"keyword":{}}],["number(20",{"_index":4246,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["numer",{"_index":751,"title":{},"name":{},"text":{"4":{},"77":{}},"component":{},"keyword":{}}
1],["nurtur",{"_index":73,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["o",{"_index":3066,"title":{},"name":{},"text":{"31":{},"33":{},"34":{},"41":{},"51":{}},"component":{},"keyword":{}}],["o.e.j.util.callback",{"_index":6415,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["o.e.j.websocket.api.callback",{"_index":6414,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["o=compani",{"_index":3393,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["oauth",{"_index":4408,"title":{},"name":{},"text":{"40":{},"65":{}},"component":{},"keyword":{}}],["obf",{"_index":3212,"title":{},"name":{},"text":{"31":{},"42":{}},"component":{},"keyword":{}}],["obf:1xmk1w261u9r1w1c1xmq,user,admin",{"_index":4007,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["obf:1yta1t331v8w1v9q1t331ytc",{"_index":4669,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["obfusc",{"_index":2089,"title":{"42-2":{}},"name":{},"text":{"23":{},"31":{},"36":{},"42":{}},"component":{},"keyword":{}}],["object",{"_index":1267,"title":{"50-2":{},"50-4":{}},"name":{},"text":{"13":{},"15":{},"23":{},"24":{},"29":{},"34":{},"35":{},"39":{},"44":{},"46":{},"47":{},"48":{},"50":{},"51":{},"52":{},"53":{},"56":{},"57":{},"58":{},"59":{},"62":{},"67":{},"68":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{},"81":{}},"component":{},"keyword":{}}],["object.put(\"friend",{"_index":5342,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["object.put(\"scor",{"_index":5340,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["object.put(\"us",{"_index":5339,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["object>)object",{"_index":5262,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["objectclass",{"_index":4040,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["objectmbean",{"_index":5225,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["observ",{"_index":3214,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["obsolet",{"_index":2912,"title":{},"name":{},"text":{"31":{},"34":{},"70":{},"71":{},"79":{}},"component":{},"keyword":{}}],["obtain",{"_index":710,"title":{"81-2":{}},"name":{},"text":{"4":{},"22":{},"23":{},"31":{},"35":{},"36":{},"38":{},"39":{},"41":{},"42":{},"44":{},"45":{},"46":{},"47":{},"48":{},"51":{},"53":{},"55":{},"57":{},"63":{},"67":{},"71":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["obvious",{"_index":4577,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["occas",{"_index":8176,"title":{},"name":{},"text":{"73":{},"74":{}},"component":{},"keyword":{}}],["occupi",{"_index":5952,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["occur",{"_index":1158,"title":{},"name":{},"text":{"8":{},"19":{},"22":{},"28":{},"31":{},"39":{},"46":{},"53":{},"55":{},"74":{},"77":{}},"component":{},"keyword":{}}],["occurr",{"_index":8175,"title":{},"name":{},"text":{"73":{},"74":{}},"component":{},"keyword":{}}],["oct",{"_index":485,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["octob",{"_index":706,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["odd",{"_index":7985,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@15a34df2[capacity=53248,in",{"_index":8863,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@1807e3f6[capacity=61440,in",{"_index":8867,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@194fad1[capacity=65536,in",{"_index":8869,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@19932c16[capacity=36864,in",{"_index":8821,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@221a3fa4[capacity=4096,in",{"_index":8801,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@2a8448fa[capacity=40960,in",{"_index":8857,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@303cf2ba[capacity=20480,in",{"_index":8813,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@305ffe9e[capacity=40960,in",{"_index":8823,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@3cce5371[capacity=49152,in",{"_index":8861,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@4082ba93[capacity=24576,in",{"_index":8815,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@4201c465[capacity=24576,in",{"_index":8849,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@433defed[capacity=53248,in",{"_index":8829,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@45d84a20[capacity=65536,in",{"_index":8835,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@4722ef0c[capacity=57344,in",{"_index":8865,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@4e5ed836[capacity=32768,in",{"_index":8853,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@4f32a3ad[capacity=8192,in",{"_index":8841,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@59402b8f[capacity=12288,in",{"_index":8809,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@5ddeb7cb[capacity=8192,in",{"_index":8807,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@5f8e8a9d[capacity=45056,in",{"_index":8859,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@609e8838[capacity=28672,in",{"_index":8817,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@673fdbce[capacity=20480,in",{"_index":8847,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@6c4906d3[capacity=4096,in",{"_index":8839,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@6d60fe40[capacity=32768,in",{"_index":8819,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}
1],["oeji.arraybytebufferpool$retainedbucket@6f01b95f[capacity=16384,in",{"_index":8845,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@6f10d5b6[capacity=49152,in",{"_index":8827,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@6f53b8a[capacity=12288,in",{"_index":8843,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@710636b0[capacity=28672,in",{"_index":8851,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@723ca036[capacity=61440,in",{"_index":8833,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@7ae0a9ec[capacity=45056,in",{"_index":8825,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@7bd7d6d6[capacity=36864,in",{"_index":8855,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@7c37508a[capacity=16384,in",{"_index":8811,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool$retainedbucket@7fd50002[capacity=57344,in",{"_index":8831,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.arraybytebufferpool@6c284af{min=0,max=65536,buckets=16,heap=0/2095054848,direct=0/2095054848",{"_index":8799,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.managedselector$selectorproducer@7857fe2",{"_index":8920,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeji.managedselector@1b1cfb87{started}[id=0",{"_index":8913,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oejk.keystoregenerator:main",{"_index":3589,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejqqs.abstractquicheserverconnectionfactory:main",{"_index":3707,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejqqs.quicheserverconnector@867ba60{h3",{"_index":3711,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejs.abstractconnector:main",{"_index":1651,"title":{},"name":{},"text":{"20":{},"35":{},"41":{}},"component":{},"keyword":{}}],["oejs.httpconfiguration@57bc27f5{32768/8192,8192/8192,https://:0",{"_index":8876,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oejs.httpconnectionfactory@3232a28a[http/1.1",{"_index":8875,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oejs.server$dynamicerrorhandler@2657d4dd",{"_index":8928,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oejs.server:main",{"_index":1645,"title":{},"name":{},"text":{"20":{},"35":{},"41":{},"45":{}},"component":{},"keyword":{}}],["oejs.server@15fc442{starting}[12.1.13,sto=0",{"_index":3714,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejs.server@18271936{starting}[12.1.13,sto=0",{"_index":3564,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejs.server@1c5920df{starting}[12.1.13,sto=0",{"_index":1690,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["oejs.server@3228d990{starting}[12.1.13,sto=0",{"_index":3893,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejs.server@3ba987b8{starting}[12.1.13,sto=0",{"_index":8778,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oejs.server@4cc61eb1{starting}[12.1.13,sto=0",{"_index":3609,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejs.server@5215cd9a{starting}[12.1.13,sto=0",{"_index":3637,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejs.server@58e1d9d{starting}[12.1.13,sto=0",{"_index":3647,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejs.server@5b218417{starting}[12.1.13,sto=0",{"_index":4597,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["oejs.server@6cc4cdb9{starting}[12.1.13,sto=0",{"_index":4844,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["oejs.server@79e4c792{starting}[12.1.13,sto=0",{"_index":1655,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["oejs.server@7a35b0f5{starting}[12.1.13,sto=0",{"_index":3881,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejs.serverconnector$serverconnectormanager@34bde49d[keys=0",{"_index":8912,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oejs.serverconnector,managedselector@,key",{"_index":8774,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oejs.serverconnector@2a6c9c98{http/1.1",{"_index":1688,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["oejs.serverconnector@2cb4893b{http/1.1",{"_index":4596,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["oejs.serverconnector@2f46bb3d{[proxi",{"_index":3879,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejs.serverconnector@4830a33d{[proxi",{"_index":3891,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejs.serverconnector@530a8454{ssl",{"_index":3634,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejs.serverconnector@588ab592{ssl",{"_index":3606,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejs.serverconnector@5d10455d{ssl",{"_index":3704,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejs.serverconnector@72cc7e6f{http/1.1",{"_index":3562,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejs.serverconnector@72fdd480{http/1.1",{"_index":1652,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["oejs.serverconnector@764bc8cf{http/1.1",{"_index":1681,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["oejs.serverconnector@7857fe2{http/1.1",{"_index":3644,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejs.serverconnector@8519cb4{http/1.1",{"_index":8795,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oejs.shutdownmonitor:main",{"_index":4589,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["oejsh.contexthandlercollection@5c7933ad{start",{"_index":8873,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oejsh.defaulthandler@790da477{showcontext=true,favicon=true,start",{"_index":8872,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@1040be71[strategy=thread_id,inuse=0,size=0,max",{"_index":8828,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@17bffc17[strategy=thread_id,inuse=0,size=0,max",{"_index":8862,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@17fc391b[strategy=thread_id,inuse=0,size=0,max",{"_index":8816,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@247310d0[strategy=thread_id,inuse=0,size=0,max",{"_index":8812,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@25be7b63[strategy=thread_id,inuse=0,size=0,max",{"_index":8834,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@26abb146[strategy=thread_id,inuse=0,size=0,max",{"_index":8870,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@2a693f59[strategy=thread_id,inuse=0,size=0,max",{"_index":8830,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@302c971f[strategy=thread_id,inuse=0,size=0,max",{"_index":8824,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@35841320[strategy=thread_id,inuse=0,size=0,max",{"_index":8826,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@359df09a[strategy=thread_id,inuse=0,size=0,max",{"_index":8818,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@3de8f619[strategy=thread_id,inuse=0,size=0,max",{"_index":8852,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@4007f65e[strategy=thread_id,inuse=0,size=0,max",{"_index":8846,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@43f02ef2[strategy=thread_id,inuse=0,size=0,max",{"_index":8856,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@480d3575[strategy=thread_id,inuse=0,size=0,max",{"_index":8868,"t
1itle":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@48e1f6c7[strategy=thread_id,inuse=0,size=0,max",{"_index":8866,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@52f27fbd[strategy=thread_id,inuse=0,size=0,max",{"_index":8836,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@533bda92[strategy=thread_id,inuse=0,size=0,max",{"_index":8832,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@5745ca0e[strategy=thread_id,inuse=0,size=0,max",{"_index":8860,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@5965d37[strategy=thread_id,inuse=0,size=0,max",{"_index":8848,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@5b38c1ec[strategy=thread_id,inuse=0,size=0,max",{"_index":8864,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@5b799640[strategy=thread_id,inuse=0,size=0,max",{"_index":8850,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@5c80cf32[strategy=thread_id,inuse=0,size=0,max",{"_index":8844,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@65987993[strategy=thread_id,inuse=0,size=0,max",{"_index":8840,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@6b695b06[strategy=thread_id,inuse=0,size=0,max",{"_index":8842,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@6f204a1a[strategy=thread_id,inuse=0,size=0,max",{"_index":8858,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@70ed52de[strategy=thread_id,inuse=0,size=0,max",{"_index":8808,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@7188af83[strategy=thread_id,inuse=0,size=0,max",{"_index":8810,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@73eb439a[strategy=thread_id,inuse=0,size=0,max",{"_index":8822,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@76494737[strategy=thread_id,inuse=0,size=0,max",{"_index":8814,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}
1],["oeju.concurrentpool@792b749c[strategy=thread_id,inuse=0,size=0,max",{"_index":8820,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@8462f31[strategy=thread_id,inuse=0,size=0,max",{"_index":8804,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.concurrentpool@eadd4fb[strategy=thread_id,inuse=0,size=0,max",{"_index":8854,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oeju.queuedthreadpool",{"_index":3471,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["oejur.filesystempool@38467116{0",{"_index":8871,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oejus.sslcontextfactory$server@24855019[provider=null,keystore=file:///path/to/jetty.hom",{"_index":3700,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejus.sslcontextfactory$server@6f70f32f[provider=null,keystore=file:///path/to/jetty.hom",{"_index":3888,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejus.sslcontextfactory$server@7e094740[provider=null,keystore=file:///path/to/jetty.hom",{"_index":3595,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejus.sslcontextfactory$server@e3cee7b[provider=null,keystore=file:///path/to/jetty.hom",{"_index":3630,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejus.sslcontextfactory:main",{"_index":3592,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejuss.config:main",{"_index":3599,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["oejut.queuedthreadpool,contexthandlercollect",{"_index":8773,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oejut.queuedthreadpool[qtp1279309678]@4c40b76e{started,4<=4<=200,i=2,r",{"_index":8779,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oejut.reservedthreadexecutor@48bb62{capacity=16,threads=oejut.threadidpool@353352b6{capacity=16",{"_index":8782,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oejut.scheduledexecutorscheduler@491666ad{start",{"_index":8798,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oejut.threadidpool@353352b6{capacity=16",{"_index":8783,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oejut.threadpoolbudget@4681c175",{"_index":8781,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["oejuts.adaptiveexecutionstrategy@20b2475a/oeji.managedselector$selectorproducer@7857fe2/producing/oejut.queuedthreadpool[qtp1279309678]@4c40b76e{started,4<=4<=200,i=2,r",{"_index":8918,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["offer",{"_index":224,"title":{},"name":{},"text":{"2":{},"14":{},"24":{},"29":{},"35":{},"39":{},"46":{},"47":{},"50":{},"51":{},"52":{},"54":{},"56":{},"58":{},"71":{},"79":{}},"component":{},"keyword":{}}],["offici",{"_index":972,"title":{},"name":{},"text":{"8":{},"24":{},"31":{},"34":{},"35":{},"39":{},"48":{},"52":{}},"component":{},"keyword":{}}],["offload",{"_index":3623,"title":{},"name":{},"text":{"35":{},"65":{},"71":{}},"component":{},"keyword":{}}],["offset",{"_index":3107,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["og",{"_index":1131,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["oidc",{"_index":3020,"title":{},"name":{},"text":{"31":{},"65":{}},"component":{},"keyword":{}}],["ok",{"_index":1258,"title":{},"name":{},"text":{"13":{},"31":{},"35":{}},"component":{},"keyword":{}}],["okay",{"_index":387,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["old",{"_index":1692,"title":{},"name":{},"text":{"20":{},"22":{},"31":{},"35":{},"44":{},"47":{},"50":{},"62":{},"71":{}},"component":{},"keyword":{}}],["old/broken",{"_index":3859,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["older",{"_index":213,"title":{},"name":{},"text":{"2":{},"12":{},"35":{},"47":{},"51":{}},"component":{},"keyword":{}}],["olderchild",{"_index":5147,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["oldvalu",{"_index":7222,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["omit",{"_index":1541,"title":{},"name":{},"text":{"19":{},"22":{},"23":{},"35":{},"79":{}},"component":{},"keyword":{}}
1],["on",{"_index":50,"title":{"62-26":{}},"name":{},"text":{"1":{},"4":{},"6":{},"7":{},"8":{},"13":{},"15":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"28":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"39":{},"40":{},"41":{},"43":{},"46":{},"47":{},"48":{},"50":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"62":{},"66":{},"67":{},"69":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{},"84":{}},"component":{},"keyword":{}}],["on/off",{"_index":8767,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["onaccept(sess",{"_index":8177,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["onaccept(session.serv",{"_index":8233,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["onbeforehandling(request",{"_index":7824,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["onbinarymessage(inputstream",{"_index":6378,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["onbinarymessage(sess",{"_index":6365,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["onc",{"_index":913,"title":{"8-10":{}},"name":{},"text":{"7":{},"18":{},"19":{},"20":{},"22":{},"31":{},"34":{},"39":{},"41":{},"46":{},"51":{},"52":{},"53":{},"55":{},"62":{},"65":{},"67":{},"70":{},"74":{},"77":{},"79":{}},"component":{},"keyword":{}}],["onclose(int",{"_index":6369,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["onclose(sess",{"_index":6110,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["onclosed(connect",{"_index":4914,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["oncomplete(request",{"_index":7827,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["oncomplete(result",{"_index":5553,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["oncompleted(throw",{"_index":4965,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["oncompletefailur",{"_index":5088,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["oncompletefailure(throw",{"_index":4976,"title":{},"name":{},"text":{"46":{},"58":{},"66":{},"75":{}},"component":{},"keyword":{}}],["oncompletesuccess",{"_index":4974,"title":{},"name":{},"text":{"46":{},"58":{},"75":{}},"component":{},"keyword":{}}],["onconditionsmet(request",{"_index":7748,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["onconditionsnotmet(request",{"_index":7749,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["onconnectbegin(socketchannel",{"_index":5670,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["onconnectfailure(socketchannel",{"_index":5676,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["onconnectsuccess(socketchannel",{"_index":5673,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["oncontent(respons",{"_index":5589,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["oncontentsource(request",{"_index":5576,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["oncontentsource(respons",{"_index":5602,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["ondataavail",{"_index":6056,"title":{},"name":{},"text":{"53":{},"55":{}},"component":{},"keyword":{}}],["ondataavailable(stream",{"_index":6059,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["ondataavailable(stream.cli",{"_index":6171,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["ondataavailable(stream.serv",{"_index":8240,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["one.com",{"_index":3843,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["onerror(throw",{"_index":6367,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["onfailure(stream",{"_index":6097,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["onfailure(stream.cli",{"_index":6174,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["onfailure(throw",{"_index":4979,"title":{},"name":{},"text":{"46":{},"66":{}},"component":{},"keyword":{}}],["onfield",{"_index":6596,"title":{},"name":{},"text":{"61":{}},"component":{},"keyword":{}}],["onfil",{"_index":4899,"title":{},"name":{},"text":{"46":{},"57":{},"75":{}},"component":{},"keyword":{}}],["ongo",{"_index":687,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["onhandlercallbacknotcompleted(request",{"_index":7899,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["onhandshakeresponse(request",{"_index":6298,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["onheaders(stream",{"_index":6049,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["onincomingframe(sess",{"_index":6120,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["online(consumer<str",{"_index":6254,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["only/></cooki",{"_index":8337,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["onnewstream",{"_index":8183,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["onnewstream(stream",{"_index":8181,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}
1],["onopen",{"_index":4892,"title":{},"name":{},"text":{"46":{},"57":{},"75":{}},"component":{},"keyword":{}}],["onopen(networkconnector",{"_index":7629,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["onopen(sess",{"_index":6106,"title":{},"name":{},"text":{"53":{},"58":{}},"component":{},"keyword":{}}],["onopened(connect",{"_index":4910,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["onoutgoingframe(sess",{"_index":6121,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["onprefac",{"_index":6006,"title":{},"name":{},"text":{"53":{},"55":{}},"component":{},"keyword":{}}],["onpreface(sess",{"_index":6008,"title":{},"name":{},"text":{"53":{},"55":{},"73":{},"74":{}},"component":{},"keyword":{}}],["onpush(stream",{"_index":6081,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["onrequest",{"_index":8239,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["onrequest(session.serv",{"_index":8237,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["onrequest(stream.serv",{"_index":8238,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["onrequestbegin(request",{"_index":5464,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["onrequestcommit(request",{"_index":5466,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["onrequestcontent((request",{"_index":5467,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["onrequestfailure((request",{"_index":5468,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["onrequestheaders(request",{"_index":5465,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["onrequestlistener(new",{"_index":5470,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["onrequestqueued(request",{"_index":5463,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["onrequestsuccess(request",{"_index":5469,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["onreset(stream",{"_index":6075,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["onresponse(stream.cli",{"_index":6167,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["onresponsebegin(respons",{"_index":5472,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["onresponsecontentasync((respons",{"_index":5475,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["onresponsecontentsource((respons",{"_index":6185,"title":{},"name":{},"text":{"56":{}},"component":{},"keyword":{}}],["onresponsefailure((respons",{"_index":5477,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["onresponseheader((respons",{"_index":5473,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["onresponseheaders(respons",{"_index":5474,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["onresponselistener(new",{"_index":5479,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["onresponsesuccess(respons",{"_index":5478,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["onsettings(sess",{"_index":8204,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["onsuccess",{"_index":5092,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["ontext(sess",{"_index":6393,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["ontext(str",{"_index":6315,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["ontextmessage(read",{"_index":6376,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["ontextmessage(sess",{"_index":6364,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["onto",{"_index":1224,"title":{},"name":{},"text":{"12":{},"38":{},"39":{},"44":{},"51":{},"62":{}},"component":{},"keyword":{}}],["onward",{"_index":4305,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["onwebsocketbinary(bytebuff",{"_index":6337,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["onwebsocketclos",{"_index":6368,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["onwebsocketclose(int",{"_index":6352,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["onwebsocketerror",{"_index":6366,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["onwebsocketerror(throw",{"_index":6349,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["onwebsocketfram",{"_index":6421,"title":{},"name":{},"text":{"58":{},"66":{}},"component":{},"keyword":{}}],["onwebsocketmessag",{"_index":6314,"title":{},"name":{},"text":{"58":{},"66":{}},"component":{},"keyword":{}}],["onwebsocketopen",{"_index":6313,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["onwebsocketopen(sess",{"_index":6318,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["onwebsocketp",{"_index":7074,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["onwebsocketpartialbinary(bytebuff",{"_index":6361,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["onwebsocketpartialtext(str",{"_index":6357,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["onwebsocketpong",{"_index":7075,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["onwebsocketpong(bytebuff",{"_index":6425,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["onwebsockettext(str",{"_index":6320,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["onxyz",{"_index":7809,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["op",{"_index":3027,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["opaqu",{"_index":3860,"title":{},"name":{},"text":{"35":{},"58":{}},"component":{},"keyword":{}}],["open",{"_index":18,"title":{"4-3":{}},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"7":{},"8":{},"14":{},"20":{},"24":{},"30":{},"31":{},"35":{},"43":{},"46":{},"48":{},"51":{},"53":{},"55":{},"57":{},"58":{},"71":{},"73":{},"74":{},"81":{}},"component":{},"keyword":{}}],["openid",{"_index":2503,"title":{"40":{},"65":{},"31-37":{},"40-1":{},"40-4":{}},"name":{"40":{},"65":{}},"text":{"31":{},"40":{},"63":{},"64":{},"65":{}},"component":{},"keyword":{}}],["openid.ini",{"_index":4410,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["openid.mod",{"_index":7125,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["openidauthent",{"_index":6881,"title":{},"name":{},"text":{"63":{},"65":{}},"component":{},"keyword":{}}],["openidauthenticationfactori",{"_index":4421,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["openidauthenticator(openidconfig",{"_index":7017,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["openidconfig",{"_index":6995,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["openidconfig.setauthenticatenewusers(tru",{"_index":7014,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["openidconfigur",{"_index":4420,"title":{},"name":{},"text":{"40":{},"65":{}},"component":{},"keyword":{}}],["openidexamplehandl",{"_index":7020,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["openidloginservic",{"_index":4416,"title":{},"name":{},"text":{"40":{},"63":{},"65":{}},"component":{},"keyword":{}}],["openidloginservice(openidconfig",{"_index":7015,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["openjdk",{"_index":834,"title":{},"name":{},"text":{"7":{},"24":{},"35":{},"41":{},"51":{},"71":{},"81":{}},"component":{},"keyword":{}}],["openjdkâ",{"_index":3833,"title":{},"name":{},"text":{"35":{},"71":{}},"component":{},"keyword":{}}],["opennanotim",{"_index":6111,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["opens.put(sess",{"_index":6107,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["opens.remove(sess",{"_index":6112,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["openssl",{"_index":2350,"title":{},"name":{},"text":{"29":{},"33":{},"35":{},"71":{}},"component":{},"keyword":{}}],["opensslprovid",{"_index":7683,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["oper",{"_index":690,"title":{"16":{},"14-1":{}},"name":{},"text":{"4":{},"7":{},"8":{},"14":{},"16":{},"20":{},"31":{},"34":{},"38":{},"39":{},"41":{},"44":{},"45":{},"46":{},"47":{},"48":{},"51":{},"52":{},"57":{},"58":{},"66":{},"71":{},"77":{},"81":{},"83":{}},"component":{},"keyword":{}}],["opportun",{"_index":137,"title":{},"name":{},"text":{"1":{},"60":{}},"component":{},"keyword":{}}],["oppos",{"_index":5911,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}
1],["opposit",{"_index":5119,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["opt",{"_index":1611,"title":{},"name":{},"text":{"20":{},"41":{}},"component":{},"keyword":{}}],["optim",{"_index":3835,"title":{},"name":{},"text":{"35":{},"45":{},"71":{},"77":{}},"component":{},"keyword":{}}],["optimum",{"_index":4120,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["option",{"_index":345,"title":{"4-2":{},"7-6":{},"41-8":{}},"name":{},"text":{"2":{},"4":{},"15":{},"19":{},"20":{},"22":{},"23":{},"24":{},"28":{},"30":{},"31":{},"34":{},"35":{},"36":{},"39":{},"41":{},"42":{},"43":{},"45":{},"48":{},"51":{},"52":{},"53":{},"54":{},"55":{},"58":{},"59":{},"62":{},"64":{},"65":{},"69":{},"70":{},"71":{},"73":{},"74":{},"77":{},"79":{},"80":{}},"component":{},"keyword":{}}],["optional_white_spac",{"_index":8902,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["option}uri",{"_index":3121,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["opts=$(java",{"_index":4548,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["oracl",{"_index":4247,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["oracleâ",{"_index":347,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["orchestr",{"_index":4125,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["order",{"_index":985,"title":{"19-7":{}},"name":{},"text":{"8":{},"19":{},"22":{},"23":{},"29":{},"30":{},"31":{},"35":{},"39":{},"41":{},"46":{},"47":{},"51":{},"52":{},"53":{},"55":{},"56":{},"57":{},"58":{},"62":{},"63":{},"64":{},"70":{},"71":{},"75":{},"77":{},"79":{},"80":{}},"component":{},"keyword":{}}],["orelse(nul",{"_index":5385,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["org.always.have.a.packag",{"_index":1254,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["org.apache.catalina.jsp_classpath",{"_index":2272,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["org.apache.jasp",{"_index":2248,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["org.apache.jasper.jspc",{"_index":6553,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["org.eclipse.jetti",{"_index":3461,"title":{},"name":{},"text":{"34":{},"45":{},"84":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.annotations.maxwait",{"_index":1559,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.annotations.multithread",{"_index":1552,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.cli",{"_index":7100,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.client.api",{"_index":7099,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.client.completableresponselisten",{"_index":5544,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.client.connectionpool",{"_index":5377,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.client.contentdecod",{"_index":7058,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.client.http",{"_index":7102,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.client.httpcli",{"_index":5362,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.client.httpproxi",{"_index":5779,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.client.level=debug",{"_index":8955,"title":{},"name":{},"text":{"84":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.client.request.cont",{"_index":5486,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.client.socks4proxi",{"_index":5781,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.client.socks5proxi",{"_index":5782,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.client.transport",{"_index":7103,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.client.util",{"_index":7101,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.compression.compress",{"_index":7059,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.compression.server.compressionhandl",{"_index":2560,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.compression:jetti",{"_index":5537,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.containerinitializerexclusionpattern",{"_index":1565,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.containerinitializerord",{"_index":1574,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}
1],["org.eclipse.jetty.deploy.deploymentscann",{"_index":2668,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.deploy.standarddeploy",{"_index":7395,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.ee11.factories.mailsessionrefer",{"_index":2086,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.ee11.maven.plugin.mavenwebappcontext",{"_index":6660,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.ee11.servlet.security.constraintmap",{"_index":6864,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.ee11.servlet.security.constraintsecurityhandl",{"_index":6848,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.ee11.webapp.webappcontext",{"_index":6661,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.ee11.websocket.servlet.websocketupgradefilt",{"_index":8666,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.ee11:jetti",{"_index":7995,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.ee9.webapp.webappcontext",{"_index":6718,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.ee{8,9,10,11}.jndi.factories.mailsessionrefer",{"_index":2075,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.ee{8,9,10,11}.plus.jndi.transact",{"_index":2013,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.ee{8,9,10,11}.webapp.webappcontext",{"_index":2129,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.ee{8,9,10,11}.websocket:jetti",{"_index":7096,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.ee{8,9,10,11}:jetti",{"_index":7089,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.fcgi:fcgi",{"_index":7081,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.fcgi:jetti",{"_index":7082,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.http",{"_index":4830,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.http.httphead",{"_index":6449,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.http2",{"_index":4831,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.http2.api.server.serversessionlisten",{"_index":8168,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.http2.api.sess",{"_index":5983,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.http2.client.http",{"_index":7104,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.http2.client.http2cli",{"_index":5979,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.http2.client.transport",{"_index":7105,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.http2.server.rawhttp2serverconnectionfactori",{"_index":8167,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.http2:http2",{"_index":7083,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.http2:jetti",{"_index":7084,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.http3.api.session.cli",{"_index":6146,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.http3.api.session.serv",{"_index":8223,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.http3.api.session.server.listen",{"_index":8226,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.http3.api.stream.cli",{"_index":6147,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.http3.api.stream.serv",{"_index":8224,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.http3.client.http3cli",{"_index":6141,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.http3.server.rawhttp3serverconnectionfactori",{"_index":8225,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.http3:http3",{"_index":7086,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.http3:jetti",{"_index":7087,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.io",{"_index":4828,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.io.bytebufferpool",{"_index":6202,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.io.clientconnector",{"_index":6198,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.io.cont",{"_index":6450,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.io.content.sink",{"_index":5047,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.io.content.sourc",{"_index":4981,"title":{},"name":{},"text":{"46":{},"51":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.io.selectormanag",{"_index":6199,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.io.ssl.sslhandshakelisten",{"_index":5692,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.io.transport",{"_index":6195,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.jmx",{"_index":8039,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.jmx.connectorserv",{"_index":5173,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.jmx.mbeancontain",{"_index":5162,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.jmx.objectmbean",{"_index":5223,"title":{},"name":{},"text":{"48":{},"71":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.jmx:name=rmiconnectorserv",{"_index":5180,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.jsp.jettyjspservlet",{"_index":2250,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.level=<log",{"_index":3460,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.level=info",{"_index":8954,"title":{},"name":{}
1,"text":{"84":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.logging.,${jetty.home.uri}/lib/logging/,org.slf4j",{"_index":4479,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.logging.appender.message_align=<integ",{"_index":3472,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.logging.appender.message_escape=<boolean",{"_index":3475,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.logging.appender.name_condense=<boolean",{"_index":3468,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.logging.appender.zone_id=<timezon",{"_index":3477,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.logging.stderrappend",{"_index":3448,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.plus.jndi.enventri",{"_index":1994,"title":{"23-2":{}},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.plus.jndi.link",{"_index":1999,"title":{"23-8":{}},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.plus.jndi.resourc",{"_index":1995,"title":{"23-3":{}},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.plus.jndi.transact",{"_index":1998,"title":{"23-7":{}},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.quic.quiche.foreign",{"_index":6140,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.quic.quiche.foreign.nativehelp",{"_index":6133,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.quic.server.quicserverconnector",{"_index":7578,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.quic:jetti",{"_index":7091,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.quic:qu",{"_index":7090,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.rewrite.handler.rul",{"_index":7780,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.authent",{"_index":6810,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.jaas.jaasloginservic",{"_index":3952,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.jaas.ldap.ldaploginmodul",{"_index":3978,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.jaas.spi.datasourceloginmodul",{"_index":3977,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.jaas.spi.jdbcloginmodul",{"_index":3975,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.jaas.spi.ldaploginmodul",{"_index":4014,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.jaas.spi.propertyfileloginmodul",{"_index":3976,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.loginservic",{"_index":6624,"title":{},"name":{},"text":{"62":{},"63":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.openid.claim",{"_index":7041,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.openid.error_pag",{"_index":4411,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.openid.respons",{"_index":7042,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.securityhandl",{"_index":6809,"title":{},"name":{},"text":{"63":{},"71":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.siwe.authenticate_new_us",{"_index":6913,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.siwe.authentication_path",{"_index":6905,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.siwe.chainid",{"_index":6917,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.siwe.dispatch",{"_index":6912,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.siwe.domain",{"_index":6914,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.siwe.error_path",{"_index":6910,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.siwe.login_path",{"_index":6900,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.siwe.logout_redirect_path",{"_index":6909,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.siwe.max_message_s",{"_index":6907,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.security.siwe.nonce_path",{"_index":6902,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.connector",{"_index":7535,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.handl",{"_index":6451,"title":{},"name":{},"text":{"59":{},"71":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.handler$sequ",{"_index":7342,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.handler.contexthandlercollect",{"_index":7343,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}
1],["org.eclipse.jetty.server.handler.doshandl",{"_index":2682,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.handler.eagercontenthandl",{"_index":2714,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.handler.eventshandl",{"_index":7541,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.handler.handlercollect",{"_index":7338,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.handler.handlerlist",{"_index":7339,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.handler.requestloghandl",{"_index":7345,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.handler.sequ",{"_index":7341,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.memoryconnector",{"_index":7579,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.memorytransport",{"_index":6226,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.networkconnectionlimit",{"_index":7634,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.request",{"_index":6452,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.request.maxformcontents",{"_index":4047,"title":{},"name":{},"text":{"37":{},"61":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.request.maxformkey",{"_index":4046,"title":{},"name":{},"text":{"37":{},"61":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.requestlog",{"_index":3537,"title":{},"name":{},"text":{"34":{},"62":{},"71":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.respons",{"_index":6453,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.serv",{"_index":2121,"title":{},"name":{},"text":{"23":{},"30":{},"36":{},"41":{},"62":{},"71":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.serverconnector",{"_index":7576,"title":{},"name":{},"text":{"71":{},"75":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.shutdownmonitor",{"_index":4590,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.shutdownservic",{"_index":4591,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.webapp.containerincludejarpattern",{"_index":1524,"title":{},"name":{},"text":{"19":{},"26":{},"62":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server.webapp.webinfincludejarpattern",{"_index":1543,"title":{},"name":{},"text":{"19":{},"62":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.server:type=server,id=0",{"_index":8765,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.session.checkingremotesessionidencod",{"_index":8328,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.session.infinispan.embeddedquerymanager(localcach",{"_index":8550,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.session.infinispan.infinispanserializationcontextiniti",{"_index":8566,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.session.infinispan.infinispansessionlegacyconvert",{"_index":4316,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.session.infinispan.remotequerymanager(remotecach",{"_index":8575,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.session.maxag",{"_index":8366,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.session.sessioncooki",{"_index":8355,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.session.sessiondomain",{"_index":8370,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.session.sessionhandl",{"_index":8142,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.session.sessionidpathparameternam",{"_index":8357,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.session.sessionpath",{"_index":8374,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.start",{"_index":8939,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.start.build",{"_index":8937,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.start.config",{"_index":8936,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.start.shaded.util",{"_index":8938,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.unixdomain.server.unixdomainserverconnector",{"_index":7577,"title":{},"name":{},"text":{"71":{},"75":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util",{"_index":4829,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.ajax.asyncjson",{"_index":5263,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.ajax.json",{"_index":5257,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.annot",{"_index":8035,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.callback",{"_index":6454,"title":{},"name":{},"text":{"59":{},"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.component.contain",{"_index":5107,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.component.containerlifecycl",{"_index":5108,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.component.haltlifecyclelistener@4f0f2942",{"_index":8927,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.component.lifecycl",{"_index":5106,"title":{},"name":{},"text":{"47":{},"71":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.iteratingcallback",{"_index":4942,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.queuedthreadpool",{"_index":3470,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.security.password",{"_index":4666,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.ssl.sslcontextfactory$serv",{"_index":4572,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.ssl.sslcontextfactory.cli",{"_index":6203,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.ssl.x509",{"_index":7575,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.thread.executionstrategi",{"_index":5901,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.thread.invoc",{"_index":5881,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.thread.schedul",{"_index":6201,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.thread.strategy.adaptiveexecutionstrategi",{"_index":5906,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.thread.strategy.executeproduceconsum",{"_index":5904,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.thread.strategy.produceconsum",{"_index":5902,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.thread.strategy.produceexecuteconsum",{"_index":5903,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.thread.tryexecutor",{"_index":5909,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.util.thread:type=queuedthreadpool,id=0",{"_index":8768,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.api.annot",{"_index":6304,"title":{},"name":{},"text":{"58":{},"79":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.api.annotation.onwebsocketconnect",{"_index":7106,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.api.annotation.onwebsocketopen",{"_index":7107,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}
1],["org.eclipse.jetty.websocket.api.callback",{"_index":7109,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.api.configur",{"_index":7114,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.api.remoteendpoint",{"_index":7112,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.api.sess",{"_index":6287,"title":{},"name":{},"text":{"58":{},"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.api.session.listen",{"_index":6303,"title":{},"name":{},"text":{"58":{},"79":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.api.session.listener.autodemand",{"_index":7111,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.api.session.listener.onwebsocketpartialbinari",{"_index":6355,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.api.session.listener.onwebsocketpartialtext",{"_index":6354,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.api.websocket*listen",{"_index":7110,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.api.websocketpolici",{"_index":7113,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.api.writecallback",{"_index":7108,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.client.websocketcli",{"_index":6274,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.jakarta",{"_index":3731,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.javax",{"_index":3737,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.javax.server.config.javaxwebsocketservletcontaineriniti",{"_index":7369,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.jsr356.server.deploy.websocketservercontaineriniti",{"_index":7368,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.server.config.jettywebsocketservletcontaineriniti",{"_index":7367,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.server.jettyserverupgraderequest",{"_index":7373,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.server.jettyserverupgraderespons",{"_index":7375,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.server.jettywebsocketcr",{"_index":7371,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.server.jettywebsocketservlet",{"_index":7377,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.server.jettywebsocketservletfactori",{"_index":7379,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.server.nativewebsocketservletcontaineriniti",{"_index":7366,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.server.serverwebsocketcontain",{"_index":8715,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.server.websocketcr",{"_index":8738,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.server.websocketupgradehandl",{"_index":8716,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.servlet.servletupgraderequest",{"_index":7372,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.servlet.servletupgraderespons",{"_index":7374,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.servlet.websocketcr",{"_index":7370,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.servlet.websocketservlet",{"_index":7376,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.servlet.websocketservletfactori",{"_index":7378,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket.servlet.websocketupgradefilt",{"_index":8697,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket:javax",{"_index":7365,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket:jetti",{"_index":7095,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.websocket:websocket",{"_index":7094,"title":{},"name":{},"text":{"67":{},"68":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.xml",{"_index":4761,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.xml.xmlconfigur",{"_index":4511,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.xml.xmlconfiguration$jettyxmlconfigur",{"_index":4760,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["org.eclipse.jetty.xml/org.eclipse.jetty.xml.xmlconfigur",{"_index":4532,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["org.eclipse.jetty:apach",{"_index":7097,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty:glassfish",{"_index":7098,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty:jetti",{"_index":4667,"title":{},"name":{},"text":{"42":{},"67":{}},"component":{},"keyword":{}}],["org.eclipse.jetty[.<package_names>].level=debug",{"_index":8956,"title":{},"name":{}
1,"text":{"84":{}},"component":{},"keyword":{}}],["org.exampl",{"_index":6448,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["org.example.packag",{"_index":8022,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["org.example.package.specificclass",{"_index":8023,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["org.infinispan.client.hotrod.configuration.configurationbuild",{"_index":8560,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["org.infinispan.client.hotrod.remotecachemanag",{"_index":8567,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["org.postgresql.ds.pgconnectionpooldatasourc",{"_index":4708,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["org.slf4j.bridge.slf4jbridgehandl",{"_index":3506,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["organ",{"_index":2445,"title":{},"name":{},"text":{"30":{},"41":{},"48":{},"49":{},"58":{},"71":{},"81":{}},"component":{},"keyword":{}}],["organizationâ",{"_index":7951,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["origin",{"_index":1216,"title":{"31-12":{}},"name":{},"text":{"10":{},"31":{},"32":{},"35":{},"42":{},"51":{},"53":{},"55":{},"62":{},"71":{}},"component":{},"keyword":{}}],["origin=\"@webservlet(com.acme.test.testservlet):24",{"_index":6748,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["origin=\"defaultsdescriptor(file:///path/to/distro/etc/webdefault.xml):21",{"_index":6739,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["origin=\"fragmentdescriptor(jar:file:///path/to/base/webapps/test",{"_index":6743,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["origin=\"webdescriptor(file:///path/to/base/webapps/test",{"_index":6740,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["originattribut",{"_index":6749,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["orphan",{"_index":4303,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["orthogon",{"_index":5580,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["os",{"_index":2516,"title":{},"name":{},"text":{"31":{},"71":{},"81":{}},"component":{},"keyword":{}}],["osgi",{"_index":337,"title":{},"name":{},"text":{"2":{},"14":{},"67":{}},"component":{},"keyword":{}}],["other",{"_index":1112,"title":{},"name":{},"text":{"8":{},"30":{},"31":{},"35":{},"51":{},"52":{},"64":{},"65":{},"71":{},"77":{}},"component":{},"keyword":{}}],["other.xml",{"_index":1889,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["otherwis",{"_index":1213,"title":{},"name":{},"text":{"10":{},"15":{},"20":{},"22":{},"30":{},"31":{},"32":{},"35":{},"39":{},"41":{},"43":{},"45":{},"46":{},"48":{},"51":{},"52":{},"53":{},"55":{},"58":{},"63":{},"67":{},"71":{},"75":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["ou",{"_index":3402,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["ou=unit",{"_index":3392,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["ourselv",{"_index":1218,"title":{},"name":{},"text":{"10":{}},"component":{},"keyword":{}}],["out",{"_index":166,"title":{},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"8":{},"11":{},"18":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"39":{},"41":{},"45":{},"46":{},"50":{},"51":{},"53":{},"55":{},"57":{},"58":{},"63":{},"71":{},"75":{},"77":{},"80":{}},"component":{},"keyword":{}}],["out.add(\"address",{"_index":5324,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["out.add(\"numb",{"_index":5302,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["out.add(\"x",{"_index":5300,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["outcom",{"_index":4396,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["outermost",{"_index":7822,"title":{},"name":{},"text":{"71":{},"77":{}},"component":{},"keyword":{}}],["outgo",{"_index":3558,"title":{},"name":{},"text":{"35":{},"53":{},"58":{}},"component":{},"keyword":{}}],["outlin",{"_index":6325,"title":{},"name":{},"text":{"58":{},"67":{},"71":{}},"component":{},"keyword":{}}],["outofmemoryerror",{"_index":6324,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["output",{"_index":1326,"title":{},"name":{},"text":{"13":{},"28":{},"31":{},"33":{},"34":{},"41":{},"51":{},"58":{},"62":{},"71":{},"77":{},"81":{}},"component":{},"keyword":{}}],["output.clos",{"_index":5518,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["output.write(byt",{"_index":5517,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["outputaggregationsize=8192",{"_index":8880,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["outputbuffers",{"_index":6390,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["outputbuffersize=32768",{"_index":8879,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["outputdirectori",{"_index":6719,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["outputstream",{"_index":5512,"title":{},"name":{},"text":{"51":{},"67":{},"71":{}},"component":{},"keyword":{}}],["outputstreamrequestcont",{"_index":5511,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["outreach",{"_index":1220,"title":{},"name":{},"text":{"11":{}},"component":{},"keyword":{}}],["outsid",{"_index":1760,"title":{"39-34":{}},"name":{},"text":{"22":{},"46":{},"71":{},"77":{}},"component":{},"keyword":{}}],["outstand",{"_index":5419,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["over",{"_index":1848,"title":{},"name":{},"text":{"22":{},"24":{},"28":{},"31":{},"35":{},"39":{},"45":{},"46":{},"48":{},"51":{},"52":{},"55":{},"57":{},"58":{},"59":{},"64":{},"70":{},"71":{},"74":{},"77":{}},"component":{},"keyword":{}}],["overal",{"_index":7708,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["overflow",{"_index":776,"title":{"6-2":{}},"name":{},"text":{"53":{},"66":{},"73":{}},"component":{},"keyword":{}}],["overhead",{"_index":2731,"title":{},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["overlaid",{"_index":6525,"title":{"60-3":{},"62-21":{}},"name":{},"text":{"60":{},"62":{}},"component":{},"keyword":{}}],["overlay",{"_index":6564,"title":{},"name":{},"text":{"60":{},"62":{}},"component":{},"keyword":{}}],["overload",{"_index":4181,"title":{},"name":{},"text":{"39":{},"58":{},"71":{}},"component":{},"keyword":{}}],["overrid",{"_index":1458,"title":{"22-26":{}},"name":{},"text":{"18":{},"20":{},"23":{},"29":{},"31":{},"41":{},"46":{},"47":{},"48":{},"50":{},"51":{},"53":{},"55":{},"56":{},"57":{},"58":{},"59":{},"62":{},"63":{},"65":{},"66":{},"67":{},"68":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{},"84":{}},"component":{},"keyword":{}}],["overridden",{"_index":2868,"title":{},"name":{},"text":{"31":{},"41":{},"58":{},"71":{},"79":{}},"component":{},"keyword":{}}],["override.xml",{"_index":6732,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["overridedescriptor",{"_index":6665,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["overview",{"_index":1377,"title":{"18":{},"39-1":{}},"name":{},"text":{"15":{},"64":{},"77":{}},"component":{},"keyword":{}}],["overwrit",{"_index":3302,"title":{},"name":{},"text":{"31":{},"46":{}},"component":{},"keyword":{}}],["own",{"_index":689,"title":{},"name":{},"text":{"4":{},"18":{},"58":{}},"component":{},"keyword":{}}],["ownership",{"_index":348,"title":{},"name":{},"text":{"2":{},"64":{}},"component":{},"keyword":{}}],["p",{"_index":6157,"title":{},"name":{},"text":{"55":{},"58":{},"59":{},"64":{},"71":{}},"component":{},"keyword":{}}],["p2",{"_index":173,"title":{"2-4":{}},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["p7qm",{"_index":532,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["p>hello",{"_index":6465,"title":{},"name":{},"text":{"59":{},"71":{}},"component":{},"keyword":{}}],["pack",{"_index":6565,"title":{},"name":{},"text":{"60":{},"62":{}},"component":{},"keyword":{}}],["packag",{"_index":1253,"title":{},"name":{},"text":{"13":{},"19":{},"20":{},"22":{},"23":{},"28":{},"29":{},"31":{},"38":{},"48":{},"58":{},"59":{},"60":{},"62":{},"68":{},"71":{},"79":{},"81":{}},"component":{},"keyword":{}}],["package>.jmx.<class>mbean",{"_index":5226,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["packages/nam",{"_index":7077,"title":{"67-3":{}},"name":{},"text":{},"component":{},"keyword":{}}],["packaging>jar</packag",{"_index":6479,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["packaging>war</packag",{"_index":6514,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["packet",{"_index":7583,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["page",{"_index":201,"title":{"27":{},"28":{},"64-9":{}},"name":{},"text":{"2":{},"4":{},"8":{},"14":{},"27":{},"28":{},"36":{},"40":{},"51":{},"59":{},"63":{},"64":{},"65":{},"66":{},"71":{}},"component":{},"keyword":{}}],["page/tag",{"_index":2341,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["page>/login/error</form",{"_index":3957,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["page>/login/login</form",{"_index":3956,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["pair",{"_index":2193,"title":{},"name":{},"text":{"24":{},"33":{},"35":{},"41":{},"44":{},"46":{},"62":{},"71":{},"75":{}},"component":{},"keyword":{}}],["pam",{"_index":3938,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["panel",{"_index":8766,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["parallel",{"_index":824,"title":{"7-5":{}},"name":{},"text":{"7":{},"8":{},"51":{},"52":{},"62":{}},"component":{},"keyword":{}}],["param",{"_index":1991,"title":{},"name":{},"text":{"22":{},"28":{},"31":{},"35":{},"37":{},"40":{},"51":{},"64":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["param(\"p",{"_index":5443,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["param>",{"_index":2257,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["paramet",{"_index":2125,"title":{},"name":{},"text":{"23":{},"24":{},"28":{},"31":{},"32":{},"35":{},"39":{},"42":{},"45":{},"46":{},"48":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"60":{},"61":{},"62":{},"64":{},"65":{},"66":{},"67":{},"70":{},"71":{},"75":{},"77":{},"79":{}},"component":{},"keyword":{}}],["parameters.get(\"error_description_jetti",{"_index":7028,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["parametr",{"_index":2375,"title":{},"name":{},"text":{"29":{},"30":{},"41":{}},"component":{},"keyword":{}}],["params.get(\"room",{"_index":8753,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["pare",{"_index":4388,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["parent",{"_index":2746,"title":{},"name":{},"text":{"31":{},"43":{},"47":{},"62":{},"69":{},"71":{},"81":{}},"component":{},"keyword":{}}],["parent.addbean(old",{"_index":5153,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["parent.addbean(young",{"_index":5155,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["parlanc",{"_index":8533,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["pars",{"_index":1397,"title":{"50-1":{},"50-2":{}},"name":{},"text":{"15":{},"31":{},"45":{},"46":{},"50":{},"57":{},"61":{},"64":{},"70":{},"71":{},"75":{}},"component":{},"keyword":{}}
1],["parsephonenumber(numb",{"_index":5298,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["parser",{"_index":5255,"title":{},"name":{},"text":{"50":{},"71":{},"75":{}},"component":{},"keyword":{}}],["parser.addconvertor(address.class",{"_index":5328,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["parser.complet",{"_index":5277,"title":{},"name":{},"text":{"50":{},"75":{}},"component":{},"keyword":{}}],["parser.parse(buff",{"_index":8272,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["parser.parse(bytebuffer1",{"_index":5271,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["parser.parse(bytebuffer2",{"_index":5276,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["parser.parse(new",{"_index":5259,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["part",{"_index":1425,"title":{},"name":{},"text":{"17":{},"24":{},"27":{},"30":{},"31":{},"33":{},"34":{},"35":{},"38":{},"41":{},"47":{},"50":{},"51":{},"53":{},"55":{},"60":{},"62":{},"67":{},"71":{},"75":{},"79":{}},"component":{},"keyword":{}}],["parti",{"_index":912,"title":{},"name":{},"text":{"7":{},"10":{},"11":{},"17":{},"19":{},"31":{},"35":{},"38":{},"39":{},"41":{},"47":{},"51":{},"54":{},"58":{},"65":{},"76":{}},"component":{},"keyword":{}}],["partial",{"_index":2253,"title":{},"name":{},"text":{"28":{},"30":{},"31":{},"46":{},"50":{},"57":{},"58":{},"71":{}},"component":{},"keyword":{}}],["partialannotatedendpoint",{"_index":6370,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["partialpayload",{"_index":6373,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["partialtext",{"_index":6371,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["particip",{"_index":155,"title":{"6":{}},"name":{},"text":{"1":{},"15":{}},"component":{},"keyword":{}}],["particular",{"_index":724,"title":{},"name":{},"text":{"4":{},"6":{},"10":{},"22":{},"24":{},"31":{},"34":{},"39":{},"41":{},"45":{},"47":{},"48":{},"51":{},"52":{},"53":{},"57":{},"61":{},"62":{},"71":{},"77":{}},"component":{},"keyword":{}}],["particularli",{"_index":810,"title":{},"name":{},"text":{"6":{},"51":{},"59":{},"66":{},"67":{},"77":{}},"component":{},"keyword":{}}],["partit",{"_index":4358,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["partnership",{"_index":707,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["parts(int",{"_index":5307,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["parts.asstr",{"_index":5303,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["party.com/api",{"_index":5650,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["pass",{"_index":890,"title":{},"name":{},"text":{"7":{},"23":{},"28":{},"29":{},"30":{},"35":{},"39":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"51":{},"52":{},"53":{},"55":{},"56":{},"58":{},"62":{},"66":{},"70":{},"71":{},"73":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["passion",{"_index":72,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["passiv",{"_index":8427,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["passphras",{"_index":4657,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["password",{"_index":2088,"title":{"42-1":{},"42-2":{},"42-3":{}},"name":{},"text":{"23":{},"24":{},"31":{},"33":{},"35":{},"36":{},"41":{},"42":{},"48":{},"51":{},"63":{}},"component":{},"keyword":{}}],["password.deobfusc",{"_index":4691,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["password1",{"_index":5192,"title":{},"name":{},"text":{"48":{},"51":{}},"component":{},"keyword":{}}],["password2",{"_index":5193,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["password>[,<rolenam",{"_index":3007,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["passwords/credenti",{"_index":3999,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["passwordvalidationcallback",{"_index":4096,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["past",{"_index":1094,"title":{},"name":{},"text":{"8":{},"41":{}},"component":{},"keyword":{}}],["patch",{"_index":1182,"title":{"10":{}},"name":{},"text":{"30":{},"43":{}},"component":{},"keyword":{}}],["path",{"_index":1365,"title":{"19-3":{},"22-10":{},"22-23":{},"41-12":{},"41-13":{},"43-2":{}},"name":{},"text":{"15":{},"19":{},"20":{},"22":{},"23":{},"24":{},"30":{},"31":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"41":{},"43":{},"44":{},"51":{},"55":{},"58":{},"60":{},"62":{},"63":{},"64":{},"65":{},"67":{},"69":{},"70":{},"71":{},"74":{},"75":{},"77":{},"79":{},"80":{},"84":{}},"component":{},"keyword":{}}],["path(\"/path",{"_index":7282,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["path(\"/proxi",{"_index":7992,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["path(\"/sink",{"_index":5599,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["path(\"/sourc",{"_index":5594,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["path.of(\"/path/to/pem/dir",{"_index":7590,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["path.of(\"/path/to/save/file.bin",{"_index":5567,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["path.of(\"/path/to/server.sock",{"_index":5620,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["path.startswith(\"/old_path",{"_index":8061,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["path.substring(\"/old_path/\".length",{"_index":8064,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["path/modul",{"_index":1884,"title":{},"name":{},"text":{"22":{},"23":{},"79":{}},"component":{},"keyword":{}}],["path/to/domain.pem",{"_index":3914,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}
1],["path/to/java.hom",{"_index":4455,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["path/to/java.home/bin/java",{"_index":4504,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["path/to/jetti",{"_index":1589,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["path/to/jetty.hom",{"_index":1625,"title":{},"name":{},"text":{"20":{},"41":{}},"component":{},"keyword":{}}],["path/to/jetty.home/etc/jetti",{"_index":4521,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["path/to/jetty.home/etc/jetty.xml",{"_index":4522,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["path/to/jetty.home/etc/sessions/id",{"_index":4539,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["path/to/jetty.home/lib/jetti",{"_index":4529,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["path/to/jetty.home/lib/logging/jetti",{"_index":4528,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["path/to/jetty.home/lib/logging/slf4j",{"_index":4527,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["path/to/keystore.p12",{"_index":3388,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["path/to/maven.repository/org/bouncycastle/bcpkix",{"_index":3576,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["path/to/maven.repository/org/bouncycastle/bcprov",{"_index":3580,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["path/to/maven.repository/org/bouncycastle/bcutil",{"_index":3583,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["path/to/truststor",{"_index":5198,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["path/to/users.access",{"_index":5183,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["path/to/users.password",{"_index":5185,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["path/to/webapp",{"_index":7420,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["pathincontext",{"_index":7023,"title":{},"name":{},"text":{"65":{},"67":{},"71":{},"79":{}},"component":{},"keyword":{}}],["pathincontext.endswith(\".html",{"_index":8132,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["pathincontext.equals(\"/health",{"_index":7866,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["pathincontext.startswith(\"/admin",{"_index":7864,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["pathincontext.startswith(\"/checkout",{"_index":7863,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["pathincontext.startswith(\"/error",{"_index":7025,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["pathincontext.startswith(\"/login",{"_index":7862,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["pathincontext.startswith(\"/pay",{"_index":7861,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["pathincontext.startswith(\"/ws/echo",{"_index":8733,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["pathmap",{"_index":7941,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["pathmappings.addmapping(pathspec.from(\"/cart",{"_index":7944,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["pathmappings.addmapping(pathspec.from(\"/catalog",{"_index":7943,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["pathmappings.addmapping(pathspec.from(\"/checkout",{"_index":7946,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["pathmappingshandl",{"_index":7522,"title":{"71-49":{}},"name":{},"text":{"71":{},"78":{}},"component":{},"keyword":{}}],["pathnam",{"_index":2458,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["pathrequestcontent(\"text/plain",{"_index":5488,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["pathresponselisten",{"_index":5565,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["pathresponselistener(savepath",{"_index":5568,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["pathresponselistener.write(httpclient.newrequest(\"http://domain.com/path",{"_index":5569,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["paths.get(\"file_to_upload.txt",{"_index":5489,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["pathspec",{"_index":7948,"title":{"79-17":{}},"name":{},"text":{"71":{},"79":{}},"component":{},"keyword":{}}
1],["pathspec.getpathparams(pathincontext",{"_index":8751,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["path}uri",{"_index":3126,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["pattern",{"_index":1533,"title":{},"name":{},"text":{"19":{},"23":{},"26":{},"31":{},"34":{},"35":{},"39":{},"51":{},"52":{},"59":{},"60":{},"62":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["pattern>/*</url",{"_index":8673,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["pattern>/hello/*</url",{"_index":6513,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["pattern>/ws/*</url",{"_index":8678,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["paus",{"_index":4973,"title":{},"name":{},"text":{"46":{},"62":{},"71":{}},"component":{},"keyword":{}}],["pay",{"_index":5401,"title":{},"name":{},"text":{"51":{},"52":{},"71":{},"77":{},"81":{}},"component":{},"keyword":{}}],["payload",{"_index":6338,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["payload.get(i",{"_index":6346,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["payload.getlong",{"_index":6426,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["payment",{"_index":7849,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["pdf",{"_index":1035,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["peak",{"_index":2534,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["peer",{"_index":3249,"title":{},"name":{},"text":{"31":{},"46":{},"53":{},"55":{},"57":{},"58":{},"71":{},"74":{},"75":{}},"component":{},"keyword":{}}],["pem",{"_index":3418,"title":{},"name":{},"text":{"33":{},"35":{},"71":{}},"component":{},"keyword":{}}],["pemworkdir",{"_index":7589,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["pend",{"_index":4847,"title":{},"name":{},"text":{"45":{},"66":{},"71":{}},"component":{},"keyword":{}}],["peopl",{"_index":212,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["per",{"_index":882,"title":{},"name":{},"text":{"7":{},"18":{},"28":{},"31":{},"35":{},"38":{},"39":{},"51":{},"52":{},"62":{},"71":{},"74":{},"77":{},"79":{}},"component":{},"keyword":{}}],["percent",{"_index":3080,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["perfectli",{"_index":5454,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["perform",{"_index":91,"title":{},"name":{},"text":{"1":{},"8":{},"19":{},"21":{},"22":{},"23":{},"31":{},"35":{},"36":{},"39":{},"41":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"51":{},"52":{},"53":{},"55":{},"56":{},"58":{},"60":{},"62":{},"63":{},"66":{},"67":{},"71":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["perfram",{"_index":3721,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["perhap",{"_index":5096,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["period",{"_index":1234,"title":{},"name":{},"text":{"12":{},"22":{},"31":{},"35":{},"39":{},"45":{},"52":{},"62":{},"70":{},"71":{},"77":{}},"component":{},"keyword":{}}],["perl",{"_index":3742,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["perman",{"_index":1792,"title":{},"name":{},"text":{"22":{},"51":{},"71":{}},"component":{},"keyword":{}}],["permiss",{"_index":1465,"title":{},"name":{},"text":{"18":{},"24":{},"36":{},"71":{}},"component":{},"keyword":{}}],["permit",{"_index":2091,"title":{},"name":{},"text":{"23":{},"36":{},"52":{},"61":{}},"component":{},"keyword":{}}],["persist",{"_index":1829,"title":{"39-12":{},"39-14":{},"39-16":{},"39-18":{},"39-26":{},"39-31":{},"39-40":{}},"name":{},"text":{"22":{},"31":{},"35":{},"39":{},"41":{},"45":{},"71":{},"77":{}},"component":{},"keyword":{}}],["persist/clust",{"_index":4296,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["persist/distribut",{"_index":4132,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["persisted/clust",{"_index":4387,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["persistence/clust",{"_index":4170,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["persistentconnectionsenabled=tru",{"_index":8892,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["person",{"_index":139,"title":{},"name":{},"text":{"1":{},"50":{}},"component":{},"keyword":{}}],["person(str",{"_index":5327,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["person)parser.parse(new",{"_index":5329,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["personal_sign",{"_index":6984,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["perspect",{"_index":748,"title":{},"name":{},"text":{"4":{},"11":{},"71":{}},"component":{},"keyword":{}}],["pfast",{"_index":849,"title":{},"name":{},"text":{"7":{},"8":{}},"component":{},"keyword":{}}],["pg",{"_index":1132,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["phase",{"_index":6566,"title":{},"name":{},"text":{"60":{},"62":{}},"component":{},"keyword":{}}],["phase>gener",{"_index":6569,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["phase>
1package</phas",{"_index":6577,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["phase>post",{"_index":6715,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["phase>pr",{"_index":6711,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["philosophi",{"_index":956,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["phone",{"_index":5289,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["phonenumb",{"_index":5295,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["phonenumber.class.getnam",{"_index":5301,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["php",{"_index":3739,"title":{},"name":{},"text":{"35":{},"51":{},"54":{},"76":{}},"component":{},"keyword":{}}],["phrase",{"_index":4680,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["physic",{"_index":3083,"title":{},"name":{},"text":{"31":{},"35":{},"58":{}},"component":{},"keyword":{}}],["pick",{"_index":1238,"title":{},"name":{},"text":{"12":{},"31":{},"35":{},"36":{},"51":{},"62":{},"71":{}},"component":{},"keyword":{}}],["pid",{"_index":4575,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["piec",{"_index":6440,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["pin",{"_index":5875,"title":{"52-12":{},"52-13":{}},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["ping",{"_index":2838,"title":{},"name":{},"text":{"31":{},"58":{}},"component":{},"keyword":{}}],["ping/pong",{"_index":6272,"title":{"58-19":{}},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["pipe",{"_index":4635,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["pitfal",{"_index":3338,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["pkcs12",{"_index":3379,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["pl",{"_index":993,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["place",{"_index":62,"title":{},"name":{},"text":{"1":{},"8":{},"18":{},"19":{},"20":{},"22":{},"23":{},"31":{},"34":{},"36":{},"39":{},"41":{},"48":{},"60":{},"62":{},"71":{},"75":{},"79":{}},"component":{},"keyword":{}}],["plain",{"_index":1350,"title":{},"name":{},"text":{"15":{},"36":{},"47":{},"50":{},"51":{},"71":{}},"component":{},"keyword":{}}],["plainconfig",{"_index":7612,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["plainconfig.setsecureport(port",{"_index":7631,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["plainconnector",{"_index":7623,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["plan",{"_index":1230,"title":{},"name":{},"text":{"12":{},"35":{}},"component":{},"keyword":{}}],["plantuml",{"_index":908,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["platform",{"_index":122,"title":{},"name":{},"text":{"1":{},"4":{},"24":{},"31":{},"34":{},"38":{},"48":{},"52":{},"56":{},"71":{}},"component":{},"keyword":{}}],["platformâ",{"_index":2778,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["play",{"_index":3896,"title":{},"name":{},"text":{"35":{},"39":{},"77":{}},"component":{},"keyword":{}}],["playbook",{"_index":1012,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["pleas",{"_index":398,"title":{},"name":{},"text":{"3":{},"10":{},"20":{},"24":{},"31":{},"34":{},"35":{},"45":{},"51":{},"53":{},"55":{},"57":{},"58":{},"64":{},"67":{},"71":{},"73":{},"74":{}},"component":{},"keyword":{}}],["plexu",{"_index":4719,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["plu",{"_index":2000,"title":{},"name":{},"text":{"23":{},"34":{},"52":{},"62":{},"67":{}},"component":{},"keyword":{}}],["plug",{"_index":2100,"title":{},"name":{},"text":{"23":{},"34":{},"36":{},"39":{},"66":{},"77":{},"84":{}},"component":{},"keyword":{}}],["pluggabl",{"_index":3937,"title":{"51-31":{}},"name":{},"text":{"36":{},"38":{},"39":{},"51":{},"53":{},"55":{},"66":{},"71":{},"77":{}},"component":{},"keyword":{}}
1],["plugin",{"_index":109,"title":{"60":{},"62":{},"62-22":{},"62-23":{}},"name":{"60":{},"62":{}},"text":{"1":{},"8":{},"59":{},"60":{},"62":{},"67":{}},"component":{},"keyword":{}}],["plugin</artifactid",{"_index":6487,"title":{},"name":{},"text":{"59":{},"60":{},"62":{}},"component":{},"keyword":{}}],["pluginâ",{"_index":6648,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["plus.mod",{"_index":7126,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["pn",{"_index":5886,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["png",{"_index":6339,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["pngbyte",{"_index":6341,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["pngbytes.length",{"_index":6344,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["pngbytes[i",{"_index":6345,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["point",{"_index":1594,"title":{},"name":{},"text":{"20":{},"31":{},"33":{},"35":{},"36":{},"46":{},"53":{},"58":{},"59":{},"62":{},"71":{},"73":{},"75":{},"79":{}},"component":{},"keyword":{}}],["pojo",{"_index":1349,"title":{},"name":{},"text":{"15":{},"47":{},"48":{},"50":{},"81":{}},"component":{},"keyword":{}}],["polici",{"_index":400,"title":{"17-1":{}},"name":{},"text":{"3":{},"17":{},"24":{},"39":{},"48":{},"77":{}},"component":{},"keyword":{}}],["poll",{"_index":6067,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["pollut",{"_index":1290,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["pom",{"_index":6438,"title":{"59-3":{},"59-7":{},"62-29":{}},"name":{},"text":{"59":{},"62":{}},"component":{},"keyword":{}}],["pom.xml",{"_index":6468,"title":{},"name":{},"text":{"59":{},"62":{}},"component":{},"keyword":{}}],["pong",{"_index":6301,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["pool",{"_index":1385,"title":{"34-12":{},"51-5":{},"52-6":{},"52-7":{}},"name":{},"text":{"15":{},"25":{},"28":{},"31":{},"34":{},"41":{},"45":{},"46":{},"47":{},"49":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"71":{},"81":{}},"component":{},"keyword":{}}],["pool.acquir",{"_index":4959,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["pooled/evicts/removes=0/0/0",{"_index":8803,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["poolâ",{"_index":4706,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["popul",{"_index":6235,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["popular",{"_index":114,"title":{},"name":{},"text":{"1":{},"4":{},"50":{},"59":{},"71":{}},"component":{},"keyword":{}}],["port",{"_index":1355,"title":{"22-24":{},"24-3":{},"48-5":{}},"name":{},"text":{"15":{},"18":{},"20":{},"22":{},"24":{},"31":{},"35":{},"36":{},"39":{},"41":{},"44":{},"45":{},"46":{},"48":{},"51":{},"53":{},"55":{},"57":{},"62":{},"67":{},"71":{},"75":{},"77":{},"79":{},"80":{},"81":{}},"component":{},"keyword":{}}],["port1",{"_index":5593,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["port2",{"_index":5598,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["port8080",{"_index":1972,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["port9090",{"_index":1973,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["port=\"389",{"_index":4019,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["portabl",{"_index":2043,"title":{},"name":{},"text":{"23":{},"38":{},"71":{}},"component":{},"keyword":{}}],["port}uri",{"_index":3128,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["posit",{"_index":2676,"title":{},"name":{},"text":{"31":{},"39":{},"52":{},"62":{},"71":{}},"component":{},"keyword":{}}],["posix",{"_index":4617,"title":{},"name":{},"text":{"41":{},"71":{}},"component":{},"keyword":{}}],["possibl",{"_index":843,"title":{},"name":{},"text":{"7":{},"8":{},"17":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"31":{},"34":{},"35":{},"36":{},"39":{},"41":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"62":{},"65":{},"66":{},"67":{},"69":{},"70":{},"71":{},"73":{},"75":{},"76":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["post",{"_index":4630,"title":{},"name":{},"text":{"41":{},"51":{},"61":{},"62":{},"71":{},"81":{}},"component":{},"keyword":{}}],["post/redirect/get",{"_index":5444,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["postconstruct",{"_index":1485,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["postgr",{"_index":4241,"title":{},"name":{},"text":{"39":{},"41":{},"77":{}},"component":{},"keyword":{}}],["postgresql",{"_index":2461,"title":{},"name":{},"text":{"30":{},"34":{},"41":{},"43":{}},"component":{},"keyword":{}}],["postgresql.mod",{"_index":4433,"title":{},"name":{},"text":{"41":{},"43":{}},"component":{},"keyword":{}}
1],["pot",{"_index":22,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["potenti",{"_index":796,"title":{},"name":{},"text":{"6":{},"13":{},"35":{},"71":{}},"component":{},"keyword":{}}],["power",{"_index":2344,"title":{},"name":{},"text":{"28":{},"44":{},"51":{},"58":{}},"component":{},"keyword":{}}],["practic",{"_index":1046,"title":{},"name":{},"text":{"8":{},"22":{},"63":{},"67":{},"69":{}},"component":{},"keyword":{}}],["pre",{"_index":3364,"title":{"51-6":{}},"name":{},"text":{"32":{},"39":{},"51":{},"60":{},"62":{},"77":{}},"component":{},"keyword":{}}],["preced",{"_index":1288,"title":{},"name":{},"text":{"13":{},"22":{},"28":{},"31":{},"51":{}},"component":{},"keyword":{}}],["precis",{"_index":2658,"title":{},"name":{},"text":{"31":{},"35":{},"51":{},"71":{}},"component":{},"keyword":{}}],["precompil",{"_index":6524,"title":{"60-2":{},"60-3":{}},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["precompress",{"_index":7732,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["precreat",{"_index":5411,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["predat",{"_index":1505,"title":{},"name":{},"text":{"19":{},"44":{}},"component":{},"keyword":{}}],["predecessor",{"_index":3867,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["predefin",{"_index":2937,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["predestroy",{"_index":1486,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["predic",{"_index":7756,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["predict",{"_index":3365,"title":{},"name":{},"text":{"32":{},"52":{},"77":{}},"component":{},"keyword":{}}],["preempt",{"_index":5770,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["prefac",{"_index":8179,"title":{},"name":{},"text":{"73":{},"74":{}},"component":{},"keyword":{}}],["prefer",{"_index":388,"title":{},"name":{},"text":{"3":{},"8":{},"11":{},"34":{},"35":{},"39":{},"41":{},"50":{},"51":{},"52":{},"59":{},"62":{},"71":{},"77":{},"80":{},"84":{}},"component":{},"keyword":{}}],["prefix",{"_index":1130,"title":{"51-23":{}},"name":{},"text":{"8":{},"13":{},"22":{},"31":{},"41":{},"42":{},"51":{},"62":{},"71":{},"79":{}},"component":{},"keyword":{}}],["preflight",{"_index":2644,"title":{},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["prematur",{"_index":4977,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["prep",{"_index":6558,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["prepar",{"_index":987,"title":{"39-32":{},"77-24":{}},"name":{},"text":{"8":{},"39":{},"41":{},"46":{},"51":{},"60":{},"73":{},"74":{},"77":{}},"component":{},"keyword":{}}],["prepend",{"_index":2995,"title":{},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["prerequisit",{"_index":2448,"title":{},"name":{},"text":{"30":{},"35":{}},"component":{},"keyword":{}}],["presenc",{"_index":1838,"title":{},"name":{},"text":{"22":{},"28":{},"30":{},"51":{},"71":{}},"component":{},"keyword":{}}],["present",{"_index":1520,"title":{},"name":{},"text":{"19":{},"22":{},"23":{},"28":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"39":{},"41":{},"42":{},"43":{},"44":{},"51":{},"52":{},"57":{},"60":{},"66":{},"67":{},"71":{},"77":{},"79":{},"84":{}},"component":{},"keyword":{}}],["preserv",{"_index":2235,"title":{},"name":{},"text":{"26":{},"32":{},"51":{},"60":{}},"component":{},"keyword":{}}],["press",{"_index":6961,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["pressur",{"_index":2523,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["prevent",{"_index":1506,"title":{},"name":{},"text":{"19":{},"31":{},"39":{},"62":{},"77":{}},"component":{},"keyword":{}}],["preview",{"_index":995,"title":{"31-57":{}},"name":{},"text":{"8":{},"31":{},"34":{},"41":{},"52":{}},"component":{},"keyword":{}}],["previou",{"_index":1149,"title":{},"name":{},"text":{"8":{},"33":{},"41":{},"45":{},"46":{},"51":{},"52":{},"58":{},"59":{},"70":{},"71":{},"77":{}},"component":{},"keyword":{}}],["previous",{"_index":2816,"title":{},"name":{},"text":{"31":{},"36":{},"39":{},"51":{},"52":{},"53":{},"71":{},"73":{},"77":{}},"component":{},"keyword":{}}],["price",{"_index":5097,"title":{},"name":{},"text":{"46":{},"81":{}},"component":{},"keyword":{}}],["primari",{"_index":32,"title":{},"name":{},"text":{"1":{},"8":{},"46":{},"47":{},"53":{},"71":{},"73":{}},"component":{},"keyword":{}}],["primarili",{"_index":3738,"title":{},"name":{},"text":{"35":{},"46":{},"51":{},"57":{},"66":{},"71":{}},"component":{},"keyword":{}}],["primarystream",{"_index":6090,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["primit",{"_index":4803,"title":{},"name":{},"text":{"44":{},"50":{},"51":{}},"component":{},"keyword":{}}],["princip",{"_index":4038,"title":{},"name":{},"text":{"36":{},"38":{},"63":{},"65":{},"81":{}},"component":{},"keyword":{}}],["print",{"_index":2314,"title":{},"name":{},"text":{"28":{},"30":{},"34":{},"39":{},"41":{},"62":{}},"component":{},"keyword":{}}],["println",{"_index":4815,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["printstream",{"_index":7021,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["printstream(content.sink.asoutputstream(respons",{"_index":7022,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["prio=3",{"_index":8797,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["prio=5",{"_index":8789,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["prior",{"_index":172,"title":{"2-3":{}},"name":{},"text":{"35":{},"39":{},"41":{},"51":{},"71":{}},"component":{},"keyword":{}}],["priori",{"_index":5858,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["priorit",{"_index":7850,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["prioriti",{"_index":1865,"title":{},"name":{},"text":{"22":{},"30":{},"31":{},"41":{},"71":{}},"component":{},"keyword":{}}],["priorityqoshandl",{"_index":7858,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["privat",{"_index":393,"title":{},"name":{},"text":{"3":{},"4":{},"11":{},"13":{},"33":{},"35":{},"44":{},"46":{},"47":{},"48":{},"50":{},"51":{},"53":{},"57":{},"58":{},"71":{},"73":{},"74":{},"75":{}},"component":{},"keyword":{}}],["privatefield",{"_index":1275,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["privileg",{"_index":1467,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["pro",{"_index":7532,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["probabl",{"_index":3374,"title":{},"name":{},"text":{"32":{},"33":{},"39":{},"42":{},"62":{},"71":{},"84":{}},"component":{},"keyword":{}}],["problem",{"_index":757,"title":{},"name":{},"text":{"4":{},"43":{},"45":{},"46":{},"48":{},"58":{},"71":{},"77":{},"80":{},"84":{}},"component":{},"keyword":{}}],["proce",{"_index":4041,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["procedur",{"_index":3965,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["process",{"_index":1018,"title":{"51-7":{},"56-2":{},"71-1":{},"71-2":{},"71-76":{}},"name":{},"text":{"8":{},"9":{},"10":{},"15":{},"18":{},"22":{},"23":{},"24":{},"29":{},"30":{},"31":{},"35":{},"39":{},"41":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"51":{},"52":{},"53":{},"55":{},"56":{},"57":{},"58":{},"60":{},"61":{},"62":{},"63":{},"64":{},"66":{},"67":{},"70":{},"71":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["process(chunk.getbytebuff",{"_index":6173,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["processfields(field",{"_index":8080,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["processingtim",{"_index":7830,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["processnonblocking(chunk",{"_index":6190,"title":{},"name":{},"text":{"56":{},"78":{}},"component":{},"keyword":{}}],["processor",{"_index":5877,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["processparts(part",{"_index":8089,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["produc",{"_index":906,"title":{"52-2":{},"52-3":{},"52-4":{}},"name":{},"text":{"7":{},"13":{},"22":{},"29":{},"33":{},"34":{},"35":{},"38":{},"41":{},"42":{},"45":{},"46":{},"49":{},"50":{},"51":{},"52":{},"57":{},"59":{},"62":{},"63":{},"67":{},"71":{},"75":{},"77":{},"81":{}},"component":{},"keyword":{}}],["producer/consum",{"_index":5879,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["product",{"_index":717,"title":{"60-2":{}},"name":{},"text":{"4":{},"20":{},"31":{},"32":{},"35":{},"45":{},"52":{},"60":{},"62":{},"71":{}},"component":{},"keyword":{}}],["profession",{"_index":219,"title":{},"name":{},"text":{"2":{},"4":{}},"component":{},"keyword":{}}],["profil",{"_index":996,"title":{},"name":{},"text":{"8":{},"38":{},"52":{},"60":{}},"component":{},"keyword":{}}],["program",{"_index":20,"title":{"17":{},"14-2":{}},"name":{},"text":{"1":{},"8":{},"14":{},"15":{},"17":{},"18":{},"30":{},"33":{},"37":{},"39":{},"40":{},"41":{},"42":{},"46":{},"51":{}},"component":{},"keyword":{}}],["programm",{"_index":8295,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["programmat",{"_index":3367,"title":{},"name":{},"text":{"32":{},"51":{},"62":{},"71":{},"76":{},"77":{},"79":{}},"component":{},"keyword":{}}],["programmaticwebsocketupgradeservlet",{"_index":8699,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["progress",{"_index":4978,"title":{},"name":{},"text":{"46":{},"51":{},"52":{},"71":{}},"component":{},"keyword":{}}
1],["proj",{"_index":1813,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["project",{"_index":8,"title":{"8-6":{}},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"6":{},"7":{},"8":{},"11":{},"12":{},"14":{},"22":{},"30":{},"39":{},"54":{},"59":{},"60":{},"62":{},"76":{},"77":{},"79":{}},"component":{},"keyword":{}}],["project.basedir}/src/main/webapp",{"_index":6532,"title":{},"name":{},"text":{"60":{},"62":{}},"component":{},"keyword":{}}],["project.basedir}/src/main/webapp/web",{"_index":6534,"title":{},"name":{},"text":{"60":{},"62":{}},"component":{},"keyword":{}}],["project.basedir}/target/webfrag.xml",{"_index":6530,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["project.build.directory}/${project.build.finalname}.war",{"_index":6706,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["project.build.outputdirectori",{"_index":6537,"title":{},"name":{},"text":{"60":{},"62":{}},"component":{},"keyword":{}}],["project.build.outputdirectory}/tmp",{"_index":6670,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["project.build.testoutputdirectori",{"_index":6684,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["project_id",{"_index":4343,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["projectid",{"_index":8579,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["projectâ",{"_index":787,"title":{},"name":{},"text":{"6":{},"59":{},"62":{}},"component":{},"keyword":{}}],["promis",{"_index":6148,"title":{},"name":{},"text":{"55":{},"57":{},"67":{}},"component":{},"keyword":{}}],["promise.complet",{"_index":6234,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["promise.completable.<bytebuffer>with(p",{"_index":8121,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["promise.invoc",{"_index":7248,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["promise.invocable.nonblock",{"_index":6151,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["promise.invocable.noop",{"_index":6154,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["promise.task<>(callback::succeed",{"_index":7240,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["promise.task<void",{"_index":7239,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["promisefram",{"_index":8212,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["prompt",{"_index":2485,"title":{},"name":{},"text":{"30":{},"33":{},"34":{},"39":{},"42":{}},"component":{},"keyword":{}}],["promptli",{"_index":4159,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["prone",{"_index":8101,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["proof",{"_index":3416,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["prop",{"_index":4003,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["propag",{"_index":4349,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["proper",{"_index":383,"title":{},"name":{},"text":{"3":{},"11":{},"22":{},"43":{},"73":{},"74":{}},"component":{},"keyword":{}}],["properli",{"_index":1219,"title":{},"name":{},"text":{"11":{},"23":{},"24":{},"31":{},"34":{},"39":{},"45":{},"48":{},"51":{},"52":{},"71":{},"81":{}},"component":{},"keyword":{}}],["properti",{"_index":885,"title":{"30-3":{},"31-30":{},"31-45":{},"41-6":{},"44-12":{},"62-28":{},"62-29":{},"62-30":{}},"name":{},"text":{"7":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"28":{},"29":{},"30":{},"31":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"41":{},"44":{},"45":{},"48":{},"52":{},"59":{},"61":{},"62":{},"63":{},"65":{},"67":{},"69":{},"71":{},"77":{},"84":{}},"component":{},"keyword":{}}],["properties</go",{"_index":6798,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["properties=<filenam",{"_index":4640,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["property><name>prod</name></properti",{"_index":6561,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["propertyfileloginmodul",{"_index":3935,"title":{"36-8":{}},"name":{},"text":{},"component":{},"keyword":{}}],["propos",{"_index":3895,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["prose",{"_index":938,"title":{"8-8":{}},"name":{},"text":{"8":{}},"component":{},"keyword":{}}
1],["protect",{"_index":2633,"title":{},"name":{},"text":{"31":{},"33":{},"42":{},"46":{},"47":{},"51":{},"57":{},"58":{},"59":{},"71":{},"75":{},"79":{}},"component":{},"keyword":{}}],["proto",{"_index":2979,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["protocol",{"_index":237,"title":{"35":{},"35-14":{},"35-16":{},"35-25":{},"57-4":{},"71-16":{}},"name":{},"text":{"2":{},"14":{},"15":{},"17":{},"18":{},"20":{},"21":{},"22":{},"31":{},"33":{},"34":{},"35":{},"45":{},"46":{},"51":{},"52":{},"53":{},"54":{},"55":{},"57":{},"58":{},"64":{},"65":{},"66":{},"67":{},"71":{},"73":{},"74":{},"75":{},"76":{},"79":{},"80":{},"81":{}},"component":{},"keyword":{}}],["protocol,http2c,http,deploy",{"_index":3922,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["protocol.ini",{"_index":3875,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["protostreammarshal",{"_index":8564,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["prove",{"_index":6895,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["proverb",{"_index":5919,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["provid",{"_index":16,"title":{"30-7":{},"35-20":{},"35-21":{},"36-5":{},"40-1":{},"40-4":{},"71-22":{},"71-23":{}},"name":{},"text":{"1":{},"2":{},"4":{},"6":{},"8":{},"13":{},"14":{},"15":{},"17":{},"18":{},"22":{},"23":{},"24":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"70":{},"71":{},"73":{},"74":{},"75":{},"76":{},"77":{},"79":{},"81":{},"83":{},"84":{}},"component":{},"keyword":{}}],["provider'",{"_index":3023,"title":{},"name":{},"text":{"31":{},"40":{}},"component":{},"keyword":{}}],["provider.request",{"_index":6965,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["providerâ",{"_index":3044,"title":{},"name":{},"text":{"31":{},"40":{}},"component":{},"keyword":{}}],["provis",{"_index":174,"title":{"2-4":{}},"name":{},"text":{"2":{},"9":{}},"component":{},"keyword":{}}],["proxi",{"_index":2229,"title":{"31-19":{},"35-23":{},"35-25":{},"51-28":{},"51-29":{},"51-30":{}},"name":{},"text":{"25":{},"31":{},"35":{},"51":{},"53":{},"54":{},"58":{},"67":{},"71":{},"73":{},"75":{},"76":{}},"component":{},"keyword":{}}],["proxy'",{"_index":7959,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["proxy,cor",{"_index":3757,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["proxy.getexcludedaddresses().add(\"localhost:8080",{"_index":5787,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["proxy.mod",{"_index":7122,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["proxy.putauthenticationfactory(socks5authenticationfactori",{"_index":5799,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["proxy_protocol",{"_index":7694,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["proxyconfig",{"_index":5788,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["proxyconfig.addproxy(proxi",{"_index":5790,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["proxyconfigur",{"_index":5374,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["proxyconfiguration.proxi",{"_index":5783,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["proxyconnect",{"_index":7697,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["proxyconnectionfactori",{"_index":7695,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["proxyconnectionfactory(http11.getprotocol",{"_index":7696,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["proxycustom",{"_index":7516,"title":{"71-8":{}},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["proxyhandl",{"_index":7524,"title":{"71-52":{}},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["proxyhandler.forward",{"_index":7525,"title":{"71-53":{}},"name":{},"text":{"71":{}},"component":{},"keyword":{}}
1],["proxyhandler.forward.handl",{"_index":7963,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["proxyhandler.revers",{"_index":7526,"title":{"71-54":{}},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["proxypass",{"_index":5805,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["proxyrealm",{"_index":5803,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["proxytoclientcallback",{"_index":7966,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["proxytoclientrespons",{"_index":7965,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["proxyuri",{"_index":5800,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["proxyus",{"_index":5804,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["prudent",{"_index":4329,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["pseudo",{"_index":7573,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["pst",{"_index":3478,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["pti",{"_index":1110,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["public",{"_index":1115,"title":{},"name":{},"text":{"8":{},"13":{},"14":{},"19":{},"22":{},"26":{},"29":{},"30":{},"31":{},"33":{},"35":{},"36":{},"38":{},"44":{},"46":{},"47":{},"48":{},"50":{},"51":{},"53":{},"55":{},"56":{},"57":{},"58":{},"59":{},"63":{},"65":{},"67":{},"68":{},"69":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["publicli",{"_index":1699,"title":{},"name":{},"text":{"20":{},"44":{},"71":{}},"component":{},"keyword":{}}],["publish",{"_index":401,"title":{},"name":{},"text":{"3":{},"4":{}},"component":{},"keyword":{}}],["publish(byt",{"_index":5503,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["pull",{"_index":1176,"title":{"10-4":{}},"name":{},"text":{"9":{},"10":{},"12":{},"34":{},"67":{}},"component":{},"keyword":{}}],["puni",{"_index":1940,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["punycode/idn",{"_index":1941,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["pure",{"_index":3840,"title":{},"name":{},"text":{"35":{},"71":{},"77":{}},"component":{},"keyword":{}}],["purpos",{"_index":1079,"title":{},"name":{},"text":{"8":{},"31":{},"36":{},"45":{},"46":{},"47":{},"48":{},"62":{},"77":{}},"component":{},"keyword":{}}],["pursu",{"_index":719,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["push",{"_index":5975,"title":{"53-8":{},"73-7":{}},"name":{},"text":{"53":{},"67":{},"73":{}},"component":{},"keyword":{}}],["push_promis",{"_index":6080,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["pushed.data(new",{"_index":8220,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["pushedrequest",{"_index":6084,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["pushedrequest.gethttpfield",{"_index":6089,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["pushedrequest.gethttpuri",{"_index":6087,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["pushedrequesthead",{"_index":6088,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["pushedrespons",{"_index":8216,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["pushedresponsehead",{"_index":6092,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["pushedstream",{"_index":6082,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["pushedstream.getsession().getstream(frame.getstreamid",{"_index":6091,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["pushedstream.headers(new",{"_index":8217,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["pushedstream.reset(new",{"_index":6093,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["pusheduri",{"_index":6086,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["pushen",{"_index":8203,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["pushpromisefram",{"_index":6083,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["pushpromiseframe(stream.getid",{"_index":8213,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["put",{"_index":2082,"title":{"44-9":{}},"name":{},"text":{"23":{},"29":{},"30":{},"35":{},"36":{},"39":{},"41":{},"43":{},"44":{},"46":{},"51":{},"60":{},"62":{},"63":{},"71":{},"77":{},"81":{}},"component":{},"keyword":{}}],["put(httpheader.connect",{"_index":5871,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["put(httpheader.content_typ",{"_index":6026,"title":{},"name":{},"text":{"53":{},"55":{}},"component":{},"keyword":{}}],["put(httpheader.http2_set",{"_index":5870,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["put(httpheader.link",{"_index":8134,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["put(httpheader.upgrad",{"_index":5869,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["put(httpheader.user_ag",{"_index":6015,"title":{},"name":{},"text":{"53":{},"55":{}},"component":{},"keyword":{}}],["python",{"_index":3740,"title":{},"name":{},"text":{"35":{},"76":{}},"component":{},"keyword":{}}],["q",{"_index":3101,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["qo",{"_index":2504,"title":{"31-38":{}},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["qoshandl",{"_index":3049,"title":{"71-39":{}},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["qoshandler.sethandler(new",{"_index":7857,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["qoshandler.setmaxrequestcount(maxthread",{"_index":7854,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["qoshandler.setmaxsuspend(duration.ofseconds(5",{"_index":7855,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["qpack",{"_index":7088,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["qtp1279309678",{"_index":8785,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["quadrat",{"_index":2540,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["quadratic.mod",{"_index":7118,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["qualifi",{"_index":1922,"title":{},"name":{},"text":{"22":{},"38":{},"44":{},"67":{},"71":{}},"component":{},"keyword":{}}],["qualiti",{"_index":7838,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}
1],["queri",{"_index":1794,"title":{"39-21":{},"39-24":{}},"name":{},"text":{"22":{},"31":{},"36":{},"39":{},"56":{},"64":{},"67":{},"71":{},"77":{}},"component":{},"keyword":{}}],["queries/",{"_index":7840,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["queryparamet",{"_index":7164,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["querystr",{"_index":7158,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["query}uri",{"_index":3122,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["question",{"_index":68,"title":{},"name":{},"text":{"1":{},"4":{},"6":{},"41":{}},"component":{},"keyword":{}}],["queu",{"_index":5416,"title":{},"name":{},"text":{"51":{},"52":{},"71":{}},"component":{},"keyword":{}}],["queue",{"_index":1997,"title":{"23-5":{},"52-7":{}},"name":{},"text":{"31":{},"49":{},"51":{},"52":{},"53":{},"71":{},"73":{}},"component":{},"keyword":{}}],["queue<chunk",{"_index":6068,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["queuedthreadpool",{"_index":1390,"title":{"52-8":{},"52-10":{}},"name":{},"text":{"15":{},"30":{},"52":{},"57":{},"71":{}},"component":{},"keyword":{}}],["queuedthreadpool(maxthread",{"_index":7852,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["queuedthreadpool.idletimeout",{"_index":5953,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["queuedthreadpool.leasedthread",{"_index":5929,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["queuedthreadpool.maxevictcount",{"_index":5954,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["queuedthreadpool.maxthread",{"_index":5933,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["queuedthreadpool.maxthreads=l+h",{"_index":5949,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["queuedthreadpool.minthread",{"_index":5938,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["queuedthreadpool.reservedthread",{"_index":5932,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["queuedthreadpool.setmaxthreads(int",{"_index":2426,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["quic",{"_index":2853,"title":{"66-6":{}},"name":{},"text":{"31":{},"35":{},"46":{},"51":{},"55":{},"57":{},"66":{},"67":{},"71":{},"74":{}},"component":{},"keyword":{}}],["quic+http/3",{"_index":3800,"title":{},"name":{},"text":{"35":{},"71":{}},"component":{},"keyword":{}}],["quic/jetti",{"_index":6136,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["quich",{"_index":2855,"title":{},"name":{},"text":{"31":{},"55":{},"66":{},"67":{},"71":{},"74":{}},"component":{},"keyword":{}}],["quiche/jetti",{"_index":6137,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["quicheclientquicconfigur",{"_index":5839,"title":{},"name":{},"text":{"51":{},"55":{}},"component":{},"keyword":{}}],["quicheserverconnector",{"_index":7581,"title":{},"name":{},"text":{"71":{},"74":{}},"component":{},"keyword":{}}],["quicheserverconnector(serv",{"_index":7595,"title":{},"name":{},"text":{"71":{},"74":{}},"component":{},"keyword":{}}],["quicheserverquicconfigur",{"_index":7591,"title":{},"name":{},"text":{"71":{},"74":{}},"component":{},"keyword":{}}],["quicheserverquicconfiguration(path.of(\"/path/to/pem/dir",{"_index":8228,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["quicheserverquicconfiguration(pemworkdir",{"_index":7594,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["quichetransport",{"_index":5843,"title":{},"name":{},"text":{"51":{},"57":{}},"component":{},"keyword":{}}],["quichetransport(clientquicconfig",{"_index":5844,"title":{},"name":{},"text":{"51":{},"55":{}},"component":{},"keyword":{}}],["quick",{"_index":1453,"title":{"20-1":{}},"name":{},"text":{"18":{},"35":{},"51":{},"71":{}},"component":{},"keyword":{}}],["quicker",{"_index":5955,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["quickli",{"_index":842,"title":{},"name":{},"text":{"7":{},"8":{},"17":{},"45":{},"59":{},"62":{},"71":{},"84":{}},"component":{},"keyword":{}}],["quickstart",{"_index":3363,"title":{},"name":{},"text":{"32":{},"62":{},"67":{}},"component":{},"keyword":{}}],["quicserverconnector",{"_index":4878,"title":{},"name":{},"text":{"46":{},"71":{}},"component":{},"keyword":{}}],["quit",{"_index":3614,"title":{},"name":{},"text":{"35":{},"41":{},"43":{},"51":{},"53":{},"55":{},"58":{},"73":{},"74":{}},"component":{},"keyword":{}}],["quot",{"_index":2321,"title":{},"name":{},"text":{"28":{},"42":{},"51":{}},"component":{},"keyword":{}}],["quoteattributeel",{"_index":2319,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["r",{"_index":3065,"title":{},"name":{},"text":{"31":{},"34":{},"51":{}},"component":{},"keyword":{}}],["r\\n",{"_index":5819,"title":{},"name":{},"text":{"51":{},"57":{}},"component":{},"keyword":{}}],["race",{"_index":6222,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["random",{"_index":2990,"title":{},"name":{},"text":{"31":{},"64":{}},"component":{},"keyword":{}}],["randomconnectionpool",{"_index":5391,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["randomli",{"_index":2165,"title":{},"name":{},"text":{"24":{},"39":{},"41":{},"48":{},"51":{},"71":{},"77":{}},"component":{},"keyword":{}}],["rang",{"_index":124,"title":{},"name":{},"text":{"1":{},"6":{},"71":{}},"component":{},"keyword":{}}],["rapid",{"_index":6604,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["rare",{"_index":1426,"title":{},"name":{},"text":{"17":{},"33":{},"39":{},"53":{},"55":{},"62":{},"71":{},"73":{},"74":{}},"component":{},"keyword":{}}],["rate",{"_index":2489,"title":{"31-2":{},"31-36":{}},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["ratio",{"_index":2823,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["raw",{"_index":6302,"title":{},"name":{},"text":{"58":{},"70":{}},"component":{},"keyword":{}}],["rawhttp2serverconnectionfactori",{"_index":8171,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["rawhttp2serverconnectionfactory(sessionlisten",{"_index":8172,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["rawhttp3serverconnectionfactori",{"_index":8230,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["rawhttp3serverconnectionfactory(sessionlisten",{"_index":8231,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["rc",{"_index":1606,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["rdbm",{"_index":6885,"title":{},"name":{},"text":{"63":{},"71":{}},"component":{},"keyword":{}}],["re",{"_index":2054,"title":{},"name":{},"text":{"23":{},"28":{},"31":{},"39":{},"41":{},"46":{},"47":{},"52":{},"67":{},"75":{},"77":{}},"component":{},"keyword":{}}
1],["reach",{"_index":379,"title":{},"name":{},"text":{"3":{},"11":{},"31":{},"46":{},"48":{},"51":{},"67":{},"71":{}},"component":{},"keyword":{}}],["reachabl",{"_index":1853,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["react",{"_index":6098,"title":{},"name":{},"text":{"53":{},"73":{},"74":{}},"component":{},"keyword":{}}],["reactor",{"_index":6546,"title":{},"name":{},"text":{"60":{},"62":{}},"component":{},"keyword":{}}],["read",{"_index":977,"title":{"58-12":{},"58-14":{},"71-66":{}},"name":{},"text":{"8":{},"18":{},"20":{},"24":{},"29":{},"30":{},"31":{},"34":{},"35":{},"36":{},"39":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"48":{},"50":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"62":{},"63":{},"64":{},"66":{},"67":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{},"84":{}},"component":{},"keyword":{}}],["read(content.sourc",{"_index":5000,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["read(sourc",{"_index":5003,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["read/demand",{"_index":5571,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["readabl",{"_index":968,"title":{},"name":{},"text":{"8":{},"35":{},"39":{}},"component":{},"keyword":{}}],["readchunktosendinto(bytebuff",{"_index":6412,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["reader",{"_index":1076,"title":{},"name":{},"text":{"8":{},"29":{},"46":{},"58":{},"67":{},"71":{}},"component":{},"keyword":{}}],["reader.read(char",{"_index":6380,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["reader.run",{"_index":7246,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["readi",{"_index":1714,"title":{},"name":{},"text":{"20":{},"31":{},"51":{},"52":{},"71":{}},"component":{},"keyword":{}}],["readimagefromfil",{"_index":6395,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["reading/writ",{"_index":7813,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["readonli",{"_index":2207,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["readonly|readwrit",{"_index":2205,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["readwrit",{"_index":2206,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["real",{"_index":3303,"title":{},"name":{},"text":{"31":{},"52":{},"57":{},"71":{}},"component":{},"keyword":{}}],["realiz",{"_index":7658,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["realli",{"_index":3417,"title":{},"name":{},"text":{"33":{},"35":{},"45":{},"51":{},"71":{},"80":{}},"component":{},"keyword":{}}],["realm",{"_index":3005,"title":{},"name":{},"text":{"31":{},"36":{},"38":{},"40":{},"51":{},"62":{}},"component":{},"keyword":{}}],["realm.properti",{"_index":6822,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["realm</item",{"_index":4079,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["realm</nam",{"_index":6770,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["realm</realm",{"_index":3955,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["realm</set",{"_index":3961,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["reason",{"_index":216,"title":{},"name":{},"text":{"2":{},"10":{},"22":{},"24":{},"29":{},"35":{},"39":{},"45":{},"46":{},"47":{},"48":{},"51":{},"52":{},"53":{},"58":{},"62":{},"64":{},"71":{}},"component":{},"keyword":{}}],["reassembl",{"_index":6655,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["rebuilt",{"_index":6615,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["recal",{"_index":1694,"title":{},"name":{},"text":{"20":{},"22":{},"24":{},"35":{},"57":{},"71":{},"75":{}},"component":{},"keyword":{}}],["recap",{"_index":1471,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["receiv",{"_index":1923,"title":{"53-6":{},"53-8":{},"55-5":{},"73-4":{},"74-3":{}},"name":{},"text":{"22":{},"31":{},"33":{},"35":{},"41":{},"42":{},"51":{},"53":{},"54":{},"55":{},"57":{},"58":{},"62":{},"63":{},"67":{},"70":{},"71":{},"73":{},"74":{},"75":{},"76":{},"79":{},"80":{}},"component":{},"keyword":{}}],["recent",{"_index":718,"title":{},"name":{},"text":{"4":{},"7":{},"8":{},"19":{},"22":{},"28":{},"51":{},"70":{},"77":{}},"component":{},"keyword":{}}],["recogn",{"_index":3612,"title":{},"name":{},"text":{"35":{},"65":{},"75":{}},"component":{},"keyword":{}}],["recommend",{"_index":218,"title":{},"name":{},"text":{"2":{},"7":{},"9":{},"23":{},"31":{},"36":{},"39":{},"42":{},"45":{},"47":{},"48":{},"51":{},"58":{},"59":{},"62":{},"71":{},"77":{}},"component":{},"keyword":{}}],["recompil",{"_index":2270,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["recompileonfail",{"_index":2323,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["reconfigur",{"_index":1469,"title":{},"name":{},"text":{"18":{},"30":{},"45":{}},"component":{},"keyword":{}}],["reconstruct",{"_index":5351,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["record",{"_index":2379,"title":{},"name":{},"text":{"29":{},"50":{},"51":{},"53":{},"66":{},"71":{},"73":{}},"component":{},"keyword":{}}],["recover",{"_index":4990,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["recoveri",{"_index":5007,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["recurs",{"_index":2442,"title":{},"name":{},"text":{"30":{},"41":{},"45":{},"46":{},"47":{},"50":{},"71":{}},"component":{},"keyword":{}}],["recycl",{"_index":5613,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["redeploy",{"_index":1827,"title":{},"name":{},"text":{"22":{},"62":{}},"component":{},"keyword":{}}],["redeploy/undeploy",{"_index":1823,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["redesign",{"_index":7136,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["redirect",{"_index":1774,"title":{"51-25":{},"71-40":{}},"name":{},"text":{"22":{},"31":{},"35":{},"40":{},"51":{},"53":{},"55":{},"63":{},"64":{},"65":{},"67":{},"71":{}},"component":{},"keyword":{}}],["redirect/rewrit",{"_index":3142,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["redirectcache.default",{"_index":5750,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["redirectcache.default(100",{"_index":5746,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["redirected/rewritten",{"_index":3144,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["redirectregexrul",{"_index":7789,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["redirectregexrule(\"/document",{"_index":7791,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["redirectrul",{"_index":7790,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}
1],["redirectrule.setstatuscode(httpstatus.moved_permanently_301",{"_index":7793,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["redirecturicompliance=default_redirect[frag",{"_index":8900,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["redistribut",{"_index":3424,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["reduc",{"_index":1316,"title":{},"name":{},"text":{"13":{},"19":{},"31":{},"35":{},"39":{},"45":{},"52":{},"53":{},"58":{},"71":{},"73":{},"77":{}},"component":{},"keyword":{}}],["ref",{"_index":2008,"title":{"44-11":{}},"name":{},"text":{"23":{},"29":{},"35":{},"44":{},"62":{}},"component":{},"keyword":{}}],["refer",{"_index":399,"title":{"41-19":{}},"name":{},"text":{"3":{},"8":{},"10":{},"18":{},"20":{},"22":{},"23":{},"24":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"41":{},"43":{},"44":{},"45":{},"46":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"59":{},"62":{},"66":{},"67":{},"69":{},"71":{},"73":{},"74":{},"77":{},"79":{},"80":{},"81":{}},"component":{},"keyword":{}}],["referenc",{"_index":1089,"title":{},"name":{},"text":{"8":{},"15":{},"22":{},"23":{},"29":{},"30":{},"36":{},"39":{},"44":{},"62":{},"77":{}},"component":{},"keyword":{}}],["referer}i",{"_index":3067,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["referr",{"_index":3518,"title":{},"name":{},"text":{"34":{},"71":{}},"component":{},"keyword":{}}],["refid",{"_index":4787,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["refid=\"context",{"_index":6786,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["refid=\"myvers",{"_index":4790,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["refid=\"realmresource\"/></set",{"_index":6931,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["refid=\"root",{"_index":3763,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["refid=\"serv",{"_index":2390,"title":{},"name":{},"text":{"29":{},"44":{}},"component":{},"keyword":{}}],["refid=\"server\"/></arg",{"_index":6921,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["refid=\"sslcontextfactori",{"_index":2358,"title":{},"name":{},"text":{"29":{},"35":{}},"component":{},"keyword":{}}],["refid=\"wac\"/></arg",{"_index":2049,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["refin",{"_index":7062,"title":{},"name":{},"text":{"66":{},"70":{}},"component":{},"keyword":{}}],["reflect",{"_index":4486,"title":{},"name":{},"text":{"41":{},"43":{},"44":{},"50":{},"58":{},"62":{},"67":{}},"component":{},"keyword":{}}],["refresh",{"_index":2150,"title":{},"name":{},"text":{"24":{},"77":{}},"component":{},"keyword":{}}],["refus",{"_index":6644,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["regard",{"_index":786,"title":{},"name":{},"text":{"6":{},"77":{}},"component":{},"keyword":{}}],["regardless",{"_index":3940,"title":{},"name":{},"text":{"36":{},"51":{},"64":{},"71":{}},"component":{},"keyword":{}}],["regener",{"_index":8341,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["regex",{"_index":2641,"title":{},"name":{},"text":{"31":{},"35":{},"71":{},"79":{}},"component":{},"keyword":{}}],["regexp",{"_index":8719,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["regex|<path",{"_index":8743,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["regist",{"_index":1910,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"38":{},"46":{},"47":{},"48":{},"49":{},"51":{},"57":{},"65":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["registers/unregist",{"_index":5163,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["registr",{"_index":4067,"title":{},"name":{},"text":{"38":{},"79":{}},"component":{},"keyword":{}}],["registri",{"_index":2157,"title":{},"name":{},"text":{"24":{},"31":{},"48":{}},"component":{},"keyword":{}}],["regular",{"_index":133,"title":{},"name":{},"text":{"1":{},"6":{},"19":{},"22":{},"30":{},"31":{},"35":{},"57":{},"71":{},"79":{}},"component":{},"keyword":{}}],["regularli",{"_index":84,"title":{},"name":{},"text":{"1":{},"12":{}},"component":{},"keyword":{}}
1],["reject",{"_index":2691,"title":{},"name":{},"text":{"31":{},"35":{},"41":{},"51":{},"52":{},"71":{},"74":{}},"component":{},"keyword":{}}],["rejectedexecutionexcept",{"_index":4579,"title":{},"name":{},"text":{"41":{},"74":{}},"component":{},"keyword":{}}],["rel",{"_index":1321,"title":{},"name":{},"text":{"13":{},"19":{},"23":{},"30":{},"31":{},"32":{},"35":{},"36":{},"39":{},"40":{},"41":{},"62":{},"70":{},"71":{},"77":{},"81":{}},"component":{},"keyword":{}}],["rel=preload",{"_index":8136,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["relat",{"_index":368,"title":{"12-1":{}},"name":{},"text":{"3":{},"11":{},"12":{},"20":{},"24":{},"30":{},"35":{},"39":{},"46":{},"51":{},"53":{},"57":{},"71":{},"73":{},"77":{}},"component":{},"keyword":{}}],["relationship",{"_index":2443,"title":{},"name":{},"text":{"30":{},"55":{},"58":{},"74":{}},"component":{},"keyword":{}}],["relativeredirectallowed=tru",{"_index":8908,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["relay",{"_index":3929,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["releas",{"_index":176,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"6":{},"10":{},"17":{},"20":{},"30":{},"31":{},"34":{},"35":{},"39":{},"46":{},"51":{},"53":{},"55":{},"58":{},"60":{},"67":{},"71":{},"73":{},"74":{},"79":{}},"component":{},"keyword":{}}],["relev",{"_index":1336,"title":{},"name":{},"text":{"14":{},"24":{},"26":{},"28":{},"31":{},"34":{},"53":{},"55":{},"65":{},"69":{},"71":{},"79":{},"81":{}},"component":{},"keyword":{}}],["reli",{"_index":1121,"title":{},"name":{},"text":{"8":{},"24":{},"35":{},"46":{},"50":{},"51":{},"61":{},"64":{},"65":{},"71":{}},"component":{},"keyword":{}}],["reliabl",{"_index":3939,"title":{},"name":{},"text":{"36":{},"45":{},"51":{},"57":{}},"component":{},"keyword":{}}],["relic",{"_index":315,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["reliev",{"_index":7884,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["reload",{"_index":2507,"title":{"31-49":{},"35-19":{},"71-24":{}},"name":{},"text":{"31":{},"35":{},"71":{}},"component":{},"keyword":{}}],["remain",{"_index":966,"title":{},"name":{},"text":{"8":{},"18":{},"31":{},"36":{},"39":{},"53":{},"55":{},"58":{},"71":{},"74":{},"77":{}},"component":{},"keyword":{}}],["rememb",{"_index":1873,"title":{},"name":{},"text":{"22":{},"30":{},"35":{},"36":{},"41":{},"42":{},"43":{},"51":{},"52":{},"53":{},"58":{},"67":{},"71":{},"73":{},"77":{},"79":{},"84":{}},"component":{},"keyword":{}}],["remind",{"_index":1095,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["remot",{"_index":2130,"title":{"80":{},"24-2":{},"24-3":{},"24-4":{},"24-5":{},"31-34":{},"39-19":{},"39-21":{},"39-27":{},"41-17":{},"45-7":{},"48-2":{},"48-3":{},"48-4":{},"48-5":{},"58-3":{}},"name":{},"text":{"24":{},"31":{},"34":{},"35":{},"39":{},"41":{},"45":{},"48":{},"51":{},"58":{},"67":{},"71":{},"77":{},"79":{},"80":{}},"component":{},"keyword":{}}],["remote.ini",{"_index":2159,"title":{},"name":{},"text":{"24":{},"39":{}},"component":{},"keyword":{}}],["remote.sendstring(\"wrong",{"_index":6399,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["remoteaddress",{"_index":5661,"title":{},"name":{},"text":{"51":{},"67":{},"73":{},"74":{}},"component":{},"keyword":{}}],["remotecach",{"_index":8571,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["remotecache<str",{"_index":8570,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["remotecachemanag",{"_index":8568,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["remotecachemanager(configurationbuilder.build",{"_index":8569,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["remotecachemanager.getcache(\"jettysess",{"_index":8572,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["remoteendpoint",{"_index":7359,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["remoteendpoint.setmaxoutgoingframes(int",{"_index":6400,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["remoteport",{"_index":7206,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["remotequerymanag",{"_index":8539,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["remote|embed",{"_index":4297,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["remov",{"_index":1405,"title":{},"name":{},"text":{"17":{},"22":{},"28":{},"34":{},"39":{},"46":{},"47":{},"48":{},"51":{},"52":{},"67":{},"69":{},"70":{},"71":{},"77":{},"81":{},"84":{}},"component":{},"keyword":{}}],["removebean(schedul",{"_index":5121,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["removedvalu",{"_index":7224,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["removeunloadablesess",{"_index":8387,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["renam",{"_index":3143,"title":{},"name":{},"text":{"31":{},"67":{}},"component":{},"keyword":{}}
1],["render",{"_index":1058,"title":{},"name":{},"text":{"8":{},"48":{},"51":{}},"component":{},"keyword":{}}],["renegoti",{"_index":3237,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["renew",{"_index":3355,"title":{"35-18":{}},"name":{},"text":{"31":{},"35":{}},"component":{},"keyword":{}}],["repack",{"_index":6562,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["repackag",{"_index":1978,"title":{},"name":{},"text":{"22":{},"62":{}},"component":{},"keyword":{}}],["repeat",{"_index":2896,"title":{},"name":{},"text":{"31":{},"39":{},"51":{},"77":{}},"component":{},"keyword":{}}],["repeatedli",{"_index":8031,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["repetit",{"_index":1084,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["replac",{"_index":2338,"title":{"38-6":{}},"name":{},"text":{"28":{},"30":{},"34":{},"35":{},"38":{},"39":{},"41":{},"44":{},"46":{},"62":{},"66":{},"67":{},"71":{},"77":{}},"component":{},"keyword":{}}],["replay",{"_index":6903,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["repli",{"_index":1657,"title":{},"name":{},"text":{"20":{},"33":{},"51":{},"58":{},"63":{},"71":{}},"component":{},"keyword":{}}],["replic",{"_index":8147,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["repo",{"_index":847,"title":{},"name":{},"text":{"7":{},"12":{},"13":{}},"component":{},"keyword":{}}],["report",{"_index":363,"title":{"3-1":{},"3-2":{}},"name":{},"text":{"3":{},"11":{},"35":{},"41":{},"43":{},"45":{},"52":{},"59":{},"66":{},"71":{},"77":{},"78":{},"81":{}},"component":{},"keyword":{}}],["repositori",{"_index":208,"title":{"12-1":{}},"name":{},"text":{"2":{},"7":{},"8":{},"10":{},"12":{},"41":{},"62":{}},"component":{},"keyword":{}}],["repres",{"_index":1515,"title":{},"name":{},"text":{"19":{},"22":{},"23":{},"26":{},"29":{},"30":{},"35":{},"39":{},"44":{},"50":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"62":{},"63":{},"64":{},"69":{},"71":{},"73":{},"74":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["reproduc",{"_index":4821,"title":{},"name":{},"text":{"45":{},"46":{}},"component":{},"keyword":{}}],["req",{"_index":3440,"title":{},"name":{},"text":{"33":{},"68":{}},"component":{},"keyword":{}}],["request",{"_index":1177,"title":{"10-4":{},"33-3":{},"34-10":{},"34-11":{},"51-7":{},"51-11":{},"51-12":{},"51-14":{},"53-5":{},"53-7":{},"55-4":{},"55-6":{},"58-6":{},"67-7":{},"67-8":{},"71-1":{},"71-2":{},"71-3":{},"71-4":{},"71-65":{},"71-66":{},"71-67":{},"73-4":{},"73-6":{},"74-3":{},"74-5":{},"78-3":{}},"name":{},"text":{"9":{},"10":{},"12":{},"13":{},"15":{},"18":{},"20":{},"22":{},"24":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"39":{},"41":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"70":{},"71":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"83":{}},"component":{},"keyword":{}}],["request+respons",{"_index":5549,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["request.abort(throw",{"_index":5578,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["request.addcompletionlistener(consumer<throw",{"_index":8096,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["request.addfailurelistener(consumer<throw",{"_index":8094,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["request.addidletimeoutlistener(predicate<timeoutexcept",{"_index":8091,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["request.agent(\"mozilla/5.0",{"_index":5436,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["request.asattributemap",{"_index":7227,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.clearattribut",{"_index":7226,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.demand(new",{"_index":8631,"title":{},"name":{},"text":{"78":{}},"component":{},"keyword":{}}],["request.demand(runn",{"_index":8092,"title":{},"name":{},"text":{"71":{},"78":{}},"component":{},"keyword":{}}],["request.demand(thi",{"_index":7243,"title":{},"name":{},"text":{"67":{},"78":{}},"component":{},"keyword":{}}],["request.extractqueryparameters(request",{"_index":7165,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["request.getattribute(nam",{"_index":7221,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.getattributenameset",{"_index":7220,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.getauthenticationstate(request).getuserprincip",{"_index":6820,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["request.getbeginnanotim",{"_index":7810,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["request.getconnect",{"_index":5660,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["request.getconnectionmetadata().getprotocol",{"_index":7142,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.getconnectionmetadata().getremotesocketaddress",{"_index":7572,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["request.getcontentlengthlong",{"_index":8159,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["request.getcontext",{"_index":7149,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.getcookies(request",{"_index":7169,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["request.gethead",{"_index":7175,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["request.getheaders().contains(\"x",{"_index":8734,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["request.getheaders().get(httpheader.content_typ",{"_index":7250,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["request.getheaders().getfield(httpheader.content_typ",{"_index":7178,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.getheadersnanotim",{"_index":7812,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["request.gethttpuri",{"_index":7325,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["request.gethttpuri().getauthor",{"_index":7574,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["request.gethttpuri().getpath",{"_index":7154,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.gethttpuri().getqueri",{"_index":7159,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["request.gethttpuri().getschem",{"_index":7195,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.gethttpuri().tostring().endswith(\"/index.html",{"_index":8210,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["request.getinputstream",{"_index":7332,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["request.getlength",{"_index":7190,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["request.getlocaladdr(request",{"_index":7211,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.getlocales(request",{"_index":7193,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.getlocalport(request",{"_index":7214,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.getmethod",{"_index":7140,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["request.getparameters(request",{"_index":7026,"title":{},"name":{},"text":{"65":{},"67":{}},"component":{},"keyword":{}}],["request.getparametersasync(request",{"_index":8074,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["request.getpathincontext(request",{"_index":7024,"title":{},"name":{},"text":{"65":{},"67":{},"71":{},"79":{}},"component":{},"keyword":{}}],["request.getpathincontext(upgraderequest",{"_index":8750,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["request.getremoteaddr(request",{"_index":7204,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.getremoteport(request",{"_index":7207,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.getservername(clienttoproxyrequest",{"_index":7967,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["request.getservername(request",{"_index":7198,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.getserverport(request",{"_index":7201,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.getsession(boolean",{"_index":8076,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["request.getsession(cr",{"_index":7232,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.getsession(fals",{"_index":7032,"title":{},"name":{},"text":{"65":{},"71":{}},"component":{},"keyword":{}}],["request.getsession(true).getid",{"_index":6509,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["request.gettrail",{"_index":7229,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.handl",{"_index":7910,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["request.issecur",{"_index":7571,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["request.listen",{"_index":5471,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["request.method(httpmethod.head",{"_index":5435,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["request.onresponsecontent(response.contentlisten",{"_index":7350,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.onresponsecontentasync(response.asynccontentlisten",{"_index":7349,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.onresponsecontentdemanded(response.demandedcontentlisten",{"_index":7347,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.onresponsecontentsource(response.contentsourcelisten",{"_index":7348,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.read",{"_index":7242,"title":{},"name":{},"text":{"67":{},"78":{}},"component":{},"keyword":{}}],["request.removeattribute(nam",{"_index":7225,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.send",{"_index":5437,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["request.send(response.completelisten",{"_index":5457,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["request.serveas(request",{"_index":8068,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["request.setattribute(\"beforehandlingnanotim",{"_index":7826,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["request.setattribute(nam",{"_index":7223,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.sethandled(tru",{"_index":7326,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["request.timeout",{"_index":5450,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}
1],["request/respons",{"_index":2666,"title":{},"name":{},"text":{"31":{},"34":{},"51":{},"53":{},"55":{},"67":{},"71":{},"73":{},"74":{},"79":{},"81":{}},"component":{},"keyword":{}}],["request1",{"_index":5591,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["request1.onresponsecontentsource(new",{"_index":5601,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["request1.onresponsesuccess(respons",{"_index":5615,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["request1.send(result",{"_index":5617,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["request2",{"_index":5596,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["request2.onrequestcommit(request",{"_index":5603,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["request2.send(result",{"_index":5606,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["requestapi",{"_index":7138,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["requestbeginnanotim",{"_index":7825,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["requestcookiecompliance=rfc6265@2dfaea86[invalid_cooki",{"_index":8901,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["requesthead",{"_index":6013,"title":{},"name":{},"text":{"53":{},"55":{},"67":{},"71":{}},"component":{},"keyword":{}}],["requestheaders.contains(httpheader.expect",{"_index":8116,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["requestheadersize=8192",{"_index":8881,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["requestlog",{"_index":2505,"title":{"31-39":{},"31-40":{}},"name":{},"text":{"31":{},"34":{},"62":{},"67":{},"71":{}},"component":{},"keyword":{}}],["requestlog.collect",{"_index":7555,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["requestlog.ini",{"_index":3512,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["requestlog.writ",{"_index":7556,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["requestloghandl",{"_index":7080,"title":{"67-14":{}},"name":{},"text":{},"component":{},"keyword":{}}],["requestlogwrit",{"_index":7548,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["requestlogwriter(\"/var/log/yyyy_mm_dd.jetty.request.log",{"_index":7550,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["requestpath",{"_index":7153,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["requestr",{"_index":8195,"title":{},"name":{},"text":{"73":{},"74":{}},"component":{},"keyword":{}}],["requestread",{"_index":7817,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["requests/",{"_index":7841,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["requests/respons",{"_index":5455,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["requesturl",{"_index":7146,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["requir",{"_index":217,"title":{"7-1":{},"67-1":{},"68-1":{}},"name":{},"text":{"2":{},"7":{},"10":{},"14":{},"19":{},"22":{},"23":{},"24":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"48":{},"51":{},"52":{},"53":{},"55":{},"58":{},"59":{},"60":{},"63":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"73":{},"74":{},"77":{}},"component":{},"keyword":{}}],["requireswebsocketupgrade(request",{"_index":8700,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["requisit",{"_index":5350,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["resembl",{"_index":5914,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["reserv",{"_index":375,"title":{},"name":{},"text":{"3":{},"10":{},"11":{},"30":{},"31":{},"52":{},"57":{}},"component":{},"keyword":{}}],["reserved_names_not_dollar_prefix",{"_index":2958,"title":{},"name":{},"text":{"31":{},"70":{}},"component":{},"keyword":{}}],["reservedthread",{"_index":5930,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["reservedthreadexecutor",{"_index":5934,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["reset",{"_index":4916,"title":{"53-7":{},"73-6":{}},"name":{},"text":{"46":{},"53":{},"58":{},"67":{},"73":{},"77":{}},"component":{},"keyword":{}}],["resetfram",{"_index":6076,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["resetframe(pushedstream.getid",{"_index":6094,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["resetframe(stream.getid",{"_index":6078,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["resid",{"_index":1764,"title":{},"name":{},"text":{"22":{},"23":{},"31":{},"39":{},"41":{},"69":{}},"component":{},"keyword":{}}],["resolut",{"_index":713,"title":{"22-10":{},"22-11":{},"22-12":{},"22-13":{}},"name":{},"text":{"4":{},"24":{},"31":{},"43":{},"57":{},"70":{},"71":{},"81":{}},"component":{},"keyword":{}}],["resolv",{"_index":210,"title":{},"name":{},"text":{"2":{},"10":{},"22":{},"30":{},"36":{},"41":{},"43":{},"44":{},"51":{},"56":{},"66":{},"70":{}},"component":{},"keyword":{}}],["resort",{"_index":3438,"title":{},"name":{},"text":{"33":{},"35":{},"45":{}},"component":{},"keyword":{}}],["resourc",{"_index":774,"title":{"23-1":{},"23-10":{},"31-41":{},"73-7":{}},"name":{},"text":{"5":{},"6":{},"15":{},"19":{},"20":{},"22":{},"23":{},"28":{},"29":{},"30":{},"31":{},"34":{},"35":{},"41":{},"45":{},"46":{},"48":{},"51":{},"52":{},"53":{},"58":{},"60":{},"62":{},"63":{},"66":{},"70":{},"71":{},"73":{}},"component":{},"keyword":{}}],["resource(",{"_index":6676,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["resourceasstring>${project.basedir}/src/etc/realm.properties</resourceasstr",{"_index":6772,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["resourcebas",{"_index":6674,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["resourcebase>/home/johndoe/path/to/my/other/source</resourcebas",{"_index":6777,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["resourcebase>/yet/another/folder</resourcebas",{"_index":6778,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["resourcebase>src/main/webapp</resourcebas",{"_index":6776,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["resourcebyt",{"_index":8187,"title":{},"name":{},"text":{"73":{},"74":{}},"component":{},"keyword":{}}],["resourcefactory.combin",{"_index":7742,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["resourcefactory.of(handler).newresource(\"/another/path/to/static/resourc",{"_index":7744,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["resourcefactory.of(handler).newresource(\"/path/to/static/resourc",{"_index":7743,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["resourcehandl",{"_index":3351,"title":{"71-30":{}},"name":{},"text":{"31":{},"35":{},"71":{}},"component":{},"keyword":{}}],["resources(se",{"_index":8199,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["resources/jetti",{"_index":1241,"title":{},"name":{},"text":{"13":{},"20":{}},"component":{},"keyword":{}}],["resources</directori",{"_index":6700,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["resources</phas",{"_index":6570,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["resourceservlet",{"_index":8045,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["resp",{"_index":7387,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["respect",{"_index":716,"title":{},"name":{},"text":{"4":{},"8":{},"23":{},"31":{},"34":{},"48":{},"51":{},"53":{},"58":{},"69":{},"71":{},"73":{},"77":{},"79":{}},"component":{},"keyword":{}}],["respond",{"_index":1203,"title":{},"name":{},"text":{"10":{},"35":{},"41":{},"51":{},"58":{},"62":{},"63":{},"67":{},"71":{},"74":{},"75":{}},"component":{},"keyword":{}}],["respond(stream",{"_index":8184,"title":{},"name":{},"text":{"73":{},"74":{}},"component":{},"keyword":{}}],["respond(stream.serv",{"_index":8241,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["respons",{"_index":1295,"title":{"51-11":{},"51-13":{},"53-6":{},"53-7":{},"55-5":{},"55-6":{},"56-2":{},"56-3":{},"56-4":{},"58-7":{},"67-9":{},"67-10":{},"71-68":{},"71-69":{},"71-70":{},"71-74":{},"73-5":{},"74-4":{}},"name":{},"text":{"13":{},"22":{},"28":{},"31":{},"34":{},"35":{},"39":{},"46":{},"49":{},"51":{},"53":{},"55":{},"56":{},"58":{},"59":{},"63":{},"64":{},"65":{},"66":{},"67":{},"69":{},"70":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["response.abort(chunk.getfailur",{"_index":6189,"title":{},"name":{},"text":{"56":{}},"component":{},"keyword":{}}],["response.abort(new",{"_index":5563,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["response.abort(x",{"_index":5614,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["response.addcookie(cooki",{"_index":5738,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["response.addcookie(respons",{"_index":7285,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["response.asynccontentlisten",{"_index":5585,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["response.completelisten",{"_index":5461,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["response.contentlisten",{"_index":5588,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["response.contentsourcelisten",{"_index":5572,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["response.contentsourcelistener.oncontentsource(content.sourc",{"_index":7355,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["response.contentsourcelistener.oncontentsource(respons",{"_index":5573,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["response.gethead",{"_index":7272,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["response.getheaders().put(httpheader.content_length",{"_index":7315,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["response.getheaders().put(httpheader.content_typ",{"_index":6459,"title":{},"name":{},"text":{"59":{},"71":{}},"component":{},"keyword":{}}],["response.getoutputstream",{"_index":7334,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["response.getstatu",{"_index":5559,"title":{},"name":{},"text":{"51":{},"67":{},"71":{}},"component":{},"keyword":{}}],["response.gettrailerssuppli",{"_index":7299,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["response.getwriter().println(\"<h1>hello",{"_index":6506,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["response.getwriter().println(\"sess",{"_index":6508,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["response.iscommit",{"_index":7301,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["response.listen",{"_index":5480,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["response.replacecookie(respons",{"_index":8102,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["response.reset",{"_index":7303,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["response.senderror(102",{"_index":8166,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["response.senderror(httpstatus.payload_too_large_413",{"_index":8160,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["response.sendredirect(request",{"_index":7307,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["response.setcontenttype(\"text/html",{"_index":6504,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["response.setstatus(200",{"_index":6458,"title":{},"name":{},"text":{"59":{},"71":{}},"component":{},"keyword":{}}],["response.setstatus(httpservletresponse.sc_ok",{"_index":6505,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["response.setstatus(httpstatus.no_content_204",{"_index":7312,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["response.setstatus(httpstatus.ok_200",{"_index":7259,"title":{},"name":{},"text":{"67":{},"71":{},"79":{}},"component":{},"keyword":{}}],["response.setstatus(int",{"_index":8100,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["response.settrailerssupplier(trail",{"_index":7296,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["response.toredirecturi(request",{"_index":7306,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["response.writ",{"_index":8057,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["response.write(boolean",{"_index":8093,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["response.write(fals",{"_index":7318,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["response.write(tru",{"_index":7313,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["response.writeerror(clienttoproxyrequest",{"_index":7970,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["response.writeerror(request",{"_index":7309,"title":{},"name":{},"text":{"67":{},"71":{},"79":{}},"component":{},"keyword":{}}],["response.writeinterim",{"_index":8127,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["response.writeinterim(httpstatus.continue_100",{"_index":8118,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["response.writeinterim(httpstatus.early_hints_103",{"_index":8138,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["responseapi",{"_index":7255,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["responsebegin",{"_index":7818,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["responsecont",{"_index":5561,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["responsecookiecompliance=rfc6265@2dfaea86[invalid_cooki",{"_index":8905,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["responsehead",{"_index":7271,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["responseheaders.put(httpheader.content_length",{"_index":7290,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["responseheaders.put(httpheader.content_typ",{"_index":7287,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["responseheadersize=8192",{"_index":8882,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["responsetrailerscomplet",{"_index":7821,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["responsewrit",{"_index":7819,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["responsewritecomplet",{"_index":7820,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["responseâ",{"_index":6181,"title":{},"name":{},"text":{"56":{}},"component":{},"keyword":{}}],["rest",{"_index":983,"title":{},"name":{},"text":{"8":{},"17":{},"20":{},"31":{},"54":{},"58":{},"71":{},"76":{}},"component":{},"keyword":{}}],["restart",{"_index":1677,"title":{},"name":{},"text":{"20":{},"22":{},"31":{},"32":{},"41":{},"45":{},"47":{},"62":{},"77":{}},"component":{},"keyword":{}}],["resthandl",{"_index":7725,"title":{},"name":{},"text":{"71":{},"78":{}},"component":{},"keyword":{}}],["restor",{"_index":4201,"title":{},"name":{},"text":{"39":{},"45":{},"50":{}},"component":{},"keyword":{}}],["restrict",{"_index":352,"title":{},"name":{},"text":{"2":{},"17":{},"23":{},"51":{},"55":{},"62":{},"63":{},"65":{},"71":{},"74":{},"77":{}},"component":{},"keyword":{}}],["result",{"_index":701,"title":{},"name":{},"text":{"4":{},"7":{},"13":{},"18":{},"22":{},"31":{},"34":{},"36":{},"41":{},"46":{},"47":{},"51":{},"52":{},"55":{},"58":{},"59":{},"62":{},"63":{},"67":{},"70":{},"71":{},"74":{},"75":{},"79":{},"81":{}},"component":{},"keyword":{}}],["result.data(new",{"_index":6165,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{}
1,"keyword":{}}],["result.isfail",{"_index":5554,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["result.whencomplete((ignor",{"_index":6360,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["resultofwrit",{"_index":5058,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["resultofwrites.whencomplete((ignor",{"_index":5063,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["resum",{"_index":2514,"title":{},"name":{},"text":{"31":{},"46":{},"51":{},"53":{},"71":{},"73":{},"75":{}},"component":{},"keyword":{}}],["retain",{"_index":2264,"title":{},"name":{},"text":{"28":{},"31":{},"34":{},"39":{},"42":{},"46":{},"51":{},"64":{},"66":{},"67":{},"71":{},"77":{}},"component":{},"keyword":{}}],["retain/releas",{"_index":4998,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["retainable.release(buff",{"_index":4962,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["retainablebytebuff",{"_index":4958,"title":{"66-11":{}},"name":{},"text":{"46":{},"66":{}},"component":{},"keyword":{}}],["retainablebytebuffer.dynamiccapac",{"_index":7067,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["retainablebytebuffer.fixedcapac",{"_index":7066,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["retainingresponselisten",{"_index":5550,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["retainingresponselistener(8",{"_index":5552,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["rethrow",{"_index":5368,"title":{},"name":{},"text":{"51":{},"58":{}},"component":{},"keyword":{}}],["retri",{"_index":4354,"title":{},"name":{},"text":{"39":{},"53":{},"55":{},"77":{}},"component":{},"keyword":{}}],["retriev",{"_index":2154,"title":{},"name":{},"text":{"24":{},"36":{},"39":{},"42":{},"44":{},"48":{},"52":{},"53":{},"62":{},"63":{},"69":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["retryablerequestexcept",{"_index":5837,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["retryablestreamexcept",{"_index":5836,"title":{},"name":{},"text":{"51":{},"53":{},"55":{}},"component":{},"keyword":{}}],["return",{"_index":1045,"title":{},"name":{},"text":{"8":{},"13":{},"15":{},"19":{},"31":{},"35":{},"39":{},"41":{},"44":{},"45":{},"46":{},"48":{},"50":{},"51":{},"52":{},"53":{},"55":{},"56":{},"57":{},"58":{},"59":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"70":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["reus",{"_index":2208,"title":{},"name":{},"text":{"24":{},"31":{},"32":{},"41":{},"46":{},"51":{},"53":{},"58":{},"73":{},"77":{}},"component":{},"keyword":{}}],["reusabl",{"_index":1381,"title":{},"name":{},"text":{"15":{},"71":{}},"component":{},"keyword":{}}],["reuse/recycl",{"_index":4997,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["revers",{"_index":1836,"title":{"35-23":{}},"name":{},"text":{"22":{},"25":{},"31":{},"35":{},"42":{},"47":{},"51":{},"71":{}},"component":{},"keyword":{}}],["reverseproxi",{"_index":7977,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["revert",{"_index":1551,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["review",{"_index":4122,"title":{},"name":{},"text":{"39":{},"66":{}},"component":{},"keyword":{}}],["rewrit",{"_index":1798,"title":{"31-42":{}},"name":{},"text":{"22":{},"31":{},"66":{},"71":{}},"component":{},"keyword":{}}],["rewrite/redirect",{"_index":7736,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["rewrite</artifactid",{"_index":7778,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["rewritecustom",{"_index":7517,"title":{"71-9":{}},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["rewritehandl",{"_index":1797,"title":{"71-34":{}},"name":{},"text":{"22":{},"31":{},"71":{}},"component":{},"keyword":{}}],["rewritehandler.addrule(new",{"_index":7785,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["rewritehandler.addrule(redirectrul",{"_index":7794,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["rewritehandler.sethandler(contextcollect",{"_index":7795,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["rewriteregexrule(\"/(.*)/product",{"_index":7787,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["rewritten",{"_index":7047,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["rfc",{"_index":251,"title":{},"name":{},"text":{"2":{},"31":{},"33":{},"35":{},"51":{},"58":{},"70":{},"71":{}},"component":{},"keyword":{}}],["rfc2109",{"_index":5729,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["rfc2616",{"_index":2916,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["rfc2616_legaci",{"_index":2917,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["rfc2965",{"_index":2929,"title":{},"name":{},"text":{"31":{},"51":{}},"component":{},"keyword":{}}],["rfc2965_legaci",{"_index":2930,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["rfc3986",{"_index":2920,"title":{},"name":{},"text":{"31":{},"70":{}},"component":{},"keyword":{}}],["rfc3986_unambigu",{"_index":2921,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["rfc5785",{"_index":3354,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["rfc6265",{"_index":2927,"title":{},"name":{},"text":{"31":{},"51":{},"70":{}},"component":{},"keyword":{}}],["rfc6265_legaci",{"_index":2928,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["rfc6265_strict",{"_index":2926,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["rfc7230",{"_index":2914,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["rfc7230_legaci",{"_index":2915,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["rfc7239",{"_index":2971,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["rfc7578",{"_index":2934,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["rfc7578_strict",{"_index":2933,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["rfc9110",{"_index":2913,"title":{},"name":{},"text":{"31":{},"70":{}},"component":{},"keyword":{}}
1],["rich",{"_index":6751,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["richard",{"_index":5344,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["right",{"_index":376,"title":{},"name":{},"text":{"3":{},"8":{},"10":{},"11":{},"13":{},"33":{},"36":{},"43":{},"51":{},"71":{},"77":{}},"component":{},"keyword":{}}],["risk",{"_index":1450,"title":{},"name":{},"text":{"18":{},"35":{},"39":{},"51":{},"52":{},"71":{},"77":{}},"component":{},"keyword":{}}],["rmi",{"_index":2140,"title":{},"name":{},"text":{"24":{},"31":{},"48":{}},"component":{},"keyword":{}}],["rmi_registry_host",{"_index":2166,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["rmi_registry_port",{"_index":2167,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["rmi_server_host",{"_index":2163,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["rmi_server_port",{"_index":2164,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["robin",{"_index":5390,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["robust",{"_index":965,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["rock",{"_index":8111,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["roe",{"_index":5345,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["role",{"_index":3006,"title":{"40-3":{},"65-6":{}},"name":{},"text":{"31":{},"35":{},"36":{},"40":{},"48":{},"63":{},"64":{},"65":{}},"component":{},"keyword":{}}],["rolebasedn=\"ou=groups,dc=example,dc=com",{"_index":4029,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["rolememberattribute=\"uniquememb",{"_index":4032,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["rolenam",{"_index":4005,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["rolenameattribute=\"cn",{"_index":4031,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["roleobjectclass=\"groupofuniquenam",{"_index":4033,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["roll",{"_index":2617,"title":{"34-4":{}},"name":{},"text":{"31":{},"34":{},"45":{},"71":{}},"component":{},"keyword":{}}],["rollov",{"_index":2652,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["room",{"_index":8752,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["root",{"_index":169,"title":{"62-25":{}},"name":{},"text":{"8":{},"15":{},"22":{},"31":{},"33":{},"35":{},"43":{},"44":{},"47":{},"48":{},"60":{},"62":{},"71":{},"81":{}},"component":{"1":{},"2":{},"3":{},"4":{}},"keyword":{}}],["root.addbean(servic",{"_index":5123,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["root.getbean",{"_index":5132,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["root.getcontainedbeans(scheduledexecutorservice.class",{"_index":5135,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["root.start",{"_index":5124,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["rotat",{"_index":3536,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["round",{"_index":5389,"title":{},"name":{},"text":{"51":{},"58":{}},"component":{},"keyword":{}}],["roundrobinconnectionpool",{"_index":5388,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["roundrobinconnectionpool(destin",{"_index":5398,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["roundtrip",{"_index":5771,"title":{},"name":{},"text":{"51":{},"58":{}},"component":{},"keyword":{}}],["roundtriplistenerendpoint",{"_index":6422,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["rountrip",{"_index":5768,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["rout",{"_index":4351,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["routin",{"_index":1293,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["row",{"_index":8488,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["rq",{"_index":8721,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["rq.getsubprotocol",{"_index":8727,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["rs",{"_index":7905,"title":{},"name":{},"text":{"71":{},"79":{}},"component":{},"keyword":{}}],["rsa",{"_index":3386,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["rst_stream",{"_index":6074,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["rubi",{"_index":3741,"title":{},"name":{},"text":{"35":{},"76":{}},"component":{},"keyword":{}}],["rule",{"_index":730,"title":{"22-9":{}},"name":{},"text":{"4":{},"17":{},"22":{},"28":{},"31":{},"36":{},"39":{},"46":{},"57":{},"62":{},"71":{}},"component":{},"keyword":{}}],["rules.xml",{"_index":3146,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["run",{"_index":817,"title":{"7-2":{},"7-3":{},"39-34":{},"39-35":{},"59-4":{},"59-8":{},"62-1":{},"62-26":{}},"name":{},"text":{"7":{},"8":{},"12":{},"18":{},"20":{},"22":{},"24":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"39":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"51":{},"52":{},"55":{},"56":{},"57":{},"59":{},"60":{},"62":{},"67":{},"71":{},"74":{},"77":{},"78":{},"79":{},"80":{},"81":{},"84":{}},"component":{},"keyword":{}}],["run/php/php",{"_index":3748,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["run=<part>(,<part",{"_index":4619,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["run=arg",{"_index":4534,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["run=env",{"_index":4535,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["run=java",{"_index":4523,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["run=main",{"_index":4531,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["run=opt",{"_index":4524,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["run=opts,path",{"_index":4550,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["run=opts,path,main,args,env",{"_index":4541,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["run=path",{"_index":4525,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["runa",{"_index":1488,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["runnabl",{"_index":5880,"title":{},"name":{},"text":{"52":{},"56":{},"71":{},"78":{},"81":{}},"component":{},"keyword":{}}],["runner",{"_index":922,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["runner/target/jetti",{"_index":921,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["runtim",{"_index":1457,"title":{},"name":{},"text":{"18":{},"22":{},"23":{},"24":{},"31":{},"35":{},"36":{},"38":{},"41":{},"45":{},"49":{},"62":{},"70":{},"71":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["runtime.feature.alpn",{"_index":4482,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}
1],["runtime.feature.alpn=tru",{"_index":4519,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["rv:17.0",{"_index":5431,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["rwx",{"_index":7680,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["s",{"_index":1189,"title":{},"name":{},"text":{"10":{},"31":{},"33":{},"34":{},"51":{},"53":{},"57":{},"71":{}},"component":{},"keyword":{}}],["s.data(new",{"_index":6044,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["s=state",{"_index":3395,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["safari/537.36",{"_index":3531,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["safe",{"_index":5948,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["safer",{"_index":7499,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["safest",{"_index":7662,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["sake",{"_index":7952,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["sale",{"_index":7847,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["same",{"_index":957,"title":{"22-23":{}},"name":{},"text":{"8":{},"9":{},"15":{},"19":{},"22":{},"23":{},"24":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"38":{},"39":{},"41":{},"42":{},"48":{},"51":{},"52":{},"53":{},"57":{},"58":{},"60":{},"62":{},"63":{},"66":{},"67":{},"71":{},"73":{},"75":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["samesite(httpcookie.samesite.lax",{"_index":7284,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["sampl",{"_index":1246,"title":{},"name":{},"text":{"13":{},"36":{}},"component":{},"keyword":{}}],["san",{"_index":3200,"title":{},"name":{},"text":{"31":{},"33":{}},"component":{},"keyword":{}}],["san=dns:www.domain.com,dns:domain.org",{"_index":3397,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["san=ip:127.0.0.1,ip:[::1",{"_index":3408,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["satisfi",{"_index":6667,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["save",{"_index":1081,"title":{},"name":{},"text":{"8":{},"30":{},"31":{},"33":{},"39":{},"41":{},"45":{},"46":{},"51":{},"58":{},"59":{},"62":{},"67":{},"71":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["saveoncr",{"_index":8385,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["saveoninactiveevict",{"_index":8384,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["savepath",{"_index":5566,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["saveperiod",{"_index":4228,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["saveperiodsec",{"_index":8431,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["savepngimage(payload",{"_index":6347,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["scalabl",{"_index":92,"title":{},"name":{},"text":{"1":{},"14":{},"35":{},"46":{},"58":{}},"component":{},"keyword":{}}],["scale",{"_index":5876,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["scan",{"_index":362,"title":{"19-1":{}},"name":{},"text":{"2":{},"19":{},"22":{},"31":{},"32":{},"35":{},"41":{},"48":{},"60":{},"62":{},"69":{},"77":{}},"component":{},"keyword":{}}],["scan>10</scan",{"_index":6658,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["scanalldirectori",{"_index":6545,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["scanclassespattern",{"_index":6690,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["scanmanifest",{"_index":6548,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["scanner",{"_index":1711,"title":{"31-14":{}},"name":{},"text":{"20":{},"22":{},"31":{},"36":{},"66":{},"69":{}},"component":{},"keyword":{}}],["scanner.configureenvironment(coreenv.getnam",{"_index":7447,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["scanner.configureenvironment(environment.getnam",{"_index":7409,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["scanner.configureenvironment(jakartaenv.getnam",{"_index":7450,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}
1],["scanner.ini",{"_index":1832,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["scanner.setwebappsdirectories(list.of(path.of(\"/path/to/webapp",{"_index":7403,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["scanner.xml",{"_index":4538,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["scantargetpattern",{"_index":6686,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["scantestclassespattern",{"_index":6691,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["scatter",{"_index":4400,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["scaveng",{"_index":4103,"title":{"39-6":{}},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["scenario",{"_index":4114,"title":{"39-43":{}},"name":{},"text":{"39":{},"51":{},"77":{}},"component":{},"keyword":{}}],["schedul",{"_index":1631,"title":{"31-43":{}},"name":{},"text":{"20":{},"31":{},"34":{},"35":{},"41":{},"46":{},"47":{},"51":{},"57":{},"71":{},"75":{}},"component":{},"keyword":{}}],["scheduledexecutorscheduler(\"schedul",{"_index":6215,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["scheduledexecutorservic",{"_index":5112,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["scheduler.ini",{"_index":1664,"title":{},"name":{},"text":{"20":{},"41":{}},"component":{},"keyword":{}}],["scheduler.shutdown",{"_index":5122,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["scheduler.xml",{"_index":4498,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["schema",{"_index":3373,"title":{},"name":{},"text":{"32":{},"39":{},"77":{}},"component":{},"keyword":{}}],["scheme",{"_index":1406,"title":{},"name":{},"text":{"17":{},"31":{},"35":{},"41":{},"51":{},"63":{},"67":{},"71":{}},"component":{},"keyword":{}}],["scheme(\"http",{"_index":7990,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["scheme://author",{"_index":3123,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["scheme}uri",{"_index":3124,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["sci",{"_index":1563,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["scope",{"_index":1362,"title":{"23-10":{},"44-16":{}},"name":{},"text":{"15":{},"23":{},"31":{},"39":{},"44":{},"62":{},"77":{}},"component":{},"keyword":{}}],["scope>provided</scop",{"_index":6520,"title":{},"name":{},"text":{"59":{},"60":{},"62":{}},"component":{},"keyword":{}}],["scope>provided<scop",{"_index":6649,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["score",{"_index":5347,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["scratch",{"_index":8274,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["scratchdir",{"_index":2329,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["scriplet",{"_index":2334,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["script",{"_index":3743,"title":{},"name":{},"text":{"35":{},"41":{},"64":{},"71":{},"76":{},"77":{}},"component":{},"keyword":{}}],["scriptroot",{"_index":5847,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["sdk",{"_index":4341,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["seamlessli",{"_index":5913,"title":{},"name":{},"text":{"52":{},"71":{}},"component":{},"keyword":{}}],["search",{"_index":4039,"title":{},"name":{},"text":{"36":{},"39":{},"41":{},"57":{},"62":{},"77":{}},"component":{},"keyword":{}}],["season",{"_index":56,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["sec",{"_index":4156,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["second",{"_index":1556,"title":{},"name":{},"text":{"19":{},"22":{},"28":{},"30":{},"31":{},"32":{},"34":{},"36":{},"39":{},"41":{},"43":{},"45":{},"46":{},"47":{},"48":{},"50":{},"51":{},"53":{},"55":{},"56":{},"57":{},"58":{},"62":{},"67":{},"71":{},"75":{},"77":{},"79":{}},"component":{},"keyword":{}}],["secondari",{"_index":1028,"title":{},"name":{},"text":{"8":{},"73":{}},"component":{},"keyword":{}}],["secret",{"_index":3032,"title":{},"name":{},"text":{"31":{},"40":{},"42":{},"48":{},"51":{},"65":{}},"component":{},"keyword":{}}],["secret$phras",{"_index":4679,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["section",{"_index":1125,"title":{},"name":{},"text":{"8":{},"18":{},"20":{},"22":{},"23":{},"24":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"37":{},"39":{},"40":{},"41":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"51":{},"52":{},"53":{},"55":{},"56":{},"57":{},"58":{},"59":{},"62":{},"63":{},"66":{},"67":{},"69":{},"71":{},"73":{},"75":{},"77":{},"78":{},"79":{},"81":{}},"component":{},"keyword":{}}],["secur",{"_index":364,"title":{"3":{},"11":{},"63":{},"3-1":{},"3-2":{},"24-5":{},"35-2":{},"35-4":{},"35-5":{},"35-14":{},"40-3":{},"48-4":{},"62-24":{},"63-1":{},"63-2":{},"64-8":{},"65-6":{},"71-72":{}},"name":{"3":{}},"text":{"3":{},"11":{},"17":{},"18":{},"20":{},"22":{},"24":{},"25":{},"29":{},"31":{},"33":{},"35":{},"36":{},"38":{},"39":{},"40":{},"41":{},"42":{},"45":{},"48":{},"51":{},"57":{},"62":{},"63":{},"65":{},"71":{},"74":{},"77":{},"79":{}},"component":{},"keyword":{}}],["secureconfig",{"_index":7613,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["secureconfig.addcustomizer(new",{"_index":7615,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["secureconnector",{"_index":7620,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["secureconnector.addeventlistener(new",{"_index":7627,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["secureconnector.setport(8443",{"_index":7873,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["securedhandl",{"_index":7874,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["securedhandler.sethandler(contextcollect",{"_index":7876,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["securedredirecthandl",{"_index":7521,"title":{"71-40":{}},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["secureport",{"_index":7870,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["secureport=0",{"_index":8887,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["securerequestcustom",{"_index":7518,"title":{"71-10":{}},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["securescheme=http",{"_index":8886,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["security.addprovider(new",{"_index":7682,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["security.mod",{"_index":7127,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["security</artifactid",{"_index":8148,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["[email protected]",{"_index":380,"title":{},"name":{},"text":{"3":{},"11":{}},"component":{},"keyword":{}}],["[email protected]",{"_index":372,"title":{},"name":{},"text":{"3":{},"11":{}},"component":{},"keyword":{}}],["[email protected]",{"_index":373,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["securityfilt",{"_index":8670,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["securityhandl",{"_index":3004,"title":{"63-3":{},"71-50":{}},"name":{},"text":{"31":{},"63":{},"64":{},"65":{},"71":{}},"component":{},"keyword":{}}],["securityhandler.addconstraintmapping(constraintmap",{"_index":6856,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["securityhandler.pathmap",{"_index":6816,"title":{},"name":{},"text":{"63":{},"64":{},"65":{}},"component":{},"keyword":{}}],["securityhandler.pathmethodmap",{"_index":6841,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["securityhandler.put",{"_index":6827,"title":{},"name":{},"text":{"63":{},"64":{}},"component":{},"keyword":{}}],["securityhandler.put(\"/admin",{"_index":6829,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["securityhandler.put(\"/auth",{"_index":7008,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["securityhandler.put(\"/data",{"_index":6843,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["securityhandler.setauthenticator(authent",{"_index":6825,"title":{},"name":{},"text":{"63":{},"64":{}},"component":{},"keyword":{}}],["securityhandler.setauthenticator(new",{"_index":7016,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["securityhandler.setdenyuncoveredhttpmethods(tru",{"_index":6866,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["securityhandler.sethandler(handl",{"_index":6937,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["securityhandler.sethandler(new",{"_index":6833,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["securityhandler.setloginservice(loginservic",{"_index":6826,"title":{},"name":{},"text":{"63":{},"65":{}},"component":{},"keyword":{}}],["securityhandler.setparameter(ethereumauthenticator.login_path_param",{"_index":6940,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["see",{"_index":420,"title":{},"name":{},"text":{"3":{},"4":{},"6":{},"8":{},"10":{},"14":{},"15":{},"18":{},"20":{},"22":{},"23":{},"24":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"38":{},"39":{},"41":{},"43":{},"45":{},"46":{},"48":{},"51":{},"52":{},"53":{},"55":{},"56":{},"58":{},"59":{},"62":{},"63":{},"65":{},"66":{},"67":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{},"81":{}},"component":{},"keyword":{}}],["seem",{"_index":3828,"title":{},"name":{},"text":{"35":{},"51":{}},"component":{},"keyword":{}}],["seen",{"_index":2515,"title":{},"name":{},"text":{"31":{},"57":{},"62":{},"71":{}},"component":{},"keyword":{}}],["segment",{"_index":7484,"title":{},"name":{},"text":{"70":{},"71":{}},"component":{},"keyword":{}}],["select",{"_index":1544,"title":{"35-10":{}},"name":{},"text":{"19":{},"31":{},"36":{},"39":{},"40":{},"51":{},"52":{},"67":{},"71":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["selected=0",{"_index":8915,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["selection:tot=0/avg=0.00/max=0",{"_index":8917,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["selectionkey.op_read",{"_index":4881,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["selectionkey.op_writ",{"_index":4886,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["selector",{"_index":2498,"title":{"31-25":{},"71-13":{}},"name":{},"text":{"31":{},"52":{},"57":{},"71":{},"81":{}},"component":{},"keyword":{}}],["selector.select",{"_index":5969,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["selectormanag",{"_index":4849,"title":{"46-1":{}},"name":{},"text":{"46":{},"57":{},"71":{}},"component":{},"keyword":{}}],["selectormanager.accept(socketchannel",{"_index":4868,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["selectormanager.connect(socketchannel",{"_index":4869,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["self",{"_index":2215,"title":{},"name":{},"text":{"24":{},"31":{},"33":{},"35":{},"48":{},"51":{}},"component":{},"keyword":{}}],["semant",{"_index":1048,"title":{},"name":{},"text":{"8":{},"31":{},"39":{},"51":{},"53":{},"67":{},"70":{},"73":{},"75":{}},"component":{},"keyword":{}}],["semaphor",{"_index":3337,"title":{},"name":{},"text":{"31":{},"52":{}},"component":{},"keyword":{}}],["semi",{"_index":4164,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["send",{"_index":1431,"title":{"53-5":{},"55-4":{},"58-17":{},"58-18":{},"58-19":{},"71-70":{},"71-74":{},"73-5":{},"74-4":{}},"name":{},"text":{"18":{},"23":{},"31":{},"33":{},"34":{},"35":{},"41":{},"45":{},"46":{},"51":{},"53":{},"55":{},"56":{},"57":{},"58":{},"61":{},"63":{},"64":{},"67":{},"71":{},"73":{},"74":{},"77":{}},"component":{},"keyword":{}}],["send(listen",{"_index":5557,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["send(new",{"_index":5551,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["send(nul",{"_index":6191,"title":{},"name":{},"text":{"56":{}},"component":{},"keyword":{}}],["send(result",{"_index":5460,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["senddateheader=tru",{"_index":8888,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["sender",{"_index":3803,"title":{},"name":{},"text":{"35":{},"53":{},"56":{},"58":{},"73":{}},"component":{},"keyword":{}}],["sender(sess",{"_index":6411,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["sender(session).iter",{"_index":6409,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["sendparti",{"_index":6406,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}
1],["sendpartialbinari",{"_index":6418,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["sendserverversion=tru",{"_index":8889,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["sendtext",{"_index":6323,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["sendxpoweredby=fals",{"_index":8890,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["sens",{"_index":5920,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["sensit",{"_index":3045,"title":{},"name":{},"text":{"31":{},"40":{},"70":{}},"component":{},"keyword":{}}],["sent",{"_index":1296,"title":{},"name":{},"text":{"13":{},"24":{},"28":{},"29":{},"31":{},"33":{},"35":{},"41":{},"51":{},"53":{},"55":{},"58":{},"61":{},"62":{},"64":{},"67":{},"71":{},"73":{},"74":{}},"component":{},"keyword":{}}],["sentenc",{"_index":1043,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["sep",{"_index":405,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["separ",{"_index":994,"title":{},"name":{},"text":{"8":{},"18":{},"19":{},"30":{},"31":{},"39":{},"44":{},"46":{},"48":{},"51":{},"60":{},"62":{},"71":{},"77":{}},"component":{},"keyword":{}}],["separator><fil",{"_index":4715,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["sequenc",{"_index":3639,"title":{},"name":{},"text":{"35":{},"44":{},"46":{},"50":{},"51":{},"71":{}},"component":{},"keyword":{}}],["sequence.addhandler(new",{"_index":7704,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["sequenti",{"_index":4171,"title":{},"name":{},"text":{"39":{},"46":{},"58":{},"71":{}},"component":{},"keyword":{}}],["serial",{"_index":4280,"title":{},"name":{},"text":{"39":{},"51":{},"77":{}},"component":{},"keyword":{}}],["serv",{"_index":43,"title":{},"name":{},"text":{"1":{},"8":{},"20":{},"22":{},"28":{},"31":{},"35":{},"51":{},"62":{},"64":{},"69":{},"71":{}},"component":{},"keyword":{}}],["server",{"_index":953,"title":{"28":{},"34":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"78":{},"79":{},"31-30":{},"31-44":{},"31-45":{},"34-2":{},"41-12":{},"41-13":{},"43-2":{},"45-1":{},"45-2":{},"53-3":{},"55-2":{},"61-2":{},"67-5":{},"71-11":{},"71-26":{},"71-72":{},"71-73":{},"73-3":{},"74-2":{},"81-1":{}},"name":{},"text":{"8":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"51":{},"52":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"61":{},"62":{},"63":{},"64":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"81":{},"84":{}},"component":{},"keyword":{}}],["server'",{"_index":5995,"title":{},"name":{},"text":{"53":{},"55":{}},"component":{},"keyword":{}}],["server(8080",{"_index":8646,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["server(serverthread",{"_index":7853,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server(threadpool",{"_index":5936,"title":{},"name":{},"text":{"52":{},"71":{}},"component":{},"keyword":{}}],["server.addbean(cachefactori",{"_index":8409,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["server.addbean(cachingsessiondatastorefactori",{"_index":8614,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["server.addbean(idmgr",{"_index":8311,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["server.addbean(jmxserv",{"_index":5181,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["server.addbean(keystorescann",{"_index":7692,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.addbean(mbeancontain",{"_index":5170,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["server.addbean(scann",{"_index":7404,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["server.addbean(servernetworkconnectionlimit",{"_index":7638,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.addbean(storefactori",{"_index":8457,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["server.addconnector(connector",{"_index":4920,"title":{},"name":{},"text":{"46":{},"52":{},"59":{},"71":{},"73":{},"74":{},"75":{}},"component":{},"keyword":{}}],["server.addconnector(connector1",{"_index":7604,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.addconnector(connector2",{"_index":7611,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.addconnector(http3connector",{"_index":7626,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.addconnector(memoryconnector",{"_index":5641,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["server.addconnector(plainconnector",{"_index":7624,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.addconnector(secureconnector",{"_index":7621,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.addeventlistener(new",{"_index":5140,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["server.dump",{"_index":3176,"title":{},"name":{},"text":{"31":{},"81":{}},"component":{},"keyword":{}}],["server.dumpstderr",{"_index":8761,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["server.getvers",{"_index":4768,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["server.ini",{"_index":1665,"title":{},"name":{},"text":{"20":{},"35":{},"41":{},"45":{}},"component":{},"keyword":{}}
1],["server.inserthandler(new",{"_index":7019,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["server.inserthandler(securityhandl",{"_index":7007,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["server.mod",{"_index":2449,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["server.setdefaulthandler(new",{"_index":7400,"title":{},"name":{},"text":{"69":{},"71":{}},"component":{},"keyword":{}}],["server.setdumpafterstart(tru",{"_index":8762,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["server.setdumpbeforestop(tru",{"_index":8763,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["server.sethandler(compressionhandl",{"_index":7759,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.sethandler(context",{"_index":7399,"title":{},"name":{},"text":{"69":{},"71":{},"77":{}},"component":{},"keyword":{}}],["server.sethandler(contextcollect",{"_index":7728,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.sethandler(contexthandl",{"_index":6831,"title":{},"name":{},"text":{"63":{},"71":{},"78":{},"79":{}},"component":{},"keyword":{}}],["server.sethandler(crossoriginhandl",{"_index":8000,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.sethandler(dataratehandl",{"_index":7807,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.sethandler(doshandl",{"_index":7921,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.sethandler(eventshandl",{"_index":7833,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.sethandler(forwardproxi",{"_index":7962,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.sethandler(gracefulhandl",{"_index":7925,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.sethandler(gziphandl",{"_index":7702,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.sethandler(handl",{"_index":7741,"title":{},"name":{},"text":{"71":{},"79":{}},"component":{},"keyword":{}}],["server.sethandler(movedcontexthandl",{"_index":7936,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.sethandler(new",{"_index":6467,"title":{},"name":{},"text":{"59":{},"71":{}},"component":{},"keyword":{}}],["server.sethandler(qoshandl",{"_index":7856,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.sethandler(reverseproxi",{"_index":7980,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.sethandler(rewritehandl",{"_index":7781,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.sethandler(securedhandl",{"_index":7875,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.sethandler(statshandl",{"_index":7801,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}
1],["server.sethandler(webapp",{"_index":6859,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["server.setrequestlog(new",{"_index":7543,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.setrequestlog(requestlog",{"_index":7346,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["server.setstoptimeout(10_000",{"_index":7927,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.start",{"_index":4923,"title":{},"name":{},"text":{"46":{},"48":{},"52":{},"59":{},"63":{},"69":{},"71":{},"73":{},"74":{},"75":{},"79":{},"81":{}},"component":{},"keyword":{}}],["server.stop",{"_index":3179,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["server.stoptimeout",{"_index":7923,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["server.xml",{"_index":2451,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["server1",{"_index":5590,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["server2",{"_index":5595,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["server3",{"_index":8306,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["server</artifactid",{"_index":6483,"title":{},"name":{},"text":{"59":{},"71":{},"73":{},"74":{},"79":{}},"component":{},"keyword":{}}],["server_authn",{"_index":3426,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["server_authn.crt",{"_index":3434,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["server_authn.key",{"_index":3432,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["serveraddress",{"_index":5996,"title":{},"name":{},"text":{"53":{},"55":{}},"component":{},"keyword":{}}],["serverauthmodul",{"_index":4055,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["serverauthority=nul",{"_index":8909,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["serverconnector",{"_index":1386,"title":{},"name":{},"text":{"15":{},"22":{},"29":{},"31":{},"46":{},"47":{},"48":{},"52":{},"62":{},"71":{},"73":{},"75":{},"79":{}},"component":{},"keyword":{}}],["serverconnector(serv",{"_index":4919,"title":{},"name":{},"text":{"46":{},"52":{},"59":{},"71":{},"73":{},"75":{}},"component":{},"keyword":{}}],["servercontain",{"_index":8636,"title":{"79-3":{}},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["servercontainer)getservletcontext().getattribute(servercontainer.class.getnam",{"_index":8657,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["serverendpointconfig.builder.create(myjavaxwebsocketendpoint.class",{"_index":8661,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["serverhost",{"_index":6230,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["servernam",{"_index":7197,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servernetworkconnectionlimit",{"_index":7636,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["serverpass",{"_index":5811,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["serverport",{"_index":7200,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["serverquicconfig",{"_index":7592,"title":{},"name":{},"text":{"71":{},"74":{}},"component":{},"keyword":{}}],["serverquicconfig.setbidirectionalmaxstreams(1024",{"_index":8229,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["serverrealm",{"_index":5809,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["serversessionlisten",{"_index":8169,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["serversocketchannel",{"_index":2795,"title":{},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["serverthread",{"_index":7851,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["serveruri",{"_index":5806,"title":{},"name":{},"text":{"51":{},"58":{}},"component":{},"keyword":{}}],["serverus",{"_index":5810,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}
1],["serverwebsocketcontain",{"_index":7362,"title":{"79-13":{},"79-15":{}},"name":{},"text":{"67":{},"78":{},"79":{}},"component":{},"keyword":{}}],["serverwebsocketcontainer.addmap",{"_index":8739,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["serverwebsocketcontainer.configur",{"_index":8740,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["serverwebsocketcontainer.ensure(serv",{"_index":8730,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["serverwebsocketcontainer.get(request.getcontext",{"_index":8732,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["serverwebsocketcontainer.upgrad",{"_index":8737,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["serverâ",{"_index":1667,"title":{},"name":{},"text":{"20":{},"31":{},"39":{}},"component":{},"keyword":{}}],["servic",{"_index":223,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"17":{},"24":{},"29":{},"31":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"42":{},"43":{},"46":{},"47":{},"48":{},"54":{},"58":{},"61":{},"62":{},"64":{},"71":{},"76":{},"77":{}},"component":{},"keyword":{}}],["service(httpservletrequest",{"_index":5733,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["service(jsonhttprequest",{"_index":8283,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["service.start",{"_index":5128,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["service.stop",{"_index":5127,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["service:jmx:rmi:///jndi/rmi:///jmxrmi",{"_index":2162,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["service:jmx:rmi://0.0.0.0:1099/jndi/rmi://0.0.0.0:1099/jmxrmi",{"_index":2169,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["service:jmx:rmi://<rmi_server_host>:<rmi_server_port>/jndi/rmi://<rmi_registry_host>:<rmi_registry_port>/jmxrmi",{"_index":2161,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["service:jmx:rmi://localhost:1099/jndi/rmi://localhost:1099/jmxrmi",{"_index":2173,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["service:jmx:rmi://localhost:1100/jndi/rmi://localhost:1099/jmxrmi",{"_index":2170,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["serviceload",{"_index":5521,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["servicembean",{"_index":5230,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["servicembean(object",{"_index":5231,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["servicenam",{"_index":5221,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["services.get(n",{"_index":5222,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["services.s",{"_index":5214,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["servlet",{"_index":234,"title":{"28-1":{},"59-6":{},"67-6":{},"70-3":{},"71-55":{},"71-61":{}},"name":{},"text":{"2":{},"12":{},"14":{},"15":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"26":{},"28":{},"31":{},"32":{},"35":{},"36":{},"38":{},"39":{},"43":{},"52":{},"59":{},"60":{},"62":{},"66":{},"67":{},"69":{},"70":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["servlet.mod",{"_index":7128,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servlet:12.1.13",{"_index":7996,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["servlet</artifactid",{"_index":7994,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["servlet</h1",{"_index":6507,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["servlet</servlet",{"_index":1989,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["servletcontaineriniti",{"_index":1482,"title":{"19-5":{}},"name":{},"text":{"19":{},"31":{},"79":{}},"component":{},"keyword":{}}],["servletcontext",{"_index":6593,"title":{},"name":{},"text":{"61":{},"64":{},"79":{}},"component":{},"keyword":{}}],["servletcontext#getvirtualservernam",{"_index":4086,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["servletcontext.getsessioncookieconfig().setdomain(str",{"_index":8368,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["servletcontext.getsessioncookieconfig().setmaxage(int",{"_index":8365,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["servletcontext.getsessioncookieconfig().setpath(str",{"_index":8372,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["servletcontext.setsessiontimeout(int",{"_index":8332,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["servletcontext.setsessiontrackingmodes<set<sessiontrackingmod",{"_index":8361,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["servletcontexthandl",{"_index":6588,"title":{"71-56":{}},"name":{},"text":{"61":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["servletcontexthandler(\"/ctx",{"_index":8648,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["servletcontexthandler.addservlet",{"_index":8708,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["servletcontexthandler.setmaxformcontentsize(maxformsizeinbyt",{"_index":6591,"title":{},"name":{},"text":{"61":{}},"component":{},"keyword":{}}],["servletcontexthandler.setmaxformkeys(maxformkey",{"_index":6592,"title":{},"name":{},"text":{"61":{}},"component":{},"keyword":{}}],["servletcontextlisten",{"_index":8654,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["servletexcept",{"_index":6503,"title":{},"name":{},"text":{"59":{},"79":{}},"component":{},"keyword":{}}],["servletexception(x",{"_index":8664,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["servlethandl",{"_index":6862,"title":{},"name":{},"text":{"63":{},"70":{}},"component":{},"keyword":{}}],["servlethold",{"_index":8003,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["servletholder.setasyncsupported(tru",{"_index":8044,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["servletholder.setinitparameter(\"baseresourc",{"_index":8047,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["servletholder.setinitparameter(\"dirallow",{"_index":8043,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["servletholder.setinitparameter(\"maxcaches",{"_index":8041,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["servletholder.setinitparameter(\"maxitem",{"_index":8005,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["servletholder.setinitparameter(\"pathinfoonli",{"_index":8049,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}
1],["servletinputstream",{"_index":8161,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["servletoutputstream",{"_index":2904,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["servletrequest.getattribute(nam",{"_index":7216,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getattributenam",{"_index":7215,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getcharacterencod",{"_index":7184,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getcontentlength",{"_index":7187,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getcontentlengthlong",{"_index":7188,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getcontenttyp",{"_index":7176,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getcontextpath",{"_index":7150,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getcooki",{"_index":7168,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getdateheader(nam",{"_index":7173,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getheader(nam",{"_index":7171,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getheadernam",{"_index":7170,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getheaders(nam",{"_index":7172,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getintheader(nam",{"_index":7174,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getlocal",{"_index":7191,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getlocaladdr",{"_index":7208,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getlocalhost",{"_index":7209,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getlocalport",{"_index":7212,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getmethod",{"_index":7139,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getparameter(nam",{"_index":7161,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getparametermap",{"_index":7163,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getparameternam",{"_index":7160,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getparametervalues(nam",{"_index":7162,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getpathinfo",{"_index":7156,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getprotocol",{"_index":7141,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getquerystr",{"_index":7157,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getremoteaddr",{"_index":7202,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getremotehost",{"_index":7203,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getremoteport",{"_index":7205,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getrequesturi",{"_index":7152,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getrequesturl",{"_index":7143,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getschem",{"_index":7194,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getservernam",{"_index":7196,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getserverport",{"_index":7199,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getservletcontext",{"_index":7148,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getservletpath",{"_index":7155,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getsess",{"_index":7230,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.getsession(cr",{"_index":7231,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.gettrailerfield",{"_index":7228,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.removeattribute(nam",{"_index":7218,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletrequest.setattribute(nam",{"_index":7217,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.addcookie(cooki",{"_index":7279,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.adddateheader(nam",{"_index":7263,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.addheader(nam",{"_index":7261,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.addintheader(nam",{"_index":7265,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.containsheader(nam",{"_index":7269,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.encoderedirecturl(loc",{"_index":7304,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.getheader(nam",{"_index":7267,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.getheadernam",{"_index":7266,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}
1],["servletresponse.getheaders(nam",{"_index":7268,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.getstatu",{"_index":7258,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.gettrailerfield",{"_index":7293,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.iscommit",{"_index":7300,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.reset",{"_index":7302,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.senderror(cod",{"_index":7308,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.sendredirect(loc",{"_index":7305,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.setcontentlength(length",{"_index":7288,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.setcontentlengthlong(length",{"_index":7289,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.setcontenttype(typ",{"_index":7286,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.setdateheader(nam",{"_index":7262,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.setheader(nam",{"_index":7260,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.setintheader(nam",{"_index":7264,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.setstatus(cod",{"_index":7257,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletresponse.settrailerfield",{"_index":7292,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servlets,`filter``",{"_index":8296,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["servlets.mod",{"_index":7129,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["servletsecur",{"_index":1494,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["servletupgraderespons",{"_index":7386,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["servlet|<path",{"_index":8741,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["session",{"_index":1708,"title":{"39":{},"77":{},"39-1":{},"39-3":{},"39-4":{},"39-6":{},"39-7":{},"39-12":{},"39-14":{},"39-16":{},"39-18":{},"39-19":{},"39-22":{},"39-25":{},"39-26":{},"39-31":{},"39-36":{},"39-40":{},"39-43":{},"39-44":{},"39-47":{},"53-4":{},"53-9":{},"55-3":{},"55-7":{},"58-15":{},"58-16":{},"58-20":{},"71-71":{},"77-1":{}},"name":{"77":{}},"text":{"20":{},"21":{},"22":{},"23":{},"31":{},"36":{},"39":{},"51":{},"53":{},"55":{},"58":{},"64":{},"65":{},"67":{},"71":{},"73":{},"74":{},"76":{},"77":{},"79":{}},"component":{},"keyword":{}}],["session.cli",{"_index":6155,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["session.client.listen",{"_index":6150,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["session.close(errorcode.no_error.cod",{"_index":6095,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["session.close(statuscode.norm",{"_index":6430,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["session.close(statuscode.server_error",{"_index":6329,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["session.demand",{"_index":6327,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["session.getremotesocketaddress",{"_index":8178,"title":{},"name":{},"text":{"73":{},"74":{}},"component":{},"keyword":{}}],["session.goaway(fals",{"_index":6177,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["session.listen",{"_index":6001,"title":{},"name":{},"text":{"53":{},"58":{},"79":{}},"component":{},"keyword":{}}],["session.listener.autodemand",{"_index":6310,"title":{},"name":{},"text":{"58":{},"67":{},"79":{}},"component":{},"keyword":{}}],["session.listener.onwebsocketping(bytebuff",{"_index":6419,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["session.listener.onwebsocketpong(bytebuff",{"_index":6420,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["session.newrequest",{"_index":6162,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["session.newrequest(headersfram",{"_index":6160,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["session.newstream",{"_index":6024,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["session.newstream(headersfram",{"_index":6023,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["session.sendbinary(byt",{"_index":6396,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["session.sendpartialbinary(bytebuff",{"_index":6413,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["session.sendping(buff",{"_index":6424,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["session.sendtext(\"connect",{"_index":6332,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["session.sendtext(\"data",{"_index":6394,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["session.sendtext(messag",{"_index":6322,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["session.sendtext(message.substring(\"echo:\".length",{"_index":6336,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["session.server.listen",{"_index":8227,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["session.setidletimeout(duration.ofseconds(30",{"_index":6384,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["session.setmaxtextmessagesize(16",{"_index":6331,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["session</artifactid",{"_index":8141,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["sessioncach",{"_index":4127,"title":{"77-8":{},"77-11":{}},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["sessioncache.setsessiondatastore(infinispansessiondatastor",{"_index":8554,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["sessioncache.shutdown",{"_index":8390,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["sessioncachefactori",{"_index":8381,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["sessioncf",{"_index":5999,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["sessioncf.get",{"_index":6002,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["sessioncontext",{"_index":8437,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["sessioncookieconfig.sethttponly(boolean",{"_index":8334,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["sessioncookieconfig.setmaxage(int",{"_index":8340,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["sessioncookieconfig.setname(str",{"_index":8353,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["sessioncookieconfig.setsecure(tru",{"_index":8349,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["sessiondata",{"_index":4379,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["sessiondatamap",{"_index":8602,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["sessiondatastor",{"_index":4129,"title":{"77-13":{},"77-14":{}},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["sessiondatastorefactori",{"_index":8285,"title":{"77-15":{}},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["sessionhandl",{"_index":4126,"title":{"77-6":{}},"name":{},"text":{"39":{},"65":{},"71":{},"77":{}},"component":{},"keyword":{}}],["sessionhandler'",{"_index":8303,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["sessionhandler.sethandler(new",{"_index":8146,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["sessionhandler.setsessioncache(sessioncach",{"_index":8555,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["sessionid",{"_index":4273,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["sessionidmanag",{"_index":4123,"title":{"77-2":{},"77-5":{}},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["sessionlifetim",{"_index":6101,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["sessionlisten",{"_index":8170,"title":{},"name":{},"text":{"73":{},"74":{}},"component":{},"keyword":{}}],["sessionmanag",{"_index":8297,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["sessionmang",{"_index":8398,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["sessionnanotim",{"_index":6103,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["sessionnanotime(opennanotime.address",{"_index":6114,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["sessionnanotime(session.getremotesocketaddress",{"_index":6108,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["sessionnanotime(socketaddress",{"_index":6116,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["sessionscavengeinterv",{"_index":4165,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["sessiontableschema",{"_index":8290,"title":{"77-20":{}},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["sessiontrackingmode.url",{"_index":8360,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["set",{"_index":867,"title":{"44-7":{},"62-24":{},"62-28":{},"79-3":{},"79-8":{},"79-13":{}},"name":{},"text":{"7":{},"8":{},"9":{},"13":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"26":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"46":{},"48":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"69":{},"70":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{},"81":{},"84":{}},"component":{},"keyword":{}}],["set<object",{"_index":5148,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["set<objectnam",{"_index":5205,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["set<sessionnanotim",{"_index":6104,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["set<str",{"_index":7219,"title":{},"name":{},"text":{"67":{},"77":{}},"component":{},"keyword":{}}],["setaccessed(str",{"_index":8592,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setaccesstimecolumn(str",{"_index":8495,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setarrayconverter(function<list",{"_index":5280,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["setattributes(str",{"_index":8599,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setbackoffms(int",{"_index":8583,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setblobtype(str",{"_index":8485,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setcache(basiccache<str",{"_index":8531,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setcatalogname(str",{"_index":8491,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setcheckingremotesessionidencoding(boolean",{"_index":8326,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setciphercompar",{"_index":2363,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["setciphercomparator(comparator<str",{"_index":2352,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["setcollectionname(str",{"_index":8515,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setconnectionstring(str",{"_index":8516,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setcontextpath(str",{"_index":8590,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setcontextpathcolumn(str",{"_index":8496,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setcookiesettime(str",{"_index":8595,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setcookietimecolumn(str",{"_index":8497,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setcreatetime(str",{"_index":8594,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setcreatetimecolumn(str",{"_index":8498,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setdatabaseadaptor(databaseadaptor",{"_index":8471,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setdatasource(datasourc",{"_index":8477,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setdatasource(str",{"_index":8476,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setdbname(str",{"_index":8514,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setdecodeambiguousuris(boolean",{"_index":7501,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["setdriverinfo(driv",{"_index":8482,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setdriverinfo(str",{"_index":8481,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setenabled(boolean",{"_index":5216,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["setentitydatamodel(entitydatamodel",{"_index":8586,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setexpiry(str",{"_index":8597,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setexpirytimecolumn(str",{"_index":8499,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setfoo",{"_index":4772,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["setfoo(str",{"_index":5247,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["setgraceperiodsec(int",{"_index":8432,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["sethost(str",{"_index":8519,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["sethttponly(boolean",{"_index":8333,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setid(str",{"_index":8589,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setidcolumn(str",{"_index":8502,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setinfinispanidletimeoutsec(int",{"_index":8535,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setintervalsec(int",{"_index":8312,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setkind(str",{"_index":8588,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setlastaccessed(str",{"_index":8593,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setlastaccesstimecolumn(str",{"_index":8500,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setlastnode(str",{"_index":8596,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setlastnodecolumn(str",{"_index":8503,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setlastsavedtimecolumn(str",{"_index":8501,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setlongtype(str",{"_index":8486,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setmapcolumn(str",{"_index":8506,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setmaxage(int",{"_index":8364,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setmaxinactive(str",{"_index":8598,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setmaxinactiveinterval(int",{"_index":8329,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setmaxintervalcolumn(str",{"_index":8505,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setmaxretries(int",{"_index":8581,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setnamespace(str",{"_index":8580,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setport(int",{"_index":8520,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setprivatefield(
1object",{"_index":1274,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["setprojectid(str",{"_index":8578,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setquerymanager(querymanag",{"_index":8536,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setrefreshcookieage(int",{"_index":8339,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["sets/get",{"_index":7256,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["setsamesite(httpcookie.samesit",{"_index":8342,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setsaveperiodsec(int",{"_index":8429,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setschemaname(str",{"_index":8490,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setsecurerequestonly(boolean",{"_index":8347,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setsecurityhandl",{"_index":6860,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["setserialization(boolean",{"_index":8534,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setsessioncookie(str",{"_index":8351,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setsessiondomain(str",{"_index":8367,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setsessionidpathparametername(str",{"_index":8356,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setsessionpath(str",{"_index":8371,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setsessiontableschema(sessiontableschema",{"_index":8473,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setsessiontrackingmodes(set<sessiontrackingmod",{"_index":8358,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setstoredir(fil",{"_index":8449,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setstringtype(str",{"_index":8487,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["settablename(str",{"_index":8493,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setter",{"_index":1270,"title":{},"name":{},"text":{"13":{},"30":{},"44":{},"48":{},"50":{},"58":{},"60":{},"62":{},"77":{}},"component":{},"keyword":{}}],["settings.get(settingsframe.enable_push",{"_index":8209,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["settings.put(settingsframe.enable_push",{"_index":8180,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["settings.put(settingsframe.max_blocked_stream",{"_index":8234,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["settingsfram",{"_index":8205,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["setup",{"_index":1583,"title":{"20-1":{},"69-1":{},"69-2":{},"69-3":{},"69-4":{},"73-3":{},"74-2":{},"79-14":{},"79-15":{}},"name":{},"text":{"20":{},"28":{},"35":{},"39":{},"41":{},"45":{},"48":{},"51":{},"59":{},"60":{},"69":{},"71":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["setusingcookies(boolean",{"_index":8363,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setvhost(str",{"_index":8591,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setvirtualhostcolumn(str",{"_index":8504,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["setvirtualthreadsexecutor(executor",{"_index":5963,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["sever",{"_index":403,"title":{},"name":{},"text":{"3":{},"4":{},"19":{},"24":{},"35":{},"39":{},"48":{},"51":{},"56":{},"58":{},"70":{}},"component":{},"keyword":{}}],["sha",{"_index":4693,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["sha256",{"_index":3443,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["share",{"_index":45,"title":{},"name":{},"text":{"1":{},"8":{},"31":{},"35":{},"39":{},"41":{},"62":{},"71":{},"77":{}},"component":{},"keyword":{}}],["shelf",{"_index":5484,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["shell",{"_index":4545,"title":{},"name":{},"text":{"41":{},"42":{}},"component":{},"keyword":{}}],["ship",{"_index":1715,"title":{},"name":{},"text":{"20":{},"22":{},"23":{},"35":{},"36":{},"39":{}},"component":{},"keyword":{}}],["shop",{"_index":1751,"title":{},"name":{},"text":{"22":{},"71":{},"78":{}},"component":{},"keyword":{}}],["shop.domain.com",{"_index":7716,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["shop/cart",{"_index":7714,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["shop/catalog",{"_index":7938,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["shop/checkout",{"_index":7939,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["shopcartservlet",{"_index":7997,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["shopcompressionhandl",{"_index":7766,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["shopgziphandl",{"_index":7775,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}
1],["shophandl",{"_index":7722,"title":{},"name":{},"text":{"71":{},"78":{}},"component":{},"keyword":{}}],["shophandler.handl",{"_index":8618,"title":{},"name":{},"text":{"78":{}},"component":{},"keyword":{}}],["short",{"_index":3829,"title":{"45-5":{}},"name":{},"text":{"35":{},"39":{},"44":{},"47":{},"53":{},"55":{},"58":{},"71":{},"73":{},"74":{}},"component":{},"keyword":{}}],["shortcut",{"_index":5441,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["shorter",{"_index":4158,"title":{},"name":{},"text":{"39":{},"44":{},"57":{}},"component":{},"keyword":{}}],["shortest",{"_index":8511,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["shorthand",{"_index":5434,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["show",{"_index":1247,"title":{},"name":{},"text":{"13":{},"24":{},"31":{},"34":{},"35":{},"41":{},"46":{},"52":{},"58":{},"69":{},"71":{},"73":{},"74":{},"79":{}},"component":{},"keyword":{}}],["shown",{"_index":2438,"title":{},"name":{},"text":{"30":{},"51":{},"71":{},"79":{},"81":{}},"component":{},"keyword":{}}],["shrink",{"_index":5941,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["shrunk",{"_index":5925,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["shut",{"_index":2782,"title":{},"name":{},"text":{"31":{},"41":{},"77":{}},"component":{},"keyword":{}}],["shutdown",{"_index":2787,"title":{},"name":{},"text":{"31":{},"39":{},"41":{},"44":{},"58":{},"62":{},"71":{}},"component":{},"keyword":{}}],["shutdownidletimeout=1000",{"_index":8926,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["sibl",{"_index":4570,"title":{},"name":{},"text":{"41":{},"43":{},"47":{}},"component":{},"keyword":{}}],["siblings.add(child",{"_index":5150,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["siblings.remove(child",{"_index":5151,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["side",{"_index":1398,"title":{"67-5":{}},"name":{},"text":{"17":{},"35":{},"46":{},"51":{},"52":{},"54":{},"57":{},"58":{},"66":{},"67":{},"71":{},"75":{},"76":{},"77":{},"79":{}},"component":{},"keyword":{}}],["sift",{"_index":1083,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["sign",{"_index":1161,"title":{"10-3":{},"33-3":{},"33-4":{}},"name":{},"text":{"9":{},"10":{},"24":{},"31":{},"33":{},"35":{},"48":{},"51":{},"63":{},"64":{},"65":{},"66":{}},"component":{},"keyword":{}}],["signal",{"_index":4614,"title":{},"name":{},"text":{"41":{},"46":{},"51":{},"53":{},"55":{},"71":{},"75":{}},"component":{},"keyword":{}}],["signatur",{"_index":1208,"title":{},"name":{},"text":{"10":{},"48":{},"51":{},"58":{},"64":{},"66":{}},"component":{},"keyword":{}}],["signed.crt",{"_index":3444,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["signed_certificate.pem",{"_index":3422,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["signific",{"_index":3232,"title":{},"name":{},"text":{"31":{},"32":{},"35":{},"61":{},"63":{},"65":{},"71":{}},"component":{},"keyword":{}}],["significantli",{"_index":1539,"title":{},"name":{},"text":{"19":{},"71":{}},"component":{},"keyword":{}}],["signoff",{"_index":1197,"title":{},"name":{},"text":{"10":{}},"component":{},"keyword":{}}],["silent",{"_index":5727,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["similar",{"_index":1062,"title":{},"name":{},"text":{"8":{},"18":{},"22":{},"29":{},"30":{},"31":{},"35":{},"36":{},"44":{},"51":{},"52":{},"57":{},"62":{},"67":{},"71":{},"75":{},"76":{},"79":{},"81":{}},"component":{},"keyword":{}}],["similarli",{"_index":1067,"title":{},"name":{},"text":{"8":{},"31":{},"34":{},"35":{},"41":{},"43":{},"45":{},"48":{},"50":{},"51":{},"57":{},"58":{},"62":{},"63":{},"67":{},"71":{},"75":{},"84":{}},"component":{},"keyword":{}}],["simpl",{"_index":747,"title":{"69-1":{}},"name":{},"text":{"4":{},"6":{},"8":{},"18":{},"20":{},"29":{},"30":{},"31":{},"35":{},"38":{},"46":{},"50":{},"51":{},"52":{},"56":{},"57":{},"58":{},"59":{},"62":{},"63":{},"69":{},"71":{},"75":{},"78":{},"79":{},"81":{}},"component":{},"keyword":{}}],["simple.ini",{"_index":1716,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["simple.war",{"_index":1717,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["simpledateformat",{"_index":3071,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["simpler",{"_index":4720,"title":{},"name":{},"text":{"44":{},"46":{},"51":{},"58":{},"67":{},"71":{}},"component":{},"keyword":{}}],["simplest",{"_index":2192,"title":{},"name":{},"text":{"24":{},"57":{},"69":{},"71":{}},"component":{},"keyword":{}}],["simpli",{"_index":1866,"title":{},"name":{},"text":{"22":{},"23":{},"32":{},"39":{},"41":{},"46":{},"51":{},"62":{},"77":{}},"component":{},"keyword":{}}],["simplic",{"_index":3425,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["simplifi",{"_index":2178,"title":{},"name":{},"text":{"24":{},"31":{},"48":{},"58":{},"67":{},"79":{}},"component":{},"keyword":{}}],["simplist",{"_index":5923,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["simul",{"_index":5266,"title":{},"name":{},"text":{"50":{},"51":{}},"component":{},"keyword":{}}],["simultan",{"_index":1693,"title":{},"name":{},"text":{"20":{},"22":{},"39":{},"77":{}},"component":{},"keyword":{}}],["singl",{"_index":1055,"title":{"22-12":{}},"name":{},"text":{"8":{},"13":{},"19":{},"22":{},"28":{},"31":{},"33":{},"35":{},"39":{},"42":{},"45":{},"51":{},"52":{},"53":{},"55":{},"58":{},"61":{},"64":{},"65":{},"67":{},"71":{},"73":{},"74":{},"77":{}},"component":{},"keyword":{}}],["sink",{"_index":5050,"title":{},"name":{},"text":{"46":{},"51":{}},"component":{},"keyword":{}}],["sink.write(chunk.islast",{"_index":5090,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["sink.write(fals",{"_index":5053,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["sink.write(last",{"_index":5081,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["sink.write(tru",{"_index":5055,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["sit",{"_index":1967,"title":{},"name":{},"text":{"22":{},"41":{}},"component":{},"keyword":{}}],["site",{"_index":1015,"title":{},"name":{},"text":{"8":{},"22":{},"31":{},"33":{},"35":{},"51":{},"71":{}},"component":{},"keyword":{}}],["site.properti",{"_index":1754,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["site.xml",{"_index":1748,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["situat",{"_index":1148,"title":{},"name":{},"text":{"8":{},"58":{},"62":{},"70":{},"71":{}},"component":{},"keyword":{}}],["siw",{"_index":6890,"title":{"64":{},"64-4":{}},"name":{"64":{}},"text":{"64":{}},"component":{},"keyword":{}}],["siwemessag",{"_index":6975,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["six",{"_index":1417,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["size",{"_index":1260,"title":{"31-46":{}},"name":{"37":{},"61":{}},"text":{"13":{},"30":{},"31":{},"39":{},"41":{},"46":{},"49":{},"50":{},"51":{},"58":{},"61":{},"64":{},"71":{}},"component":{},"keyword":{}}],["size=0",{"_index":8806,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["size=16",{"_index":8800,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["size=2",{"_index":8878,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["size=4",{"_index":8784,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["size=8",{"_index":8930,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["sizelimithandl",{"_index":3181,"title":{"71-35":{}},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["sketch",{"_index":2383,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["skip",{"_index":4196,"title":{},"name":{},"text":{"39":{},"41":{},"48":{},"51":{},"60":{},"62":{},"71":{},"77":{}},"component":{},"keyword":{}}],["slash",{"_index":7783,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["slf4j",{"_index":2506,"title":{"31-40":{},"34-8":{},"34-11":{},"84-1":{}},"name":{},"text":{"31":{},"34":{},"39":{},"41":{},"45":{},"71":{},"81":{},"84":{}},"component":{},"keyword":{}}],["slf4j.ini",{"_index":3539,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["slf4j.version",{"_index":4483,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["slf4j.version=2.0.17",{"_index":4520,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["slf4j2",{"_index":3497,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["slf4jbridgehandl",{"_index":3508,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["slf4jrequestlogwrit",{"_index":7545,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["slice",{"_index":4994,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["slightli",{"_index":3805,"title":{},"name":{},"text":{"35":{},"71":{},"77":{}},"component":{},"keyword":{}}],["slow",{"_index":3361,"title":{},"name":{},"text":{"32":{},"39":{},"45":{},"51":{},"58":{},"77":{},"81":{}},"component":{},"keyword":{}}],["slowdown",{"_index":5878,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["slower",{"_index":4346,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["slowhandl",{"_index":7836,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["slowli",{"_index":5891,"title":{},"name":{},"text":{"52":{},"71":{}},"component":{},"keyword":{}}],["small",{"_index":1447,"title":{},"name":{},"text":{"18":{},"31":{},"35":{},"39":{},"45":{},"52":{},"71":{},"81":{}},"component":{},"keyword":{}}],["smaller",{"_index":5066,"title":{},"name":{},"text":{"46":{},"51":{},"66":{},"71":{}},"component":{},"keyword":{}}],["smap",{"_index":2288,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["smooth",{"_index":7655,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["smtp",{"_index":2092,"title":{},"name":{},"text":{"23":{},"57":{}},"component":{},"keyword":{}}],["sn",{"_index":5310,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["snapshot",{"_index":8759,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["snapshot</vers",{"_index":6478,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["sni",{"_index":3196,"title":{"35-22":{}},"name":{},"text":{"31":{},"33":{},"35":{}},"component":{},"keyword":{}}],["snihostcheck=fals",{"_index":3856,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["snihostcheck=tru",{"_index":3857,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["snip",{"_index":998,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["snippet",{"_index":3958,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["snirequired=fals",{"_index":3846,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["snirequired=tru",{"_index":3847,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["so_rcvbuf",{"_index":2805,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["so_reuseaddr",{"_index":2799,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["so_reuseport",{"_index":2801,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["so_sndbuf",{"_index":2807,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["social",{"_index":7844,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["sock",{"_index":5780,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["socket",{"_index":1934,"title":{},"name":{},"text":{"22":{},"31":{},"35":{},"41":{},"46":{},"51":{},"57":{},"71":{},"75":{},"79":{}},"component":{},"keyword":{}}],["socketaddress",{"_index":5658,"title":{},"name":{},"text":{"51":{},"53":{},"55":{},"57":{},"73":{},"74":{}},"component":{},"keyword":{}}],["socketaddressresolver.async",{"_index":6179,"title":{},"name":{},"text":{"56":{}},"component":{},"keyword":{}}],["socketaddressresolver.sync",{"_index":6180,"title":{},"name":{},"text":{"56":{}},"component":{},"keyword":{}}],["socketchannel",{"_index":4859,"title":{},"name":{},"text":{"46":{},"51":{},"57":{},"71":{}},"component":{},"keyword":{}}],["socketchannel.configureblocking(fals",{"_index":4865,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["socketchannel.connect(new",{"_index":4866,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["socketchannel.connect(socketaddress",{"_index":5666,"title":{},"name":{},"text":{"51":{},"57":{}},"component":{},"keyword":{}}],["socketchannel.open",{"_index":4864,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["socketchannelendpoint",{"_index":8249,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["socks4",{"_index":5360,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["socks5",{"_index":5355,"title":{"51-29":{}},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["socks5.usernamepasswordauthenticationfactory(socks5us",{"_index":5798,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["socks5authenticationfactori",{"_index":5797,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["socks5pass",{"_index":5796,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["socks5proxi",{"_index":5793,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["socks5proxy(\"proxyhost",{"_index":5794,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["socks5us",{"_index":5795,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["softwar",{"_index":6439,"title":{},"name":{},"text":{"59":{},"62":{}},"component":{},"keyword":{}}],["sole",{"_index":7137,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["solut",{"_index":2148,"title":{},"name":{},"text":{"24":{},"35":{},"44":{},"46":{},"48":{},"62":{}},"component":{},"keyword":{}}],["solv",{"_index":756,"title":{},"name":{},"text":{"4":{},"52":{},"58":{}},"component":{},"keyword":{}}],["some.exact.classnam",{"_index":1250,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["some.wildcard.packag",{"_index":1251,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["some/%2e%2e/path",{"_index":7487,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["some/../path",{"_index":7486,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["some/..;/path",{"_index":7485,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["some//../path",{"_index":7488,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["some/other/java",{"_index":4543,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["some/path",{"_index":7489,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["someexcept",{"_index":1279,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["somehow",{"_index":2845,"title":{},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["someon",{"_index":799,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["someth",{"_index":1282,"title":{},"name":{},"text":{"13":{},"71":{},"79":{}},"component":{},"keyword":{}}],["sometim",{"_index":1523,"title":{},"name":{},"text":{"19":{},"22":{},"23":{},"44":{},"45":{},"52":{},"58":{},"62":{},"80":{}},"component":{},"keyword":{}}],["somewhat",{"_index":4402,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["somewher",{"_index":8122,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["soon",{"_index":4191,"title":{},"name":{},"text":{"39":{},"46":{},"51":{},"52":{},"53":{},"58":{},"66":{},"71":{},"73":{}},"component":{},"keyword":{}}],["sooner",{"_index":7839,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["sophist",{"_index":3483,"title":{},"name":{},"text":{"34":{},"52":{}},"component":{},"keyword":{}}],["sort",{"_index":2444,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["sourc",{"_index":19,"title
1":{"12":{},"4-3":{}},"name":{},"text":{"1":{},"2":{},"4":{},"5":{},"9":{},"12":{},"13":{},"14":{},"28":{},"30":{},"35":{},"41":{},"42":{},"43":{},"44":{},"46":{},"51":{},"60":{},"62":{},"71":{}},"component":{},"keyword":{}}],["source.demand",{"_index":5002,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["source.demand(thi",{"_index":5037,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["source.demand(this::succeed",{"_index":5087,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["source.fail(chunk.getfailur",{"_index":5016,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["source.read",{"_index":5001,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["sourceforg",{"_index":312,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["sourcevers",{"_index":6549,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["space",{"_index":1057,"title":{},"name":{},"text":{"8":{},"13":{},"20":{},"28":{},"31":{},"48":{},"62":{}},"component":{},"keyword":{}}],["space_in_valu",{"_index":8903,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["span",{"_index":6959,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["spawn",{"_index":3504,"title":{},"name":{},"text":{"34":{},"35":{},"41":{},"51":{},"52":{}},"component":{},"keyword":{}}],["spdi",{"_index":287,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["spdx",{"_index":1119,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["speak",{"_index":3615,"title":{},"name":{},"text":{"35":{},"51":{},"57":{},"71":{},"75":{}},"component":{},"keyword":{}}],["spec",{"_index":4080,"title":{},"name":{},"text":{"38":{},"71":{},"79":{}},"component":{},"keyword":{}}],["spec/web",{"_index":6741,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["special",{"_index":1703,"title":{"51-24":{}},"name":{},"text":{"20":{},"39":{},"41":{},"46":{},"51":{},"58":{},"62":{},"71":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["special/reserv",{"_index":5730,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["specif",{"_index":89,"title":{"40-2":{}},"name":{},"text":{"1":{},"2":{},"4":{},"6":{},"8":{},"10":{},"12":{},"15":{},"18":{},"19":{},"20":{},"22":{},"23":{},"28":{},"31":{},"32":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"41":{},"43":{},"45":{},"46":{},"48":{},"49":{},"50":{},"51":{},"53":{},"57":{},"58":{},"61":{},"62":{},"63":{},"65":{},"66":{},"69":{},"70":{},"71":{},"73":{},"75":{},"77":{},"79":{}},"component":{},"keyword":{}}],["specifi",{"_index":1427,"title":{"41-6":{},"62-29":{},"62-30":{}},"name":{},"text":{"17":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"26":{},"28":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"48":{},"50":{},"51":{},"52":{},"53":{},"55":{},"56":{},"57":{},"58":{},"62":{},"63":{},"64":{},"65":{},"67":{},"69":{},"70":{},"71":{},"75":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["speed",{"_index":1540,"title":{},"name":{},"text":{"19":{},"39":{},"77":{}},"component":{},"keyword":{}}],["spend",{"_index":4117,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["spent",{"_index":5400,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["spi",{"_index":4054,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["spider",{"_index":6225,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["spike",{"_index":2533,"title":{},"name":{},"text":{"31":{},"52":{},"71":{}},"component":{},"keyword":{}}],["spin",{"_index":860,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["spirit",{"_index":158,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["split",{"_index":772,"title":{},"name":{},"text":{"5":{},"41":{},"50":{},"71":{}},"component":{},"keyword":{}}],["splunk",{"_index":3535,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["spnego",{"_index":5354,"title":{"51-27":{}},"name":{},"text":{"51":{},"63":{}},"component":{},"keyword":{}}],["spnegoauthent",{"_index":6878,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["spnegologinservic",{"_index":6889,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["spread",{"_index":5252,"title":{},"name":{},"text":{"50":{},"77":{}},"component":{},"keyword":{}}],["spring",{"_index":116,"title":{},"name":{},"text":{"1":{},"19":{},"44":{}},"component":{},"keyword":{}}],["src",{"_index":6541,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["src/main/java/org/exampl",{"_index":6446,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["src/main/java/org/example/helloservlet.java",{"_index":6494,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["src/main/java/org/example/helloworld.java",{"_index":6447,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["src/main/webapp",{"_index":6563,"title":{},"name":{},"text":{"60":{},"62":{}},"component":{},"keyword":{}}],["src/main/webapp/web",{"_index":6493,"title":{},"name":{},"text":{"59":{},"62":{}},"component":{},"keyword":{}}],["src=\"https://cdn.jsdelivr.net/npm/[email protected]/dist/web3.min.js\"></script",{"_index":6944,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["ss",{"_index":7643,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["ssh",{"_index":2131,"title":{"24-3":{},"48-5":{}},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["ssl",{"_index":2210,"title":{"31-47":{},"31-48":{},"31-49":{}},"name":{},"text":{"24":{},"29":{},"30":{},"31":{},"35":{},"42":{},"71":{}},"component":{},"keyword":{}}],["ssl.ini",{"_index":2220,"title":{},"name":{},"text":{"24":{},"29":{},"35":{}},"component":{},"keyword":{}}],["ssl.mod",{"_index":2367,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["ssl.xml",{"_index":2209,"title":{},"name":{},"text":{"24":{},"29":{}},"component":{},"keyword":{}}],["ssl/tl",{"_index":3378,"title":{"33":{},"35-15":{},"35-16":{},"35-17":{},"35-20":{},"35-21":{},"71-22":{},"71-23":{}},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["sslclientcertauthent",{"_index":6877,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["sslclientconnectionfactori",{"_index":6266,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["sslconnect",{"_index":6268,"title":{},"name":{},"text":{"57":{},"75":{}},"component":{},"keyword":{}}],["sslconnectionfactori",{"_index":7567,"title":{},"name":{},"text":{"71":{},"75":{}},"component":{},"keyword":{}}],["sslconnectionfactory(sslcontextfactori",{"_index":7568,"title":{},"name":{},"text":{"71":{},"75":{}},"component":{},"keyword":{}}],["sslcontext",{"_index":3251,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["sslcontextfactori",{"_index":2351,"title":{"71-24":{}},"name":{},"text":{"29":{},"31":{},"35":{},"48":{},"51":{},"53":{},"57":{},"71":{},"74":{},"75":{}},"component":{},"keyword":{}}],["sslcontextfactory.addexcludeprotocols(\"tlsv1",{"_index":6205,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["sslcontextfactory.cli",{"_index":5683,"title":{},"name":{},"text":{"51":{},"57":{}},"component":{},"keyword":{}}],["sslcontextfactory.serv",{"_index":3211,"title":{},"name":{},"text":{"31":{},"35":{},"48":{},"71":{},"74":{},"75":{}},"component":{},"keyword":{}}],["sslcontextfactory.setciphercomparator(comparator<str",{"_index":2356,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["sslcontextfactory.setendpointidentificationalgorithm(nul",{"_index":5688,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["sslcontextfactory.sethostnameverifier((hostnam",{"_index":5690,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["sslcontextfactory.setkeystorepassword(\"secret",{"_index":5195,"title":{},"name":{},"text":{"48":{},"71":{},"74":{},"75":{}},"component":{},"keyword":{}}],["sslcontextfactory.setkeystorepath(\"/path/to/keystor",{"_index":5194,"title":{},"name":{},"text":{"48":{},"71":{},"74":{}},"component":{},"keyword":{}}],["sslcontextfactory.setkeystorepath(\"/path/to/keystore.p12",{"_index":8247,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["sslcontextfactory.setprovider(\"bcjss",{"_index":7688,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["sslcontextfactory.setprovider(\"conscrypt",{"_index":7685,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["sslendpoint",{"_index":8250,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["sslengin",{"_index":5695,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["sslengine.getpeerhost",{"_index":5698,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["sslexcept",{"_index":5694,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["sslhandshakelisten",{"_index":5353,"title":{"51-19":{}},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["sslrmiclientsocketfactori",{"_index":5203,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["sslsession",{"_index":3234,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["sslsessiondata",{"_index":5659,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["sslv2",{"_index":3815,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["sslv3",{"_index":3816,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["sso",{"_index":6991,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["stabl",{"_index":249,"title":{},"name":{},"text":{"2":{},"8":{},"14":{},"20":{},"39":{}},"component":{},"keyword":{}}],["stack",{"_index":775,"title":{"6-2":{}},"name":{},"text":{"13":{},"31":{},"34":{},"45":{},"81":{},"83":{}},"component":{},"keyword":{}}],["stackoverflow",{"_index":38,"title":{"4-8":{}},"name":{},"text":{"1":{},"4":{},"6":{}},"component":{},"keyword":{}}],["stackoverflowerror",{"_index":4937,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["stacktrac",{"_index":1323,"title":{},"name":{},"text":{"13":{},"39":{}},"component":{},"keyword":{}}],["stage",{"_index":5456,"title":{},"name":{},"text":{"51":{},"70":{},"71":{}},"component":{},"keyword":{}}],["stagger",{"_index":8316,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["stall",{"_index":5994,"title":{},"name":{},"text":{"53":{},"71":{},"73":{}},"component":{},"keyword":{}}],["standalon",{"_index":951,"title":{},"name":{},"text":{"8":{},"14":{},"16":{},"17":{},"18":{},"20":{},"41":{},"45":{},"64":{},"69":{},"71":{}},"component":{},"keyword":{}}],["standard",{"_index":1103,"title":{"13":{},"27":{},"31":{},"79-2":{}},"name":{"31":{}},"text":{"8":{},"15":{},"19":{},"20":{},"22":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"38":{},"39":{},"41":{},"48":{},"58":{},"59":{},"62":{},"64":{},"69":{},"70":{},"71":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["standard.xml",{"_index":4537,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["standardcharsets.utf_8.encode(content1",{"_index":6037,"title":{},"name":{},"text":{"53":{},"55":{}},"component":{},"keyword":{}}],["standardcharsets.utf_8.encode(content2",{"_index":6039,"title":{},"name":{},"text":{"53":{},"55":{}},"component":{},"keyword":{}}],["standardcharsets.utf_8.encode(jsonchunk1",{"_index":5270,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["standardcharsets.utf_8.encode(jsonchunk2",{"_index":5275,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["standarddeployer(context",{"_index":7401,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["start",{"_index":164,"title":{"20":{},"41":{},"43":{},"18-4":{},"20-4":{},"41-11":{},"41-18":{},"51-2":{},"58-1":{}},"name":{"43":{}},"text":{"1":{},"4":{},"7":{},"8":{},"10":{},"15":{},"18":{},"19":{},"20":{},"22":{},"24":{},"26":{},"29":{},"30":{},"31":{},"34":{},"35":{},"36":{},"38":{},"39":{},"41":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"62":{},"63":{},"69":{},"71":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"81":{},"83":{}},"component":{},"keyword":{}}],["start.d",{"_index":1660,"title":{},"name":{},"text":{"20":{},"22":{},"24":{},"29":{},"34":{},"35":{},"41":{},"45":{}},"component":{},"keyword":{}}],["start.d/http.ini",{"_index":1670,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["start.d/sess",{"_index":4331,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["start.jar",{"_index":4549,"title":{},"name":{},"text":{"41":{},"43":{}},"component":{},"keyword":{}}],["start.out",{"_index":6717,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["start/stop",{"_index":4816,"title":{"45-2":{},"81-1":{}},"name":{},"text":{},"component":{},"keyword":{}}],["startasync",{"_index":7329,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["startd",{"_index":4622,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["startjarloader@,unmanag",{"_index":8775,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["startjarloader@244038d0",{"_index":8929,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["startlog",{"_index":4605,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["startup",{"_index":1738,"title":{},"name":{},"text":{"22":{},"31":{},"32":{},"35":{},"39":{},"41":{},"43":{},"47":{},"52":{},"62":{},"77":{}},"component":{},"keyword":{}}],["state",{"_index":2508,"title":{"31-50":{}},"name":{"83":{}},"text":{"31":{},"45":{},"46":{},"47":{},"49":{},"52":{},"71":{},"77":{},"81":{},"83":{}},"component":{},"keyword":{}}],["stateless",{"_index":7981,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["statement",{"_index":1503,"title":{},"name":{},"text":{"19":{},"28":{}},"component":{},"keyword":{}}],["statetrackinghandl",{"_index":3264,"title":{"83":{},"45-9":{},"71-42":{}},"name":{},"text":{"31":{},"45":{},"71":{},"83":{}},"component":{},"keyword":{}}],["statetrackinghandler(new",{"_index":7897,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["statetrackinghandler.listen",{"_index":7898,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["statetrackinghandler.sethandlercallbacktimeout(5000",{"_index":7896,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["statetrackinghandler.threadinfo",{"_index":7900,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["static",{"_index":897,"title":{"22-7":{},"31-51":{},"69-2":{},"71-30":{},"71-61":{}},"name":{},"text":{"7":{},"13":{},"15":{},"22":{},"23":{},"31":{},"35":{},"38":{},"44":{},"46":{},"51":{},"59":{},"61":{},"62":{},"66":{},"69":{},"71":{}},"component":{},"keyword":{}}],["staticapp",{"_index":7415,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["staticappcontext",{"_index":7419,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["statist",{"_index":2554,"title":{"77-7":{}},"name":{},"text":{"31":{},"46":{},"71":{},"77":{},"81":{}},"component":{},"keyword":{}}],["statistics.mod",{"_index":7131,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["statisticshandl",{"_index":7520,"title":{"71-36":{}},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["stats.mod",{"_index":7130,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["statshandl",{"_index":7800,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["statshandler.sethandler(contextcollect",{"_index":7802,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["statu",{"_index":236,"title":{},"name":{},"text":{"2":{},"14":{},"22":{},"24":{},"31":{},"34":{},"51":{},"53":{},"55":{},"58":{},"63":{},"67":{},"71":{},"73":{},"74":{}},"component":{},"keyword":{}}],["statuscod",{"_index":6353,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["statusrejecthandl",{"_index":7911,"title":{},"name":{},"text":{"71":
1{}},"component":{},"keyword":{}}],["stay",{"_index":97,"title":{},"name":{},"text":{"1":{},"39":{},"52":{},"71":{}},"component":{},"keyword":{}}],["stderrappend",{"_index":3449,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["steal",{"_index":5927,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["step",{"_index":980,"title":{},"name":{},"text":{"8":{},"29":{},"35":{},"39":{},"41":{},"48":{},"51":{},"58":{},"60":{},"62":{},"77":{},"79":{}},"component":{},"keyword":{}}],["stick",{"_index":3400,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["sticki",{"_index":4115,"title":{"39-45":{},"39-46":{}},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["still",{"_index":1006,"title":{},"name":{},"text":{"8":{},"19":{},"24":{},"39":{},"46":{},"48":{},"51":{},"53":{},"58":{},"65":{},"66":{},"71":{},"73":{},"77":{},"79":{}},"component":{},"keyword":{}}],["stone",{"_index":1037,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["stop",{"_index":1358,"title":{"41-15":{},"41-16":{},"41-17":{},"51-3":{},"58-2":{}},"name":{},"text":{"15":{},"20":{},"22":{},"31":{},"32":{},"35":{},"39":{},"41":{},"45":{},"46":{},"47":{},"49":{},"51":{},"52":{},"53":{},"55":{},"58":{},"62":{},"67":{},"69":{},"71":{},"73":{},"81":{}},"component":{},"keyword":{}}],["stop.exit=tru",{"_index":4593,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["stop.host",{"_index":4582,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["stop.host=<str",{"_index":4654,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["stop.key",{"_index":4584,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["stop.key=<alphanumer",{"_index":4656,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["stop.key=<stop.key",{"_index":4599,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["stop.key=td067bb79ip",{"_index":4592,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["stop.port",{"_index":4583,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["stop.port=8181",{"_index":4585,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["stop.port=<numb",{"_index":4655,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["stop.port=<port",{"_index":4615,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["stop.wait",{"_index":4601,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["stop.wait=15",{"_index":4602,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["stop.wait=<numb",{"_index":4658,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["stopkey",{"_index":6721,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["stopkey>foo</stopkey",{"_index":6707,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["stopper",{"_index":4659,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["stopport",{"_index":6720,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["stopport>9966</stopport",{"_index":6727,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["stopport>9999</stopport",{"_index":6708,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["stoptimeout",{"_index":7926,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["stopwait",{"_index":6726,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["stopwait>10</stopwait",{"_index":6728,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["storag",{"_index":4133,"title":{},"name":{},"text":{"39":{},"53":{},"71":{},"73":{},"77":{}},"component":{},"keyword":{}}],["store",{"_index":1704,"title":{},"name":{},"text":{"20":{},"22":{},"23":{},"24":{},"31":{},"33":{},"36":{},"39":{},"41":{},"42":{},"43":{},"44":{},"46":{},"48":{},"51":{},"52":{},"53":{},"58":{},"62":{},"71":{},"73":{},"77":{},"79":{}},"component":{},"keyword":{}}],["store(bytebuff",{"_index":8124,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["store.setgraceperiodsec(3600",{"_index":8465,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["store.setsaveperiodsec(0",{"_index":8466,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["store.setstoredir(new",{"_index":8464,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["storedir",{"_index":8450,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["storefactori",{"_index":8452,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["storefactory.setbackoffms(2000",{"_index":8600,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["storefactory.setgraceperiodsec(3600",{"_index":8455,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["storefactory.setmaxretries(10",{"_index":8601,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["storefactory.setsaveperiodsec(0",{"_index":8456,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["storefactory.setstoredir(new",{"_index":8453,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["storetyp",{"_index":3389,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["straight",{"_index":6606,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["straightforward",{"_index":4718,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["strategi",{"_index":2348,"title":{"52-1":{},"52-5":{}},"name":{},"text":{"28":{},"31":{},"39":{},"52":{},"66":{},"77":{}},"component":{},"keyword":{}}],["stream",{"_index":2833,"title":{"58-12":{},"58-14":{},"58-18":{}},"name":{},"text":{"31":{},"34":{},"35":{},"51":{},"53":{},"55":{},"58":{},"71":{},"73":{},"74":{},"76":{},"81":{}},"component":{},"keyword":{}}],["stream.client.listen",{"_index":6161,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["stream.data",{"_index":6047,"title":{},"name":{},"text":{"53":{},"55":{},"73":{}},"component":{},"keyword":{}}],["stream.data(new",{"_index":6041,"title":{},"name":{},"text":{"53":{},"55":{}},"component":{},"keyword":{}}],["stream.demand",{"_index":6057,"title":{},"name":{},"text":{"53":{},"55":{},"73":{},"74":{}},"component":{},"keyword":{}}],["stream.disconnect(http3errorcode.request_cancelled_error.cod",{"_index":6175,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["stream.disconnect(http3errorcode.request_rejected_error.cod",{"_index":8245,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["stream.headers(new",{"_index":8189,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["stream.listen",{"_index":6025,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["stream.listener.ondataavailable(stream",{"_index":6071,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["stream.push(promisefram",{"_index":8214,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["stream.read",{"_index":6172,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["stream.readdata",{"_index":6060,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["stream.reset(new",{"_index":6077,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["stream.respond(new",{"_index":8242,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["stream.server.listen",{"_index":8236,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["stream_1",{"_index":5988,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["stream_1'",{"_index":5989,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["stream_2",{"_index":5990,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["stream_2'",{"_index":5991,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["stream_3",{"_index":5992,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["streamcf",{"_index":6031,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["streamcf.get",{"_index":6032,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["streamingannotatedendpoint",{"_index":6375,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["streaminglistenerendpoint",{"_index":6356,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}
1],["streamsendnonblockingendpoint",{"_index":6408,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["street",{"_index":5294,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["strength",{"_index":3399,"title":{},"name":{},"text":{"33":{},"42":{}},"component":{},"keyword":{}}],["strengthen",{"_index":7056,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["stress",{"_index":863,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["strict",{"_index":2122,"title":{},"name":{},"text":{"23":{},"31":{},"71":{}},"component":{},"keyword":{}}],["stricter",{"_index":3858,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["strictli",{"_index":336,"title":{},"name":{},"text":{"2":{},"8":{},"70":{}},"component":{},"keyword":{}}],["strictquoteescap",{"_index":2332,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["string",{"_index":2127,"title":{},"name":{},"text":{"23":{},"24":{},"28":{},"29":{},"31":{},"34":{},"39":{},"40":{},"42":{},"44":{},"45":{},"46":{},"48":{},"50":{},"51":{},"53":{},"55":{},"57":{},"58":{},"60":{},"62":{},"64":{},"65":{},"67":{},"71":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["string)object.get(\"address",{"_index":5318,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["string)object.get(\"numb",{"_index":5297,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["string.join(file.pathsepar",{"_index":8027,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["string>)session.getattribute(\"org.eclipse.jetty.security.openid.claim",{"_index":7034,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["string[]{\"admin",{"_index":7012,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["stringbuff",{"_index":7145,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["stringbuffer(httpuri.asstr",{"_index":7147,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["stringrequestcont",{"_index":5495,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["stringrequestcontent(\"text/plain",{"_index":5499,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["stringrespons",{"_index":5498,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["strip",{"_index":2760,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["stripped_quot",{"_index":8904,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["strive",{"_index":2908,"title":{},"name":{},"text":{"31":{},"70":{}},"component":{},"keyword":{}}],["strong",{"_index":4598,"title":{},"name":{},"text":{"41":{},"43":{},"62":{}},"component":{},"keyword":{}}],["strongli",{"_index":5689,"title":{},"name":{},"text":{"51":{},"58":{},"77":{}},"component":{},"keyword":{}}],["structur",{"_index":935,"title":{"8-6":{}},"name":{},"text":{"15":{},"20":{},"22":{},"29":{},"34":{},"36":{},"41":{},"45":{},"47":{},"50":{},"59":{},"63":{},"71":{},"78":{},"81":{}},"component":{},"keyword":{}}],["stub",{"_index":2151,"title":{},"name":{},"text":{"24":{},"31":{},"48":{}},"component":{},"keyword":{}}],["stuck",{"_index":4848,"title":{},"name":{},"text":{"45":{},"83":{}},"component":{},"keyword":{}}],["style",{"_index":936,"title":{"8-7":{}},"name":{},"text":{"13":{},"31":{},"51":{},"62":{},"67":{}},"component":{},"keyword":{}}],["style.css",{"_index":8135,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["style=\"display",{"_index":6951,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["styles.css",{"_index":1763,"title":{},"name":{},"text":{"22":{},"69":{}},"component":{},"keyword":{}}],["stylesheet",{"_index":8131,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["stylist",{"_index":1038,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["sub",{"_index":1702,"title":{},"name":{},"text":{"20":{},"41":{},"51":{},"58":{},"62":{},"71":{}},"component":{},"keyword":{}}],["sub)network",{"_index":3927,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["subclass",{"_index":1394,"title":{},"name":{},"text":{"15":{},"22":{},"29":{},"30":{},"44":{},"46":{},"48":{},"51":{},"63":{},"66":{},"69":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["subdirectori",{"_index":1023,"title":{},"name":{},"text":{"8":{},"22":{},"30":{},"41":{}},"component":{},"keyword":{}}],["subdomain",{"_index":1917,"title":{},"name":{},"text":{"22":{},"31":{},"33":{},"51":{},"71":{}},"component":{},"keyword":{}}],["subject",{"_index":3403,"title":{},"name":{},"text":{"33":{},"39":{},"65":{},"71":{},"81":{}},"component":{},"keyword":{}}],["subject'",{"_index":4087,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["submiss",{"_index":8077,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["submit",{"_index":1169,"title":{"10":{}},"name":{},"text":{"9":{},"41":{},"46":{},"52":{},"64":{},"71":{},"79":{}},"component":{},"keyword":{}}],["subpackag",{"_index":2249,"title":{"45-6":{}},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["subprotocol",{"_index":8726,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["subprotocols(list.of(\"mi",{"_index":8662,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["subprotocols.contains(\"mi",{"_index":8728,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["subscrib",{"_index":5306,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["subsect",{"_index":1126,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["subsequ",{"_index":1412,"title":{},"name":{},"text":{"17":{},"39":{},"41":{},"46":{},"51":{},"52":{},"71":{},"77":{}},"component":{},"keyword":{}}],["substanti",{"_index":856,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["substitution(",{"_index":1077,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["subsystem",{"_index":4827,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["subtl",{"_index":8149,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["subtleti",{"_index":8383,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["subtre",{"_index":5130,"title":{},"name":{},"text":{"47":{},"62":{}},"component":{},"keyword":{}}],["succe",{"_index":1007,"title":{},"name":{},"text":{"8":{},"46":{},"51":{},"52":{},"53":{},"57":{},"58":{},"71":{}},"component":{},"keyword":{}}],["succeed",{"_index":4935,"title":{},"name":{},"text":{"46":{},"53":{},"55":{},"58":{},"67":{},"71":{}},"component":{},"keyword":{}}],["succeeded(bytebuff",{"_index":7236,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["succeeded(field",{"_index":7249,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["succeeded(multipartformdata.part",{"_index":7254,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}],["succeeded(nul",{"_index":7245,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["succeeded(session.cli",{"_index":6152,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["succeeded(str",{"_index":7234,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["succeeded(stream",{"_index":6164,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["success",{"_index":1000,"title":{},"name":{},"text":{"8":{},"36":{},"39":{},"46":{},"51":{},"57":{},"63":{},"71":{}},"component":{},"keyword":{}}],["successfulli",{"_index":826,"title":{},"name":{},"text":{"7":{},"35":{},"45":{},"46":{},"51":{},"53":{},"55":{},"57":{},"58":{},"71":{},"75":{}},"component":{},"keyword":{}}],["successor",{"_index":3613,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["such",{"_index":958,"title":{},"name":{},"text":{"8":{},"10":{},"14":{},"17":{},"18":{},"20":{},"22":{},"23":{},"24":{},"30":{},"31":{},"33":{},"34":{},"35":{},"39":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"62":{},"63":{},"64":{},"66":{},"67":{},"70":{},"71":{},"73":{},"74":{},"75":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["sudden",{"_index":5924,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["suffer",{"_index":5890,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["suffici",{"_index":3262,"title":{},"name":{},"text":{"31":{},"34":{},"36":{},"39":{},"58":{},"77":{}},"component":{},"keyword":{}}],["suggest",{"_index":760,"title":{},"name":{},"text":{"4":{},"6":{},"45":{},"51":{},"55":{},"71":{},"74":{},"77":{}},"component":{},"keyword":{}}],["suit",{"_index":812,"title":{},"name":{},"text":{"6":{},"29":{},"31":{},"35":{},"36":{},"41":{},"51":{},"59":{},"71":{}},"component":{},"keyword":{}}],["suitabl",{"_index":1607,"title":{},"name":{},"text":{"20":{},"23":{},"35":{},"36":{},"39":{},"51":{},"55":{},"62":{},"77":{}},"component":{},"keyword":{}}],["summarili",{"_index":4179,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["sun.nio.ch.serversocketchannelimpl[/[0:0:0:0:0:0:0:0]:8080",{"_index":8924,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["sun.util.resources.cldr.provid",{"_index":8942,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["sun.util.resources.provid",{"_index":8941,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["super",{"_index":4709,"title":{},"name":{},"text":{"43":{},"48":{},"57":{},"71":{}},"component":{},"keyword":{}}],["super(\"jsonhttp",{"_index":8265,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["super(endp",{"_index":4955,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["super(endpoint",{"_index":4897,"title":{},"name":{},"text":{"46":{},"57":{},"75":{}},"component":{},"keyword":{}}],["super(handl",{"_index":8060,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["super(invocationtype.non_block",{"_index":8616,"title":{},"name":{},"text":{"78":{}},"component":{},"keyword":{}}],["super(servic",{"_index":5232,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}
1],["super.add(uri",{"_index":5722,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["super.dostart",{"_index":5117,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["super.dostop",{"_index":5120,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["super.handle(clienttoproxyrequest",{"_index":7969,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["super.handle(newrequest",{"_index":8069,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["super.handle(request",{"_index":8070,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["super.onopen",{"_index":4898,"title":{},"name":{},"text":{"46":{},"57":{},"75":{}},"component":{},"keyword":{}}],["superclass",{"_index":8709,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["suppli",{"_index":4257,"title":{},"name":{},"text":{"39":{},"62":{},"64":{},"77":{}},"component":{},"keyword":{}}],["supplier<httpfield",{"_index":7297,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["support",{"_index":87,"title":{"4":{},"40":{},"48":{},"50":{},"64":{},"65":{},"4-1":{},"4-2":{},"4-3":{},"6-5":{},"24-1":{},"24-2":{},"34-13":{},"39-44":{},"40-4":{},"48-1":{},"51-22":{},"51-26":{},"51-27":{},"51-28":{},"51-29":{},"51-30":{},"52-10":{},"52-11":{},"57-2":{},"57-3":{},"62-2":{},"64-2":{},"71-71":{}},"name":{"4":{},"36":{},"38":{},"40":{},"64":{},"65":{}},"text":{"1":{},"2":{},"4":{},"6":{},"8":{},"11":{},"12":{},"14":{},"15":{},"18":{},"20":{},"21":{},"22":{},"23":{},"24":{},"28":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"41":{},"42":{},"44":{},"46":{},"47":{},"48":{},"50":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"62":{},"63":{},"64":{},"65":{},"66":{},"70":{},"71":{},"73":{},"74":{},"75":{},"76":{},"77":{},"79":{}},"component":{},"keyword":{}}],["supported>true</async",{"_index":2267,"title":{},"name":{},"text":{"28":{},"79":{}},"component":{},"keyword":{}}],["supportedpackag",{"_index":6643,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["suppos",{"_index":2114,"title":{},"name":{},"text":{"23":{},"62":{},"73":{},"74":{},"75":{},"79":{}},"component":{},"keyword":{}}],["suppresssmap",{"_index":2335,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["suppresswarnings(\"uncheck",{"_index":7033,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["sure",{"_index":163,"title":{},"name":{},"text":{"1":{},"6":{},"9":{},"12":{},"20":{},"22":{},"29":{},"39":{},"41":{},"45":{},"51":{},"52":{},"58":{},"63":{},"79":{}},"component":{},"keyword":{}}],["surround",{"_index":4681,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["suspend",{"_index":2512,"title":{},"name":{},"text":{"31":{},"46":{},"71":{}},"component":{},"keyword":{}}],["suspendtoken",{"_index":7357,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["sustain",{"_index":2531,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["svc",{"_index":7664,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["svn",{"_index":6535,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["sweep",{"_index":4172,"title":{},"name":{},"text":{"39":{},"62":{}},"component":{},"keyword":{}}],["switch",{"_index":3722,"title":{},"name":{},"text":{"35":{},"46":{},"52":{},"58":{},"71":{}},"component":{},"keyword":{}}],["symbol",{"_index":3517,"title":{},"name":{},"text":{"34":{},"67":{}},"component":{},"keyword":{}}],["sync",{"_index":4166,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["sync_flush",{"_index":2590,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["syncflush",{"_index":2589,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["synchron",{"_index":4938,"title":{},"name":{},"text":{"46":{},"50":{},"51":{},"54":{},"58":{},"71":{}},"component":{},"keyword":{}}],["syntax",{"_index":1368,"title":{"44-1":{}},"name":{},"text":{"15":{},"30":{},"31":{},"33":{},"35":{},"36":{},"44":{},"62":{},"79":{}},"component":{},"keyword":{}}],["synth",{"_index":6673,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["synthes",{"_index":4144,"title":{},"name":{},"text":{"39":{},"62":{},"71":{},"77":{}},"component":{},"keyword":{}}],["synthet",{"_index":6729,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["sysop",{"_index":949,"title":{},"name":{},"text":{"8":{},"14":{},"16":{}},"component":{},"keyword":{}}],["sysops/devop",{"_index":1342,"title":{},"name":{},"text":{"14":{}},"component":{},"keyword":{}}],["system",{"_index":866,"title":{"39-12":{},"62-28":{},"62-29":{},"62-30":{}},"name":{},"text":{"7":{},"15":{},"17":{},"18":{},"19":{},"20":{},"22":{},"24":{},"28":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"39":{},"41":{},"43":{},"44":{},"45":{},"46":{},"48":{},"51":{},"52":{},"57":{},"60":{},"61":{},"62":{},"69":{},"70":{},"71":{},"75":{},"77":{},"81":{},"84":{}},"component":{},"keyword":{}}
1],["system.err",{"_index":2616,"title":{},"name":{},"text":{"31":{},"34":{},"41":{},"44":{},"84":{}},"component":{},"keyword":{}}],["system.getenv",{"_index":4800,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["system.getlogger(\"app\").log(info",{"_index":6262,"title":{},"name":{},"text":{"57":{},"63":{}},"component":{},"keyword":{}}],["system.getlogger(\"connection\").log(info",{"_index":5663,"title":{},"name":{},"text":{"51":{},"57":{}},"component":{},"keyword":{}}],["system.getlogger(\"connection.threshold\").log(system.logger.level.warn",{"_index":4913,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["system.getlogger(\"endpoint\").log(info",{"_index":6213,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["system.getlogger(\"forwarder\").log(info",{"_index":5607,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["system.getlogger(\"http2\").log(info",{"_index":6054,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["system.getlogger(\"http3\").log(info",{"_index":6169,"title":{},"name":{},"text":{"55":{},"74":{}},"component":{},"keyword":{}}],["system.getlogger(\"server\").log(info",{"_index":5142,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["system.getlogger(\"sink\").log(info",{"_index":5064,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["system.getlogger(\"tls\").log(error",{"_index":5700,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["system.getlogger(\"tls\").log(info",{"_index":5697,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["system.getlogger(\"tracktime\").log(info",{"_index":7832,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["system.getlogger(\"websocket\").log(system.logger.level.warn",{"_index":6398,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["system.getlogger(\"ws.message\").log(info",{"_index":6316,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["system.getproperti",{"_index":4796,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["system.nanotim",{"_index":5672,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["system.out",{"_index":2615,"title":{},"name":{},"text":{"31":{},"34":{}},"component":{},"keyword":{}}],["system.setproperty(\"javax.net.ssl.truststor",{"_index":5197,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["system.setproperty(\"javax.net.ssl.truststorepassword",{"_index":5199,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["systemproperti",{"_index":4716,"title":{"44-13":{}},"name":{},"text":{"44":{},"62":{}},"component":{},"keyword":{}}],["systempropertiesfil",{"_index":6645,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["systempropertiesfile>${project.basedir}/mysys.props</systempropertiesfil",{"_index":6805,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["t",{"_index":1309,"title":{},"name":{},"text":{"13":{},"34":{},"51":{}},"component":{},"keyword":{}}],["t.tostr",{"_index":1318,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["t1",{"_index":5887,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["t2",{"_index":5888,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["t3",{"_index":5915,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["t4",{"_index":5916,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["tab",{"_index":1259,"title":{},"name":{},"text":{"13":{},"81":{}},"component":{},"keyword":{}}],["tabl",{"_index":831,"title":{},"name":{},"text":{"7":{},"12":{},"14":{},"28":{},"31":{},"35":{},"36":{},"39":{},"71":{},"77":{}},"component":{},"keyword":{}}],["table:jettysess",{"_index":8489,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["tackl",{"_index":813,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["tag",{"_index":39,"title":{"27":{},"30-6":{}},"name":{},"text":{"1":{},"3":{},"4":{},"6":{},"7":{},"10":{},"18":{},"27":{},"28":{},"29":{},"30":{},"31":{},"38":{},"41":{},"51":{},"60":{}},"component":{},"keyword":{}}],["taglib",{"_index":2231,"title":{"26":{}},"name":{},"text":{},"component":{},"keyword":{}}],["taglibs[^/]*\\.jar|.*jstl[^/]*\\.jar",{"_index":6552,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["take",{"_index":855,"title":{},"name":{},"text":{"7":{},"8":{},"19":{},"20":{},"23":{},"28":{},"31":{},"39":{},"46":{},"47":{},"51":{},"52":{},"53":{},"55":{},"58":{},"60":{},"61":{},"62":{},"71":{},"75":{},"77":{},"81":{}},"component":{},"keyword":{}}],["takecontentascontentsourc",{"_index":5555,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["taken",{"_index":715,"title":{},"name":{},"text":{"4":{},"8":{},"10":{},"19":{},"31":{},"42":{},"46":{},"51":{},"52":{},"62":{}},"component":{},"keyword":{}}],["talent",{"_index":23,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["talk",{"_index":3920,"title":{},"name":{},"text":{"35":{},"39":{}},"component":{},"keyword":{}}],["target",{"_index":777,"title":{},"name":{},"text":{"6":{},"8":{},"12":{},"14":{},"16":{},"17":{},"22":{},"28":{},"30":{},"31":{},"44":{},"59":{},"60":{},"62":{},"67":{},"71":{}},"component":{},"keyword":{}}],["target/effect",{"_index":6734,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["target/foo/web",{"_index":6580,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["target/fork",{"_index":6630,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["target/html",{"_index":1033,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["target/jetti",{"_index":6634,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["target/site/<format",{"_index":1030,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["target/web.xml",{"_index":6581,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["target/webapp",{"_index":6672,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["targetvers",{"_index":6550,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["task",{"_index":803,"title":{},"name":{},"text":{"6":{},"31":{},"34":{},"41":{},"52":{},"56":{},"66":{},"71":{},"78":{}},"component":{},"keyword":{}}],["tcp",{"_index":2825,"title":{"46-6":{}},"name":{},"text":{"31":{},"35":{},"41":{},"46":{},"47":{},"51":{},"52":{},"53":{},"57":{},"58":{},"66":{},"71":{},"73":{}},"component":{},"keyword":{}}],["tcp/ip",{"_index":1387,"title":{},"name":{},"text":{"15":{},"35":{},"71":{},"75":{}},"component":{},"keyword":{}}],["tcp_nodelay",{"_index":2803,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["team",{"_index":800,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["technic",{"_index":784,"title":{},"name":{},"text":{"6":{},"8":{},"80":{}},"component":{},"keyword":{}}],["technolog",{"_index":96,"title":{},"name":{},"text":{"1":{},"14":{},"21":{},"36":{},"39":{},"77":{}},"component":{},"keyword":{}}],["tell",{"_index":852,"title":{},"name":{},"text":{"7":{},"8":{},"26":{},"45":{},"51":{},"53":{},"55":{},"62":{},"69":{},"71":{},"73":{},"74":{},"77":{}},"component":{},"keyword":{}}],["telnet",{"_index":6243,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["telnetconnect",{"_index":6244,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["telnetconnection(endpoint",{"_index":6247,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["telnetconnection)sslconnection.getsslendpoint().getconnect",{"_index":6271,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["tempdirectori",{"_index":6669,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["templat",{"_index":1671,"title":{"30-15":{}},"name":{},"text":{"20":{},"28":{},"29":{},"31":{},"35":{},"36":{},"41":{},"79":{}},"component":{},"keyword":{}}],["template|/ws/chat/{room",{"_index":8746,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["template|<path",{"_index":8745,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["temporari",{"_index":1975,"title":{},"name":{},"text":{"22":{},"31":{},"32":{},"41":{},"46":{},"71":{}},"component":{},"keyword":{}}],["temporarili",{"_index":4817,"title":{},"name":{},"text":{"45":{},"46":{},"47":{},"81":{}},"component":{},"keyword":{}}],["tempt",{"_index":7412,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["ten",{"_index":6657,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["tenant",{"_index":4359,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["tend",{"_index":2826,"title":{},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["term",{"_index":712,"title":{},"name":{},"text":{"4":{},"8":{},"15":{},"20":{},"22":{},"41":{},"64":{}},"component":{},"keyword":{}}],["termin",{"_index":1597,"title":{"55-6":{},"74-5":{}},"name":{},"text":{"20":{},"30":{},"31":{},"34":{},"35":{},"39":{},"41":{},"51":{},"55":{},"58":{},"62":{},"71":{},"74":{}},"component":{},"keyword":{}}],["terminolog",{"_index":4102,"title":{"39-2":{}},"name":{},"text":{"39":{},"79":{}},"component":{},"keyword":{}}],["terribl",{"_index":7842,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["test",{"_index":823,"title":{"7-5":{},"31-52":{}},"name":{},"text":{"7":{},"24":{},"30":{},"31":{},"35":{},"36":{},"38":{},"39":{},"51":{},"59":{},"62":{},"77":{},"79":{},"84":{}},"component":{},"keyword":{}}],["test</arg",{"_index":4091,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["test</phas",{"_index":6712,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["testclass",{"_index":6736,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["testclassesdirectori",{"_index":6683,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["tester",{"_index":25,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["text",{"_index":1141,"title":{"35-1":{},"35-4":{},"35-6":{},"71-17":{},"71-19":{}},"name":{},"text":{"8":{},"18":{},"20":{},"24":{},"25":{},"28":{},"29":{},"30":{},"31":{},"35":{},"36":{},"41":{},"42":{},"48":{},"51":{},"53":{},"57":{},"58":{},"71":{},"75":{},"76":{},"79":{},"81":{}},"component":{},"keyword":{}}],["text/html",{"_index":6460,"title":{},"name":{},"text":{"59":{},"71":{}},"component":{},"keyword":{}}],["text/plain",{"_index":5448,"title":{},"name":{},"text":{"51":{},"67":{},"71":{}},"component":{},"keyword":{}}],["text/plain;charset=ascii",{"_index":8261,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["textual",{"_index":5818,"title":{},"name":{},"text":{"51":{},"53":{},"58":{}},"component":{},"keyword":{}}],["tgz",{"_index":187,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["thank",{"_index":85,"title":{},"name":{},"text":{"1":{},"24":{},"43":{},"66":{},"67":{}},"component":{},"keyword":{}}],["thatâ",{"_index":3002,"title":{},"name":{},"text":{"31":{},"44":{}},"component":{},"keyword":{}}],["theme",{"_index":7046,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["themselv",{"_index":7698,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["thencompose(",{"_index":8191,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["thencompose(bytebuff",{"_index":8123,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["thencompose(ignor",{"_index":8120,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["thencompose(push",{"_index":8219,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["thencompose(pushedstream",{"_index":8215,"title":{},"name":{},"text":{"73":{}},"component":{},"keyword":{}}],["therefor",{"_index":1436,"title":{},"name":{},"text":{"18":{},"22":{},"24":{},"31":{},"34":{},"35":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"50":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"63":{},"67":{},"70":{},"71":{},"73":{},"74":{},"75":{},"77":{},"79":{},"81":{},"84":{}},"component":{},"keyword":{}}],["thereâ",{"_index":61,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["theyâr",{"_index":808,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["thing",{"_index":1157,"title":{},"name":{},"text":{"8":{},"10":{},"13":{},"31":{},"43":{},"51":{},"53":{},"55":{},"64":{},"77":{},"84":{}},"component":{},"keyword":{}}],["think",{"_index":1474,"title":{},"name":{},"text":{"18":{},"51":{},"52":{}},"component":{},"keyword":{}}],["third",{"_index":911,"title":{},"name":{},"text":{"7":{},"11":{},"17":{},"19":{},"31":{},"35":{},"39":{},"41":{},"47":{},"51":{},"54":{},"58":{},"65":{},"71":{},"76":{}},"component":{},"keyword":{}}],["thirdpartyrespons",{"_index":5648,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["this.address",{"_index":5314,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["this.callback",{"_index":5075,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["this.consum",{"_index":6255,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["this.en",{"_index":5217,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["this.length",{"_index":5076,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["this.pool",{"_index":4956,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["this.sess",{"_index":6319,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["this.sink",{"_index":5074,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["this.sourc",{"_index":5036,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["this.threshold",{"_index":4909,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["thorough",{"_index":4226,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["those",{"_index":1014,"title":{},"name":{},"text":{"8":{},"18":{},"22":{},"23":{},"26":{},"29":{},"31":{},"34":{},"35":{},"39":{},"41":{},"43":{},"48":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"60":{},"66":{},"71":{},"73":{},"74":{},"77":{}},"component":{},"keyword":{}}],["thought",{"_index":5371,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}
1],["thousand",{"_index":2821,"title":{},"name":{},"text":{"31":{},"81":{}},"component":{},"keyword":{}}],["thrash",{"_index":5956,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["thread",{"_index":841,"title":{"52":{},"56":{},"78":{},"85":{},"19-4":{},"31-53":{},"34-12":{},"34-13":{},"52-6":{},"52-7":{},"52-9":{},"52-10":{},"52-11":{},"52-12":{},"52-13":{},"56-1":{},"56-2":{}},"name":{"52":{},"56":{},"78":{},"85":{}},"text":{"7":{},"15":{},"19":{},"21":{},"25":{},"31":{},"34":{},"41":{},"45":{},"46":{},"47":{},"49":{},"51":{},"52":{},"54":{},"56":{},"57":{},"58":{},"71":{},"76":{},"78":{},"81":{},"83":{}},"component":{},"keyword":{}}],["thread'",{"_index":3336,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["threadlessli",{"_index":6073,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["threadlimithandl",{"_index":3304,"title":{"71-45":{}},"name":{},"text":{"31":{},"71":{}},"component":{},"keyword":{}}],["threadlocalrandom.current().nextbytes(byt",{"_index":5079,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["threadpool",{"_index":1388,"title":{"31-54":{},"31-55":{},"31-56":{},"31-57":{},"81-3":{}},"name":{},"text":{"15":{},"18":{},"20":{},"30":{},"31":{},"34":{},"35":{},"41":{},"44":{},"47":{},"52":{},"57":{},"62":{},"71":{},"81":{}},"component":{},"keyword":{}}],["threadpool.getmaxleasedthread",{"_index":5944,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["threadpool.ini",{"_index":1666,"title":{},"name":{},"text":{"20":{},"34":{},"41":{}},"component":{},"keyword":{}}],["threadpool.setdetaileddump(tru",{"_index":5966,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["threadpool.setmaxconcurrenttasks(200",{"_index":5964,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["threadpool.setmaxthreads(maxthread",{"_index":5946,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["threadpool.setname(\"cli",{"_index":6206,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["threadpool.setname(\"serv",{"_index":7536,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["threadpool.setreservedthreads(reservedthread",{"_index":5935,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["threadpool.settracking(tru",{"_index":5965,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["threadpool.setvirtualthreadsexecutor(executors.newvirtualthreadpertaskexecutor",{"_index":5957,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["threadpool.setvirtualthreadsexecutor(virtualexecutor",{"_index":5960,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["threadpool.xml",{"_index":2419,"title":{},"name":{},"text":{"30":{},"41":{}},"component":{},"keyword":{}}],["three",{"_index":947,"title":{},"name":{},"text":{"8":{},"18":{},"23":{},"31":{},"35":{},"41":{},"62":{},"77":{}},"component":{},"keyword":{}}],["threshold",{"_index":4901,"title":{},"name":{},"text":{"46":{},"71":{}},"component":{},"keyword":{}}],["thresholdconnectionlisten",{"_index":4906,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["thresholdconnectionlistener(2048",{"_index":4922,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["thresholdconnectionlistener(512",{"_index":4925,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["thresholdconnectionlistener(int",{"_index":4908,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["throttl",{"_index":8192,"title":{},"name":{},"text":{"73":{},"74":{}},"component":{},"keyword":{}}],["through",{"_index":148,"title":{},"name":{},"text":{"1":{},"4":{},"6":{},"8":{},"15":{},"17":{},"18":{},"24":{},"28":{},"31":{},"34":{},"35":{},"39":{},"40":{},"41":{},"43":{},"46":{},"48":{},"62":{},"64":{},"65":{},"66":{},"70":{},"71":{},"75":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["throughout",{"_index":1249,"title":{},"name":{},"text":{"13":{},"15":{},"77":{}},"component":{},"keyword":{}}],["throw",{"_index":1278,"title":{},"name":{},"text":{"13":{},"41":{},"46":{},"47":{},"51":{},"58":{},"59":{},"65":{},"67":{},"70":{},"71":{},"75":{},"78":{},"79":{}},"component":{},"keyword":{}}],["throwabl",{"_index":1308,"title":{},"name":{},"text":{"13":{},"46":{},"47":{},"51":{},"53":{},"55":{},"58":{},"67":{},"71":{},"75":{}},"component":{},"keyword":{}}],["throwable::printstacktrac",{"_index":6333,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["thrown",{"_index":4581,"title":{},"name":{},"text":{"41":{},"44":{},"46":{},"51":{},"53":{},"55":{},"58":{},"71":{},"77":{}},"component":{},"keyword":{}}
1],["thru",{"_index":261,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["thu",{"_index":2062,"title":{},"name":{},"text":{"23":{},"30":{},"34":{},"39":{},"46":{},"51":{},"61":{},"70":{},"71":{},"77":{}},"component":{},"keyword":{}}],["thumb",{"_index":731,"title":{},"name":{},"text":{"4":{},"39":{},"57":{},"71":{}},"component":{},"keyword":{}}],["ti",{"_index":1347,"title":{},"name":{},"text":{"15":{},"23":{},"47":{}},"component":{},"keyword":{}}],["tid=42",{"_index":8792,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["tid=43",{"_index":8796,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["tid=44",{"_index":8788,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["tid=45",{"_index":8791,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["tidi",{"_index":6795,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["tight",{"_index":130,"title":{},"name":{},"text":{"1":{},"31":{}},"component":{},"keyword":{}}],["time",{"_index":857,"title":{"10-5":{},"45-5":{}},"name":{},"text":{"7":{},"8":{},"10":{},"18":{},"19":{},"23":{},"24":{},"28":{},"29":{},"31":{},"32":{},"34":{},"35":{},"36":{},"39":{},"41":{},"43":{},"45":{},"46":{},"47":{},"48":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"59":{},"62":{},"70":{},"71":{},"73":{},"74":{},"77":{},"81":{}},"component":{},"keyword":{}}],["timed_wait",{"_index":8787,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["timeout",{"_index":2611,"title":{},"name":{},"text":{"31":{},"35":{},"39":{},"41":{},"46":{},"51":{},"53":{},"55":{},"57":{},"58":{},"66":{},"71":{},"73":{},"74":{},"77":{}},"component":{},"keyword":{}}],["timeout(3",{"_index":5462,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["timeout(5",{"_index":5451,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["timeout/></sess",{"_index":8331,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["times.put(socketchannel",{"_index":5671,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["times.remove(socketchannel",{"_index":5674,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["timestamp",{"_index":2627,"title":{},"name":{},"text":{"31":{},"34":{}},"component":{},"keyword":{}}],["timeunit.second",{"_index":5414,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["timezon",{"_index":2620,"title":{},"name":{},"text":{"31":{},"34":{}},"component":{},"keyword":{}}],["tip",{"_index":1144,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["titl",{"_index":6637,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["title>jetti",{"_index":6463,"title":{},"name":{},"text":{"59":{},"71":{}},"component":{},"keyword":{}}],["tl",{"_index":2134,"title":{"24-5":{},"48-4":{},"51-18":{},"51-20":{},"51-21":{}},"name":{},"text":{"24":{},"29":{},"31":{},"33":{},"35":{},"46":{},"48":{},"51":{},"57":{},"71":{},"75":{},"81":{}},"component":{},"keyword":{}}],["tld",{"_index":2232,"title":{},"name":{},"text":{"26":{},"60":{},"62":{}},"component":{},"keyword":{}}],["tldjarnamepattern",{"_index":6551,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["tls(ssl",{"_index":2987,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["tls+http/1.1",{"_index":3798,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["tls+http/2",{"_index":3799,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["tls+websocket",{"_index":3802,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["tls/ssl",{"_index":5251,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["tls_rsa_with_aes_128_cbc_sha256",{"_index":3604,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["tls_rsa_with_aes_128_gcm_sha256",{"_index":3602,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["tls_rsa_with_aes_256_cbc_sha256",{"_index":3603,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["tls_rsa_with_aes_256_gcm_sha384",{"_index":3601,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["tlsdetector",{"_index":8254,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["tlsv1.0",{"_index":3817,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["tlsv1.1",{"_index":3818,"title":{},"name":{},"text":{"35":{},"57":{}},"component":{},"keyword":{}}],["tlsv1.2",{"_index":3819,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["tlsv1.3",{"_index":3820,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["tmp",{"_index":7681,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["tmp/jetty.sock",{"_index":8246,"title":{},"name":{},"text":{"75":{}},"component":{},"keyword":{}}],["tmp/jvm_cmd_line.txt",{"_index":4542,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["tn",{"_index":5889,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["to",{"_index":2228,"title":{"25":{}},"name":{},"text":{},"component":{},"keyword":{}}],["to/from",{"_index":5326,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["to/remov",{"_index":1740,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["todo",{"_index":1060,"title":{},"name":{},"text":{"8":{},"51":{},"72":{},"82":{},"85":{}},"component":{},"keyword":{}}],["togeth",{"_index":1359,"title":{},"name":{},"text":{"15":{},"18":{},"19":{},"23":{},"29":{},"30":{},"39":{},"41":{},"47":{},"71":{},"75":{},"77":{}},"component":{},"keyword":{}}],["tojson(json.output",{"_index":5299,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["tojson(object",{"_index":5320,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["token",{"_index":3029,"title":{"65-5":{}},"name":{},"text":{"31":{},"40":{},"58":{},"65":{}},"component":{},"keyword":{}}],["token_endpoint",{"_index":7000,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["toler",{"_index":5893,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["tom",{"_index":4010,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["took",{"_index":3368,"title":{},"name":{},"text":{"32":{},"71":{}},"component":{},"keyword":{}}],["tool",{"_index":0,"title":{"42":{},"1-1":{},"7-6":{},"42-1":{}},"name":{},"text":{"8":{},"23":{},"24":{},"29":{},"31":{},"33":{},"34":{},"35":{},"36":{},"39":{},"41":{},"42":{},"45":{},"59":{},"62":{},"71":{},"77":{},"80":{}},"component":{},"keyword":{}}],["toolchain",{"_index":932,"title":{"8-2":{}},"name":{},"text":{"12":{}},"component":{},"keyword":{}}],["top",{"_index":990,"title":{},"name":{},"text":{"8":{},"15":{},"48":{},"55":{},"57":{},"71":{},"74":{}},"component":{},"keyword":{}}],["topic",{"_index":785,"title":{"23-5":{}},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["topmost",{"_index":3329,"title":{},"name":{},"text":{"31":{},"81":{}},"component":{},"keyword":{}}],["tostr",{"_index":1327,"title":{},"name":{},"text":{"13":{},"50":{}},"component":{},"keyword":{}}],["total",{"_index":1001,"title":{},"name":{},"text":{"8":{},"31":{},"51":{},"71":{},"77":{}},"component":{},"keyword":{}}],["totaleventshandl",{"_index":7835,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["touch",{"_index":1843,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["toward",{"_index":2218,"title":{},"name":{},"text":{"24":{},"35":{}},"component":{},"keyword":{}}
1],["trace",{"_index":1292,"title":{},"name":{},"text":{"13":{},"31":{},"34":{},"45":{},"71":{},"81":{},"83":{}},"component":{},"keyword":{}}],["track",{"_index":880,"title":{"31-50":{}},"name":{"83":{}},"text":{"7":{},"22":{},"31":{},"45":{},"52":{},"53":{},"71":{},"73":{},"77":{},"83":{}},"component":{},"keyword":{}}],["tracker",{"_index":42,"title":{},"name":{},"text":{"1":{},"4":{},"6":{},"10":{},"31":{}},"component":{},"keyword":{}}],["trademark",{"_index":349,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["tradit",{"_index":6608,"title":{},"name":{},"text":{"62":{},"71":{}},"component":{},"keyword":{}}],["traffic",{"_index":794,"title":{},"name":{},"text":{"6":{},"22":{},"24":{},"35":{},"46":{},"48":{},"58":{},"71":{},"75":{}},"component":{},"keyword":{}}],["trailer",{"_index":3119,"title":{},"name":{},"text":{"31":{},"53":{},"55":{},"67":{},"71":{},"73":{},"74":{}},"component":{},"keyword":{}}],["trailers.put(\"cont",{"_index":7321,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["trailerssuppli",{"_index":7298,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["transact",{"_index":2015,"title":{},"name":{},"text":{"23":{},"31":{},"39":{},"77":{}},"component":{},"keyword":{}}],["transaction",{"_index":4404,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["transfer",{"_index":2967,"title":{},"name":{},"text":{"31":{},"41":{}},"component":{},"keyword":{}}],["transform",{"_index":7906,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["transient",{"_index":4428,"title":{},"name":{},"text":{"41":{},"46":{},"71":{}},"component":{},"keyword":{}}],["transit",{"_index":1629,"title":{},"name":{},"text":{"20":{},"24":{},"30":{},"31":{},"34":{},"35":{},"39":{},"41":{},"71":{},"79":{}},"component":{},"keyword":{}}],["translat",{"_index":8103,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["transmit",{"_index":5519,"title":{},"name":{},"text":{"51":{},"77":{}},"component":{},"keyword":{}}],["transpar",{"_index":3930,"title":{},"name":{},"text":{"35":{},"51":{},"71":{}},"component":{},"keyword":{}}],["transport",{"_index":3203,"title":{"51-14":{},"51-31":{},"51-32":{},"51-33":{},"51-34":{},"51-35":{},"51-36":{},"57-1":{}},"name":{},"text":{"31":{},"35":{},"45":{},"51":{},"53":{},"55":{},"56":{},"57":{},"58":{},"63":{},"67":{},"71":{}},"component":{},"keyword":{}}],["transport(new",{"_index":5636,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["transport(transport",{"_index":5645,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["transport.setheadercachesize(16384",{"_index":5831,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["transport.tcp_ip",{"_index":6196,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["transport.tcpunix",{"_index":6197,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["transport.tcpunix(unixdomainpath",{"_index":5637,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["treat",{"_index":1054,"title":{},"name":{},"text":{"8":{},"46":{},"70":{},"71":{}},"component":{},"keyword":{}}],["tree",{"_index":1372,"title":{"78-1":{}},"name":{},"text":{"15":{},"29":{},"31":{},"34":{},"45":{},"47":{},"48":{},"49":{},"63":{},"69":{},"71":{},"78":{},"81":{},"83":{}},"component":{},"keyword":{}}],["tri",{"_index":1070,"title":{},"name":{},"text":{"8":{},"10":{},"20":{},"28":{},"31":{},"35":{},"38":{},"39":{},"41":{},"43":{},"46":{},"48":{},"51":{},"52":{},"55":{},"57":{},"58":{},"64":{},"67":{},"71":{},"74":{},"75":{},"77":{},"79":{}},"component":{},"keyword":{}}],["triag",{"_index":209,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["trial",{"_index":3375,"title":{},"name":{},"text":{"32":{},"52":{}},"component":{},"keyword":{}}],["tricki",{"_index":6401,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["trigger",{"_index":2318,"title":{},"name":{},"text":{"28":{},"51":{},"53":{},"62":{},"71":{},"77":{}},"component":{},"keyword":{}}],["trim",{"_index":2342,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["trimdirectivewhitespac",{"_index":2340,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["trimspac",{"_index":2336,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["trip",{"_index":5744,"title":{},"name":{},"text":{"51":{},"58":{},"71":{}},"component":{},"keyword":{}}],["trivial",{"_index":6811,"title":{},"name":{},"text":{"63":{},"77":{}},"component":{},"keyword":{}}],["troubleshoot",{"_index":47,"title":{"45":{},"82":{},"45-8":{}},"name":{},"text":{"1":{},"24":{},"25":{},"31":{},"34":{},"45":{},"47":{},"48":{},"53":{},"58":{},"71":{},"83":{}},"component":{},"keyword":{}}],["troubleshot",{"_index":4832,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["true",{"_index":1373,"title":{},"name":{},"text":{"15":{},"19":{},"22":{},"23":{},"28":{},"31":{},"34":{},"35":{},"36":{},"39":{},"41":{},"44":{},"45":{},"46":{},"48":{},"51":{},"53":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"67":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{},"81":{}},"component":{},"keyword":{}}],["truli",{"_index":7710,"title":{},"name":{},"text":{"71":{},"77":{}},"component":{},"keyword":{}}],["truncat",{"_index":6432,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["trust",{"_index":2223,"title":{},"name":{},"text":{"24":{},"31":{},"33":{},"35":{},"48":{},"71":{}},"component":{},"keyword":{}}],["trustcacert",{"_index":3421,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["trustmanagerfactori",{"_index":3255,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["truststor",{"_index":2221,"title":{"51-20":{}},"name":{},"text":{"24":{},"31":{},"42":{},"51":{},"71":{}},"component":{},"keyword":{}}],["tryexecutor",{"_index":5910,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["tune",{"_index":2176,"title":{},"name":{},"text":{"24":{},"31":{},"39":{},"48":{},"52":{},"71":{}},"component":{},"keyword":{}}],["tune.ssl.default",{"_index":3905,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["tunnel",{"_index":2132,"title":{"24-3":{},"48-5":{}},"name":{},"text":{"24":{},"35":{},"48":{},"51":{},"71":{}},"component":{},"keyword":{}}],["tupl",{"_index":5376,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["turn",{"_index":1440,"title":{},"name":{},"text":{"18":{},"24":{},"32":{},"34":{},"46":{},"51":{},"58":{},"62":{},"71":{},"79":{},"81":{}},"component":{},"keyword":{}}],["turnaround",{"_index":7534,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["tutori",{"_index":6444,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["twice",{"_index":1850,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["two",{"_index":708,"title":{},"name":{},"text":{"4":{},"10":{},"18":{},"23":{},"24":{},"31":{},"34":{},"35":{},"36":{},"39":{},"41":{},"42":{},"43":{},"45":{},"46":{},"48":{},"50":{},"51":{},"52":{},"53":{},"55":{},"56":{},"57":{},"58":{},"62":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["two.net",{"_index":3844,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["type",{"_index":1072,"title":{"44-15":{}},"name":{},"text":{"8":{},"15":{},"22":{},"23":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"39":{},"41":{},"44":{},"46":{},"47":{},"48":{},"50":{},"51":{},"58":{},"62":{},"64":{},"67":{},"69":{},"71":{},"75":{},"77":{},"81":{}},"component":{},"keyword":{}}],["type=\"boolean\">true</arg",{"_index":2025,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["type=\"double\">1.0d</item",{"_index":4785,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["type=\"hidden",{"_index":6952,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["type=\"int",{"_index":2423,"title":{},"name":{},"text":{"30":{},"44":{}},"component":{},"keyword":{}}],["type=\"int\">0</arg",{"_index":4746,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["type=\"int\">16</arg",{"_index":4742,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["type=\"int\">256</set",{"_index":4813,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["type=\"int\">8080</arg",{"_index":4736,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["type=\"integ",{"_index":4804,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["type=\"java.lang.integ",{"_index":4805,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["type=\"java.lang.integer\">4000</arg",{"_index":2024,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["type=\"java.lang.object",{"_index":4782,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["type=\"java.lang.str",{"_index":1946,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["type=\"str",{"_index":3822,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["type=\"string\"></item",{"_index":4784,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["type=\"string\"><item>bugs.acme.org</item></array",{"_index":1784,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["type=\"string\"><item>docs.project.org</item></array",{"_index":1801,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["type=\"string\">a",{"_index":4093,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["type=\"string\">httpservlet</arg",{"_index":4081,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["type=\"string\">org.eclipse.jetty.ee11.security.jaspi.provider.jaspiauthconfigprovider</arg",{"_index":4073,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["type=\"string\">serv",{"_index":4090,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["type=address",{"_index":4289,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["type=uri",{"_index":4292,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["type>javax.jms.connectionfactory</r",{"_index":2071,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["type>javax.sql.datasource</r",{"_index":2056,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["type>war</typ",{"_index":6754,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["typic",{"_index":1090,"title":{},"name":{},"text":{"8":{},"18":{},"20":{},"22":{},"24":{},"29":{},"30":{},"33":{},"34":{},"35":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"63":{},"64":{},"67":{},"69":{},"71":{},"73":{},"74":{},"75":{},"76":{},"79":{},"81":{}},"component":{},"keyword":{}}],["u",{"_index":3062,"title":{},"name":{},"text":{"31":{},"34":{},"51":{}},"component":{},"keyword":{}}],["ubuntu",{"_index":5430,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["udp",{"_index":3797,"title":{},"name":{},"text":{"35":{},"46":{},"57":{},"71":{}},"component":{},"keyword":{}}],["ulimit",{"_index":873,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["un",{"_index":4406,"title":{},"name":{},"text":{"39":{},"64":{}},"component":{},"keyword":{}}],["unabl",{"_index":8152,"title":{},"name":{},"text":{"71":{},"77":{}},"component":{},"keyword":{}}],["unaccept",{"_index":4975,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["unassembl",{"_index":6547,"title":{},"name":{},"text":{"60":{},"62":{}},"component":{},"keyword":{}}],["unauthent",{"_index":3998,"title":{},"name":{},"text":{"36":{},"64":{}},"component":{},"keyword":{}}],["unauthor",{"_index":3116,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["unbound",{"_index":2547,"title":{},"name":{},"text":{"31":{},"52":{},"58":{}},"component":{},"keyword":{}}],["uncertain",{"_index":3362,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["unchang",{"_index":1463,"title":{},"name":{},"text":{"18":{},"28":{},"67":{}},"component":{},"keyword":{}}],["uncheck",{"_index":5369,"title":{},"name":{},"text":{"51":{},"58":{}},"component":{},"keyword":{}}],["uncom",{"_index":1674,"title":{},"name":{},"text":{"20":{},"22":{},"30":{},"31":{},"39":{},"41":{}},"component":{},"keyword":{}}],["uncompress",{"_index":1974,"title":{},"name":{},"text":{"22":{},"71":{}},"component":{},"keyword":{}}],["uncondition",{"_index":2431,"title":{},"name":{},"text":{"30":{},"41":{},"71":{}},"component":{},"keyword":{}}],["unconfigur",{"_index":6915,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["uncongest",{"_index":4885,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["unconnect",{"_index":4863,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["uncov",{"_index":6865,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["undefin",{"_index":8054,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["undeploy",{"_index":1835,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["under",{"_index":1114,"title":{},"name":{},"text":{"8":{},"14":{},"22":{},"23":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"41":{},"44":{},"45":{},"58":{},"69":{},"71":{},"79":{},"81":{}},"component":{},"keyword":{}}],["underli",{"_index":2854,"title":{},"name":{},"text":{"31":{},"35":{},"36":{},"46":{},"55":{},"66":{},"74":{}},"component":{},"keyword":{}}],["underscor",{"_index":1263,"title":{},"name":{},"text":{"13":{},"39":{},"77":{}},"component":{},"keyword":{}}],["understand",{"_index":1042,"title":{},"name":{},"text":{"8":{},"32":{},"35":{},"51":{},"57":{},"71":{},"77":{},"84":{}},"component":{},"keyword":{}}],["understood",{"_index":5817,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["underw",{"_index":7061,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["undesir",{"_index":2536,"title":{},"name":{},"text":{"31":{},"39":{}},"component":{},"keyword":{}}],["unencrypt",{"_index":7659,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["unexpect",{"_index":1320,"title":{},"name":{},"text":{"13":{},"22":{},"58":{},"71":{}},"component":{},"keyword":{}}],["unfortun",{"_index":2147,"title":{},"name":{},"text":{"24":{},"33":{},"48":{},"56":{},"70":{},"71":{}},"component":{},"keyword":{}}],["unilater",{"_index":5984,"title":{},"name":{},"text":{"53":{},"55":{},"74":{}},"component":{},"keyword":{}}],["uniqu",{"_index":1128,"title":{},"name":{},"text":{"8":{},"23":{},"24":{},"30":{},"31":{},"39":{},"44":{},"77":{}},"component":{},"keyword":{}}],["unit",{"_index":1382,"title":{},"name":{},"text":{"15":{},"22":{},"31":{},"71":{}},"component":{},"keyword":{}}],["unit}t",{"_index":3111,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["univers",{"_index":7473,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["unix",{"_index":1935,"title":{"57-2":{}},"name":{},"text":{"22":{},"35":{},"46":{},"51":{},"57":{},"71":{},"75":{}},"component":{},"keyword":{}}],["unix/window",{"_index":1475,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["unixdomain",{"_index":7093,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}
1],["unixdomainpath",{"_index":5619,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["unixdomainserverconnector",{"_index":1936,"title":{},"name":{},"text":{"22":{},"46":{},"51":{},"71":{},"75":{}},"component":{},"keyword":{}}],["unixdomainserverconnector(serv",{"_index":7587,"title":{},"name":{},"text":{"71":{},"75":{}},"component":{},"keyword":{}}],["unixsocket",{"_index":7092,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["unknown",{"_index":5065,"title":{},"name":{},"text":{"46":{},"48":{},"63":{}},"component":{},"keyword":{}}],["unless",{"_index":1733,"title":{},"name":{},"text":{"22":{},"41":{},"45":{},"46":{},"48":{},"51":{},"52":{},"55":{},"63":{},"71":{},"74":{},"75":{},"77":{}},"component":{},"keyword":{}}],["unlik",{"_index":3133,"title":{},"name":{},"text":{"31":{},"39":{},"50":{}},"component":{},"keyword":{}}],["unlimit",{"_index":2551,"title":{},"name":{},"text":{"31":{},"52":{}},"component":{},"keyword":{}}],["unload",{"_index":2311,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["unmanag",{"_index":1348,"title":{},"name":{},"text":{"15":{},"47":{},"81":{}},"component":{},"keyword":{}}],["unmodifi",{"_index":3812,"title":{},"name":{},"text":{"35":{},"71":{}},"component":{},"keyword":{}}],["unmount",{"_index":3334,"title":{},"name":{},"text":{"31":{},"52":{}},"component":{},"keyword":{}}],["unnam",{"_index":5529,"title":{},"name":{},"text":{"51":{},"55":{},"71":{},"74":{}},"component":{},"keyword":{}}],["unnecessari",{"_index":2842,"title":{},"name":{},"text":{"31":{},"58":{}},"component":{},"keyword":{}}],["unnot",{"_index":4702,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["unpack",{"_index":1602,"title":{},"name":{},"text":{"20":{},"22":{},"32":{},"60":{},"62":{}},"component":{},"keyword":{}}],["unread",{"_index":4116,"title":{"39-47":{}},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["unrecogn",{"_index":3617,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["unregist",{"_index":5157,"title":{},"name":{},"text":{"47":{},"48":{}},"component":{},"keyword":{}}],["unrel",{"_index":5015,"title":{},"name":{},"text":{"46":{},"51":{},"52":{}},"component":{},"keyword":{}}],["unrespons",{"_index":5971,"title":{},"name":{},"text":{"52":{},"71":{}},"component":{},"keyword":{}}],["unsaf",{"_index":2922,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["unsecur",{"_index":4636,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["unset",{"_index":8492,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["unspecifi",{"_index":1864,"title":{},"name":{},"text":{"22":{},"31":{}},"component":{},"keyword":{}}],["unsupport",{"_index":271,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["unsur",{"_index":1184,"title":{},"name":{},"text":{"10":{}},"component":{},"keyword":{}}],["until",{"_index":2679,"title":{},"name":{},"text":{"31":{},"35":{},"39":{},"41":{},"46":{},"48":{},"51":{},"53":{},"55":{},"58":{},"62":{},"67":{},"71":{},"73":{},"74":{},"77":{}},"component":{},"keyword":{}}],["untouch",{"_index":4328,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["untrack",{"_index":2703,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["unus",{"_index":5950,"title":{},"name":{},"text":{"52":{},"77":{}},"component":{},"keyword":{}}],["unwant",{"_index":4288,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["unwrap",{"_index":6065,"title":{},"name":{},"text":{"53":{},"57":{},"73":{}},"component":{},"keyword":{}}],["up",{"_index":861,"title":{"62-1":{},"79-3":{},"79-8":{},"79-13":{}},"name":{},"text":{"7":{},"8":{},"9":{},"10":{},"18":{},"19":{},"20":{},"23":{},"24":{},"31":{},"36":{},"38":{},"39":{},"43":{},"45":{},"46":{},"48":{},"51":{},"52":{},"53":{},"57":{},"59":{},"62":{},"63":{},"65":{},"69":{},"70":{},"71":{},"73":{},"77":{},"79":{}},"component":{},"keyword":{}}],["updat",{"_index":153,"title":{},"name":{},"text":{"1":{},"4":{},"6":{},"8":{},"12":{},"22":{},"29":{},"31":{},"36":{},"39":{},"41":{},"67":{},"70":{},"71":{},"77":{},"81":{}},"component":{},"keyword":{}}],["updates=0",{"_index":8916,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["upgrad",{"_index":1455,"title":{"79-5":{}},"name":{},"text":{"18":{},"31":{},"35":{},"51":{},"58":{},"70":{},"71":{},"79":{}},"component":{},"keyword":{}}],["upgradedrespons",{"_index":5867,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["upgraderequest",{"_index":8691,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["upgraderespons",{"_index":8692,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["upgraderesponse.setacceptedsubprotocol(\"mi",{"_index":8695,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["upload",{"_index":2717,"title":{},"name":{},"text":{"31":{},"39":{},"51":{},"58":{},"70":{},"71":{},"77":{}},"component":{},"keyword":{}}],["upon",{"_index":1195,"title":{},"name":{},"text":{"10":{},"39":{},"48":{},"51":{},"64":{},"73":{},"74":{}},"component":{},"keyword":{}}],["upper",{"_index":4825,"title":{},"name":{},"text":{"45":{},"52":{}},"component":{},"keyword":{}}],["uri",{"_index":1432,"title":{"70-2":{},"70-3":{}},"name":{},"text":{"18":{},"22":{},"30":{},"31":{},"34":{},"35":{},"39":{},"41":{},"51":{},"53":{},"55":{},"58":{},"63":{},"65":{},"70":{},"71":{},"73":{},"74":{},"75":{},"79":{}},"component":{},"keyword":{}}],["uri(\"http://domain.com/secur",{"_index":5807,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["uri(\"http://mydomain.com/secur",{"_index":5758,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["uri(\"http://otherdomain.com/admin",{"_index":5764,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["uri(\"http://proxy.net:8080",{"_index":5801,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["uri.create(\"http://domain.com",{"_index":5713,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["uri.create(\"http://domain.com/secur",{"_index":5772,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["uri.create(\"ws://domain.com/path",{"_index":6283,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["uri.create(\"wss://domain.com/path",{"_index":6288,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["uri.gethost().endswith(\"google.com",{"_index":5721,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["uri1",{"_index":5757,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["uri2",{"_index":5763,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["uricompli",{"_index":2946,"title":{},"name":{},"text":{"31":{},"70":{}},"component":{},"keyword":{}}],["uricompliance.default",{"_index":7491,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["uricompliance.from(\"rfc3986",{"_index":7495,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["uricompliance.from(str",{"_index":2947,"title":{},"name":{},"text":{"31":{},"70":{}},"component":{},"keyword":{}}],["uricompliance.rfc3986",{"_index":2953,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["uricompliance.viol",{"_index":7490,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["uricompliance.violation.ambiguous_path_separ",{"_index":2950,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["uricompliance=default",{"_index":8899,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["uritemplatepathspec",{"_index":8748,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["uritemplatepathspec)upgraderequest.getattribute(pathspec.class.getnam",{"_index":8749,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["url",{"_index":1123,"title":{},"name":{},"text":{"8":{},"28":{},"30":{},"31":{},"36":{},"39":{},"40":{},"41":{},"51":{},"59":{},"62":{},"67":{},"70":{},"71":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["urlclassload",{"_index":4558,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["urlencod",{"_index":6933,"title":{},"name":{},"text":{"64":{},"71":{}},"component":{},"keyword":{}}],["urlencoder.encode(\"bar;baz",{"_index":5739,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["us",{"_index":11,"title":{"43":{},"59":{},"62":{},"2-1":{},"35-11":{},"35-20":{},"35-21":{},"58-4":{},"58-5":{},"59-1":{},"62-21":{},"62-25":{},"71-22":{},"71-23":{},"71-60":{},"71-65":{},"71-68":{},"79-10":{},"79-11":{},"79-12":{},"79-14":{},"79-15":{}},"name":{},"text":{"1":{},"2":{},"4":{},"5":{},"7":{},"8":{},"9":{},"10":{},"13":{},"14":{},"15":{},"17":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"26":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"69":{},"70":{},"71":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"81":{},"84":{}},"component":{},"keyword":{}}],["usabl",{"_index":4616,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["usag",{"_index":350,"title":{"41-19":{},"51-8":{},"64-3":{},"65-4":{}},"name":{},"text":{"2":{},"8":{},"20":{},"28":{},"31":{},"35":{},"39":{},"41":{},"42":{},"45":{},"46":{},"51":{},"52":{},"58":{},"66":{},"67":{},"71":{},"81":{},"83":{}},"component":{},"keyword":{}}],["use=0/0,pooled/acquires/releases=0/0/0(nan%),avgsize=0,non",{"_index":8802,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["usebean",{"_index":2295,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["useinputdirectbytebuffers=tru",{"_index":8894,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["useldaps=\"tru",{"_index":4023,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["useoutputdirectbytebuffers=tru",{"_index":8895,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["useprovidedscop",{"_index":6542,"title":{},"name":{},"text":{"60":{},"62":{}},"component":{},"keyword":{}}],["user",{"_index":28,"title":{"4-6":{}},"name":{},"text":{"1":{},"2":{},"4":{},"6":{},"13":{},"18":{},"20":{},"24":{},"30":{},"31":{},"34":{},"35":{},"36":{},"39":{},"40":{},"41":{},"42":{},"48":{},"50":{},"51":{},"53":{},"55":{},"59":{},"62":{},"63":{},"64":{},"65":{},"66":{},"71":{},"77":{}},"component":{},"keyword":{}}],["user.countri",{"_index":4468,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["user.dir",{"_index":4465,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["user.email",{"_index":1185,"title":{},"name":{},"text":{"10":{}},"component":{},"keyword":{}}],["user.languag",{"_index":4466,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["user1",{"_index":5188,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["user2",{"_index":5189,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["user>:<password>,<rol",{"_index":6834,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["user>@<machine_host",{"_index":2185,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["userbasedn=\"ou=people,dc=alcatel",{"_index":4024,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["userfield",{"_index":3993,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["userfield=\"myus",{"_index":3985,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["useridattribute=\"cn",{"_index":4026,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["userident",{"_index":4095,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["usernam",{"_index":2087,"title":{},"name":{},"text":{"23":{},"24":{},"31":{},"36":{},"38":{},"39":{},"42":{},"51":{}},"component":{},"keyword":{}}],["username/password",{"_index":2199,"title":{},"name":{},"text":{"24":{},"51":{}},"component":{},"keyword":{}}],["username1",{"_index":5762,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["userobjectclass=\"inetorgperson",{"_index":4028,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["userpasswordattribute=\"userpassword",{"_index":4027,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["userprincip",{"_index":7029,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["userrdnattribute=\"uid",{"_index":4025,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["userrolerolefield",{"_index":3994,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["userrolerolefield=\"myrol",{"_index":3989,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["userrolet",{"_index":3995,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["userroletable=\"myuserrol",{"_index":3987,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["userroleuserfield",{"_index":3996,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["userroleuserfield=\"myus",{"_index":3988,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["users.access",{"_index":5186,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["users.password",{"_index":5190,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["userstor",{"_index":7010,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["userstore.adduser(\"<admin",{"_index":7011,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["usert",{"_index":3992,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["usertable=\"myus",{"_index":3984,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["usertransact",{"_index":2109,"title":{},"name":{},"text":{"23":{},"43":{}},"component":{},"keyword":{}}],["userâ",{"_index":735,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["usetestscop",{"_index":6685,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["usual",{"_index":1762,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"28":{},"31":{},"32":{},"34":{},"35":{},"39":{},"42":{},"48":{},"51":{},"60":{},"62":{},"77":{}},"component":{},"keyword":{}}],["us}t",{"_index":3113,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["utc",{"_index":3481,"title":{},"name":{},"text":{"34":{},"81":{}},"component":{},"keyword":{}}],["utf",{"_index":3719,"title":{},"name":{},"text":{"35":{},"51":{},"58":{},"67":{}},"component":{},"keyword":{}}],["utf8",{"_index":2308,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["utf8stringbuild",{"_index":5043,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["utf_8",{"_index":7166,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["utf_8.encode(\"hello",{"_index":7314,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{},"keyword":{}}
1],["util",{"_index":4053,"title":{},"name":{},"text":{"38":{},"39":{},"41":{},"42":{},"50":{},"51":{},"58":{},"62":{},"67":{},"71":{},"81":{}},"component":{},"keyword":{}}],["util.jar",{"_index":1768,"title":{},"name":{},"text":{"22":{},"29":{},"69":{}},"component":{},"keyword":{}}],["utilis",{"_index":4076,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["v",{"_index":1116,"title":{},"name":{},"text":{"8":{},"33":{}},"component":{},"keyword":{}}],["v1",{"_index":3870,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["v2",{"_index":1338,"title":{},"name":{},"text":{"14":{},"35":{}},"component":{},"keyword":{}}],["v3",{"_index":288,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["v4_0_0.xsd",{"_index":6472,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["valid",{"_index":1211,"title":{},"name":{},"text":{"10":{},"24":{},"28":{},"30":{},"31":{},"32":{},"33":{},"35":{},"48":{},"51":{},"62":{},"63":{},"64":{},"70":{},"77":{},"79":{}},"component":{},"keyword":{}}],["validatedrespons",{"_index":5651,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["validation=<modulename>(,<modulenam",{"_index":4646,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["valu",{"_index":870,"title":{},"name":{},"text":{"7":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"26":{},"28":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"41":{},"44":{},"45":{},"48":{},"50":{},"51":{},"52":{},"58":{},"60":{},"62":{},"64":{},"67":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["valuabl",{"_index":5168,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["value>${project.baseuri}/resources/logback.xml</valu",{"_index":6800,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["value>/error</param",{"_index":4415,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["value>1048576</param",{"_index":8677,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["value>192.168.0.13</param",{"_index":1993,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["value>false</param",{"_index":3736,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["value>true</param",{"_index":2263,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["valueâ",{"_index":3872,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["var",{"_index":4734,"title":{},"name":{},"text":{"44":{},"51":{}},"component":{},"keyword":{}}],["var/www/wordpress",{"_index":3751,"title":{},"name":{},"text":{"35":{},"51":{}},"component":{},"keyword":{}}],["varchar",{"_index":4249,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["vari",{"_index":4692,"title":{},"name":{},"text":{"42":{},"49":{},"70":{},"71":{}},"component":{},"keyword":{}}],["variabl",{"_index":3094,"title":{},"name":{},"text":{"31":{},"35":{},"39":{},"41":{},"42":{},"44":{},"77":{}},"component":{},"keyword":{}}],["variant",{"_index":1920,"title":{},"name":{},"text":{"22":{},"79":{}},"component":{},"keyword":{}}],["variat",{"_index":1217,"title":{},"name":{},"text":{"10":{}},"component":{},"keyword":{}}],["varieti",{"_index":215,"title":{},"name":{},"text":{"2":{},"41":{}},"component":{},"keyword":{}}],["variou",{"_index":907,"title":{},"name":{},"text":{"7":{},"15":{},"17":{},"39":{},"41":{},"47":{},"51":{},"58":{},"62":{},"67":{},"77":{},"84":{}},"component":{},"keyword":{}}],["various",{"_index":1047,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["varnam",{"_index":3091,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["varname}",{"_index":3093,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["varname}c",{"_index":3090,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["varname}i",{"_index":3097,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["varname}o",{"_index":3100,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["varname}ti",{"_index":3118,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["varname}to",{"_index":3120,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["vast",{"_index":5976,"title":{},"name":{},"text":{"53":{},"55":{},"73":{},"74":{}},"component":{},"keyword":{}}],["vastli",{"_index":7356,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["vector",{"_index":4043,"title":{},"name":{},"text":{"37":{},"61":{}},"component":{},"keyword":{}}],["vendor",{"_index":3834,"title":{},"name":{},"text":{"35":{},"39":{},"71":{},"77":{}},"component":{},"keyword":{}}],["vener",{"_index":298,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["ventil",{"_index":937,"title":{"8-8":{}},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["ver>.jar",{"_index":923,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["ver>.tar.gz",{"_index":919,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["verbos",{"_index":1304,"title":{},"name":{},"text":{"13":{},"33":{},"84":{}},"component":{},"keyword":{}}],["veri",{"_index":1291,"title":{},"name":{},"text":{"13":{},"19":{},"24":{},"31":{},"39":{},"44":{},"45":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"61":{},"62":{},"71":{},"73":{},"74":{},"75":{},"77":{},"79":{},"81":{},"84":{}},"component":{},"keyword":{}}],["verif",{"_index":6814,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["verifi",{"_index":1174,"title":{},"name":{},"text":{"9":{},"18":{},"31":{},"33":{},"35":{},"39":{},"41":{},"42":{},"45":{},"51":{},"63":{},"64":{},"71":{},"73":{},"77":{},"79":{}},"component":{},"keyword":{}}],["versa",{"_index":3755,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["versatil",{"_index":121,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["version",{"_index":170,"title":{"2-1":{},"2-2":{},"2-3":{},"8-9":{},"8-10":{},"8-11":{},"12-2":{},"30-19":{},"35-16":{},"67-1":{},"68-1":{}},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"7":{},"8":{},"14":{},"18":{},"19":{},"20":{},"30":{},"31":{},"35":{},"36":{},"38":{},"39":{},"41":{},"43":{},"44":{},"48":{},"51":{},"52":{},"55":{},"57":{},"58":{},"60":{},"62":{},"67":{},"70":{},"71":{},"74":{},"75":{},"76":{},"77":{},"79":{}},"component":{},"keyword":{}}],["version(httpversion.http_1_1",{"_index":5862,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["version(httpversion.http_2",{"_index":5864,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["version(httpversion.http_3",{"_index":5866,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["version.txt",{"_index":197,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["version=\"1.0",{"_index":1509,"title":{},"name":{},"text":{"19":{},"22":{},"26":{},"29":{},"30":{},"31":{},"35":{},"36":{},"38":{},"40":{},"44":{},"59":{},"79":{}},"component":{},"keyword":{}}],["version=\"5.0",{"_index":8668,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["version=\"6.0",{"_index":3734,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["version=\"6.1",{"_index":1987,"title":{},"name":{},"text":{"22":{},"40":{},"59":{}},"component":{},"keyword":{}}],["version=1",{"_index":5728,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["version=42.6.0",{"_index":4434,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["version=undefin",{"_index":1623,"title":{},"name":{},"text":{"20":{},"34":{},"35":{},"41":{},"45":{},"81":{}},"component":{},"keyword":{}}],["version>${jettyversion}</vers",{"_index":6484,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["version>.<ext",{"_index":1599,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["version>.jar",{"_index":2471,"title":{},"name":{},"text":{"30":{},"34":{},"41":{},"43":{}},"component":{},"keyword":{}}],["version>0.1",{"_index":6477,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["version>12.1.13</vers",{"_index":5167,"title":{},"name":{},"text":{"48":{},"50":{},"51":{},"53":{},"55":{},"58":{},"60":{},"62":{},"69":{},"71":{},"73":{},"74":{},"79":{}},"component":{},"keyword":{}}],["version>2.2.0</vers",{"_index":8642,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["version>6.0.0</vers",{"_index":6519,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["version?=42.6.0",{"_index":2475,"title":{},"name":{},"text":{"30":{},"41":{}},"component":{},"keyword":{}}],["versions.txt",{"_index":1194,"title":{},"name":{},"text":{"10":{}},"component":{},"keyword":{}}],["version}.jar",{"_index":2462,"title":{},"name":{},"text":{"30":{},"41":{}},"component":{},"keyword":{}}],["version}|lib/postgresql",{"_index":2460,"title":{},"name":{},"text":{"30":{},"41":{}},"component":{},"keyword":{}}],["versu",{"_index":8095,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["vhost",{"_index":4366,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["via",{"_index":389,"title":{"24-3":{},"48-5":{},"75-3":{},"81-2":{}},"name":{},"text":{"3":{},"6":{},"7":{},"8":{},"11":{},"20":{},"22":{},"23":{},"24":{},"27":{},"28":{},"29":{},"30":{},"31":{},"34":{},"35":{},"36":{},"37":{},"39":{},"41":{},"44":{},"45":{},"46":{},"47":{},"48":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"61":{},"62":{},"64":{},"67":{},"69":{},"70":{},"71":{},"73":{},"74":{},"75":{},"76":{},"77":{},"79":{},"80":{},"81":{}},"component":{},"keyword":{}}],["viabl",{"_index":8309,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["vibrant",{"_index":106,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["vice",{"_index":3754,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["view",{"_index":872,"title":{},"name":{},"text":{"7":{},"8":{},"42":{},"58":{},"71":{}},"component":{},"keyword":{}}],["violat",{"_index":2911,"title":{},"name":{},"text":{"31":{},"51":{},"70":{},"71":{}},"component":{},"keyword":{}}],["violation.ambiguous_path_separ",{"_index":7493,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["violation.multiple_content_length",{"_index":7469,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["violation.reserved_names_not_dollar_prefix",{"_index":7507,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["virtual",{"_index":840,"title":{"22-20":{},"22-21":{},"22-22":{},"22-23":{},"31-55":{},"31-56":{},"31-57":{},"34-13":{},"52-9":{},"52-10":{},"52-11":{},"52-12":{},"52-13":{}},"name":{},"text":{"7":{},"20":{},"21":{},"22":{},"25":{},"30":{},"31":{},"33":{},"34":{},"35":{},"39":{},"45":{},"48":{},"52":{},"58":{},"62":{},"67":{},"71":{},"77":{},"83":{}},"component":{},"keyword":{}}],["virtual,http",{"_index":3548,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["virtual.ini",{"_index":3549,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["virtual_host",{"_index":7720,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["virtualexecutor",{"_index":5958,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["virtualexecutor.setmaxconcurrenttasks(128",{"_index":5959,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["virtualhost",{"_index":4211,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["virtualthreadpool",{"_index":5874,"title":{"52-11":{}},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["visibl",{"_index":2124,"title":{},"name":{},"text":{"23":{},"39":{},"44":{},"67":{},"77":{}},"component":{},"keyword":{}}],["visit",{"_index":8943,"title":{},"name":{},"text":{"81":{}},"component":{},"keyword":{}}],["visual",{"_index":1147,"title":{},"name":{},"text":{"8":{},"48":{}},"component":{},"keyword":{}}
1],["vm",{"_index":2279,"title":{},"name":{},"text":{"28":{},"41":{},"81":{}},"component":{},"keyword":{}}],["vmarg",{"_index":2227,"title":{},"name":{},"text":{"24":{},"48":{}},"component":{},"keyword":{}}],["void",{"_index":1273,"title":{},"name":{},"text":{"13":{},"44":{},"46":{},"47":{},"48":{},"50":{},"51":{},"53":{},"55":{},"56":{},"57":{},"58":{},"59":{},"67":{},"68":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["vs",{"_index":1730,"title":{"22-8":{},"35-4":{},"62-8":{}},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["vulner",{"_index":1428,"title":{},"name":{},"text":{"17":{},"35":{},"71":{}},"component":{},"keyword":{}}],["w3c",{"_index":7455,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["wait",{"_index":1553,"title":{},"name":{},"text":{"19":{},"31":{},"33":{},"41":{},"46":{},"51":{},"52":{},"57":{},"58":{},"62":{},"66":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["wait/notifi",{"_index":5482,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["wake",{"_index":2681,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["walk",{"_index":1401,"title":{},"name":{},"text":{"17":{},"71":{}},"component":{},"keyword":{}}],["wallet",{"_index":6943,"title":{},"name":{},"text":{"64":{},"66":{}},"component":{},"keyword":{}}],["want",{"_index":761,"title":{"6-4":{}},"name":{},"text":{"4":{},"6":{},"8":{},"10":{},"13":{},"14":{},"16":{},"17":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"26":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"39":{},"41":{},"42":{},"44":{},"45":{},"46":{},"48":{},"51":{},"52":{},"53":{},"55":{},"56":{},"57":{},"58":{},"62":{},"64":{},"69":{},"70":{},"71":{},"73":{},"74":{},"75":{},"76":{},"77":{},"79":{},"84":{}},"component":{},"keyword":{}}],["wanted](https://github.com/jetty/jetty.project/issues?q=is%3aopen+is%3aissue+label%3a%22help+wanted%22",{"_index":168,"title":{},"name":{},"text":{"1":{},"10":{}},"component":{},"keyword":{}}],["war",{"_index":1392,"title":{"20-6":{},"22-25":{},"59-9":{},"60-3":{},"62-11":{},"62-15":{},"62-21":{},"62-22":{},"62-23":{}},"name":{},"text":{"15":{},"17":{},"20":{},"22":{},"31":{},"32":{},"35":{},"59":{},"60":{},"62":{},"69":{},"71":{}},"component":{},"keyword":{}}],["war.out",{"_index":6725,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["war>${project.basedir}../../b.war</war",{"_index":6781,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["war>${project.basedir}../../c.war</war",{"_index":6783,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["warn",{"_index":1008,"title":{},"name":{},"text":{"8":{},"31":{},"34":{},"35":{},"45":{},"51":{},"55":{},"71":{},"74":{},"77":{}},"component":{},"keyword":{}}],["warsourcedirectory>target/foo</warsourcedirectori",{"_index":6578,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["wast",{"_index":1449,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["watch",{"_index":2669,"title":{"35-19":{}},"name":{},"text":{"31":{},"62":{}},"component":{},"keyword":{}}],["way",{"_index":395,"title":{},"name":{},"text":{"3":{},"4":{},"6":{},"8":{},"11":{},"18":{},"20":{},"22":{},"24":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"38":{},"39":{},"41":{},"44":{},"46":{},"48":{},"51":{},"52":{},"53":{},"55":{},"56":{},"57":{},"59":{},"61":{},"62":{},"63":{},"64":{},"71":{},"73":{},"74":{},"75":{},"77":{},"78":{},"79":{}},"component":{},"keyword":{}}],["weak",{"_index":3600,"title":{},"name":{},"text":{"35":{},"42":{}},"component":{},"keyword":{}}],["weather",{"_index":7843,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["web",{"_index":952,"title":{"22":{},"32":{},"69":{},"19-3":{},"20-5":{},"22-2":{},"22-3":{},"22-4":{},"22-5":{},"22-6":{},"22-7":{},"22-17":{},"22-18":{},"22-24":{},"35-11":{},"36-3":{},"37-1":{},"40-2":{},"59-5":{},"59-8":{},"61-1":{},"62-8":{},"62-19":{},"62-25":{},"62-26":{},"67-5":{},"71-60":{}},"name":{},"text":{"8":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"26":{},"27":{},"28":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"43":{},"44":{},"45":{},"47":{},"51":{},"57":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"69":{},"71":{},"77":{},"78":{},"79":{},"81":{}},"component":{},"keyword":{}}],["web.xml",{"_index":1396,"title":{"22-26":{},"40-2":{}},"name":{},"text":{"15":{},"19":{},"20":{},"22":{},"23":{},"28":{},"31":{},"32":{},"36":{},"37":{},"39":{},"40":{},"60":{},"62":{},"64":{},"69":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["web.xml,web",{"_index":6737,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["web.xml</set",{"_index":1980,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["web3.j",{"_index":6942,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["web_inf/lib",{"_index":8013,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["webapp",{"_index":926,"title":{"31-20":{}},"name":{},"text":{"7":{},"19":{},"20":{},"22":{},"30":{},"31":{},"41":{},"43":{},"59":{},"60":{},"62":{},"63":{},"67":{},"69":{},"77":{}},"component":{},"keyword":{}}],["webapp,ee11",{"_index":6640,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["webapp.getsessionhandl",{"_index":8540,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}],["webapp.mod",{"_index":7132,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["webapp.setcontextpath(\"/app",{"_index":6850,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["webapp.setsecurityhandler(securityhandl",{"_index":6861,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["webapp.setwar(\"/path/to/app.war",{"_index":6851,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["webapp.war",{"_index":8034,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["webapp.xml",{"_index":4540,"title":{},"name":{},"text":{"41":{},"69":{}},"component":{},"keyword":{}}],["webapp</artifactid",{"_index":6574,"title":{},"name":{},"text":{"60":{},"71":{}},"component":{},"keyword":{}}],["webapp</display",{"_index":8669,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["webapp</nam",{"_index":6515,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["webapp><war",{"_index":6705,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["webappa",{"_index":7711,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["webappb",{"_index":7713,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["webappclassload",{"_index":8017,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["webappcontext",{"_index":1393,"title":{"71-57":{},"71-58":{}},"name":{},"text":{"15":{},"19":{},"22":{},"26":{},"37":{},"44":{},"61":{},"62":{},"63":{},"69":{},"71":{},"77":{},"79":{}},"component":{},"keyword":{}}],["webappcontext(\"/path/to/webapp",{"_index":8647,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["webappcontext.setconfigurationdiscovered(fals",{"_index":1507,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["webappcontext.setextractwar(tru",{"_index":3377,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["webappdirectory>target/foo</webappdirectori",{"_index":6571,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["webappi",{"_index":6759,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["webapps.dir",{"_index":1881,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}
1],["webappsdir",{"_index":2674,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["webappsourcedirectori",{"_index":6531,"title":{},"name":{},"text":{"60":{},"62":{}},"component":{},"keyword":{}}],["webappx",{"_index":6756,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["webappâ",{"_index":1560,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["webdefault.xml",{"_index":2260,"title":{},"name":{},"text":{"28":{},"62":{}},"component":{},"keyword":{}}],["webfilt",{"_index":1491,"title":{},"name":{},"text":{"19":{},"62":{}},"component":{},"keyword":{}}],["webinfincludejarpattern",{"_index":6681,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["webinitparam",{"_index":1493,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["weblisten",{"_index":1492,"title":{},"name":{},"text":{"19":{},"62":{}},"component":{},"keyword":{}}],["webservlet",{"_index":1490,"title":{},"name":{},"text":{"19":{},"62":{}},"component":{},"keyword":{}}],["websit",{"_index":1775,"title":{},"name":{},"text":{"22":{},"41":{},"51":{},"71":{}},"component":{},"keyword":{}}],["websocket",{"_index":110,"title":{"58":{},"79":{},"35-8":{},"35-9":{},"35-10":{},"35-11":{},"58-8":{},"58-9":{},"58-10":{},"58-15":{},"66-13":{},"67-16":{},"68-2":{},"79-5":{},"79-7":{},"79-16":{}},"name":{"58":{},"79":{}},"text":{"1":{},"2":{},"14":{},"17":{},"18":{},"21":{},"31":{},"35":{},"46":{},"54":{},"58":{},"66":{},"67":{},"68":{},"71":{},"76":{},"78":{},"79":{}},"component":{},"keyword":{}}],["websocket(autodemand",{"_index":6309,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["websocket*listen",{"_index":7358,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["websocket.mod",{"_index":7133,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["websocketcli",{"_index":4902,"title":{"58-1":{},"58-2":{}},"name":{},"text":{"46":{},"58":{},"67":{}},"component":{},"keyword":{}}],["websocketclient(httpcli",{"_index":6279,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["websocketclient.connect",{"_index":6286,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["websocketclient.connect(clientendpoint",{"_index":6285,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["websocketclient.setmaxtextmessagesize(8",{"_index":6275,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["websocketclient.start",{"_index":6276,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["websocketcr",{"_index":7384,"title":{},"name":{},"text":{"68":{},"79":{}},"component":{},"keyword":{}}],["websockethandl",{"_index":8718,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["websocketservlet",{"_index":7381,"title":{},"name":{},"text":{"68":{}},"component":{},"keyword":{}}],["websocketupgradefilt",{"_index":8637,"title":{"79-6":{}},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["websocketupgradehandl",{"_index":8615,"title":{"78-2":{},"79-14":{}},"name":{},"text":{"78":{},"79":{}},"component":{},"keyword":{}}],["websocketupgradehandler(contain",{"_index":8731,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["websocketupgradehandler.from(serv",{"_index":8623,"title":{},"name":{},"text":{"78":{},"79":{}},"component":{},"keyword":{}}],["webtid",{"_index":684,"title":{},"name":{},"text":{"4":{},"6":{}},"component":{},"keyword":{}}],["webxml",{"_index":6533,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["webxml>${project.basedir}/target/web.xml</webxml",{"_index":6556,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["webxml>target/foo/web",{"_index":6582,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["webxml>target/web.xml</webxml",{"_index":6579,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["webxmlfrag",{"_index":6529,"title":{},"name":{},"text":{"60":{}},"component":{},"keyword":{}}],["week",{"_index":1206,"title":{},"name":{},"text":{"10":{},"71":{}},"component":{},"keyword":{}}],["weight",{"_index":8610,"title":{},"name":{},"text":{"77":{}},"component":{},"keyword":{}}
1],["welcom",{"_index":64,"title":{},"name":{},"text":{"1":{},"10":{},"11":{},"71":{}},"component":{},"keyword":{}}],["well",{"_index":811,"title":{"31-58":{}},"name":{},"text":{"6":{},"20":{},"22":{},"24":{},"31":{},"35":{},"36":{},"40":{},"41":{},"44":{},"46":{},"48":{},"49":{},"51":{},"52":{},"57":{},"58":{},"60":{},"62":{},"69":{},"71":{}},"component":{},"keyword":{}}],["went",{"_index":3851,"title":{},"name":{},"text":{"35":{},"79":{}},"component":{},"keyword":{}}],["weâv",{"_index":809,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["whatev",{"_index":6441,"title":{},"name":{},"text":{"59":{},"62":{}},"component":{},"keyword":{}}],["whatâ",{"_index":4820,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["whencomplete((ignor",{"_index":8108,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["whencomplete(biconsum",{"_index":8082,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["whenev",{"_index":1069,"title":{},"name":{},"text":{"8":{},"35":{},"39":{},"77":{}},"component":{},"keyword":{}}],["wherea",{"_index":6607,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["wherebi",{"_index":4185,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["whether",{"_index":54,"title":{},"name":{},"text":{"1":{},"13":{},"20":{},"22":{},"28":{},"31":{},"34":{},"35":{},"36":{},"39":{},"40":{},"45":{},"46":{},"48":{},"49":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"60":{},"62":{},"63":{},"65":{},"66":{},"67":{},"69":{},"71":{},"73":{},"75":{},"77":{},"78":{},"79":{},"81":{},"83":{}},"component":{},"keyword":{}}],["whichev",{"_index":3964,"title":{},"name":{},"text":{"36":{},"38":{}},"component":{},"keyword":{}}],["whilst",{"_index":3944,"title":{},"name":{},"text":{"36":{},"39":{},"46":{},"52":{}},"component":{},"keyword":{}}],["white",{"_index":7972,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["whitespac",{"_index":2337,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["whole",{"_index":2724,"title":{},"name":{},"text":{"31":{},"41":{},"46":{},"47":{},"50":{},"53":{},"58":{},"71":{},"73":{},"78":{},"81":{}},"component":{},"keyword":{}}],["wholeheartedli",{"_index":1183,"title":{},"name":{},"text":{"10":{}},"component":{},"keyword":{}}],["whose",{"_index":1201,"title":{},"name":{},"text":{"10":{},"19":{},"30":{},"31":{},"35":{},"39":{},"40":{},"43":{},"44":{},"46":{},"47":{},"49":{},"51":{},"58":{},"71":{},"77":{},"81":{}},"component":{},"keyword":{}}],["wide",{"_index":123,"title":{},"name":{},"text":{"1":{},"31":{},"50":{},"71":{}},"component":{},"keyword":{}}],["widen",{"_index":4173,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["widget",{"_index":1193,"title":{},"name":{},"text":{"10":{}},"component":{},"keyword":{}}],["wiki",{"_index":1171,"title":{},"name":{},"text":{"9":{},"44":{}},"component":{},"keyword":{}}],["wiki.contextpath",{"_index":1879,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["wiki.contextpath=/wiki",{"_index":1882,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["wiki.properti",{"_index":1870,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["wiki.war",{"_index":1874,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["wiki.xml",{"_index":1867,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["wildcard",{"_index":1576,"title":{},"name":{},"text":{"19":{},"22":{},"48":{}},"component":{},"keyword":{}}],["will",{"_index":7889,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["wind",{"_index":6651,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["window",{"_index":1598,"title":{},"name":{},"text":{"20":{},"31":{},"41":{},"53":{},"62":{},"73":{},"74":{}},"component":{},"keyword":{}}],["window.ethereum",{"_index":6962,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["window.location.host",{"_index":6968,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["window_upd",{"_index":5993,"title":{},"name":{},"text":{"53":{},"73":{}},"component":{},"keyword":{}}],["wire",{"_index":2382,"title":{},"name":{},"text":{"29":{},"35":{},"45":{},"48":{},"71":{},"77":{},"80":{}},"component":{},"keyword":{}}],["wise",{"_index":5973,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}
1],["wish",{"_index":2659,"title":{},"name":{},"text":{"31":{},"39":{},"62":{},"64":{},"65":{},"71":{}},"component":{},"keyword":{}}],["with",{"_index":2513,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["within",{"_index":959,"title":{},"name":{},"text":{"8":{},"10":{},"12":{},"13":{},"18":{},"22":{},"23":{},"24":{},"31":{},"33":{},"35":{},"38":{},"39":{},"41":{},"43":{},"44":{},"46":{},"47":{},"51":{},"53":{},"58":{},"63":{},"66":{},"71":{},"73":{},"77":{},"79":{}},"component":{},"keyword":{}}],["without",{"_index":1287,"title":{"39-46":{},"62-23":{}},"name":{},"text":{"13":{},"15":{},"17":{},"18":{},"22":{},"29":{},"30":{},"31":{},"32":{},"35":{},"36":{},"39":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"50":{},"51":{},"53":{},"58":{},"59":{},"61":{},"62":{},"63":{},"66":{},"71":{},"73":{},"77":{},"84":{}},"component":{},"keyword":{}}],["withstand",{"_index":7599,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["wonderland",{"_index":2201,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["wonât",{"_index":2376,"title":{},"name":{},"text":{"29":{},"34":{},"41":{},"52":{}},"component":{},"keyword":{}}],["word",{"_index":2346,"title":{},"name":{},"text":{"28":{},"30":{},"66":{}},"component":{},"keyword":{}}],["wordpress",{"_index":3550,"title":{"35-13":{}},"name":{},"text":{"35":{},"51":{},"54":{},"71":{}},"component":{},"keyword":{}}],["work",{"_index":128,"title":{},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"8":{},"10":{},"11":{},"12":{},"17":{},"18":{},"22":{},"24":{},"30":{},"31":{},"32":{},"33":{},"35":{},"39":{},"41":{},"44":{},"45":{},"46":{},"47":{},"48":{},"51":{},"52":{},"54":{},"55":{},"58":{},"60":{},"62":{},"64":{},"71":{},"74":{},"76":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["worker",{"_index":1389,"title":{},"name":{},"text":{"15":{},"52":{}},"component":{},"keyword":{}}],["workernam",{"_index":4145,"title":{},"name":{},"text":{"39":{},"77":{}},"component":{},"keyword":{}}],["world",{"_index":6035,"title":{"71-63":{}},"name":{},"text":{"53":{},"55":{},"59":{},"67":{},"71":{}},"component":{},"keyword":{}}],["world</artifactid",{"_index":6476,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["world</p",{"_index":6466,"title":{},"name":{},"text":{"59":{},"71":{}},"component":{},"keyword":{}}],["worri",{"_index":5579,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["wors",{"_index":3862,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["worth",{"_index":4137,"title":{},"name":{},"text":{"39":{},"41":{},"71":{}},"component":{},"keyword":{}}],["wrap",{"_index":3618,"title":{"75-2":{}},"name":{},"text":{"35":{},"38":{},"40":{},"46":{},"48":{},"51":{},"52":{},"55":{},"57":{},"58":{},"65":{},"71":{},"74":{},"75":{},"78":{}},"component":{},"keyword":{}}],["wrapper",{"_index":5174,"title":{},"name":{},"text":{"48":{},"71":{}},"component":{},"keyword":{}}],["writabl",{"_index":4883,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["write",{"_index":778,"title":{"8":{},"10-2":{},"71-69":{},"71-73":{},"75-4":{}},"name":{},"text":{"6":{},"8":{},"17":{},"29":{},"30":{},"31":{},"34":{},"39":{},"41":{},"45":{},"46":{},"48":{},"51":{},"52":{},"53":{},"54":{},"56":{},"57":{},"58":{},"59":{},"62":{},"63":{},"66":{},"67":{},"71":{},"73":{},"75":{},"76":{},"77":{},"79":{},"84":{}},"component":{},"keyword":{}}],["writecallback",{"_index":7360,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["writeline(str",{"_index":6256,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["writependingexcept",{"_index":6048,"title":{},"name":{},"text":{"53":{},"55":{},"58":{}},"component":{},"keyword":{}}],["writer",{"_index":27,"title":{},"name":{},"text":{"1":{},"6":{},"8":{},"46":{},"65":{}},"component":{},"keyword":{}}],["writer.clos",{"_index":7040,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["writer.iter",{"_index":5070,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["writer.println(\"claim",{"_index":7035,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["writer.println(\"error_descript",{"_index":7027,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["writer.println(\"nam",{"_index":7036,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["writer.println(\"sub",{"_index":7038,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["writer.println(\"userprincip",{"_index":7031,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["written",{"_index":948,"title":{},"name":{},"text":{"8":{},"22":{},"31":{},"34":{},"39":{},"46":{},"51":{},"57":{},"67":{},"71":{},"77":{}},"component":{},"keyword":{}}],["wrong",{"_index":3852,"title":{},"name":{},"text":{"35":{},"42":{},"43":{},"46":{},"51":{},"63":{},"71":{},"79":{}},"component":{},"keyword":{}}],["wrong.org",{"_index":3848,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["wrongautodemandlistenerendpoint",{"_index":6321,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["wrongechoconnect",{"_index":4928,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["wrongechoconnection(endpoint",{"_index":4929,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["wrongwrite(content.sink",{"_index":5049,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["wrote",{"_index":1445,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["ws",{"_index":8629,"title":{},"name":{},"text":{"78":{},"79":{}},"component":{},"keyword":{}}],["ws/[0",{"_index":8744,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["ws/chat",{"_index":8742,"title":{},"name":{},"text":{"79":{}},"component":{},"keyword":{}}],["wscontain",{"_index":8624,"title":{},"name":{},"text":{"78":{}},"component":{},"keyword":{}}],["wscontainer.setinvocationtype(invocationtyp",{"_index":8625,"title":{},"name":{},"text":{"78":{}},"component":{},"keyword":{}}],["wshandler",{"_index":8622,"title":{},"name":{},"text":{"78":{}},"component":{},"keyword":{}}],["wshandler.sethandler(new",{"_index":8627,"title":{},"name":{},"text":{"78":{}},"component":{},"keyword":{}}],["wss",{"_index":3801,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["www",{"_index":5754,"title":{},"name":{},"text":{"51":{},"64":{},"71":{}},"component":{},"keyword":{}}],["www.domain.com",{"_index":3407,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["www.foo.com",{"_index":1927,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["www.hostname.com",{"_index":1921,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["www.other.foo.com",{"_index":1929,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["www.xnââintegr",{"_index":1942,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["www.âintegral.com",{"_index":1937,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["x",{"_index":1312,"title":{},"name":{},"text":{"13":{},"28":{},"31":{},"35":{},"41":{},"46":{},"50":{},"51":{},"55":{},"57":{},"58":{},"62":{},"71":{},"79":{}},"component":{},"keyword":{}}
1],["x+1).0.0",{"_index":1418,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["x.(y+1).0",{"_index":1416,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["x.printstacktrac",{"_index":6417,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["x.y.(z+n",{"_index":1414,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["x.y.z",{"_index":1411,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["x00",{"_index":5823,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["x01",{"_index":5822,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["x04",{"_index":5825,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["x08",{"_index":5824,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["x0b",{"_index":5828,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["x0c",{"_index":5827,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["x11",{"_index":3525,"title":{},"name":{},"text":{"34":{},"51":{}},"component":{},"keyword":{}}],["x509",{"_index":3439,"title":{},"name":{},"text":{"33":{},"35":{}},"component":{},"keyword":{}}],["x509=oejus.x509@384fc774(jetti",{"_index":3629,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["x509=oejus.x509@3c321bdb(jetti",{"_index":3699,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["x509=oejus.x509@64c2b546(jetti",{"_index":3593,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["x509=oejus.x509@e24ddd0(jetti",{"_index":3887,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["x86_64",{"_index":3526,"title":{},"name":{},"text":{"34":{},"51":{}},"component":{},"keyword":{}}],["xarg",{"_index":4546,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["xll",{"_index":5826,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["xlog:gc",{"_index":4437,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["xlog:gc*,gc+stats=off:file=logs/gc.log:time,level,tag",{"_index":4444,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["xml",{"_index":1240,"title":{"44":{},"22-14":{},"22-16":{},"22-17":{},"22-18":{},"23-9":{},"30-13":{},"44-1":{},"62-19":{}},"name":{},"text":{"13":{},"15":{},"19":{},"22":{},"23":{},"26":{},"29":{},"30":{},"31":{},"32":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"44":{},"59":{},"62":{},"67":{},"69":{},"77":{},"79":{},"81":{}},"component":{},"keyword":{}}],["xmlconfigur",{"_index":4533,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["xmlhttprequest",{"_index":7878,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["xmlns:xsi=\"http://www.w3.org/2001/xmlschema",{"_index":1983,"title":{},"name":{},"text":{"22":{},"35":{},"40":{},"59":{},"79":{}},"component":{},"keyword":{}}],["xmlns=\"http://maven.apache.org/pom/4.0.0",{"_index":6469,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["xmlns=\"http://xmlns.jcp.org/xml/ns/javae",{"_index":1982,"title":{},"name":{},"text":{"22":{},"40":{}},"component":{},"keyword":{}}],["xmlns=\"https://jakarta.ee/xml/ns/jakartae",{"_index":3732,"title":{},"name":{},"text":{"35":{},"59":{},"79":{}},"component":{},"keyword":{}}],["xmx",{"_index":2477,"title":{},"name":{},"text":{"30":{},"41":{}},"component":{},"keyword":{}}],["xmx1g",{"_index":4443,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["xpoweredbi",{"_index":2343,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["xrefr:og",{"_index":6609,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["xsi:schemalocation=\"http://maven.apache.org/pom/4.0.0",{"_index":6470,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["xsi:schemalocation=\"https://jakarta.ee/xml/ns/jakartae",{"_index":1984,"title":{},"name":{},"text":{"22":{},"35":{},"40":{},"59":{},"79":{}},"component":{},"keyword":{}}],["xsp",{"_index":2256,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["xx",{"_index":4440,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["xxx",{"_index":4197,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["xxxx",{"_index":4194,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["xyz",{"_index":3971,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["y",{"_index":1313,"title":{},"name":{},"text":{"13":{},"62":{}},"component":{},"keyword":{}}],["year",{"_index":230,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["yield",{"_index":3099,"title":{},"name":{},"text":{"31":{},"35":{},"45":{},"46":{},"62":{},"77":{}},"component":{},"keyword":{}}],["younger",{"_index":5154,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["yourself",{"_index":732,"title":{},"name":{},"text":{"4":{},"32":{},"58":{},"77":{}},"component":{},"keyword":{}}],["youâll",{"_index":984,"title":{},"name":{},"text":{"8":{},"10":{},"32":{}},"component":{},"keyword":{}}],["youâr",{"_index":55,"title":{},"name":{},"text":{"1":{},"20":{},"34":{},"39":{}},"component":{},"keyword":{}}],["yyyi",{"_index":3454,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["yyyy_mm_dd",{"_index":3515,"title":{},"name":{},"text":{"34":{},"71":{}},"component":{},"keyword":{}}
1],["yyyy_mm_dd.debug.log",{"_index":2655,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["z",{"_index":1314,"title":{},"name":{},"text":{"13":{},"20":{}},"component":{},"keyword":{}}],["zero",{"_index":1824,"title":{},"name":{},"text":{"22":{},"28":{},"31":{},"41":{},"46":{},"52":{},"62":{},"71":{},"77":{}},"component":{},"keyword":{}}],["zip",{"_index":186,"title":{},"name":{},"text":{"2":{},"20":{}},"component":{},"keyword":{}}],["zombi",{"_index":4302,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["zone",{"_index":7552,"title":{},"name":{},"text":{"71":{}},"component":{},"keyword":{}}],["zstandard",{"_index":2492,"title":{"31-8":{}},"name":{},"text":{"31":{},"51":{},"66":{},"71":{}},"component":{},"keyword":{}}],["zstandard</artifactid",{"_index":5525,"title":{},"name":{},"text":{"51":{},"71":{}},"component":{},"keyword":{}}],["zstd",{"_index":2595,"title":{},"name":{},"text":{"31":{},"51":{},"71":{}},"component":{},"keyword":{}}],["zstdandard",{"_index":2593,"title":{},"name":{},"text":{"31":{},"51":{},"71":{}},"component":{},"keyword":{}}],["zzz|gmt}t",{"_index":3064,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}]],"pipeline":["stemmer"]},"store":{"documents":{"1":{"id":1,"text":"The Eclipse Jetty project is largely developed using the fantastic IntelliJ editor with licenses provided by the JetBrains open-source community program. The Eclipse Jetty community is a melting pot of talent, comprising developers, testers, documentation writers, and users. Collaboration is at the heart of everything they do, with the primary communication channels being mailing lists, frequently on the StackOverflow 'jetty' tag, and the GitHub issue tracker for Jetty. These channels serve as hubs for sharing ideas, troubleshooting issues, and coordinating development efforts. One of the defining characteristics of the Jetty community is its inclusivity. Whether youâre a seasoned Java developer or a newcomer eager to learn, thereâs a place for you in the Jetty community. Beginners are welcomed with open arms, encouraged to ask questions, and guided by experienced members who are passionate about nurturing the next generation of contributors. The Jetty project is known for its commitment to innovation and agility. New features and enhancements are introduced regularly, thanks to the collaborative efforts of the community. Whether itâs support for the latest Java specifications, improvements in performance and scalability, or integrations with cutting-edge technologies, Jetty stays ahead of the curve by embracing change and embracing feedback from users and contributors. In addition to core development, the Jetty community fosters a vibrant ecosystem of extensions, plugins, and integrations. From WebSocket support, HTTP/2 and HTTP/3 implementations to integration with popular frameworks like Spring and Apache Camel, Jettyâs extensibility makes it a versatile platform for a wide range of use cases. The Jetty community is more than just a group of developers working on a shared codebase; itâs a tight-knit community bound by a shared passion for technology and collaboration. Regular meetups, conferences, and hackathons provide opportunities for members to connect in person, share insights, and forge lasting friendships. Furthermore, the Jetty community is committed to giving back to the broader open-source ecosystem. Whether through code contributions, bug fixes, or documentation updates, Jetty developers actively participate in projects beyond their own, embodying the spirit of cooperation and mutual support that defines the open-source movement. If you are interested in contributing to the Jetty project but are not sure where to start, check out the [Help Wanted](https://github.com/jetty/jetty.project/issues?q=is%3Aopen+is%3Aissue+label%3A%22Help+Wanted%22) tag in the project issue tracker!","title":"Community","component":"ROOT","version":"","name":"community","url":"/community.html","titles":[{"text":"Tools","hash":"tools","id":1},{"text":"Community Dynamics","hash":"community-dynamics","id":2},{"text":"Continuous Innovation","hash":"continuous-innovation","id":3},{"text":"Community Engagement","hash":"community-engagement","id":4}]},"2":{"id":2,"text":"The latest releases of Eclipse Jetty are listed below. You can find earlier releases by browsing Maven Central. Release Assets Links 12.1.13 .zip .tgz Release Notes / API Docs 12.0.39 .zip .tgz Release Notes / API Docs 11.0.26 (EOL) .zip .tgz Release Notes / API Docs 10.0.26 (EOL) .zip .tgz Release Notes / API Docs 9.4.58.v20250814 (EOL) .zip .tgz Release Notes / API Docs Release notes are in the VERSION.txt file included with the distribution and on the GitHub Releases page for the Jetty project. Release notes are also made available on the [email protected] mailing list. Jetty 12 is currently the community-supported version of Jetty. This means that Jetty 12 is the actively developed and supported version of Jetty for the open-source community. Issues f
1iled for Jetty 12 at the GitHub repository are actively triaged and we work to resolve and release fixes for these releases. While many people continue to use older versions of Jetty like 11/10/9 for a variety of reasons including requirements for specific Java versions, we recommend using Jetty 12. Professional support is available for releases marked as End of Community Support (EOCS) and we encourage you to check out the Professional Services offered. January 1st, 2024 marked the end of community support for the Jetty 10 and 11 releases. Version Years Home Min JVM Servlet JSP Status Protocols 12.1 2025- Eclipse 17 [1] 3.1, 4.0, 5.0, 6.0, 6.1 2.3, 3.0, 3.1 Stable / Supported HTTP/1.1 (RFC 7230), HTTP/2 (RFC 7540), HTTP/3 (RFC 9114), WebSocket (RFC 6455, JSR 356), FastCGI, Jakarta EE8 thru EE11, JakartaEE Namespace [2], JavaEE Namespace [3] 12 2023- Eclipse 17 [1] 3.1, 4.0, 5.0, 6.0 2.3, 3.0, 3.1 Stable / Supported HTTP/1.1 (RFC 7230), HTTP/2 (RFC 7540), HTTP/3 (RFC 9114), WebSocket (RFC 6455, JSR 356), FastCGI, Jakarta EE8 thru EE10, JakartaEE Namespace [2], JavaEE Namespace [3] 11 2020-2025 Eclipse 11 [1] 5.0 3.0 EOL / Unsupported (Notice) HTTP/1.1 (RFC 7230), HTTP/2 (RFC 7540), HTTP/3 (RFC 9114), WebSocket (RFC 6455, JSR 356), FastCGI, Jakarta EE9, JakartaEE Namespace [2] 10 2020-2025 Eclipse 11 [1] 4.0 2.3 EOL / Unsupported (Notice) HTTP/1.1 (RFC 7230), HTTP/2 (RFC 7540), HTTP/3 (RFC 9114), WebSocket (RFC 6455, JSR 356), FastCGI, Jakarta EE8 9.4 2016-2025 Eclipse 1.8 3.1 2.3 EOL / Unsupported (Notice) HTTP/1.1 (RFC 7230), HTTP/2 (RFC 7540), WebSocket (RFC 6455, JSR 356), FastCGI 9.3 2015-2020 Eclipse 1.8 [4] 3.1 2.3 Deprecated HTTP/1.1 (RFC 7230), HTTP/2 (RFC 7540), WebSocket (RFC 6455, JSR 356), FastCGI 9.2 2014-2018 Eclipse 1.7 [4] 3.1 2.3 Deprecated HTTP/1.1 (RFC 2616), javax.websocket, SPDY v3 9.1 2013-2014 Eclipse 1.7 [4] 3.1 2.3 Deprecated HTTP/1.1 (RFC 2616) 9.0 2013-2013 Eclipse 1.7 [4] 3.1-beta 2.3 Deprecated HTTP/1.1 (RFC 2616) 8 2009-2014 Eclipse / Codehaus 1.6 [4] 3.0 2.2 Venerable HTTP/1.1 (RFC 2616), WebSocket RFC 6455, SPDY v3 7 2008-2014 Eclipse / Codehaus 1.5 2.5 2.1 Venerable HTTP/1.1 (RFC 2616), WebSocket RFC 6455, SPDY v3 6 2006-2010 Codehaus 1.4-1.5 2.5 2.0 Antique HTTP/1.1 (RFC 2616) 5 2003-2009 Sourceforge 1.2-1.5 2.4 2.0 Relic HTTP/1.1 (RFC 2616) 4 2001-2006 Sourceforge 1.2, J2ME 2.3 1.2 Ancient HTTP/1.1 (RFC 2616) 3 1999-2002 Sourceforge 1.2 2.2 1.1 Fossilized HTTP/1.1 (RFC 2068) 2 1998-2000 Mortbay 1.1 2.1 1.0 Legendary HTTP/1.0 (RFC 1945) 1 1995-1998 Mortbay 1.0 - - Mythical HTTP/1.0 (RFC 1945) The canonical repository for Jetty is Maven Central. You can browse for all Jetty releases at here. This provisioning address is not for general use and is provided strictly for OSGI users. Composite Jetty 9 P2 Provisioning: http://download.eclipse.org/jetty/updates/jetty-bundles-9.x 1. JPMS module support is optional. 2. Due to Oracleâs ownership of the âJavaâ trademark, usage of the javax.* namespace has been restricted, and the jakarta.* namespace was adopted by the Eclipse Foundation. 3. Only for Java EE 8 (Servlet 4.0, JSP 2.3) support, using the javax.* namespace. 4. JDK9 and newer is not supported if using MultiRelease JAR Files, or Bytecode / Annotation scanning.","title":"Jetty Downloads","component":"ROOT","version":"","name":"download","url":"/download.html","titles":[{"text":"What Version Do I Use?","hash":"what-version-do-i-use","id":1},{"text":"Version History","hash":"version-history","id":2},{"text":"Prior Versions","hash":"prior-versions","id":3},{"text":"Jetty P2 Provisioning","hash":"jetty-p2-provisioning","id":4}]},"3":{"id":3,"text":"There are a couple of avenues for reporting security issues to the Jetty project. If the issue is directly related to Jetty itself, then reporting to the Jetty developers is encouraged. The most direct method is to mail [email protected] or [email protected]. We are flexible in how we work with reporters of security issues but reserve the right to act in the interests of the Jetty project in all circumstances. If the issue is related to Eclipse or its Jetty integration, we would like to encourage you to reach out to [email protected]. If the issue is related to integrations with Jetty, we are happy to work with you to identify the proper entity, and either of the approaches above is okay. We prefer that security issues be reported directly to Jetty developers via email instead of GitHub issues since it has no facility to tag issues as private. We will actively delete issues that are opened in this way. For more information on how we handle security issues, please refer to our Security Policy. Published ID Severity Impacted Versions Fixed Versions Sep 8, 2026 CVE-2026-12611 High <=9.4.63, <=10.0.31, <=11.0.31, <=12.0.37, <=12.1.10 12.0.38, 12.1.11 (9.4.64, 10.0.32, 11.0.32 see details for availability) Sep 8, 2026 CVE-2026-19203 High <=9.4.63, <=10.0.31, <=11.0.31, <=12.0.37, <=12.1.11 12.0.38, 12.1.12 (9.4.64, 10.0.32, 11.0.32 see details for availability) Sep 7, 2026 CVE-2026-19204 High <=10.0.31, <=11.0.31, <=12.0.37, <=12.1.11 12.0.38, 12.1.12 (10.0.32, 11.0.32 see details for availability) Jul 13, 2026 CVE-2024-7708 High <=10.0.22, <=11.0.22 10.0.23, 11.0.23 Jul 13, 2026 CVE-2026-8384 Med <=12.0.34, <=12.1.8 12.0.35, 12.1.9 Jul 13, 2026 CVE-2026-6790 Med <=9.4.60, <=10.0.28, <=11.0.28, <=12.0.34, <=12.1.8 12.0.35, 12.1.9 (9.4.61, 10.0.29, 11.0.29 see details for availability) Jul 13, 2026 CVE-2026-10051 Med <=12.0.35, <=12.1.9 12.0.36, 12.1.10 Jul 13, 2026 CVE-2026-10050 High <=9.4.62, <=10.0.30, <=11.0.30, <=12.0.35, <=12.1.9 12.0.36, 12.1.10 (9.4.63, 10.0.31, 11.0.31 see details for availability) Apr 11, 2026 CVE-2026-5795 High <=9.4.60, <=10.0.28, <=11.0.28, <=12.0.33, <=12.1.7 12.0.34, 12.1.8 (9.4.61, 10.0.29, 11.0.29 see details for availability) Apr 11, 2026 CVE-2026-2332 High <=9.4.59, <=10.0.27, <=11.0.28, <=12.0.32, <=12.1.6 12.0.33, 12.1.7 (9.4.60, 10.0.28, 11.0.29 see details for availability) Mar 5, 2026 CVE-2026-1605 High <=12.0.31, <=12.1.5 12.0.32, 12.1.6 Mar 5, 2026 CVE-2025-11143 Low <=9.4.58, <=10.0.26, <=11.0.26, <=12.0.30, <=12.1.4 12.0.31, 12.1.5 (9.4.59, 10.0.27, 11.0.27 see details for availability) Aug 20, 2025 CVE-2025-5115 High <=9.4.57, <=10.0.25, <=11.0.25, <=12.0.24, <=12.1.0.beta2 9.4.58, 10.0.26, 11.0.26, 12.0.25, 12.1.0.beta3 May 8, 2025 CVE-2025-1948 High <=12.0.16 12.0.17 May 8, 2025 CVE-2024-13009 High <=9.4.56 9.4.57 May 8, 2025 CVE-2024-13009 High <=9.4.56 9.4.57 Oct 14, 2024 CVE-2024-6763 Low <=12.0.11 12.0.12 Oct 14, 2024 CVE-2024-8184 Moderate <=9.0.55, <=10.0.23, <=11.0.23, <=12.0.8 9.4.56, 10.0.24, 11.0.24, 12.0.9 Oct 14, 2024 CVE-2024-22201 High <=9.0.53, <=10.0.19, <=11.0.19, <=12.0.5 9.4.54, 10.0.20, 11.0.20, 12.0.6 Oct 14, 2024 CVE-2024-9823 Moderate <=9.0.53, <=10.0.17, <=11.0.17, <=12.0.2 9.4.54, 10.0.17, 11.0.17, 12.0.3 Oct 14, 2024 CVE-2024-6762 Moderate <=10.0.17, <=11.0.17, <=12.0.3 10.
10.18, 11.0.18, 12.0.4 Oct 10, 2023 CVE-2023-36478 High <=9.4.52, <=10.0.15, <=11.0.15 9.4.53, 10.0.16, 11.0.16 Sep 14, 2023 CVE-2023-41900 Low <=9.4.51, <=10.0.15, <=11.0.15 9.4.52, 10.0.16, 11.0.16 Sep 14, 2023 CVE-2023-40167 Low <=9.4.51, <=10.0.15, <=11.0.15, <=12.0.0 9.4.52, 10.0.16, 11.0.16, 12.0.1 Sep 14, 2023 CVE-2023-36479 Low <=9.4.51, <=10.0.15, <=11.0.15, <=12.0.0.beta1 9.4.52, 10.0.16, 11.0.16, 12.0.0.beta2 Jul 10, 2023 GHSA-58qw-p7qm-5rvh Low <=9.4.51, <=10.0.15, <=11.0.15, <=12.0.beta4 9.4.52, 10.0.16, 11.0.16, 12.0.0 Apr 18, 2023 CVE-2023-26049 Low <=9.4.50, <=10.0.13, <=11.0.13, <=12.0.0.alpha3 9.4.51, 10.0.14, 11.0.14, 12.0.0.beta0 Apr 18, 2023 CVE-2023-26048 Med <=9.4.50, <=10.0.13, <=11.0.13 9.4.51, 10.0.14, 11.0.14 Jul 7, 2022 CVE-2022-2191 High <=10.0.9, <=11.0.9 10.0.10, 11.0.10 Jul 7, 2022 CVE-2022-2047 Low <=9.4.46, <=10.0.9, <=11.0.9 9.4.47, 10.0.10, 11.0.10 Jul 7, 2022 CVE-2022-2048 High <=9.4.46, <=10.0.9, â11.0.9 9.4.47, 10.0.10, 11.0.10 Jul 15, 2021 CVE-2021-34429 Med <=9.4.42, <=10.0.5, <=11.0.5 9.4.43, 10.0.6, 11.0.6 Jun 22, 2021 CVE-2021-34428 Low <=9.4.40, <=10.0.2, <=11.0.2 9.4.41, 10.0.3, 11.0.3 Jun 8, 2021 CVE-2021-28169 Med <=9.4.40, <=10.0.2, <=11.0.2 9.4.41, 10.0.3, 11.0.3 Apr 1, 2021 CVE-2021-28165 High <=9.4.38, <=10.0.1, <=11.0.1 9.4.39, 10.0.2, 11.0.2 Apr 1, 2021 CVE-2021-28164 Med <=9.4.38 9.4.39 Apr 1, 2021 CVE-2021-28163 Med <=9.4.38, <=10.0.1, <=11.0.1 9.4.39, 10.0.2, 11.0.2 Feb 26, 2021 CVE-2020-27223 Med <=9.4.36, <=10.0.0, <=11.0.0 9.4.37, 10.0.1, 11.0.1 Nov 27, 2020 CVE-2020-27218 Med <=9.4.34, <=10.0.0.beta2, <=11.0.0.beta2 9.4.35, 10.0.0.beta3, 11.0.0.beta3 Oct 22, 2020 CVE-2020-27216 High <=9.4.32 9.3.29, 9.4.33 Jul 9, 2020 CVE-2019-17638 High <=9.4.29 9.4.30 Nov 25, 2019 CVE-2019-17632 Med <=9.4.23 9.4.24 Aug 13, 2019 CVE-2019-9518 Med <=9.4.20 9.4.21 Aug 13, 2019 CVE-2019-9516 Med <=9.4.20 9.4.21 Aug 13, 2019 CVE-2019-9515 Med <=9.4.20 9.4.21 Aug 13, 2019 CVE-2019-9514 Med <=9.4.20 9.4.21 Aug 13, 2019 CVE-2019-9512 Low <=9.4.20 9.4.21 Aug 13, 2019 CVE-2019-9511 Low <=9.4.20 9.4.21 Apr 22, 2019 CVE-2019-10247 Med <=9.4.16 9.2.28, 9.3.27, 9.4.17 Apr 22, 2019 CVE-2019-10246 High <=9.4.16 9.2.28, 9.3.27, 9.4.17 Apr 22, 2019 CVE-2019-10241 High <=9.4.15 9.2.27, 9.3.26, 9.4.16 Jun 22, 2018 CVE-2018-12538 High <=9.4.8 9.4.9 Jun 26, 2018 CVE-2018-12536 See CWE-202 <=9.4.10 9.2.25, 9.3.24, 9.4.11 Jun 26, 2018 CVE-2017-7658 See CWE-444 <=9.4.10 9.2.25, 9.3.24, 9.4.11 Jun 26, 2018 CVE-2017-7657 See CWE-444 <=9.4.10 9.2.25, 9.3.24, 9.4.11 Jun 26, 2018 CVE-2017-7656 See CWE-444 <=9.4.10 9.2.25, 9.3.24, 9.4.11 Apr 13, 2017 CVE-2016-4800 High <=9.3.8 9.3.9 Oct 7, 2016 CVE-2015-2080 High <=9.2.8 9.2.9 Dec 30, 2011 CVE-2011-4461 Medium <=8.1.0.RC2 7.6.0.RCO Jan 8, 2008 CVE-2007-6672 Medium <=6.1.6 6.1.7 Dec 5, 2007 CVE-2007-5614 Low <=6.1.5 6.1.6 Dec 5, 2007 CVE-2007-5613 Low <=6.1.5 6.1.6 Dec 5, 2007 CVE-2007-5615 Medium <=6.1.5 6.1.6rc0 Feb 7, 2007 CVE-2006-6969 High <=6.0.1, <=5.1.11, <=4.2.26 6.1.0, 6.0.2, 5.1.12, 4.2.27 Jun 2, 2006 CVE-2006-2759 Medium <=6.0.0Beta16 6.0.0Beta17 Jun 2, 2006 CVE-2006-2758 Medium <=5.1.5 5.1.6, 6.0.0Beta4","title":"Jetty Security","component":"ROOT","version":"","name":"security","url":"/security.html","titles":[{"text":"Reporting Security Issues","hash":"reporting-security-issues","id":1},{"text":"Jetty Security Reports","hash":"jetty-security-reports","id":2}]},"4":{"id":4,"text":"Professional support is available for the open-source releases of the Eclipse Jetty project through Webtide. Webtide fully funds the ongoing development of the open-source project through services and support from members of the Jetty community. As 100% developer-owned and operated, working with Webtide is the best way to support and ensure the future of the open-source Jetty project. Lifecycle Support through Webtide includes private access to EoL releases of Jetty. If you are interested in learning more about commercial support for Eclipse Jetty you can book an appointment now with a Jetty committer. Starting January 1, 2026, releases for Jetty 9, Jetty 10 and Jetty 11 are no longer published to Maven Central. CVE fixes for these EoL versions of Jetty continue to be made, and the resulting binaries are available through the following options. Webtide Harbor provides binary-only access to EoL releases of Jetty and CometD, built by the Jetty committers. In October 2025, Webtide also announced partnerships with two companies where users of Jetty can obtain long term support for CVE resolutions of EoL versions of Jetty. Click to be taken directly to their respective product pages. If you are using an EoL version of Jetty we encourage you to either update to a recent release of Jetty or pursue one of the options above. Mailing lists are an excellent way to interact with the community and have the best chance of achieving a resolution for a particular class of issues. A few mailing lists are available for the Jetty project. When choosing between the developer and user lists, a good rule of thumb is to ask yourself who the audience is. If your question is broadly interesting to the community, you can just use the userâs list. The dev list might be better if your question or comment is narrowly focu
1sed on Jetty internals or minutiae. Join - https://dev.eclipse.org/mailman/listinfo/jetty-dev Archives - http://dev.eclipse.org/mhonarc/lists/jetty-dev/ Join - https://dev.eclipse.org/mailman/listinfo/jetty-users Archives - http://dev.eclipse.org/mhonarc/lists/jetty-users/ Join - https://dev.eclipse.org/mailman/listinfo/jetty-announce Archives - http://dev.eclipse.org/mhonarc/lists/jetty-announce/ From a simple support perspective, it is hard to beat StackOverflow when interacting with a Jetty community. Numerous users have asked and been answered on the platform by other users and developers alike. Check out the general jetty tag! The embedded-jetty tag is also popular for questions on Jetty internals. While not necessarily a support channel for solving a specific user problem, the issue tracker for Eclipse Jetty is a great location for addressing issues or suggesting features you want to see (or ideally contribute) in Jetty. When you file a GitHub Issue in the Eclipse Jetty project, several labels are available, and we would like to encourage you to use them appropriately. Issues at Github We have additionally identified and labeled many issues that may be appropriate for users of different levels of expertise who might want to contribute to Jetty but not have a specific goal or issue in mind. Help Wanted","title":"Support","component":"ROOT","version":"","name":"support","url":"/support.html","titles":[{"text":"Commercial Support","hash":"commercial-support","id":1},{"text":"End of Life Binary Support Options","hash":"eol-support","id":2},{"text":"Open Source Support","hash":"open-source-support","id":3},{"text":"Mailing Lists","hash":"mailing-lists","id":4},{"text":"Jetty Developers List","hash":"jetty-developers-list","id":5},{"text":"Jetty Users List","hash":"jetty-users-list","id":6},{"text":"Jetty Announcements List","hash":"jetty-announcements-list","id":7},{"text":"StackOverflow","hash":"stackoverflow","id":8},{"text":"Github: Issues and Features","hash":"github-issues-and-features","id":9}]},"5":{"id":5,"text":"Jetty Documentation is split by major versions. Follow the links below for the version of Jetty you are using. Documentation for earlier releases is available in Maven Central. Release Version Resources Eclipse Jetty 12.1 api / source Eclipse Jetty 12 api / source Eclipse Jetty 11 api / source Eclipse Jetty 10 api / source","title":"Jetty Documentation","component":"docs","version":"","name":"index","url":"/docs/index.html","titles":[]},"6":{"id":6,"text":"The Eclipse Jetty Contribution Guide targets developers and writers who want to make contributions to the Jetty project by contributing code, writing documentation, or engaging in the larger community. One of the easiest ways to get involved is via our mailing lists: Jetty Users (jetty-users, archives) is for discussion and questions that are of broad interest to the community of Jetty users. Jetty Developers (jetty-dev, archives) is more narrowly focused on technical topics and discussion regarding Jetty internals. Jetty Announcements (jetty-announce, archives) is for announcements about new releases and other updates from the projectâs maintainers. Another great resource, both for Jetty novices who need help and Jetty experts who want to contribute, is StackOverflow. In particular, the jetty and embedded-jetty tags see regular traffic. You can flag potential bugs or suggest new Jetty features on our issue tracker. Before filing a new issue, check the tracker to see if itâs already been filed by someone else. If you do file an issue, make sure to label it appropriately, as this will help the development team (and other users) find it more easily. If you want to contribute to Jetty but donât have a specific task or goal in mind, consider looking through our \"Help Wanted\" issue backlog. These tasks range from the simple to the complex, but theyâre all ones weâve identified as being particularly well-suited for new contributors to tackle. Webtide is the company behind Jetty that provides services and support for the Jetty Project. Contact Webtide.","title":"Participation and Contribution","component":"contribution-guide","version":"","name":"index","url":"/docs/contribution-guide/index.html","titles":[{"text":"Mailing Lists","hash":"cg-intro-mailing-lists","id":1},{"text":"Stack Overflow","hash":"cg-intro-stack-overflow","id":2},{"text":"Filing Issues","hash":"cg-intro-filing-issues","id":3},{"text":"Help Wanted","hash":"cg-intro-help-wanted","id":4},{"text":"Commercial Support","hash":"cg-intro-commercial-support","id":5}]},"7":{"id":7,"text":"Jettyâs uses Apache Maven for builds. To successfully build the project, you will also need a recent version of the Java Development Kit (JDK). Here are the minimum Maven and JDK version build requirements for each actively maintained branch. Table 1. Build versioning requirements by branch Branch Maven Version Minimum JDK Recommended JDK jetty-12.1.x Maven 3.9.2+ OpenJDK 17+ OpenJDK 21 jetty-12.0.x Maven 3.9.2+ OpenJDK 17+ OpenJDK 21 jetty-11.0.x Maven 3.8.6+ OpenJDK 11+ OpenJDK 17 jetty-10.0.x Maven 3.8.6+ OpenJDK 11+ OpenJDK 17 To build the Jetty documentation, OpenJDK 21+ is required due to the use of the virtual thread APIs. To get started with Jetty as quickly as possible, navigate to your local copy of the Jetty repo and run: mvn -Pfast clean install The -Pfast flag tells Maven to bypass running tests and other checks. To build Jetty and automatically run all tests, run: mvn clean install The full build takes substantial time and memory, as it runs hundreds of test cases â many of which spin up embedded instances of Jetty itself. The build also runs stress tests that may require you (depending on your hardware or operating system) to set you file descriptor limit to a value greater than 2048. You can view or set your file descriptor limit by running: $ ulimit -n [new_value] Flagging flaky tests Not all test cases are as timing independent as they should be, which can result in intermittent test failures. You can help us track these flaky tests by opening an issue when you come across one. Per default, the build is using the Maven Build Cache extension this means you will use your local build cache, To disable it you can use the property $ mvn clean install -Dmaven.build.cache.enabled=false Jetty uses Junit5âs parallel execution to run test cases in parallel. This behavior is configurable via flags passed to Maven, like so: mvn install -Djunit.jupiter.execution.parallel.enabled=false Here are the available configuration flags: -Djunit.jupiter.execution.parallel.enabled=[BOOLEAN] Disables parallel execution of tests. -Djunit.jupiter.execution.parallel.config.fixed.parallelism=[NUMBER] Configures the number of tests to be executed in parallel. Certain tests cannot be run in parallel because they access or modify static fields, and are tagged in the codebase with this annotation: @Isolated(\"Access static field of Configurations\") Maven will run these tests in isolation even when parallel execution is explicitly enabled. == Graphviz: used by Asciidoctor in the jetty-documentation module to produce various PlantUML graphs. Docker: used to run some integration tests for testing third party integrations. Once the build is complete, you can find the built Jetty Maven artifacts in your Maven local repository, along with the following locations of note: Branch(es) Location Description all jetty-home/target/jetty-home-<ver>.tar.gz The Jetty Home distribution jetty-12.0.x jetty-ee10/jetty-ee10-runner/target/jetty-ee10-runner-<ver>.jar The Jetty Runner distribution for EE10/Servlet 6 (jakarta.servlet) webapps jetty-12.0.x jetty-ee9/jetty-ee9-runner/target/jetty-ee9-runner-<ver>.jar The Jetty Runner distribution for EE9/Servlet 5 (jakarta.servlet) webapps jetty-12.0.x jetty-ee8/jetty-ee8-runner/target/jetty-ee8-runner-<ver>.jar The Jetty Runner distribution for EE8/Servlet 4 (javax.servlet) webapps jetty-11.0.x jetty-runner/target/jetty-runner-<ver>.jar The Jetty Runner distribution for EE9/Servlet 5 (jakarta.servlet) webapps jetty-10.0.x jetty-runner/target/jetty-runner-<ver>.jar The Jetty Runner distribution for EE8/Servlet 4 (javax.servlet) webapps","title":"Building Jetty","component":"contribution-guide","version":"","name":"index","url":"/docs/contribution-guide/build/index.html","titles":[{"text":"Maven and JDK requirements","hash":"cg-build-requirements","id":1},{"text":"Running a fast build","hash":"cg-build-fast","id":2},{"text":"Running a full build","hash":"cg-build-full","id":3},{"text":"Maven Build Cache","hash":"cg-build-cache","id":4},{"text":"Executing tests in parallel","hash":"cg-build-parallel","id":5},{"text":"Optional build tools","hash":"cg-build-optional-tools","id":6},{"text":"Build artifacts","hash":"cg-build-artifacts","id":7}]},"8":{"id":8,"text":"Another great way to contribute to Jetty is to help us write and maintain our documentation. Jettyâs documentation is grouped into three guides, each written for a different target audience. Operations Guide Targets sysops, devops, and developers who want to run Jetty as a
1standalone web server. Programming Guide Targets developers who want to use the Jetty libraries in their applications. Contribution Guide Targets developers and writers who want to make contributions to the Jetty project. Jetty follows a \"docs as code\" philosophy, meaning we use the same tools to write and build our code and docs. As such, the docs are maintained directly within the Jetty codebase at documentation/jetty/. Our docs are written in AsciiDoc, a markup language for writing technical content. AsciiDoc supports many advanced features, such as robust linking across different documentation sets, while remaining human-readable. Although Jetty takes advantage of many of these features, you donât need to be an AsciiDoc expert to contribute to our documentation. If you are interested in learning the ins and outs of AsciiDoc, the official language documentation is a good place to start. In addition to using Maven to build the Jetty codebase, we use it to build our docs. During a build, Maven converts AsciiDoc-formatted docs into the HTML pages that you are reading right now. Antora is the tool that actually performs this compilation step. Maven integrates with Antora via the antora-maven-plugin. Since Jettyâs docs are maintained in git alongside the rest of the Jetty codebase, youâll need to check out a local copy of the code to contribute to the docs. In order to build the documentation locally, you first need to prepare a jetty-home directory by running the following command from the top-level folder of the Jetty project: $ mvn install -Dcollector -Pfast -am -pl documentation/jetty The docs are maintained as a separate module within Jetty, which means you can build the docs separately from the rest of the project. Then you can use the following command from documentation/jetty to prepare and run Antora using a preview profile: $ cd documentation/jetty $ mvn antora -N <...snip...> [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:11 min [INFO] Finished at: 2025-02-05T15:30:09+08:00 [INFO] ------------------------------------------------------------------------ If you donât run the first command, the Antora build will still succeed, but you will get warnings about missing includes for files taken from jetty-home. The antora:antora goal, which the antora lifecycle invokes, takes advantage of the playbook provider feature so the playbook for this branch can be centrally managed in the playbook repository. Note that this preview profile does not run the jetty blocks, so you will only see the configuration for those runs in the preview site. If you want to build the full site, use the build in the playbook repository. Youâll see a lot of files getting downloaded during the build process. This is Maven setting up the execution environment, which it uses to generate the docs. When the build completes, you can view the generated docs in your preferred web browser by opening file:///path/to/jetty.project/documentation/jetty/target/site/index.html on your local filesystem. The documentation root is documentation/jetty/. Within this root directory are some files and subdirectories of note: modules The primary root for all documentation content. antora.yml This file serves as a component descriptor for generating documentation. modules/ROOT The main documentation page for Jetty. modules/*-guide Secondary root directories for each individual documentation guide. target/site/<format> The final build destination for any docs generated by Maven. By default, docs are generated into target/html, but other formats (e.g., pdf and epub) are available. This directory is not checked into git. The following conventions are not set in stone, but you are encouraged to follow them where possible. Stylistically consistency helps keep the docs easy to both understand and maintain. In markup, each sentence should be on its own line with a hard return at the end of the line. This practice is known variously as ventilated prose or semantic linefeeds. This practice makes for more readable file diffs, and also makes it easier to comment out individual lines or to move sentences around. AsciiDoc treats a single line breaks just like a space, so it will render ventilated prose naturally. TODO UPDATE FOR FORTHCOMING EE11 Jetty 12 features many parallel modules with similar names and functionality, but which target different versions of Jakarta EE. For instance, the ee8-deploy, ee9-deploy, and ee10-deploy modules all behave similarly, except they target Jakarta EE8, EE9, and EE10, respectively. Whenever possible, try to consolidate these types of parallel references. For instance, you can quickly refer to all three of the aforementioned modules as a group by writing ee{8,9,10}-deploy or eeN-deploy. Another approach is to write your docs targeting one specific module, and tell the reader what substitution(s) they would need to make to target a different module. When targeting a specific version in your docs for demonstration purposes, you should prefer to use the most recent version number. For the example above, this would mean targeting ee12-deploy. Consolidating parallel references saves readers from having to sift through repetitive material, and helps us avoid maintaining multiple versions of nearly identical docs. Instead of referencing multiple versions in your code and command-line examples, itâs generally better to target one specific version, typically the latest (currently ee12): $ java -jar $JETTY_HOME/start.jar --add-modules=ee12-deploy This will work when copy-
1pasted into the command line. You may want to remind the reader to change the 10 in the command to their preferred target version â although doing so isnât strictly necessary for a simple example like above. Each .adoc file should contain the license block that exists in the index.adoc file. For reference, here is a standard license header: // // ==================================== // Copyright (c) 1995 Mort Bay Consulting Pty Ltd and others. // // This program and the accompanying materials are made available under the // terms of the Eclipse Public License v. 2.0 which is available at // https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0 // which is available at https://www.apache.org/licenses/LICENSE-2.0. // // SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 // ==================================== // TODO UPDATE FOR ANTORA We rely heavily on custom IDs for generating stable documentation URLs and linking within docs. At minimum, every chapter and top-level section should have its own custom ID; however, best practice is to give each subsection its own custom ID, too. Custom IDs share a single global namespace, which means they must be unique across all documentation guides. To help deal with this constraint, we used different ID prefixes in each guide: Operations Guide: og- Programming Guide: pg- Contribution Guide: cg- Images should live in the images/ directory of the guide they appear in. Use the image:: directive to include an image, like so: image::small_powered_by.gif[image,width=145] Admonitions (or \"callout blocks\") are useful for flagging information that doesnât belong in the natural flow of text. Asciidoc supports five levels of admonition: [NOTE] [IMPORTANT] [TIP] [CAUTION] [WARNING] Each admonitionâs visual appearance and typical usage situation are as follows: A note about the previous case to be aware of. Important notes are marked with an icon. Tips that make your life easier. Places where you have to be careful what you are doing. Where extreme care has to be taken. Data corruption or other nasty things may occur if these warnings are ignored.","title":"Writing Documentation","component":"contribution-guide","version":"","name":"index","url":"/docs/contribution-guide/documentation/index.html","titles":[{"text":"Documentation guides","hash":"cg-documentation-guides","id":1},{"text":"The documentation toolchain","hash":"cg-documentation-toolchain","id":2},{"text":"AsciiDoc","hash":"cg-documentation-asciidoc","id":3},{"text":"Maven and Antora","hash":"cg-documentation-asciidoctor","id":4},{"text":"Building the docs","hash":"cg-documentation-build","id":5},{"text":"Documentation project structure","hash":"cg-documentation-build-structure","id":6},{"text":"Style guide","hash":"cg-documentation-style","id":7},{"text":"Ventilated prose","hash":"cg-documentation-style-prose","id":8},{"text":"Documenting versions","hash":"cg-documentation-versions","id":9},{"text":"Documenting multiple versions at once","hash":"cg-documentation-versions-multiple","id":10},{"text":"Dealing with multiple versions in code examples","hash":"cg-documentation-versions-multiple-example","id":11},{"text":"License blocks","hash":"cg-documentation-license","id":12},{"text":"AsciiDoc conventions","hash":"cg-documentation-asciidoc-conventions","id":13},{"text":"Custom IDs","hash":"cg-documentation-asciidoc-conventions-ids","id":14},{"text":"Images","hash":"cg-documentation-asciidoc-conventions-images","id":15},{"text":"Admonitions","hash":"cg-documentation-asciidoc-conventions-admonitions","id":16}]},"9":{"id":9,"text":"Since Jetty is a member of the Eclipse Foundation, all contributors must first sign the Eclipse Contributor Agreement (ECA) before their code changes can be merged into source. The Eclipse Foundation maintains an ECA FAQ with more information about the ECAâs provisions. Before you set up your local development environment, we recommend creating an account at eclipse.org and submitting your signed ECA. Follow the instructions on the Eclipse wiki for details on how to create your account and sign the ECA. Make sure your emails match The email address you use to sign the ECA must be the same as the email you use to sign your git commits. Jettyâs build process has a git hook that verifies each incoming pull request is signed with an email address with an active ECA. If the git hook cannot verify your email, the Jetty committers cannot do anything to accept your commit.","title":"The Eclipse Contributor Agreement","component":"contribution-guide","version":"","name":"index","url":"/docs/contribution-guide/eca/index.html","titles":[]},"10":{"id":10,"text":"We wholeheartedly welcome contributions to Jetty. While not every contribution will be accepted, our commitment is to work with interested parties on the things they care about. If you are interested in contributing to Jetty but are unsure where to start, consult the [Help Wanted](https://github.com/jetty/jetty.project/issues?q=is%3Aopen+is%3Aissue+label%3A%22Help+Wanted%22) tag in the issue tracker. The email in your git commits must match the email you used to sign the Eclipse Contributor Agreement. As such, youâll likely want to configure user.email in git accordingly. See this guide on GitHub for details on how to do so. If your pull request addresses a particular issue in our repository, then the commit message should reference the issue. Specifically, the message should follow the form Issue #<NNN> <description of the commit>: $ git commit -s -m \"Issue #123 resolving the issue by adding widget\" Using this format will ensure that the commit will be included in VERSIONS.txt upon new releases of Jetty. You should sign off on every commit in your pull request using gitâs signoff feature (git commit -s). Please see GitHubâs documentation for creating pull requests. We do our best to process contributions in a timely fashion. Please note that we can only handle pull requests with actively engaged parties. We reserve the right to abandon pull requests whose authors do not respond in a timely fashion. We will generally adhere to the following time frames for contributions: Invalid Pull Requests - 1 week These pull requests do not follow the contribution requirements for some reason â e.g., a missing contributor agreement or mismatched email signature. We will try and follow up with the pull request author to resolve the issue. If we do not hear from the contributor after a week we will close the pull request. Valid Pull Requests - 2 weeks If the pull request can be immediately merged, we will do so. Otherwise, we will follow up with the author in a comment to discu
1ss what additional actions must be taken before the change can be landed. If the original contributor does not respond within two weeks, we may close the commit, or make some variation of the commit ourselves.","title":"Submitting Patches","component":"contribution-guide","version":"","name":"index","url":"/docs/contribution-guide/patches/index.html","titles":[{"text":"Configuring git","hash":"cg-patches-git-config","id":1},{"text":"Writing commit messages","hash":"cg-patches-git-commit-messages","id":2},{"text":"Signing the commit","hash":"cg-patches-git-commit-signing","id":3},{"text":"Creating pull requests","hash":"cg-patches-pull-requests","id":4},{"text":"Time frames","hash":"cg-patches-time-frames","id":5}]},"11":{"id":11,"text":"There are a number of ways to report security issues to the Jetty project. If the issue is directly related to Jetty itself then you are encouraged to report to the Jetty developers directly at [email protected]. We prefer you report any security issues directly to the Jetty developers via email rather than via GitHub Issues, as GitHub does not support private issues. If the issue is related to Eclipse or its Jetty integration then we encourage you to reach out to [email protected]. If the issue is related to some third party integration, we are happy to work with you to identify the proper reporting entity and work with them to properly address the issue. In this case, you are welcome to contact either of the above outreach addresses. We are generally flexible in how we work with reporters of security issues from an attribution perspective, but reserve the right to act in the interests of the Jetty project in all circumstances.","title":"Security","component":"contribution-guide","version":"","name":"index","url":"/docs/contribution-guide/security/index.html","titles":[]},"12":{"id":12,"text":"Jettyâs source is maintained on GitHub at https://github.com/eclipse/jetty.project, where it is managed by the Eclipse Foundation. You can clone a copy of the Jetty repo onto your local machine by running: git clone https://github.com/eclipse/jetty.project.git In addition to the Jetty code repository, we maintain a number of related repositories: Non-Eclipse Jetty Repositories https://github.com/jetty-project Build Toolchain https://github.com/eclipse/jetty.toolchain If you plan to work on a specific issue within Jetty, make sure to target the correct branch for your pull request. Table 1. Active Jetty branches jetty-12.1.x Development (default branch) Servlet 6.1 Java 17+ jetty-12.0.x Development (default branch) Servlet 6.0 Java 17+ jetty-11.0.x Maintenance Servlet 5.0 Java 11+ jetty-10.0.x Maintenance Servlet 4.0 Java 11+ jetty-9.4.x End of Community Support Servlet 3.1 Java 8+ Maintenance branches are periodically merged into active development branches. Older branches are only updated if they get specifically targeted by a pull request. Also, changes to older branches arenât regularly merged forward â although an individual change may be cherry-picked forward, depending on the nature of the fix.","title":"Getting the source code","component":"contribution-guide","version":"","name":"index","url":"/docs/contribution-guide/source/index.html","titles":[{"text":"Related repositories","hash":"cg-source-repositories","id":1},{"text":"Version branches","hash":"cg-source-branches","id":2}]},"13":{"id":13,"text":"IntelliJ IDE An IntelliJ code style XML file is available in the source repo at /build-resources/jetty-codestyle-intellij.xml Follow IntelliJâs documentation to import these settings into your IDE. Eclipse IDE An Eclipse code style XML file is available in the source repo at /build-resources/jetty-codestyle-eclipse-ide.xml. The following code sample shows some basic Java styles and conventions used throughout the Jetty codebase: import some.exact.ClassName; // GOOD import some.wildcard.package.*; // BAD! package org.always.have.a.package; /** * All classes should have a javadoc */ class MyClassName { // Use 4 spaces to indent. // The code must format OK with default tab size of 8. private static final int ALL_CAPS_FOR_PUBLIC_CONSTANTS = 1; // Prefix fields with one underscore (_). This // convention is not mandatory, but the chosen style // should be used consistently within a single class. private Object _privateField; // Use getters and setters rather than public fields. // Braces always on new line. public void setPrivateField(Object privateField) { _privateField = privateField; } public Object getPrivateField() { return _privateField; } public void doSomething() throws SomeException { Object local_variable = _privateField; // Braces always on new line. if (local_variable = null) { // do Something } } } When deciding when and what to log, bear in mind a few things: Never use LOG.debug() without a preceding if (LOG.isDebugEnabled()). Avoid polluting the log with very long stack traces. Donât routinely produce logging events in response to data sent by a user. Only call one LOG method for a given event, to avoid generating confusingly interleaved log messages. Never call LOG.warn() right before throwing an exception, as this will likely result in double logging the exception. Avoid calling LOG.debug() right before throwing an exception, as this will make debug logs verbose while adding little information. When interacting with a request or other client-provided data that result in an exception, use DEBUG-level logging: catch (Throwable t) { if (LOG.isDebugEnabled()) LOG.debug(\"Something happened {} {} {}\",x, y, z, t); } When calling into application code that throws an exception, use INFO-level logging, and gate the log with LOG.isDebugEnabled() to reduce the size of logging stack traces: catch (Throwable t) { if (LOG.isDebugEnabled()) LOG.info(\"Something happened {} {} {}\", x, y, z, t); else LOG.info(\"Something happened {} {} {} {}\", x, y, z, t.toString()); } When exceptions happen in Jetty code, and if the exception is (1) not entirely unexpected, (2) can happen relatively frequently, or (3) can potentially have a very long stack trace, you can use LOG.isDebugEnabled() to cut down on the size of the logging of the stacktrace: catch (Throwable t) { if (LOG.isDebugEnabled()) LOG.warn(\"Something happened {} {} {}\", x, y, z, t); else LOG.warn(\"Something happened {} {} {} {}\", x, y, z, t.toString()); } By default, Jettyâs logger outputs a full stacktrace whether you call it like LOG.warn(\"Something happened\", t) or LOG.warn(\"Something happened {}\", t). If you only want the log message but not the stack trace, you need to do call .toString() on the caught exception, e.g., LOG.warn(\"Something happened {}
1\", t.toString()).","title":"Code Standards","component":"contribution-guide","version":"","name":"index","url":"/docs/contribution-guide/standards/index.html","titles":[{"text":"Configuring your IDE","hash":"cg-code-standards-ide","id":1},{"text":"Java conventions","hash":"cg-code-standards-java","id":2},{"text":"Logging conventions","hash":"cg-code-standards-logging","id":3}]},"14":{"id":14,"text":"This is the main documentation page for the Eclipse Jetty Project. Jetty provides a highly scalable and memory-efficient web server and Servlet container, supporting web protocols such as HTTP/1.1, HTTP/2, HTTP/3 and WebSocket. Furthermore, Jetty offers integrations with many other technologies, such as OSGi, JMX, JNDI, JAAS, CDI, etc. and with the relevant Jakarta EE technologies. Jetty is open source and are freely available for commercial use and distribution under either the Eclipse Public License v2 or the Apache License v2. Jetty can either be used as a standalone server to deploy web applications, or as a library that can be used in your code as a dependency. Table 1. Jetty Versions and Compatibilities Jetty Version Required Java Version Jakarta EE Version Status Jetty 12.1.x Java 17 Jakarta EE11, EE10, EE9, EE8 Stable Jetty 12.0.x Java 17 Jakarta EE10, EE9, EE8 Stable Jetty 11.0.x Java 11 Jakarta EE9 EOL (see #13918) Jetty 10.0.x Java 11 Jakarta EE8 EOL (see #13918) Jetty 9.4.x Java 8 Jakarta EE7 EOL (see #13918) The Operations Guide targets sysops, devops, and developers who want to install Jetty as a standalone server to deploy web applications. The Programming Guide targets developers who want to use the Jetty libraries in their applications, and advanced sysops/devops that want to customize the deployment of web applications.","title":"Eclipse Jetty 12.1","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/index.html","titles":[{"text":"Operations Guide","hash":"operations-guide","id":1},{"text":"Programming Guide","hash":"programming-guide","id":2}]},"15":{"id":15,"text":"This glossary defines common terms used throughout the Jetty documentation. Bean A component instance added to a ContainerLifeCycle container. Beans can be managed (lifecycle tied to container), unmanaged (independent lifecycle), or POJO (plain objects without lifecycle). See Jetty Component Architecture for details. Connector A component that listens on a network port for incoming connections. Connectors are associated with one or more ConnectionFactory instances that create protocol-specific connections (HTTP/1.1, HTTP/2, HTTP/3). See Jetty Server for server configuration. ContainerLifeCycle A LifeCycle implementation that can contain other components (beans). It manages the lifecycle of its managed beans, starting and stopping them together with the container. See Jetty Component Architecture for the component architecture. ContextHandler A Handler that scopes HTTP requests to a specific context path. It provides the foundation for web application deployment, managing attributes, MIME types, and class loaders. See Web Application Deployment for deployment information. Context XML file An XML configuration file used to deploy web applications in Jetty. Context XML files use Jettyâs XML configuration syntax to instantiate and configure ContextHandler instances. See Jetty XML for XML configuration syntax and Web Application Deployment for deployment examples. Handler The fundamental abstraction for processing HTTP requests in Jetty. Handlers form a tree structure where requests flow from the server through various handlers. A handler returns true if it handled the request, false otherwise. See Server Libraries for the server programming guide. $JETTY_BASE The directory containing your Jetty server customizations and configurations. You can have multiple $JETTY_BASE directories, each with different configurations, all referencing the same $JETTY_HOME. See Architecture Overview for details. $JETTY_HOME The directory containing the Jetty distribution binaries and default configuration. This directory should not be modified; all customizations should go in $JETTY_BASE. See Architecture Overview for details. LifeCycle An interface implemented by Jetty components that can be started and stopped. Components implementing LifeCycle participate in the containerâs lifecycle management. See Component Lifecycle for details. Module A reusable unit that provides one or more Jetty features. Modules are enabled in $JETTY_BASE and declare dependencies on other modules. Examples include http, https, http2, deploy, and logging. See Jetty Modules for the module system documentation. Server The root component of a Jetty server application. It contains connectors, handlers, and thread pools, forming the top of the component tree. See Jetty Server for server configuration. ServerConnector The standard TCP/IP connector implementation for accepting network connections. It supports multiple protocols through ConnectionFactory instances. See Jetty Server for connector configuration. ThreadPool A component that manages worker threads for processing requests. The default implementation is QueuedThreadPool. See Jetty Threading Architecture for thread architecture details. Web Application A collection of code, resources, and configuration deployed to a Jetty server. Web applications can be Jakarta EE applications (WAR files), Jetty Core applications (using Handler APIs), or static file applications. Each web application is deployed to a specific context path. See Web Application Deployment for deployment options. WebAppContext A ContextHandler subclass specifically for Jakarta EE web applications. It handles WAR file extraction, web.xml parsing, and servlet lifecycle management. See Web Application Deployment for deployment information.","title":"Glossary","component":"jetty","version":"12.1","name":"glossary","url":"/docs/jetty/12.1/operations-guide/glossary.html","titles":[]},"16":{"id":16,"text":"The Eclipse Jetty Operations Guide targets sysops, devops, and developers who want to install Eclipse Jetty as a
1standalone server to deploy web applications.","title":"Jetty 12.1 Operations Guide","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/index.html","titles":[]},"17":{"id":17,"text":"The Eclipse Jetty Programming Guide targets developers who want to use the Jetty libraries in their applications. The Jetty libraries provide the client-side and server-side APIs to work with various web protocols such as HTTP/1.1, HTTP/2, HTTP/3, WebSocket and FastCGI. You may use the Jetty client-side library in your application to make calls to third party REST services, or to other REST microservices in your system. Likewise, you may use the Jetty server-side library to quickly create an HTTP or REST service without having to create a full Jakarta EE web application archive file (a *.war file) and without having to deploy it to a Jetty standalone server that you would have to download and install. This guide will walk you through the design of the Jetty libraries and how to use its classes to write your applications. As the Jetty code evolves, classes and/or methods are deprecated using the @Deprecated annotation and will be removed in a future Jetty release. The Jetty release numbering follows this scheme: <major>.<minor>.<micro>. For example, 12.0.5 has major=12, minor=0 and micro=5. The policy to remove deprecated code is the following: Code deprecated
1in a Jetty release x.y.z is not removed in subsequent micro releases x.y.(z+n). Code deprecated in a Jetty release x.y.z may be removed in the next minor release x.(y+1).0, but only if it has been deprecated for more than six micro releases. Code deprecated in a Jetty release x.y.z may be removed in the next major release (x+1).0.0 without restrictions. For example, letâs assume that some code codeA is deprecated in Jetty 12.0.5, and some other code codeB is deprecated in Jetty 12.0.8. Letâs also assume that 12.1.0 (a new minor release) is released after the release of Jetty 12.0.11. Then, by the rules above: Neither codeA nor codeB are removed from the Jetty 12.0.x releases. Code codeA is removed from Jetty 12.1.0 because it has been deprecated for more than six micro releases, since Jetty 12.1.0 is released after Jetty 12.0.11. Code codeB is not removed from Jetty 12.1.0 because it has been deprecated for less than six micro releases. As codeB is now part of Jetty 12.1.0, it will not be removed from the Jetty 12.1.x releases. There could be rare cases where code (possibly not even deprecated) must be removed earlier than specified above to address security vulnerabilities.","title":"Jetty 12.1 Programming Guide","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/programming-guide/index.html","titles":[{"text":"Code Deprecation Policy","hash":"code-deprecation-policy","id":1}]},"18":{"id":18,"text":"Jetty is an HTTP server and Servlet Container, and supports deployments of web applications. The Jetty server listens on one or more network ports using one or more protocol connectors. Clients send HTTP requests for specific URIs, such as https://host/store/cart. The HTTP requests arrive to the connectors through the network; the Jetty server processes the requests and, based on their URIs, forwards them to the appropriate deployed web application. There are three main concepts on which the Jetty standalone server is based: The Jetty module system, where Jetty modules provides Jetty features. The $JETTY_BASE directory, that provides a place where you configure which Jetty modules you want to enable, configure the properties of each enabled module, and therefore configure the features you need for your web applications. The Jetty start mechanism, that starts a JVM that runs Jetty with the configuration you specified. After installing Jetty, you will want to set up a $JETTY_BASE directory where you configure Jetty modules. The Jetty standalone server is made of Java components that are assembled together, configured and started to provide different features. A Jetty module provides one or more components that work together to provide typically one feature, although they may provide more than one feature. A Jetty module is nothing more than Jetty components assembled together like you would do using Java APIs, just done in a declarative way using configuration files. What you can do in Java code to assemble Jetty components can be done using Jetty modules. A Jetty module may be dependent on other Jetty modules: for example, the http Jetty module depends on the server Jetty module which in turn depends on the threadpool and logging Jetty modules. Every feature in a Jetty server is enabled by enabling the corresponding Jetty module(s). For example, if you enable only the http Jetty module, then your Jetty standalone server will only be able to listen to a network port for clear-text HTTP requests. It will not be able to process secure HTTP (i.e. https) requests, it will not be able to process WebSocket, or HTTP/2, or HTTP/3 or any other protocol because the correspondent modules have not been enabled. You can even start a Jetty server without listening on a network port â for example because you have enabled a custom module you wrote that provides the features you need. This allows the Jetty standalone server to be as small as necessary: modules that are not enabled are not loaded, donât waste memory, and you donât risk a client using a module that you did not know was even there. For more detailed information about the Jetty module system, see this section. Instead of managing multiple Jetty distributions out of many locations, it is possible to maintain a separation between the binary installation of the standalone Jetty, known as $JETTY_HOME, and the customizations for your specific environment(s), known as $JETTY_BASE. This separation between the binary installation directory and the specific configuration directory allows managing multiple, different, server configurations, and allows for quick, drop-in upgrades of Jetty. There should always only be one $JETTY_HOME (per version of Jetty), but there can be many $JETTY_BASE directories that reference it. This separation between $JETTY_HOME and $JETTY_BASE allows Jetty upgrades without affecting your web applications. $JETTY_HOME contains the Jetty runtime and libraries and the default configuration, while a $JETTY_BASE contains your web applications and any override of the default configuration. For example, with the $JETTY_HOME installation the default value for the network port for clear-text HTTP is 8080. However, you may want that port to be 6060, because Jetty is behind a load balancer that is configured to forward to the backend on port 6060. In this case, you configure the clear-text HTTP port in $JETTY_BASE, not in $JETTY_HOME. When you upgrade Jetty, you will upgrade only the files in $JETTY_HOME, and all the configuration in $JETTY_BASE will remain unchanged, keeping your clear-text HTTP port at 6060. Installing the Jetty runtime and libraries in $JETTY_HOME also allows you to leverage file system permissions: $JETTY_HOME may be owned by an administrator user (so that only administrators can upgrade it), while $JETTY_BASE directories may be owned by a less privileged user. If you had changed the default configuration in $JETTY_HOME, when you upgrade Jetty, say from version 10.0.0 to version 10.0.1, your changes would be lost. Maintaining all the changes in $JETTY_HOME, and having to re
1configure these with each upgrade results in a massive commitment of time and effort. To recap: $JETTY_HOME This is the location for the Jetty binaries. $JETTY_BASE This is the location for your configurations and customizations to the Jetty binaries. The Jetty start mechanism provides two features: The mean to configure your $JETTY_BASE by enabling the desired modules, and to display the configuration of your $JETTY_BASE. The mean to start Jetty itself, by starting a JVM that reads the Jetty configuration in $JETTY_BASE, which is then executed to assemble and start the Jetty components. The Jetty start mechanism is invoked by executing $JETTY_HOME/start.jar from within your $JETTY_BASE, and you can think of it as the Jetty command line program, similar to many Unix/Windows command line programs. For example, you can ask for help: $ java -jar $JETTY_HOME/start.jar --help Or you can list all available modules (or only those with a specific tag): # List all the modules. $ java -jar $JETTY_HOME/start.jar --list-modules=* # List all the modules tagged as \"demo\". $ java -jar $JETTY_HOME/start.jar --list-modules=demo You can enable a module, for example the http module: $ java -jar $JETTY_HOME/start.jar --add-modules=http Once you have one or more module enabled, you can display the current configuration, to verify that the configuration is correct: $ java -jar $JETTY_HOME/start.jar --list-config You can enable a Jetty demo module, which will deploy a demo web application: $ java -jar $JETTY_HOME/start.jar --add-modules=demo-simple Finally, you can start Jetty: $ java -jar $JETTY_HOME/start.jar Read more information at the Jetty start mechanism section.","title":"Architecture Overview","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/arch/index.html","titles":[{"text":"Main Concepts","hash":"concepts","id":1},{"text":"Jetty Modules","hash":"modules","id":2},{"text":"$JETTY_HOME and $JETTY_BASE","hash":"jetty-base","id":3},{"text":"Start Mechanism","hash":"start","id":4}]},"19":{"id":19,"text":"Enable the ee{8,9,10,11}-annotations module if your Jakarta EE web application â or any of its third party libraries â uses any of the following: Annotations: @Resource @Resources @PostConstruct @PreDestroy @DeclaredRoles @RunAs @MultipartConfig @WebServlet @WebFilter @WebListener @WebInitParam @ServletSecurity, @HttpConstraint, @HttpMethodConstraint @HandlesTypes javax.servlet.ServletContainerInitializer or jakarta.servlet.ServletContainerInitializer JSP According to more recent versions of the Jakarta Servlet Specification, the web.xml file can contain the attribute metadata-complete. If this is set to true, then no annotation scanning takes place, and your descriptor must contain the equivalent xml statements of any annotations. If it is metadata-complete=false, or your web.xml predates the inclusion of this attribute, annotation scanning is required to take place. To prevent annotation scanning you can use the WebAppContext.setConfigurationDiscovered(false) method. Hereâs an example context XML file that calls this method: <?xml version=\"1.0\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> (1) <Set name=\"configurationDiscovered\">false</Set> (2) </Configure> 1 Configures a WebAppContext, which is the Jetty component that represents a standard Servlet web application. 2 Specifies that scanning should not take place. However, despite metadata-complete=true, scanning of classes may still occur because of ServletContainerInitializer. Classes implementing this interface are found by Jetty using the javax.util.ServiceLoader mechanism, and if one is present and it includes the @HandlesTypes annotation, then Jetty must scan the class hierarchy of the web application. This may be very time-consuming if you have many jars. Jetty can reduce the time taken by limiting the jars that are scanned. By default, Jetty will not scan any classes that are on the containerâs classpath. Sometimes, you may have third party libraries on the containerâs classpath that you need to be scanned. In this case, use the org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern context attribute to define which container jars and class directories to scan. The value of this attribute is a regular expression. Hereâs an example from a context XML file that includes any jar whose name starts with foo- or bar-, or a directory named classes: <?xml version=\"1.0\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> (1) <Call name=\"setAttribute\"> (2) <Arg>org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern</Arg> (3) <Arg>.*/foo-[^/]*\\.jar$|.*/bar-[^/]*\\.jar$|.*/classes/.*</Arg> (4) </Call> </Configure> 1 Configures a WebAppContext, which is the Jetty component that represents a standard Servlet web application. 2 Specifies a context attribute. 3 Specifies the name of the context attribute. 4 Specifies the value of the context attribute. Note that the order of the patterns defines the ordering of the scanning of the jars or class directories. By default, Jetty will scan all classes from WEB-INF/classes and all jars from WEB-INF/lib according to the order, if any, established by absolute or relative ordering clauses in web.xml. If your web application contains many jar files that you know do not contain any annotations, you can significantly speed up deployment by omitting them from scanning. However, be careful if your web application uses a ServletContainerInitializer with a @HandlesTypes annotation that you donât exclude jars that contain classes matching the annotation. Use the org.eclipse.jetty.server.webapp.WebInfIncludeJarPattern context attribute to define a regular expression for jars and class directories to select for scanning. Hereâs an example of a Jetty context XML file that sets a pattern that matches any jar on the web applicationâs class-path that starts with \"spring-\": <?xml version=\"1.0\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> (1) <Call name=\"setAttribute\"> (2) <Arg>org.eclipse.jetty.server.webapp.WebInfIncludeJarPattern</Arg> (3) <Arg>.*/spring-[^/]*\\.jar$</Arg> (4) </Call> </Configure> 1 Configures a WebAppContext, which is the Jetty component that represents a standard Servlet web application. 2 Specifies a context attribute. 3 Specifies the name of the context attribute. 4 Specifies the value of the context attribute. By default, Jetty performs annotation scanning in a multi-threaded manner in order to complete it in the minimum amount of time. If you donât want multi-threaded scanning, you can configure Jetty to revert to single-threaded scanning. There are several options to configure this: Set the context attribute org.eclipse.jetty.annotations.multiThreaded to fal
1se Set the Server attribute org.eclipse.jetty.annotations.multiThreaded to false Set the System property org.eclipse.jetty.annotations.multiThreaded to false Method 1 will only affect the current webapp. Method 2 will affect all web applications deployed to the same Server instance. Method 3 will affect all web applications deployed in the same JVM. By default, Jetty will wait a maximum of 60 seconds for all the scanning threads to complete. You can set this to a higher or lower number of seconds by doing one of the following: Set the context attribute org.eclipse.jetty.annotations.maxWait Set the Server attribute org.eclipse.jetty.annotations.maxWait Set the System property org.eclipse.jetty.annotations.maxWait Method 1 will only affect the current webapp. Method 2 will affect all web applications deployed to the same Server instance. Method 3 will affect all web applications deployed in the same JVM. The ServletContainerInitializer class can exist in: the containerâs classpath, the web applicationâs WEB-INF/classes directory, the webappâs WEB-INF/lib jars, or any external extraClasspath that you have configured on the webapp. The Jakarta Servlet Specification does not define any order in which a ServletContainerInitializer must be called when the web application starts. By default, Jetty will call them in the following order: ServletContainerInitializers from the containerâs classpath ServletContainerInitializers from WEB-INF/classes ServletContainerInitializers from WEB-INF/lib jars in the order established in web.xml, or in the order that the SCI is returned by the javax.util.ServiceLoader if there is no ordering. By default, as according to the Jakarta Servlet Specification, all ServletContainerInitializer instances that are discovered are invoked. Sometimes, depending on your requirements, you may need to prevent some being called at all. In this case, you can define the org.eclipse.jetty.containerInitializerExclusionPattern context attribute. This is a regular expression that defines patterns of classnames that you want to exclude. Hereâs an example of setting the context attribute in a context XML file: <?xml version=\"1.0\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> (1) <Call name=\"setAttribute\"> (2) <Arg>org.eclipse.jetty.containerInitializerExclusionPattern</Arg> (3) <Arg>com.acme.*|com.corp.SlowContainerInitializer</Arg> (4) </Call> </Configure> 1 Configures a WebAppContext, which is the Jetty component that represents a standard Servlet web application. 2 Specifies a context attribute. 3 Specifies the name of the context attribute. 4 Specifies the value of the context attribute. In this example we exclude all ServletContainerInitializer instances in the com.acme package, and the specific class com.corp.SlowContainerInitializer. It is possible to use exclusion and ordering together to control ServletContainerInitializer invocation - the exclusions will be applied before the ordering. If you need ServletContainerInitializer classes called in a specific order, you can use the context attribute org.eclipse.jetty.containerInitializerOrder. Set it to a list of comma separated ServletContainerInitializer class names in the order that you want them applied. You may optionally use the wildcard character * once in the list. It will match all ServletContainerInitializer classes not explicitly named in the list. Here is an example context XML file that ensures the com.example.PrioritySCI will be called first, followed by the com.acme.FooSCI, then all other SCIs: <?xml version=\"1.0\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> (1) <Call name=\"setAttribute\"> (2) <Arg>org.eclipse.jetty.containerInitializerOrder</Arg> (3) <Arg>org.eclipse.jetty.websocket.javax.server.JavaxWebSocketServletContainerInitializer, com.acme.FooSCI, *</Arg> (4) </Call> </Configure> 1 Configures a WebAppContext, which is the Jetty component that represents a standard Servlet web application. 2 Specifies a context attribute. 3 Specifies the name of the context attribute. 4 Specifies the value of the context attribute.","title":"Annotations","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/annotations/index.html","titles":[{"text":"Annotation Scanning","hash":"scanning","id":1},{"text":"The container classpath","hash":"og-container-include-jar-pattern","id":2},{"text":"The Jakarta EE Web Application Class-Path","hash":"og-web-inf-include-jar-pattern","id":3},{"text":"Multi-threading","hash":"multi-threading","id":4}
1,{"text":"ServletContainerInitializers","hash":"scis","id":5},{"text":"Exclusions","hash":"exclusions","id":6},{"text":"Ordering","hash":"ordering","id":7}]},"20":{"id":20,"text":"If you are new to Eclipse Jetty, read on to download, install, start and deploy web applications to Jetty. Jetty is distributed in an artifact that expands in a directory called $JETTY_HOME, which should not be modified. Configuration for Jetty is typically done in a directory called $JETTY_BASE. There may be more than one $JETTY_BASE directories with different configurations. Jetty supports the deployment of Jakarta EE {8,9,10,11} web applications, as well as the deployment of Jetty specific web applications, as discussed in this section. For example, the following commands can be used to set up a $JETTY_BASE directory that supports deployment of Jakarta EE 11 *.war files and a clear-text HTTP connector: $ export JETTY_HOME=/path/to/jetty-home $ mkdir /path/to/jetty-base $ cd /path/to/jetty-base $ java -jar $JETTY_HOME/start.jar --add-modules=http,ee11-deploy The last command creates a $JETTY_BASE/start.d/ directory and other directories that contain the configuration of the server, including the $JETTY_BASE/webapps/ directory, in which Jakarta EE 11 *.war files can be deployed. To deploy Jettyâs demo web applications, run this command: $ java -jar $JETTY_HOME/start.jar --add-module=demos Now you can start the Jetty server with: $ java -jar $JETTY_HOME/start.jar Point your browser at http://localhost:8080 to see the demo web applications deployed in Jetty. The Jetty server can be stopped with Ctrl+C in the terminal window. The following sections will guide you in details about downloading, installing and starting Jetty, and deploying your web applications to Jetty. Read the Jetty architecture section for more information about Jetty modules, $JETTY_HOME, $JETTY_BASE and how to customize and start Jetty. The Jetty distribution is a file of the form jetty-home-<version>.<ext>, available for download from https://jetty.org/download.html The Jetty distribution is available in both zip and gzip formats; download the one most appropriate for your system, typically zip for Windows and gzip for other operating systems. After the download, unpacking Jetty will extract the files into a directory called jetty-home-<version>, where <version> is the version of Jetty that you downloaded. For example, installing Jetty 12.1.13 will create a directory called jetty-home-12.1.13. It is important that only stable release versions are used in production environments. Versions that have been deprecated or are released as Milestones (M), Alpha, Beta or Release Candidates (RC) are not suitable for production as they may contain security flaws or incomplete/non-functioning feature sets. Unpack Jetty file into a convenient location, such as /opt. The rest of the instructions in this documentation will refer to this location as $JETTY_HOME, or ${jetty.home}. For Windows users, you should unpack Jetty to a path that does not contain spaces. If you are new to Jetty, you should read the Jetty architecture section to become familiar with the terms used in this documentation. Otherwise, you can jump to the section on starting Jetty. Jetty as a standalone server has no graphical user interface; configuring and running the server is done from the command line. First, create a $JETTY_BASE directory. $ JETTY_BASE=/path/to/jetty.base $ mkdir $JETTY_BASE $ cd $JETTY_BASE You will typically start Jetty by executing $JETTY_HOME/start.jar from this directory. However, if you try to start Jetty from an empty $JETTY_BASE, it will complain that you havenât enabled any modules: $ java -jar $JETTY_HOME/start.jar [Running Jetty] :{jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined} ERROR : No enabled jetty modules found! INFO : ${jetty.home} = /path/to/jetty.home INFO : ${jetty.base} = /path/to/jetty.home-base ERROR : Please create and/or configure a ${jetty.base} directory. Usage: java -jar $JETTY_HOME/start.jar [options] [properties] [configs] java -jar $JETTY_HOME/start.jar --help # for more information Jetty uses a module system to configure and assemble the server; these modules are enabled and configured in $JETTY_BASE. Since the $JETTY_BASE directory you just created is empty, Jetty has no configuration it can use to assemble the server. See the architecture section of this document for more information on the design of Jettyâs module system. You can explore what modules are available with the --list-modules flag: $ java -jar $JETTY_HOME/start.jar --list-modules=* Now try to enable the http module. If you want to enable support for protocols like secure HTTP/1.1 or HTTP/2 or HTTP/3, or want to configure Jetty behind a load balancer, read this section. $ java -jar $JETTY_HOME/start.jar --add-modules=http [Running Jetty] :{args=--add-modules=http, highlight=([a-z\\-]+ *transitively enabled), jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined} INFO : mkdir ${jetty.base}/start.d INFO : scheduler transitively enabled INFO : server transitively enabled INFO : logging-jetty transitively enabled INFO : http
1initialized in ${jetty.base}/start.d/http.ini INFO : resources transitively enabled INFO : http-config transitively enabled INFO : threadpool transitively enabled INFO : logging/slf4j dynamic dependency of logging-jetty INFO : bytebufferpool transitively enabled INFO : mkdir ${jetty.base}/resources INFO : copy ${jetty.home}/modules/logging/jetty/resources/jetty-logging.properties to ${jetty.base}/resources/jetty-logging.properties INFO : Base directory was modified When Jetty enables the http module, it also automatically enables a number of transitive dependencies of the http module, such as the server module, the logging-jetty module, and so on. You can now start Jetty: $ java -jar $JETTY_HOME/start.jar [Running Jetty] :{args=--module=http, highlight=(\\{.*:8080}), jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined} 2026-09-23 22:24:31.030:INFO :oejs.Server:main: jetty-12.1.13; built: 2026-09-07T09:11:01.281Z; git: e99386749a0a4888cd9b555ffc96a476fd48d94e; jvm 21.0.8+9-LTS 2026-09-23 22:24:31.055:INFO :oejs.AbstractConnector:main: Started oejs.ServerConnector@72fdd480{HTTP/1.1, (http/1.1)}{0.0.0.0:8080} 2026-09-23 22:24:31.060:INFO :oejs.Server:main: Started oejs.Server@79e4c792{STARTING}[12.1.13,sto=0] @37ms Jetty is listening on port 8080 for clear-text HTTP/1.1 connections. But since it has no web applications deployed, it will just reply with 404 Not Found to every request. Before you deploy your first web application, take a moment to see what happened to the $JETTY_BASE directory once you enabled the http module: $JETTY_BASE âââ resources â âââ jetty-logging.properties (1) âââ start.d (2) âââ bytebufferpool.ini âââ http-config.ini âââ http.ini (3) âââ scheduler.ini âââ server.ini âââ threadpool.ini 1 The resources/jetty-logging.properties file configures the serverâs logging level; this file was auto-generated when the jetty-logging module was activated as a transitive dependency of the http module. 2 The start.d/ directory contains the *.ini configuration files for any modules you have enabled, either explicitly or transitively. 3 The start.d/http.ini file is the http module configuration file, where you can specify values for the http module properties. Jetty generates *.ini configuration files in start.d/ also for modules enabled as transitive dependencies that have an [ini-template] directive. In the http.ini file you can find the following (among other contents): http.ini --module=http (1) # jetty.http.port=8080 (2) ... 1 This line enables the http module and should not be modified. 2 This commented line specifies the default value for the jetty.http.port property, which is the network port that Jetty uses to listen for clear-text HTTP connections. Try changing the default port. Open http.ini, uncomment the line containing jetty.http.port=, and change its value to 9999: http.ini --module=http jetty.http.port=9999 ... If you restart Jetty, it will use this new value: $ java -jar $JETTY_HOME/start.jar [Running Jetty] :{args=--module=http jetty.http.port=9999, highlight=(\\{.*:9999}), jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined} 2026-09-23 22:24:32.588:INFO :oejs.Server:main: jetty-12.1.13; built: 2026-09-07T09:11:01.281Z; git: e99386749a0a4888cd9b555ffc96a476fd48d94e; jvm 21.0.8+9-LTS 2026-09-23 22:24:32.615:INFO :oejs.AbstractConnector:main: Started oejs.ServerConnector@764bc8cf{HTTP/1.1, (http/1.1)}{0.0.0.0:9999} 2026-09-23 22:24:32.619:INFO :oejs.Server:main: Started oejs.Server@79e4c792{STARTING}[12.1.13,sto=0] @38ms You can also specify the value of a module property when you start up Jetty. A property value specified on the command-line in this way will override the value configured in a moduleâs *.ini file. $ java -jar $JETTY_HOME/start.jar jetty.http.port=8080 [Running Jetty] :{args=--module=http jetty.http.port=8080, highlight=(\\{.*:8080}), jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined} 2026-09-23 22:24:34.249:INFO :oejs.Server:main: jetty-12.1.13; built: 2026-09-07T09:11:01.281Z; git: e99386749a0a4888cd9b555ffc96a476fd48d94e; jvm 21.0.8+9-LTS 2026-09-23 22:24:34.282:INFO :oejs.AbstractConnector:main: Started oejs.ServerConnector@2a6c9c98{HTTP/1.1, (http/1.1)}{0.0.0.0:8080} 2026-09-23 22:24:34.287:INFO :oejs.Server:main: Started oejs.Server@1c5920df{STARTING}[12.1.13,sto=0] @46ms For more detailed information about the Jetty start mechanism, you can read the Jetty start mechanism section. Deployments of web applications in Jetty is detailed in this section. Each web application is deployed to a specific environment, such as the old Java EE 8, or Jakarta EE 11, or Jetty specific environments. Jetty supports simultaneous deployment of web applications each to a possibly different environment, for example an old Java EE 8 web application alongside a new Jakarta EE 11 web application. In the following sections you can find simple examples of deployments of Jakarta EE 11 web applications. A Jakarta EE 11 web application is packaged in either a *.war file or in a directory with the structure of a *.war file. Recall that the structure of a *.war file is as follows: mywebapp.war âââ index.html (1) âââ WEB-INF (2) âââ classes/ (3) âââ lib/ (4) âââ web.xml (5) 1 Publicly accessible resources such as *.html, *.jsp, *.css, *.js files, etc. are placed in *.war or in sub-directories of the *.war. 2 WEB-INF is a special directory used to store anything related to the web application that must not be publicly accessible, but may be accessed by other resources. 3 WEB-INF/classes stores the web applicationâs compiled *.class files 4 WEB-INF/lib stores the web applicationâs *.jar files 5 WEB-INF/web.xml is the web application deployment descriptor, which defines the components and the configuration of your web application. To deploy a Jakarta EE 11 web application, you need to enable the ee11-deploy module. The following examples assume you are deploying a Jakarta EE 11 web application; for other versions of Jakarta EE, or for Jetty web applications, make sure to activate the corresponding deploy module. Refer to the section about deployment for further information about how to deploy to different environments. $ java -jar $JETTY_HOME/start.jar --add-modules=ee11-deploy [Running Jetty] :{args=--add-modules=ee11-deploy, jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=http} INFO : sessions transitively enabled INFO : security transitively enabled INFO : ee11-deploy initialized in ${jetty.base}/start.d/ee11-deploy.ini INFO : deployment-scanner transitively enabled INFO : ee-webapp transitively enabled INFO : deployer-standard transitively enabled INFO : ee11-webapp transitively enabled INFO : ee11-servlet transitively enabled INFO : ee11-security transitively enabled INFO : mkdir ${jetty.base}/webapps INFO : mkdir ${jetty.base}/environments INFO : Base directory was modified The ee11-deploy module creates $JETTY_BASE/webapps, which is the directory where Jetty looks for any *.war files or web application directories to deploy. Activating one of Jettyâs ee{8,9,10,11}-deploy modules enables web application deployment for that specific environment. Whether these web applications are served via clear-text HTTP/1.1, or secure HTTP/1.1, or secure HTTP/2, or HTTP/3 (or even all of these protocols) depen
1ds on whether the correspondent Jetty protocol modules have been enabled. Refer to the section about protocols for further information. Now youâre ready to copy a web application to the $JETTY_BASE/webapps directory. You can use one of the demos shipped with Jetty: $ java -jar $JETTY_HOME/start.jar --add-modules=ee11-demo-simple The $JETTY_BASE directory is now: $JETTY_BASE âââ resources â âââ jetty-logging.properties âââ start.d â âââ ... â âââ ee11-deploy.ini â âââ ee11-demo-simple.ini â âââ http.ini âââ webapps âââ ee11-demo-simple.war Now start Jetty: $ java -jar $JETTY_HOME/start.jar [Running Jetty] :{highlight=WebAppContext, jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=http,deploy,ee11-demo-simple} ERROR : No enabled jetty modules found! INFO : ${jetty.home} = /path/to/jetty.home INFO : ${jetty.base} = /path/to/jetty.home-base ERROR : Please create and/or configure a ${jetty.base} directory. Usage: java -jar $JETTY_HOME/start.jar [options] [properties] [configs] java -jar $JETTY_HOME/start.jar --help # for more information Note the highlighted line that logs the deployment of ee11-demo-simple.war. Now you can access the web application by pointing your browser to http://localhost:8080/ee11-demo-simple. If you want to customize the deployment of your web application â for example, by specifying a contextPath different from the file/directory name, or by specifying JNDI entries, or by specifying virtual hosts â read this section.","title":"Getting Started","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/begin/index.html","titles":[{"text":"Quick Setup","hash":"quick-setup","id":1},{"text":"Downloading Jetty","hash":"download","id":2},{"text":"Installing Jetty","hash":"install","id":3},{"text":"Starting Jetty","hash":"start","id":4},{"text":"Deploying Web Applications","hash":"deploy","id":5},{"text":"Deploying *.war Files","hash":"deploy-war","id":6},{"text":"Advanced Deployment","hash":"deploy-war-advanced","id":7}]},"21":{"id":21,"text":"If you know Eclipse Jetty already, jump to a feature: Protocols HTTP/1.1 Support HTTP/2 Support HTTP/3 Support WebSocket Support Technologies Servlet Annotations JAAS JNDI JSP JMX Monitoring & Management Clustering HTTP Session Caching and Clustering Performance Virtual Threads Faster Jakarta EE Web Application Deployment","title":"Eclipse Jetty Features","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/features/index.html","titles":[]},"22":{"id":22,"text":"The Jetty server supports the deployment of these types of web applications: Jakarta EE 9 to Jakarta EE 11 web applications â web applications written using the corresponding Servlet (and associated specifications) in the jakarta.* packages. Java EE 8 web applications â web applications written using the Servlet 4.0 (and associated specifications) in the javax.* packages. Jetty Core web applications â web applications written against the Jetty Handler APIs, without any Servlet dependencies. Jetty ContextHandler web applications â web applications made of Jetty Handlers shipped with the Jetty libraries. Jetty Static web applications â web applications made of static files only. In the following, the term \"web application\" is used to refer to either a Jetty Static web application, or Jetty Core web application, or Jetty ContextHandler web application, or Java EE 8 web application or Jakarta EE 9 to Jakarta EE 11 web application, unless specified otherwise. Also, in the following, references to \"Jakarta EE\" refer to both Java EE and Jakarta EE, unless specified otherwise. The Jetty server deploys each web application to a specific environment. The available environments are: The static environment, for Jetty Static web applications. The core environment, for Jetty Core web applications, and Jetty ContextHandler web applications. The ee{8,9,10,11} environments, for Jakarta EE web applications. You can simultaneously deploy an old Java EE 8 web application, say old-ee8.
1war, alongside a new Jakarta EE 11 web application, say new-ee11.war, alongside a web application that only uses the Jetty Core Handler APIs, say backoffice-core.xml, all in the same Jetty server. For each specific environment there is a specific deploy module that must be enabled: For the static environment, the static-deploy module. For the core environment, the core-deploy module. For the ee{8,9,10,11} environments, the corresponding ee{8,9,10,11}-deploy module. Each of these modules provides environment specific features, such as library dependencies and default configuration. The Jakarta EE deploy modules provide the corresponding Jakarta EE APIs and the Jetty implementation of those APIs. For example, you can enable the ee11-deploy module in the following way: $ java -jar $JETTY_HOME/start.jar --add-modules=ee11-deploy All deploy modules depend on the deployment-scanner module, that scans monitored directories for web applications to deploy, and for environment configuration files to process. While you can have many deploy modules enabled, one for each environment, there is only one deployment-scanner module that scans the monitored directories. By default, for security reasons, web applications are only deployed at server startup from the $JETTY_BASE/webapps directory. However, you can configure the deployment-scanner module to deploy web applications from a different deploy directory, and/or to deploy/undeploy web applications as they are moved to/removed from the deploy directory (hot deployment). The deployment-scanner module scans the web applications deploy directory (or directories) specified by the jetty.deploy.webappsDir property, by default $JETTY_BASE/webapps, for web applications to deploy. The directory specified by the jetty.deploy.environmentsDir property, by default $JETTY_BASE/environments, is also scanned for configuration files that apply to each environment, and therefore to all web applications deployed to that environment. A web application basefile can be: A Jetty context XML file, for Jetty Static, Jetty Core and Jakarta EE web applications. A *.war file, for Jakarta EE web applications. A directory, for Jetty Static, Jetty Core and Jakarta EE web applications. A web application has a basename derived either from the basefile described above, that is either from the Jetty context XML file name, from the *.war file name, or from the directory name. For example, for the Jetty context XML file old-site.xml, the web application basename is old-site. For the file myapp.war, the basename is myapp. For the directory shop-app/ the basename is shop-app. Web applications may have an associated <basename>.properties configuration file, for example old-site.properties or shop-app.properties. This <basename>.properties file contains properties that influence the deployment of the web application, for example by declaring its environment, as described in this section. A web application <basename>.properties configuration file can specify the following properties: environment=<environment>, to specify the web application environment. jetty.deploy.contextPath=<contextPath>, to specify the web application contextPath (see also this section). jetty.deploy.baseResource=<pathToBaseResource>, to specify the web application base resource directory. The web application base resource directory can be outside of $JETTY_BASE/webapps. jetty.deploy.baseResource.dirAllowed=<true|false>, to specify whether directory listing for the base resource directory is allowed (by default true). For Jakarta EE web applications, the deployment unit is the usual *.war file or a directory with a *.war structure. Like for the Jetty Core web application format, the *.war file or a directory can contain an optional in-application Jetty context XML file under the WEB-INF directory, that allows you to configure the web application deployment. For Jetty Core web applications, the web application format is a directory with the following structure: core-app âââ static # Static files are served from this directory. â âââ css â â âââ styles.css â âââ index.html âââ classes # Where web application Java classes reside. â âââ com â âââ acme â âââ AcmeHandler.class âââ lib # Where web application Java libraries reside. â âââ acme-util.jar âââ jetty-web.xml # Web application specific configuration. The structure is similar to that of a *.war file. A notable difference with *.war files is that static files are only served from the static/ directory (with the static/ prefix removed). This means that files in the directory root, or under any other directory that is not static/, are hidden and if requested they will result in a 404 Not Found response. If the static/ directory is missing, then no static files can be served, and therefore all requests are processed dynamically by the Handlers configured in the web application. Since static files can only be served from the static/ directory, the classes/ and lib/ directories are implicitly hidden, as well as any other directory such as includes/ or fragments/, and any file in the directory root. The classes/ directory stores the web applicationâs *.class files, while the lib/ directory stores the web applicationâs libraries, typically *.jar files. Both these directories are optional. The jetty-web.xml file is an optional in-application Jetty context XML file, that allows you to configure the web application deployment. For Jetty ContextHandler web applications, the web application format is just a Jetty XML file, that c
1ontains references to Jetty Handlers shipped with the Jetty libraries. Refer to this section for the available Jetty Handlers. For example, you can use MovedContextHandler to redirect an old issue-tracking website at bugs.acme.org to the new issue-tracking website at github.com: $JETTY_BASE/webapps âââ bugs.acme.org.xml bugs.acme.org.xml <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://www.eclipse.org/jetty/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.server.handler.MovedContextHandler\"> <Set name=\"virtualHosts\"> <Array type=\"string\"><Item>bugs.acme.org</Item></Array> </Set> <Set name=\"contextPath\">/</Set> <Set name=\"redirectURI\">https://github.com/acme/acme/issues</Set> <Set name=\"statusCode\">301</Set> <Set name=\"discardPathInContext\">true</Set> <Set name=\"discardQuery\">true</Set> </Configure> In the example above, file $JETTY_BASE/webapps/bugs.acme.org.xml specifies a web application deployed under virtual host bugs.acme.org at context path /. The web application is a MovedContextHandler that redirects with HTTP status code 301 (a permanent redirect). Every request to http://bugs.acme.org/<any-path-or-query> will be redirected to https://github.com/acme/acme/issues. Another example is the use of ContextHandler in conjunction with RewriteHandler to rewrite old documentation URIs to new documentation URIs: $JETTY_BASE/webapps âââ docs.project.org.xml docs.project.org.xml <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://www.eclipse.org/jetty/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.server.handler.ContextHandler\"> <Set name=\"virtualHosts\"> <Array type=\"string\"><Item>docs.project.org</Item></Array> </Set> <Set name=\"contextPath\">/</Set> <Set name=\"handler\"> <New class=\"org.eclipse.jetty.rewrite.handler.RewriteHandler\"> <Call name=\"addRule\"> <Arg> <New class=\"org.eclipse.jetty.rewrite.handler.RewriteRegexRule\"> <Set name=\"pattern\">/docs/#_(.*)</Set> <Set name=\"\">/$1</Set> </New> </Arg> </Call> </New> </Set> </Configure> In the example above, file $JETTY_BASE/webapps/docs.project.org.xml specifies a web application deployed under virtual host docs.project.org at context path /. The web application is a ContextHandler with a child RewriteHandler that rewrites old documentation URIs such as /docs/#_proj-intro to /proj-intro using a regular expression rewrite rule. For Jetty Static web applications, the web application format is just a directory, and any file in that directory and any subdirectory is served when requested with the proper request URI â no files are hidden. For example, with the following directory structure: $JETTY_BASE/webapps âââ static-app âââ css/ â âââ styles.css âââ index.html Requests to http://localhost:8080/static-app/index.html and http://localhost:8080/static-app/css/style.css will serve the correspondent files. A request to http://localhost:8080/static-app/css/ will list the content of the directory. To disable directory listing, create a web application properties file with the following content: static-app.properties # Specifies the environment. environment=static # Disables directory listing. jetty.deploy.baseResource.dirAllowed=false You can configure the deployment-scanner module to scan the monitored directories every N seconds, where N is configured via the jetty.deploy.scanInterval property. By default, the scan interval is 0 seconds, which means cold deployment, where the scanning is only performed once, at server startup. This means that to deploy a new web application, or redeploy/undeploy an existing web application, you will need to stop and restart the Jetty server. Setting the scan interval to a value greater than zero means that hot deployment is enabled. The monitored directories are scanned periodically for file changes. When a file is added/changed/removed from the web applications deploy directory (by default $JETTY_BASE/webapps), then the correspondent web application is processed for deploy/redeploy/undeploy with the deployment rules detailed below. When a file is added/changed/removed from the environments directory (by default $JETTY_BASE/environments), the file is processed and all web applications deployed to that specific environment are redeployed. The following command line enables hot deployment by specifying the jetty.deploy.scanInterval property on the command line, and therefore only for this particular run: $ java -jar $JETTY_HOME/start.jar jetty.deploy.scanInterval=5 To make hot deployment c
1onfiguration persistent, you need to edit the $JETTY_BASE/start.d/deployment-scanner.ini module configuration file, and uncomment the property jetty.deploy.scanInterval and change the value to 5 seconds: deployment-scanner.ini --module=deployment-scanner jetty.deploy.scanInterval=5 ... When hot deployment is enabled, the scanner may detect changes to multiple files, and will process the changes in the following way: Undeploy the web applications that have been removed, if any, in basename reverse alphabetical order. Redeploy the web applications that have been modified, if any, in basename alphabetical order. Deploy the web applications that have been added, if any, in basename alphabetical order. For cold deployment, the presence of a web application basefile causes its deployment at server startup. For hot deployment the following rules apply: Adding a new web application basefile that refers to a new basename to the web applications deploy directory (by default $JETTY_BASE/webapps) causes the deployment of the new web application. For example, adding mywebapp.war to an empty $JETTY_BASE/webapps. Adding a new web application basefile (such as mywebapp.xml), or a web application properties file (such as mywebapp.properties) to the web applications deploy directory that refers to an existing basename causes the redeployment of the web application. For example, adding mywebapp.xml or mywebapp.properties when mywebapp.war already exists. Changing a file that refers to a basename causes the redeployment of the web application. For example, editing or changing mywebapp.xml, mywebapp.war or mywebapp.properties. Removing some, but not all, of the files that refer to the same basename causes the redeployment of the web application. For example, removing mywebapp.xml or mywebapp.properties, but leaving mywebapp.war. Removing all the files that refer to the same basename causes the undeployment of the web application. For example, removing mywebapp.xml, mywebapp.war and mywebapp.properties. When a web application is deployed as a directory (not as a file), it is not possible to change the directory (for example using the touch command) to cause the redeployment of the web application. Modification of the files inside the web application directory is not detected as a change. You must add at least a <basename>.properties file (even empty), and touch it to cause redeployment. In the presence of multiple web application basefiles that refers to the same basename, for example when both mywebapp.xml and mywebapp.war exist, or when both mywebapp.war and mywebapp/ exist, then the following rules apply: If <basename>.xml exists, it has precedence over <basename>.war and <basename>/, so only <basename>.xml will be considered for deployment. This allows the XML file to reference the *.war file or directory and avoid that the web application is deployed twice. Otherwise, if <basename>.war exists, it has precedence over <basename>/, so only the *.war file will be considered for deployment. This allows the directory with the same basename to be the *.war file unpack location and avoid that the web application is deployed twice. Otherwise, <basename>/ exists and will be considered for deployment. When a web application is deployed (or redeployed), the web application contextPath is derived from the web application files, with the following rules: If <basename>.xml exists, it is processed and the directives contained in the XML file can set the contextPath to any value (including one that is different from the basename). If <basename>.properties exists, then the contextPath is set to the value of the jetty.deploy.contextPath property, if it is present in <basename>.properties. If the basename is ROOT, case-insensitive, the contextPath is /, and the web application is reachable at http://localhost:8080/. Otherwise, the contextPath is the basename, and the web application is reachable at http://localhost:8080/<basename>. A web application is always deployed to a specific environment, which is either configured explicitly for the web application or set to the default environment. You must always enable at least one deploy module, otherwise no web application can be deployed. If only a single specific deploy module is enabled, for example ee11-deploy, then its environment is the default environment and applications will be deployed to that environment without any additional configuration. If a web application properties file exists, and it specifies the environment property, then its value must specify the same environment as the deploy module, otherwise the deployment will fail. Make sure that you do not inadvertently mix a deploy module for one environment with a web application of a different environment. For example, if you have a Jetty core web application in directory core-app/, and you enable the static-deploy module, then the core-app/ directory will be interpreted as a static web application, and files from the core-app/classes/ directory (that are normally hidden and not served) will be served as static files. It is good practice to always specify the web application properties file and specify the environment property, to avoid deployment of your web applications to an unexpected environment. If multiple deployer modules are enabled, then the default environment is (in order): The most recent Jakarta EE environment of the ee{8,9,10,11}-deploy modules that are enabled, if any. Otherwise, the core environment, if the core-deploy module is enabled. Otherwise, the static environment, if the static-deploy module is enabled. For example, if core-deploy, ee9-deploy and the ee11-deploy modules are enabled, then ee11 is the default environment, to which applications will be deployed unless otherwise configured (see below). To configure a specific environment for an application, you add a web application properties file and specify the environment property. For example, an application deployed to $JETTY_BASE/webapps/my-ee9-app.war is configured with the file $JETTY_BASE/webapps/my-ee9-app.properties, with the following content: my-ee9-app.properties environment=ee9 In case of multiple deploy environments, it is good practice to always specify the web application properties file for your web applications, and specify the environment property, to avoid deployment of your web applications to an unexpected environment. If you do not specify the environment property in the web application properties file for your web applications, then the deployer for the default environment will be used. For example, if the ee11-deploy and the ee9-deploy module are enabled, and
1you deploy a Jakarta EE 9 web application without the *.properties file, then it will be deployed to the (default) ee11 environment, with unspecified results. This unspecified deployment may not work as the Jakarta EE 9 web application may use APIs that have been removed in EE 11, causing an error at runtime. Also in case of multiple deployers, if a web application properties file specifies an environment property, and the corresponding deploy module is not enabled, the deployment will fail. A Jetty context XML file is a Jetty XML file that allows you to customize the deployment of web applications. Recall that the deployment rules give priority to Jetty context XML files over *.war files or directories. To deploy a web application using a Jetty context XML file, simply place the Jetty context XML file in the $JETTY_BASE/webapps directory. For example, to deploy a Jakarta EE 11 web application, enable the ee11-deploy module, and add the following Jetty context XML file, named wiki.xml: wiki.xml <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> (1) <Set name=\"contextPath\">/wiki</Set> (2) <Set name=\"war\">/opt/myapps/myapp.war</Set> (3) </Configure> 1 Configures a WebAppContext, which is the Jetty component that represents a standard Servlet web application for Jakarta EE 11. 2 Specifies the web application contextPath, which may be different from the basename derived from wiki.xml. 3 Specifies the file system path of the *.war file (which may be external to $JETTY_BASE). The Jetty context XML file may be accompanied by a web application properties file that specifies the environment to use for the deployment: wiki.properties environment=ee11 Refer to this section for more information about specifying the environment. The $JETTY_BASE directory would look like this: $JETTY_BASE âââ resources â âââ jetty-logging.properties âââ start.d â âââ ... â âââ ee11-deploy.ini â âââ http.ini âââ webapps âââ wiki.properties âââ wiki.xml The *.war file may be placed anywhere in the file system and does not need to be placed in the $JETTY_BASE/webapps directory, as long as you have a Jetty context XML file referencing it. If you place both the Jetty context XML file and the *.war file in the $JETTY_BASE/webapps directory, remember that they must produce the same basename, for example wiki.xml and wiki.war, so that the deployment is performed only once using the Jetty context XML file (and not the *.war file). You can use the features of Jetty XML files to avoid to hard-code file system paths or other configurations in your Jetty context XML files, for example by using properties declared in wiki.properties or JVM system properties: wiki.xml <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> <Set name=\"contextPath\"><Property name=\"wiki.contextPath\"/></Set> <Set name=\"war\"><SystemProperty name=\"webapps.dir\"/>/myapp.war</Set> </Configure> Note how the contextPath is obtained from the wiki.contextPath configuration property (as an alternative to the jetty.deploy.contextPath property specified in this section), while *.war file path is obtained by resolving the system property webapps.dir that you can specify on the command line when you start Jetty: wiki.properties environment=ee11 wiki.contextPath=/wiki $ java -jar $JETTY_HOME/start.jar -Dwebapps.dir=/opt/myapps Properties specified in environment properties file (described in this section) and in the web application properties file (described in this section) are available when processing the Jetty context XML file. Remember that Jetty context XML files in the $JETTY_BASE/webapps directory can only refer to classes present in the environment class-path/module-path, in the server class-path/module-path, and in the JVM class-path/module-path. For more information about the Jetty class loader hierarchy, see this section. If you need to configure the deployment of your web application referring to web application specific classes, use the in-application Jetty context XML file, as described
1in this section. Environments can be configured via Jetty XML files or *.properties files placed in the $JETTY_HOME/environments directory. Each environment configuration is applied to all web applications deployed/redeployed to that environment. The environment configuration files must start with the environment name, and are processed in alphabetical order, for example ee11.xml, ee11-extra.xml and ee11-other.xml are processed in this order, and they all affect the ee11 environment. The same holds for *.properties files. The environment-specific Jetty XML files will be applied to the web application before any Jetty context XML file associated with the web application, present in the $JETTY_HOME/webapps directory. The contents of the environment specific Jetty context XML file may only contain references to classes appropriate for that environment. For example, you can have a $JETTY_HOME/environments/ee11.xml file with the following content: ee11.xml <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> <Call name=\"setAttribute\"> <Arg>com.acme.ee11.feature</Arg> <Arg>value</Arg> </Call> </Configure> The $JETTY_HOME/environments/ee11-extra.xml file may contain: ee11-extra.xml <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> <Call name=\"addEventListener\"> <Arg> <New class=\"com.acme.MyListenerFeature\"/> </Arg> </Call> </Configure> Custom classes like com.acme.MyListenerFeature must be present in the environment class loader, so that the XML file can reference them. You can extend the environment class loader by enabling the ee11-ext.mod. Refer to this section for more information about the Jetty class loader hierarchy. The directory structure would look like this: $JETTY_BASE âââ environments â âââ ee11.xml â âââ ee11-extra.xml âââ start.d â âââ ... â âââ ee11-ext.ini âââ webapps âââ wiki.properties âââ wiki.xml As discussed in this section, the deployment of a web application can be specified with a Jetty context XML file placed in the $JETTY_HOME/webapps directory. However, the deployment of a web application can also be c
1onfigured using a Jetty context XML file placed inside the web application, both for Core web application deployments and Jakarta EE web application deployments. This file can be useful: To place all configuration inside your web application archive. To perform configuration of the web application that can only occur after the web applicationâs class-path has been created, for example because it references classes present in web application itself. The file must be in the root of the web application and named jetty-web.xml, see this section for an example. For Jakarta EE deployments, there may be multiple in-application Jetty context XML files, typically one for each ee{8,9,10,11} environment. The files must be named either WEB-INF/jetty-ee{8,9,10,11}-web.xml or WEB-INF/jetty-web.xml; the latter is only processed if the former(s) are missing. It is good practice to name the file according to the environment into which the web application will be deployed. If your web application can be deployed to multiple environments, then you should include a WEB-INF/jetty-ee{8,9,10,11}-web.xml file for each environment. If you only deploy to a single environment, then you can omit it from the filename and use WEB-INF/jetty-web.xml, but be aware that likely you will not be able to deploy the web application to a different environment without updating the contents of the file. Web applications may reference JNDI entries, such as a JDBC DataSource or a Jakarta Mail Session. The JNDI entries must be defined in a Jetty context XML file, as detailed in this section. A virtual host is an internet domain name, registered in the Domain Name Server (DNS), for an IP address such that multiple virtual hosts will resolve to the same IP address of a single server instance. If you have multiple web applications deployed on the same Jetty server, by using virtual hosts you will be able to target a specific web application. For example, you may have a web application for your business and a web application for your hobbies , both deployed in the same Jetty server. By using virtual hosts, you will be able to have the first web application available at http://domain.biz/, and the second web application available at http://hobby.net/. Another typical case is when you want to use different subdomains for different web application, for example a project website is at http://project.org/ and the project documentation is at http://docs.project.org. Virtual hosts can be used with any context that is a subclass of ContextHandler, and therefore for Jetty Static web applications, Jetty Core web applications and Jakarta EE web applications. Jetty supports the following variants to be specified as virtual host names: www.hostname.com A fully qualified domain name. It is important to list all variants as a site may receive traffic for both www.hostname.com and hostname.com. *.hostname.com A wildcard domain name which will match only one level of arbitrary subdomains. The wildcard domain *.foo.com will match www.foo.com and m.foo.com, but not www.other.foo.com. 10.0.0.2 An IP address may be set as a virtual host to indicate that a web application should handle requests received on the network interface with that IP address. This is typically only used for protocols that do not indicate a host name such as HTTP/0.9 or HTTP/1.0. @<ConnectorName> A Jetty server Connector name to indicate that a web application should handle requests received on the server Connector with that name, and therefore received on a specific socket address, either an IP port for ServerConnector, or a Unix-Domain path for UnixDomainServerConnector (see also this section). www.âintegral.com Non-ASCII and IDN domain names can be set as virtual hosts using Puny Code equivalents that may be obtained from a Punycode/IDN converters. For example if the non-ASCII domain name www.âintegral.com is given to a browser, then the browser will make a request that uses the domain name www.xnââintegral-7g7d.com, which is the name that should be added as the virtual host name. If you have a web application mywebapp.war you can configure its virtual hosts in this way: <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> <Set name=\"contextPath\">/mywebapp</Set> <Set name=\"war\">/opt/webapps/mywebapp.war</Set> <Set name=\"virtualHosts\"> <Array type=\"java.lang.String\"> <Item>mywebapp.com</Item> <Item>www.mywebapp.com</Item> <Item>mywebapp.net</Item> <Item>www.mywebapp.net</Item> </Array> </Set> </Configure> Your web application will be available at: http://mywebapp.com/mywebapp http://www.mywebapp.com/mywebapp http://mywebapp.net/mywebapp http://www.mywebapp.net/mywebapp In the example above, the web application contextPath is configured to /mywebapp. As such, a request to http://mywebapp.com/other will not match your web application because the contextPath does not match. Likewise, a request to http://other.com/mywebapp will not match your web application because the virtual host does not match. If you want to deploy different web applications to the same context path, typically the root context path /, you must use virtual hosts to differentiate among web applications. You have domain.war that you want to deploy at http://domain.biz/ and hobby.war that you want to deploy at http://hobby.net. To achieve this, you simply use the same context path of / for each of your web applications, while specifying different virtual hosts for each of your web applications: domain.xml <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> <Set name=\"contextPath\">/</Set> <Set name=\"war\">/opt/webapps/domain.war</Set> <Set name=\"virtualHosts\"> <Array type=\"java.lang.String\"> <Item>domain.biz</Item> </Array> </Set> </Configure> hobby.xml <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> <Set name=\"contextPath\">/</Set> <Set name=\"war\">/opt/webapps/hobby.war</Set> <Set name=\"virtualHosts\"> <Array type=\"java.lang.String\"> <Item>hobby.net</Item> </Array> </Set> </Configure> Sometimes it is required to serve different web applications from different socket addresses (either different IP ports, or different Unix-Domain paths), and therefore from different server Connectors. For example, you want requests to http://localhost:8080/ to be served by one web application, but requests to http://localhost:9090/ to be served by another web application. This configuration may be useful when Jetty sits behind a load balancer. In this case, you want to configure multiple connectors, each with a different name specified with https://javadoc.jetty.org/jetty-12.1/org/eclipse/jetty/server/AbstractConnector.html#setName(java.lang.String), and then reference the connector name in the web application virtual host configuration: domain.xml <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> <Set name=\"contextPath\">/</Set> <Set name=\"war\">/opt/webapps/domain.war</Set> <Set name=\"virtualHosts\"> <Array type=\"java.lang.String\"> <Item>
1@port8080</Item> </Array> </Set> </Configure> hobby.xml <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> <Set name=\"contextPath\">/</Set> <Set name=\"war\">/opt/webapps/hobby.war</Set> <Set name=\"virtualHosts\"> <Array type=\"java.lang.String\"> <Item>@port9090</Item> </Array> </Set> </Configure> Web application domain.war has a virtual host of @port8080, where port8080 is the name of a Jetty connector. Likewise, web application hobby.war has a virtual host of @port9090, where port9090 is the name of another Jetty connector. See this section for further information about how to configure connectors. By default, when a Jakarta EE web application in *.war file format is deployed, the *.war file is uncompressed and its content extracted in a temporary directory. The web application resources are served by Jetty from the files extracted in the temporary directory, not from the files within the *.war file, for performance reasons. If you do not want Jetty to extract the *.war files, you can disable this feature in this way: mywebapp.xml <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> <Set name=\"contextPath\">/mywebapp</Set> <Set name=\"war\">/opt/webapps/mywebapp.war</Set> <Set name=\"extractWAR\">false</Set> </Configure> When deploying Jakarta EE web applications, you can configure an additional web.xml that complements the web.xml file that is present in the web application *.war file. This additional web.xml is processed after the *.war file web.xml. This allows you to add host specific configuration or server specific configuration without having to extract the web application web.xml, modify it, and repackage it in the *.war file. mywebapp.xml <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> <Set name=\"contextPath\">/mywebapp</Set> <Set name=\"war\">/opt/webapps/mywebapp.war</Set> <Set name=\"overrideDescriptor\">/opt/webapps/mywebapp-web.xml</Set> </Configure> The format of the additional web.xml is exactly the same as a standard web.xml file, for example: mywebapp-web.xml <?xml version=\"1.0\" encoding=\"UTF-8\"?> <web-app xmlns=\"http://xmlns.jcp.org/xml/ns/javaee\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_1.xsd\" version=\"6.1\"> <servlet> <servlet-name>my-servlet</servlet-name> <init-param> <param-name>host</param-name> <param-value>192.168.0.13</param-value> </init-param> </servlet> </web-app> In the example above, you configured the my-servlet Servlet (defined in the web application web.xml), adding a host-specific init-param with the IP address of the host.","title":"Web Application Deployment","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/deploy/index.html","titles":[{"text":"Monitored Directories","hash":"monitored-directories","id":1},{"text":"Web Application Files","hash":"web-application-files","id":2},{"text":"Web Application Format","hash":"web-application-format","id":3},{"text":"Jakarta EE Web Application Format","hash":"web-application-format-jakarta","id":4},{"text":"Jetty Core Web Application Format","hash":"web-application-format-core","id":5},{"text":"Jetty ContextHandler Web Application Format","hash":"web-application-format-context","id":6},{"text":"Jetty Static Web Application Format","hash":"web-application-format-static","id":7},{"text":"Hot vs Cold Deployment","hash":"hot-cold","id":8},{"text":"Deployment Rules","hash":"rules","id":9},{"text":"Context Path Resolution","hash":"rules-context-path","id":10},{"text":"Environment Resolution","hash":"rules-environment","id":11},{"text":"Single Deployer Environment Resolution","hash":"rules-environment-single-deployer","id":12},{"text":"Multiple Deployers Environment Resolution","hash":"rules-environment-multiple-deployers","id":13},{"text":"Deploying Jetty Context XML Files","hash":"context-xml","
1id":14},{"text":"Environment Configuration","hash":"environment-configuration","id":15},{"text":"In-Application Jetty Context XML File","hash":"jetty-web-xml","id":16},{"text":"In-Application Jetty Context XML File for Core Web Application Deployments","hash":"jetty-web-xml-core","id":17},{"text":"In-Application Jetty Context XML Files for Jakarta EE Web Application Deployments","hash":"jetty-web-xml-jakarta","id":18},{"text":"Configuring JNDI Entries","hash":"jndi","id":19},{"text":"Configuring Virtual Hosts","hash":"virtual-hosts","id":20},{"text":"Virtual Host Names","hash":"virtual-hosts-names","id":21},{"text":"Virtual Hosts Configuration","hash":"virtual-hosts-config","id":22},{"text":"Same Context Path, Different Virtual Hosts","hash":"virtual-hosts-same-context","id":23},{"text":"Different Port, Different Web Application","hash":"virtual-hosts-port","id":24},{"text":"Configuring *.war File Extraction","hash":"extract-war","id":25},{"text":"Overriding web.xml","hash":"jetty-override-web-xml","id":26}]},"23":{"id":23,"text":"For each specific environment there is a specific Jetty module that you must enable in order to use JNDI resources in your web application: For Jetty Static and Core web applications, the plus module. For Jakarta EE {8,9,10,11} web applications, the correspondent ee{8,9,10,11}-plus module. If you have already enabled an annotations module suitable for your environment, an appropriate plus module will already have been enabled, and
1you do not need to explicitly enable a plus module. If your JNDI resources need extra libraries, for example database driver libraries, that are not located inside your web application, then you must ensure they are on the environment class-path/module-path. You can enable the ext module for Jetty Core web applications, or the specific ee{8,9,10,11}-ext module for Jakarta EE web applications, and place your extra libraries respectively in $JETTY_BASE/lib/ext or $JETTY_BASE/lib/ee{8,9,10,11}/ext to make them available in the environment class-path/module-path. You can now define JNDI resources and reference them within your web applications. JNDI resources are referenced by web application via JNDI names. For Jakarta EE web applications, the JNDI names must be declared via env-entry, resource-ref and resource-env-refs in web.xml, web-fragment.xml or Jettyâs override-web.xml. The resources are bound to their JNDI names in Jetty XML files that are either external or internal to your web application. External Jetty XML files are those used to deploy the web application, as defined in this section. Internal Jetty XML files are those present inside the web application directory or packaged file, as defined in this section. For Jakarta EE web applications, the file WEB-INF/jetty-ee{8,9,10,11}-env.xml is processed before other internal Jetty XML files such as WEB-INF/jetty-ee{8,9,10,11}-web.xml, so that JNDI resources can be bound and later possibly processed by WEB-INF/jetty-ee{8,9,10,11}-web.xml. See the section on Jetty XML files for more information on how to choose in which XML file to place the definitions of your JNDI resources. The definitions of your JNDI resources are instances of the following types: org.eclipse.jetty.plus.jndi.EnvEntry Used for env-entry resources in web.xml. org.eclipse.jetty.plus.jndi.Resource Used for other type of resources. org.eclipse.jetty.plus.jndi.Transaction org.eclipse.jetty.ee{8,9,10,11}.plus.jndi.Transaction Used for a JTA transaction manager. org.eclipse.jetty.plus.jndi.Link Used for linking between a web.xml resource name and a naming entry. Definitions of each of these types follow this pattern: <New class=\"org.eclipse.jetty.plus.jndi.<resource-class>\"> (1) <Arg><!-- scope --></Arg> (2) <Arg><!-- name --></Arg> (3) <Arg><!-- value --></Arg> (4) </New> 1 Defines a resource of the given class to Jetty. 2 Specifies the scope of the resource. 3 Specifies the name of the resource which will be looked up by the web application relative to the java:comp/ or java:comp/env namespace. 4 Specifies the value of the resource. Sometimes it is useful to pass configuration information to a web application at runtime that you either cannot or cannot conveniently code into a web.xml <env-entry>. In such cases, you can use the org.eclipse.jetty.plus.jndi.EnvEntry class, and optionally even override an entry of the same name in web.xml. Hereâs an example that defines the equivalent of an env-entry called mySpecialValue with value 4000 that overrides an <env-entry> declaration of the same name in web.xml: <New class=\"org.eclipse.jetty.plus.jndi.EnvEntry\"> (1) <Arg></Arg> (2) <Arg>mySpecialValue</Arg> (3) <Arg type=\"java.lang.Integer\">4000</Arg> (4) <Arg type=\"boolean\">true</Arg> (5) </New> 1 Defines an EnvEntry that corresponds to an <env-entry> in web.xml. 2 Scoped at the JVM level. 3 The name of the entry, corresponding to a lookup by the web application of java:comp/env/mySpecialValue. 4 The value of the entry, in this case the integer value 4000. 5 true means to override the value of an <env-entry> of the same name in web.xml. Note that if you donât want to override the web.xml value, simply omit the last argument, or set it to false. The Servlet specification allows binding only the following object types to an env-entry: java.lang.String java.lang.Integer java.lang.Float java.lang.Double java.lang.Long java.lang.Short java.lang.Character java.lang.Byte java.lang.Boolean Jetty is a little more flexible and allows you to also bind: Instances of any object. javax.naming.Reference instances. javax.naming.Referenceable instances. Be aware that if you take advantage of this flexibility, your web application is not portable across Servlet containers. You can configure any type of resource that you want to refer to in web.xml via a resource-ref or resource-env-ref by using the org.eclipse.jetty.plus.jndi.Resource type of naming entry. You provide the scope, the name of the object (relative to java:comp/env) and either the resource, or a javax.naming.Reference or a javax.naming.Referenceable instance. This example configures a Derby DataSource named jdbc/myds: <Configure id=\"wac\" class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> <New class=\"org.eclipse.jetty.plus.jndi.Resource\"> <Arg><Ref refid=\"wac\"/></Arg> <Arg>jdbc/myds</Arg> <Arg> <New class=\"org.apache.derby.jdbc.EmbeddedDataSource\"> <Set name=\"DatabaseName\">test</Set> <Set name=\"createDatabase\">create</Set> </New> </Arg> </New> </Configure> This would be linked into the web applicationâs JNDI namespace via an entry in a web.xml like so: <resource-ref> <res-ref-name>jdbc/myds</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> When configuring Resources, ensure that the type of object you configure matches the type of object you expect to look up from java:comp/env. For database connection factories, this means that the object you register as a Resource must implement the javax.sql.DataSource interface. Also note that the Jakarta specification recommends storing DataSources relative to jdbc/ and thus looked up by the web application as java:comp/env/jdbc/<datasource-name>. For example, the Datasource bound in Jetty as jdbc/users would be looked up by the web application as java:comp/env/jdbc/users. Jetty can bind any implementation of the JMS destinations and connection factories. Here is an example of binding an ActiveMQ in-JVM connection factory: <Configure id=\"wac\" class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> <New class=\"org.eclipse.jetty.plus.jndi.Resource\"> <Arg><Ref refid=\"wac\"/></Arg> <Arg>jms/connectionFactory</Arg> <Arg> <New class=\"org.apache.activemq.ActiveMQConnectionFactory\"> <Arg>vm://localhost?broker.persistent=false</Arg> </New> </Arg> </New> </Configure> The corresponding entry in web.xml to bind the ConnectionFactory into the web applicationâs JNDI namespace would be: <resource-ref> <res-ref-name>jms/connectionFactory</res-ref-name> <res-type>javax.jms.ConnectionFactory</res-type> <res-auth>Container</res-auth> </resource-ref> The Jakarta specification recommends storing JMS connection factories under jms/. For example, the ConnectionFactory bound in Jetty as jms/inqueue would be looked up by the application as java:comp/env/jms/inqueue. To configure access to jakarta.mail.Session from within a web application, define an org.eclipse.jetty.plus.jndi.Resource with an org.eclipse.jetty.ee{8,9,10,11}.jndi.factories.MailSessionReference that will hold the mail configuration and create the instance of the Session when it is referenced: <Configure id=\"wac\" class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> <New class=\"org.eclipse.jetty.plus.jndi.Resource\"> <Arg><Ref refid=\"wac\"/></Arg> <Arg>mail/Session</Arg> <Arg> <New class=\"org.eclipse.jetty.ee11.jndi.factories.MailSessionReference\"> (1) <Set name=\"user\">fred</Set> (2) <Set name=\"password\">OBF:1xmk1w261z0f1w1c1xmq</Set> (3) <Set name=\"properties\"> (4) <New class=\"java.util.Properties\"> <Put name=\"mail.smtp.host\">XXX</Put> <Put name=\"mail.from\">me@me</Put> <Put name=\"mail.debug\">true</Put> </New> </Set> </New> </Arg> </New> </Configure> 1 Use the org.eclipse.jetty.ee11.factories.MailSessionReference class to hold the configuration. 2 Set the username for the mail instance. 3 Set the password for the mail instance â use the Jetty Password tool to obfuscate the password. 4 Set all other applicable properties. The web application performs a lookup for java:comp/env/mail/Session at runtime and obtains a jakarta.mail.Session that has the correct configuration to permit it to send email via SMTP. Note also that the Jakarta specification recommends storing Jakarta Mail connection factories under mail/. For example, the MailSessionReference bound to jetty as mail/smtp would be looked up by the web application as java:comp/env/mail/smtp. Jetty does not provide the jakarta.mail and jakarta.activation libraries. To perform distributed transactions with your resources, a transaction manager that supports the Jakarta Transaction (JTA) interfaces is required. The transaction manager is looked up by the application as java:comp/UserTransaction. Jetty does not ship with a transaction manager, but provides the infrastru
1cture to plug in the transaction manager of your choice. If the JTA implementation of jakarta.transaction.UserTransaction implements javax.naming.Reference, then you should use the org.eclipse.jetty.plus.jndi.Transaction object in a Jetty XML file to register it in JNDI: <New id=\"tx\" class=\"org.eclipse.jetty.plus.jndi.Transaction\"> <Arg><Property name=\"environment\" default=\"ee11\"/></Arg> (1) <Arg> <New class=\"org.acme.jta.MyUserTransactionReference\" /> (2) </Arg> </New> 1 The scope of the resource. 2 The transaction manager instance implementing jakarta.transaction.UserTransaction and javax.naming.Reference. If your JTA implementation of UserTransaction does not implement javax.naming.Reference, then you should use the Jakarta specific Jetty class to register it in JNDI: <New id=\"tx\" class=\"org.eclipse.jetty.ee11.plus.jndi.Transaction\"> <Arg><Property name=\"environment\" default=\"ee11\"/></Arg> (1) <Arg> <New class=\"org.acme.jta.MyUserTransaction\" /> (2) </Arg> </New> 1 The scope of the resource. 2 The transaction manager instance implementing jakarta.transaction.UserTransaction. Jetty will automatically bind this transaction manager to the web applicationâs JNDI namespace at java:comp/UserTransaction. Usually, the name you provide for the org.eclipse.jetty.plus.jndi.Resource is the same name you reference in web.xml. This ensures that the two are linked together and thus accessible to your web application. However, if the names cannot be the same, then it is possible to effectively alias one to another using an org.eclipse.jetty.plus.jndi.Link. Suppose you have a definition for a Datasource named jdbc/workforce in a Jetty context XML file, but your web.xml wants to link to a <resource-ref>
1 named jdbc/employees, and you cannot edit the web.xml. You can create a WEB-INF/jetty-ee{8,9,10,11}-env.xml file with an org.eclipse.jetty.plus.jndi.Link that ties together the names jdbc/workforce and jdbc/employees: The Jetty Context XML file defines jdbc/workforce: <Configure id=\"wac\" class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> <New class=\"org.eclipse.jetty.plus.jndi.Resource\"> <Arg><Ref refid=\"wac\"/></Arg> <Arg>jdbc/workforce</Arg> <Arg> <New class=\"org.apache.derby.jdbc.EmbeddedDataSource\"> <Set name=\"DatabaseName\">test</Set> <Set name=\"createDatabase\">create</Set> </New> </Arg> </New> </Configure> The web.xml refers to it as jdbc/employees: <resource-ref> <res-ref-name>jdbc/employees</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> Create a WEB-INF/jetty-ee{8,9,10,11}-env.xml file with a org.eclipse.jetty.plus.jndi.Link to link these names together: <New class=\"org.eclipse.jetty.plus.jndi.Link\"> <Arg><Ref refid=\"wac\"/></Arg> <Arg>jdbc/employees</Arg> (1) <Arg>jdbc/workforce</Arg> (2) </New> 1 The name as referenced in the web.xml file. 2 The name as referenced in the Jetty Context XML file. You can define naming resources in three places: Server XML file Resources defined in a server XML file are scoped at the JVM, org.eclipse.jetty.server.Server or environment level. Note that the classes for the resource must be accessible at the time that the XML is processed. For example, environment resources that depend on an external library should be defined in an XML file that is processed after the environment class-path has been properly configured. This can be achieved by using the ee{8,9,10,11}-ext module, with the external library in the $JETTY_BASE/lib/ee{8,9,10,11}/ext/ directory, or with a custom module that contains an [environment] clause and a [lib] clause. Context XML file Resources defined in a context XML file should be scoped at the level of the web application to which they apply (it is possible to use a less strict scoping level of Server or JVM, but not recommended). As the Context XML file executes before the web application classes are available, the classes for your resource must be external to the web application, either on the container or on environment class-path. WEB-INF/jetty-ee{8,9,10,11}-env.xml Resources defined in a WEB-INF/jetty-ee{8,9,10,11}-env.xml file are scoped to the web application in which the file resides. The resources defined by this file may use classes from inside your web application. WEB-INF/jetty-ee{8,9,10,11}-web.xml Resources defined in a WEB-INF/jetty-ee{8,9,10,11}-web.xml file are scoped to the web application in which the file resides. The resources defined by this file may use classes from inside your web application. This file is processed after WEB-INF/jetty-ee{8,9,10,11}-env.xml. Resources within Jetty are defined in different scopes, in increasing order of restrictiveness: JVM scope The resource is unique across the JVM instance, and is visible to all application code. This scope is represented by a null first parameter to the resource definition. For example: <New id=\"cf\" class=\"org.eclipse.jetty.plus.jndi.Resource\"> <Arg></Arg> (1) <Arg>jms/connectionFactory</Arg> <Arg> <New class=\"org.apache.activemq.ActiveMQConnectionFactory\"> <Arg>vm://localhost?broker.persistent=false</Arg> </New> </Arg> </New> 1 The scope is null or the empty string to indicate the JVM scope for the resource. Environment scope The resource is unique within a Jetty environment. The scope is represented by referencing the name of the environment as the first parameter to the resource definition. For example: <New id=\"cf\" class=\"org.eclipse.jetty.plus.jndi.Resource\"> <Arg>ee11</Arg> (1) <Arg>jms/connectionFactory</Arg> <Arg> <New class=\"org.apache.activemq.ActiveMQConnectionFactory\"> <Arg>vm://localhost?broker.persistent=false</Arg> </New> </Arg> </New> 1 The scope is the name of the environment to indicate the environment scope for the resource. Web application scope The resource is unique to the org.eclipse.jetty.ee{8,9,10,11}.webapp.WebAppContext instance, and is only visible to that application. The scope is represented by referencing the context instance as the first parameter to the resource definition. For example: <New class=\"org.eclipse.jetty.plus.jndi.Resource\"> <Arg><Ref refid=\"wac\"/></Arg> (1) <Arg>jms/connectionFactory</Arg> <Arg> <New class=\"org.apache.activemq.ActiveMQConnectionFactory\"> <Arg>vm://localhost?broker.persistent=false</Arg> </New> </Arg> </New> 1 The scope is the org.eclipse.jetty.ee{8,9,10,11}.webapp.WebAppContext instance, to indicate the web application scope for the resource.","title":"JN
1DI","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/jndi/index.html","titles":[{"text":"Defining resources","hash":"defining-resources","id":1},{"text":"org.eclipse.jetty.plus.jndi.EnvEntry","hash":"env","id":2},{"text":"org.eclipse.jetty.plus.jndi.Resource","hash":"resource","id":3},{"text":"DataSources","hash":"datasources","id":4},{"text":"JMS Queues, Topics and ConnectionFactories","hash":"jms-queues-topics-and-connectionfactories","id":5},{"text":"Mail","hash":"mail","id":6},{"text":"org.eclipse.jetty.plus.jndi.Transaction","hash":"tx","id":7},{"text":"org.eclipse.jetty.plus.jndi.Link","hash":"link","id":8},{"text":"Jetty XML files","hash":"xml","id":9},{"text":"Resource scoping","hash":"scope","id":10}]},"24":{"id":24,"text":"Monitoring and management of a Jetty server is important because it allows you to monitor the status of the server (\"Is the server processing requests?\") and to manage â i.e. read and possibly change â its configuration. The ability to read and change the Jetty configuration is very important for troubleshooting Jetty â please refer to the troubleshooting section for more information. Jetty relies on the Java Management Extensions (JMX) APIs included in OpenJDK to provide monitoring and management. The JMX APIs support a JVM-local MBeanServer, accessible only from within the JVM itself (or by tools that can attach to a running JVM), and a way to expose the MBeanServer to remote clients via Javaâs RMI (Remote Method Invocation). As with many other Jetty features, local JMX support is enabled with the jmx Jetty module: $ java -jar $JETTY_HOME/start.jar --add-modules=jmx With the jmx Jetty module enabled, Jetty components will be exported as JMX MBeans to the JVM platform MBeanServer, so that they can be accessed by JMX compliant tools. Each Jetty component will export to its correspondent MBean relevant configuration parameters, so that a JMX tool can read and possibly change the component configuration through the MBean. Note that the Jetty MBeans are registered into the platform MBeanServer, but are not available to remote clients: they are local to the JVM. This configuration is useful when you develop and test your Jetty server locally. JMX compliant tools such as Java Mission Control (JMC) can be started locally on your machine and can attach to other JVMs running on your machine, showing you the registered MBeans among which you will find the Jetty MBeans. Enabling only the local JMX support is the most secure option for monitoring and management, but only users that have local access to the JVM will be able to browse the MBeans. If you need to access the MBeans from a remote machine, read this section. There are two ways to configure a Jetty server so that it is possible to access the JVM platform MBeans from remote clients: Use the com.sun.management.jmxremote and related system properties when starting Jetty. Unfortunately, this solution does not work well with firewalls, and will not be discussed further. Use the jmx-remote Jetty module. Both ways use Javaâs Remote Method Invocation (RMI) to communicate between the client and the server. Refresher: How RMI Works A server application that wants to make an object available to remote clients must export the object. Exporting an object creates an RMI stub that contains the host/port of the RMI server that accepts incoming invocations from clients and forwards them to the object. During the creation of the RMI stub, the host stored in the RMI stub is retrieved from the local name resolution system (for example, in Linux, from /etc/hosts). The RMI stub is then sent, along with a name that uniquely identifies the object, to the RMI registry. The RMI registry is a service that maps names to RMI stubs; it may be external to both clients and server, although often it is part of the server JVM. When a client application wants to connect to the server object using RMI, it first connects to the RM
1I registry to download the RMI stub for the RMI server; recall that the RMI stub contains the host/port to connect to the RMI server. Then, the client uses the RMI stub to connect to the RMI server, typically to a host/port that may be different from the RMI registry host/port (in particular, by default the RMI server port will be different from the RMI registry port). Remote access to the platform MBeans, and therefore the Jetty MBeans, is enabled by the jmx-remote Jetty module: $ java -jar $JETTY_HOME/start.jar --add-modules=jmx-remote This command creates the jmx-remote.ini file: JETTY_BASE âââ start.d âââ jmx-remote.ini Enabling the jmx-remote module transitively enables the jmx module as well. The configuration for the RMI registry and the RMI server is specified by a JMXServiceURL. The string format of an RMI JMXServiceURL is the following: service:jmx:rmi://<rmi_server_host>:<rmi_server_port>/jndi/rmi://<rmi_registry_host>:<rmi_registry_port>/jmxrmi Below you can find examples of JMXServiceURLs: service:jmx:rmi:///jndi/rmi:///jmxrmi where: rmi_server_host = local host address rmi_server_port = randomly chosen rmi_registry_host = local host address rmi_registry_port = 1099 service:jmx:rmi://0.0.0.0:1099/jndi/rmi://0.0.0.0:1099/jmxrmi where: rmi_server_host = any address rmi_server_port = 1099 rmi_registry_host = any address rmi_registry_port = 1099 service:jmx:rmi://localhost:1100/jndi/rmi://localhost:1099/jmxrmi where: rmi_server_host = loopback address rmi_server_port = 1100 rmi_registry_host = loopback address rmi_registry_port = 1099 The default JMXServiceURL configured by the jmx-remote module is the following: service:jmx:rmi://localhost:1099/jndi/rmi://localhost:1099/jmxrmi With the default configuration, only clients that are local to the server machine can connect to the RMI registry and RMI server - this is done for security reasons. However, even with this local-only configuration, it would still be possible to access the MBeans from remote using an SSH tunnel, as explained in this section. By specifying an appropriate JMXServiceURL, you can fine tune the network address the RMI registry and the RMI server bind to, and the ports that the RMI registry and the RMI server listen to. The RMI server and RMI registry hosts and ports can be the same (as in the default configuration) because RMI is able to multiplex traffic arriving to one port to multiple RMI objects. If you need to allow JMX remote access through a firewall, you must open both the RM
1I registry and the RMI server ports. The default configuration simplifies the firewall configuration because you only need to open port 1099. When Jetty is started with the jmx-remote module enabled, the RMI stub of the Jetty component that provides access to the MBeans is exported to the RMI registry. The RMI stub contains the host/port to connect to the RMI server, but the host is typically the machine host name, not the host specified in the JMXServiceURL (the latter is only used to specify the network address the RMI server binds to). To control the host stored in the RMI stub you need to set the system property java.rmi.server.hostname with the desired value in the module configuration file, jmx-remote.ini. If your client cannot connect to the server, the most common cause is a mismatch between the RMI server host of the JMXServiceURL and the RMI server host of the RMI stub. You can customize the RMI server host/port, the RMI registry host/port and the system property java.rmi.server.hostname by editing the jmx-remote.ini configuration file. Further information about the jmx-remote module configuration can be found here. You can access JMX MBeans on a remote machine when the RMI ports are not open, for example because of firewall policies, but you have SSH access to the machine, using local port forwarding via an SSH tunnel. In this case you want to configure the JMXServiceURL that binds the RMI server and the RMI registry to the loopback interface only and to the same port: service:jmx:rmi://localhost:1099/jndi/rmi://localhost:1099/jmxrmi You must set the system property -Djava.rmi.server.hostname=localhost so that the RMI stub contains localhost as the host name to connect to. This is, incidentally, the default configuration of the jmx-remote module. Then you set up the local port forwarding with the SSH tunnel: $ ssh -L 1099:localhost:1099 <user>@<machine_host> Thanks to the local port forwarding of the SSH tunnel, when the client connects to localhost:1099 on your local computer, the traffic will be forwarded to machine_host and when there, the SSH daemon will forward the traffic to localhost:1099 on machine_host, which is exactly where the RMI server and the RMI registry listens to. The client first contacts the RMI registry, so it connects to localhost:1099 on your local computer; the traffic is forwarded to machine_host through the SSH tunnel, connects to the RM
1I registry and the RMI stub is downloaded to the client. Then the client uses the RMI stub to connect to the RMI server. The RMI stub contains localhost as the RMI server host because that is what you have configured with the system property java.rmi.server.hostname. The client will connect again to localhost:1099 on your local computer, this time to contact the RMI server; the traffic is forwarded to machine_host through the SSH tunnel, arrives to machine_host and connects to the RMI server. The standard javax.management.remote.JMXConnectorServer class, used by the jmx-remote module to provide remote JMX access to Jetty MBeans, provides several options to authenticate and authorize users. For a complete guide to controlling authentication and authorization in JMX, see the official JMX documentation. The simplest way to control JMX authentication and authorization is to specify two files: one contains username and password pairs, and the other contains username and permission pairs. This is achieved by enabling the jmx-remote-auth Jetty module: $ java -jar $JETTY_HOME/start.jar --add-modules=jmx-remote-auth Enabling the jmx-remote-auth Jetty module creates the following files: $JETTY_BASE âââ etc â âââ jmxremote.access â âââ jmxremote.password â âââ jmx-remote-auth.xml âââ start.d âââ jmx-remote-auth.ini âââ jmx-remote.ini Then you edit the $JETTY_BASE/etc/jmxremote.password file, adding the username/password pairs that you need: $JETTY_BASE/etc/jmxremote.password # The file format is: <username> <password> alice wonderland bob marley You must also edit the $JETTY_BASE/etc/jmxremote.access file to give permissions to your users: $JETTY_BASE/etc/jmxremote.access # The file format is: <username> <readonly|readwrite> alice readwrite bob readonly The above files define user alice with password wonderland to have readwrite access, and user bob with password marley to have readonly access. The JMX communication via RMI happens by default in clear-text, but it is possible to secure the JMX communication via RMI with TLS. If you want to reuse the configuration that you are using for the https module, you can just enable the jmx-remote-ssl.xml Jetty module: $ java -jar $JETTY_HOME/start.jar --add-modules=jmx-remote-ssl The jmx-remote-ssl Jetty module depends on the ssl Jetty module that in turn requires a KeyStore (read this section for more information). The KeyStore must contain a valid certificate signed by a Certification Authority. Having certificates signed by a Certification Authority simplifies by a lot the configuration needed to get the RMI communication over TLS working properly. The RMI mechanic is the usual one: the RMI client (typically a monitoring console) will connect first to the RMI registry (using TLS), download the RMI stub that contains the address and port of the RMI server to connect to, then connect to the RMI server (using TLS). This also mean that if the RMI registry and the RMI server are on different hosts, the RMI client must have available the cryptographic material to validate the certificates from both hosts. This is where having certificates signed by a Certification Authority simplifies the configuration: if they are signed by a well known Certification Authority, the client does not need any extra configuration â everything will be handled by the Java runtime. If the certificates are not signed by a Certification Authority (for example the certificate is self-signed), then you need to specify the TLS system properties that allow RMI (especially when acting as an RMI client) to retrieve the cryptographic material necessary to establish the TLS connection. When the RMI server exports the JMXConnectorServer it acts as an RMI client towards the RMI registry, and as such you must specify the TLS system properties as detailed below. You must edit the $JETTY_BASE/start.d/jmx-remote-ssl.ini file and add the TrustStore path and password: $JETTY_BASE/start.d/jmx-remote-ssl.ini --module=jmx-remote-ssl # System properties necessary for non-trusted certificates. -Djavax.net.ssl.trustStore=/path/to/trustStore.p12 -Djavax.net.ssl.trustStorePassword=password The TrustStore must contain the certificate you want to trust. If you are using self
1-signed certificates, the KeyStore already contains the self-signed certificate and therefore the KeyStore can be used as a TrustStore, and the system properties above can refer to the KeyStore path and password. JMX compliant tools that offer a graphical user interface also must be started specifying the TrustStore path and password. For example, to launch Java Mission Control (JMC): $ jmc -vmargs -Djavax.net.ssl.trustStore=/path/to/trustStore.p12 -Djavax.net.ssl.trustStorePassword=password","title":"JMX Monitoring & Management","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/jmx/index.html","titles":[{"text":"Enabling Local JMX Support","hash":"local","id":1},{"text":"Enabling Remote JMX Support","hash":"remote","id":2},{"text":"Remote JMX Access with Port Forwarding via SSH Tunnel","hash":"remote-ssh-tunnel","id":3},{"text":"Remote JMX Access Authentication & Authorization","hash":"remote-auth","id":4},{"text":"Securing Remote JMX Access with TLS","hash":"remote-secure","id":5}]},"25":{"id":25,"text":"Configure Clear-Text HTTP/1.1 Configure Secure HTTP/1.1 (https) Configure Clear-Text HTTP/2 Configure Secure HTTP/2 Configure HTTP/3 Configure Jetty Behind a Load Balancer or Reverse Proxy Configure Jetty Logging Configure Jetty Thread Pool and Virtual Threads Troubleshooting","title":"Eclipse Jetty How-Tos","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/howtos/index.html","titles":[]},"26":{"id":26,"text":"If you want to use Jakarta Faces with your Jakarta EE web application, you should enable the ee{8,9,10,11}-ext Jetty module, and copy the relevant Jakarta Faces API jar files, and the Jakarta Faces implementation jar files of your choice into the $JETTY_BASE/lib/ee{8,9,10,11}/ext directory created by the ee{8,9,10,11}-ext module you enabled. Then you will need to tell Jetty which of those jar files contains the *.tld files. To accomplish that, you need to specify either the name of the file or a pattern that matches the name of the file(s) as the org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern context attribute. You will need to preserve the existing value of the attribute, and add in your extra pattern. Below you can find an example of using a Jetty context XML file to add a pattern to match files starting with jsf-, which contain the *.tld files: <?xml version=\"1.0\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> (1) <Call name=\"setAttribute\"> (2) <Arg>org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern</Arg> (3) <Arg>.*/jetty-servlet-api-[^/]*\\.jar$|.*/javax.servlet.jsp.jstl-.*\\.jar$|.*/org.apache.taglibs.taglibs-standard-impl-.*\\.jar$|.*/jsf-[^/]*\\.jar$</Arg> (4) </Call> </Configure> 1 Configures a WebAppContext, which is the Jetty component that represents a Jakarta EE web application. 2 Sets a context attribute. 3 Specifies the name of the context attribute. 4 Specifies the value of the context attribute, adding the additional pattern .*/jsf-[^/]*\\.jar$ to those already existing.","title":"Jakarta Faces TagLibs","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/jsf-taglibs/index.html","titles":[]},"27":{"id":27,"text":"The JavaServer Pages Standard Tag Library (JSTL) is part of the Jetty distribution, and is available via the ee{8,9,10,11}-jstl modules: # DO NOT EDIT THIS FILE - See: https://jetty.org/docs/ [description] Enables JSTL for all web applications deployed on the server. [environment] ee11 [depend] ee11-jsp ee11-glassfish-jstl When enabled, Jetty will make the JSTL tags available for your web applications.","title":"JavaServer Pages Standard Tag Libraries","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/jstl/index.html","titles":[]},"28":{"id":28,"text":"Jetty supports JSP via the ee{8,9,10,11}-jsp modules, which are based on Apache Jasper: # DO NOT EDIT THIS FILE - See: https://jetty.org/docs/ [description] Enables JSP for all web applications deployed on the server. [environment] ee11 [depend] ee11-servlet ee11-annotations ee11-apache-jsp Logging has been bridged to Jetty logging, so you can enable logging for the org.apache.jasper package, subpackages and classes as usual. The org.eclipse.jetty.jsp.JettyJspServlet is the servlet responsible for serving JSPs. It is configured as the default jsp servlet in the $JETTY_HOME/etc/webdefault.xml file. Notice that Jetty identifies the jsp servlet by the presence of the id=\"jsp\" attribute in the <servlet> declaration. That file maps the org.eclipse.jetty.jsp.JettyJspServlet to the following partial urls: *.jsp *.jspf *.jspx *.xsp *.JSP *.JSPF *.JSPX *.XSP You can change to a different servlet, change or add <init-param>s or add extra <servlet-mapping>s in your web.xml file. Hereâs an example of adding an <init-param> to augment the definitions from the standard webdefault.xml file: <servlet id=\"jsp\"> (1) <servlet-name>jsp</servlet-name> (2) <init-param> <param-name>keepgenerated</param-name> (3) <param-value>true</param-value> (4) </init-param> </servlet>
1 1 This identifies this servlet as the jsp servlet to Jetty. 2 This identifies this declaration as augmenting the already-defined servlet called jsp. 3 This init param controls whether the jsp servlet retains the *.java files generated during jsp compilation. 4 This sets the value of the init param Another element you might consider adding to the default setup is async-supported: <servlet id=\"jsp\"> (1) <servlet-name>jsp</servlet-name> (2) <async-supported>true</async-supported> (3) </servlet> 1 This identifies this servlet as the jsp servlet to Jetty. 2 This identifies this declaration as augmenting the already-defined servlet called jsp. 3 By default, the jsp servlet does not support async. There are many configuration parameters for the Apache Jasper JSP Servlet, here are some of them: Table 1. JSP Servlet Parameters init param Description Default webdefault.xml checkInterval If non-zero and development is false, background jsp recompilation is enabled. This value is the interval in seconds between background recompile checks. 0 â classpath The classpath is dynamically generated if the context has a URL classloader. The org.apache.catalina.jsp_classpath context attribute is used to add to the classpath, but if this is not set, this classpath configuration item is added to the classpath instead.` - â classdebuginfo Include debugging info in class file. true â compilerClassName If not set, defaults to the Eclipse jdt compiler. - â compiler Used if the Eclipse jdt compiler cannot be found on the classpath. It is the classname of a compiler that Ant should invoke. â â compilerTargetVM Target vm to compile for. 1.8 1.8 compilerS
1ourceVM Sets source compliance level for the jdt compiler. 1.8 1.8 development If true recompilation checks occur at the frequency governed by modificationTestInterval. true â displaySourceFragment Should a source fragment be included in exception messages true â dumpSmap Dump SMAP JSR45 info to a file. false â enablePooling Determines whether tag handler pooling is enabled. true â engineOptionsClass Allows specifying the Options class used to configure Jasper. If not present, the default EmbeddedServletOptions will be used. - â errorOnUseBeanInvalidClassAttribute Should Jasper issue an error when the value of the class attribute in an useBean action is not a valid bean class true â fork Only relevant if you use Ant to compile JSPs: by default Jetty will use the Eclipse jdt compiler. true - genStrAsCharArray Option for generating Strings as char arrays. false â ieClassId The class-id value to be sent to Internet Explorer when using <jsp:plugin> tags. clsid:8AD9C840-044E-11D1-B3E9-00805F499D93 â javaEncoding Pass through the encoding to use for the compilation. UTF8 â jspIdleTimeout The amount of time in seconds a JSP can be idle before it is unloaded. A value of zero or less indicates never unload. -1 â keepgenerated Do you want to keep the generated Java files around? true â mappedFile Support for mapped Files. Generates a servlet that has a print statement per line of the JSP file true â maxLoadedJsps The maximum number of JSPs that will be loaded for a web application. If more than this number of JSPs are loaded, the least recently used JSPs will be unloaded so that the number of JSPs loaded at any one time does not exceed this limit. A value of zero or less indicates no limit. -1 â modificationTestInterval If development=true, interval between recompilation checks, triggered by a request. 4 â quoteAttributeEL When EL is used in an attribute value on a JSP page, should the rules for quoting of attributes described in JSP.1.6 be applied to the expression true - recompileOnFail If a JSP compilation fails should the modificationTestInterval be ignored and the next access trigger a re-compilation attempt? Used in development mode only and is disabled by default as compilation may be expensive and could lead to excessive resource usage. false â scratchDir Directory where servlets are generated. The default is the value of the context attribute javax.servlet.context.tempdir, or the system property java.io.tmpdir if the context attribute is not set. â â strictQuoteEscaping Should the quote escaping required by section JSP.1.6 of the JSP specification be applied to scriplet expression. true - suppressSmap Generation of SMAP info for JSR45 debugging. false â trimSpaces Should template text that consists entirely of whitespace be removed from the output (true), replaced with a single space (single) or left unchanged (false)? Note that if a JSP page or tag file specifies a trimDirectiveWhitespaces value of true, that will take precedence over this configuration setting for that page/tag. trimmed? false â xpoweredBy Generate an X-Powered-By response header. false false If the value you set doesnât take effect, try using all lower case instead of camel case, or capitalizing only some of the words in the name, as Jasper is inconsistent in its parameter naming strategy.","title":"Java Server Pages","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/jsp/index.html","titles":[{"text":"Configuration of the JSP Servlet","hash":"configuration-of-the-jsp-servlet","id":1}]},"29":{"id":29,"text":"In addition to the modules that come packaged with Jetty, you can create your own custom modules. Make sure you have read the Jetty modules section if you are not familiar with the concepts used in this section. Custom modules can be used for a number of reasons â they can extend Jetty features, or add new features, or make additional libraries available to the server, etc. The standard Jetty modules typically come with a number of configurable properties that can be easily customized without the need of writing a custom module. However, there may be cases where the customization is more complex than a simple property, and a custom module is necessary. For example, letâs assume that you want to modify the order of the TLS cipher suites offered by the server when a client connects, using the OpenSSL cipher list format. The Jetty class that handles the TLS configuration is SslContextFactory, and it already has a method setCipherComparator(Comparator<String>); however, you need to pass your custom implementation, which cannot be represented with a simple module property. The SslContextFactory component is already allocated by the standard Jetty module ssl, so what you need to do is the following: Write the custom cipher Comparator and package it into a *.jar file (exercise left to reader). Write a custom Jetty XML file that calls the SslContextFactory.setCipherComparator(Comparator<String>) method. Write a custom Jetty module file that depends on the standard ssl module. Start with the custom Jetty XML file, $JETTY_BASE/etc/custom-ssl.xml: custom-ssl.xml <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure> <Ref refid=\"sslContextFactory\"> (1) <Set name=\"CipherComparator\"> (2) <New class=\"com.acme.ssl.CustomCipherComparator\"> (3) <Arg> <Property name=\"com.acme.ssl.cipherList\"> (4) <Default>ECDH+AESGCM:ECDH+AES256:!aNULL:!MD5:!DSS:!ADH</Default> </Property> </Arg> </New> </Set> </Ref> </Configure> 1 Reference the existing SslContextFactory object created by the standard ssl module using its id. 2 Call the setCipherComparator() method. 3 Instantiate your custom cipher comparator. 4 Pass to the constructor the ordering string in OpenSSL format, reading it from the module property com.acme.ssl.cipherList. The cipher list used above may not be secure â itâs just an example. Then write your custom module in the $JETTY_BASE/modules/custom-ssl.mod file: custom-ssl.mod [description] Customizes the standard ssl module. [tags] (1) acme [depen
1ds] (2) ssl [lib] (3) lib/custom-cipher-comparator.jar [xml] (4) etc/custom-ssl.xml [ini-template] (5) ## The cipher list in OpenSSL format. # com.acme.ssl.cipherList=ECDH+AESGCM:ECDH+AES256:!aNULL:!MD5:!DSS:!ADH 1 A tag that characterizes this custom module (see here). 2 This custom module depends on the standard ssl module. 3 The custom cipher comparator class is compiled and packaged into this *.jar file. 4 The custom Jetty XML file from above. 5 The text that will be copied in the custom-ssl.ini file when this custom module will be enabled. Now you can enable the custom module with the following command issued from the $JETTY_BASE directory: $ java -jar $JETTY_HOME/start.jar --add-modules=https,custom-ssl The command above will produce the following $JETTY_BASE directory structure: $JETTY_BASE âââ etc â âââ custom-ssl.xml âââ modules â âââ custom-ssl.mod âââ resources â âââ jetty-logging.properties âââ start.d âââ https.ini âââ custom-ssl.ini In the custom XML file you have used a custom module property to parametrize your custom cipher comparator. This custom module property was then referenced in the [ini-template] section of the custom module file, so that when the custom module is enabled, a correspondent custom-ssl.ini file is created. In this way, updating the cipher list wonât require you to update the XML file, but just the custom-ssl.ini file. In the cases where you need to enhance Jetty with a custom functionality, you can write a new Jetty module that provides it. For example, letâs assume that you need to add a custom auditing component that integrates with the auditing tools used by your company. This custom auditing component should measure the HTTP request processing times and record them (how they are recorded is irrelevant here â could be in a local log file or sent via network to an external service). The Jetty libraries already provide a way to measure HTTP request processing times via EventsHandler: you write a custom EventsHandler subclass that overrides the methods corresponding to the events you are interested in. The steps to create a Jetty module are similar to those necessary to modify an existing module: Write the auditing component and package it into a *.jar file. Write a custom Jetty XML file that wires the auditing component to the Handler tree. Write a custom Jetty module file that puts everything together. Letâs start with the auditing component, sketched below: package com.acme.audit; public class AuditingEventsHandler extends EventsHandler { // Auditing is implemented here. } Letâs assume that this class is compiled and packaged into acme-audit.jar, and that it has a dependency on acme-util.jar. Both *.jar files will be put in the $JETTY_BASE/lib/ directory. Next, letâs write the Jetty XML file that wires the auditing component to the ServerConnector, $JETTY_BASE/etc/acme-audit.xml: acme-audit.xml <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure> <Ref refid=\"Server\"> (1) <Call name=\"insertHandler\"> (2) <Arg> <New class=\"com.acme.audit.AuditingEventsHandler\"> (3) <Set name=\"someProperty\"> <Property name=\"com.acme.audit.some.property\" default=\"42\" /> (4) </Set> </New> </Arg> </Call> </Ref> </Configure> 1 Reference Server instance. 2 Call insertHandler() on the Server so that the auditing component will be inserted just after the Server and just before its child Handler. 3 Instantiate the auditing component. 4 Configure the auditing component with a property. The last step is to create the custom Jetty module file for the auditing component, $JETTY_BASE/modules/acme-audit.mod: acme-audit.mod [description] Adds ACME auditing to the Jetty Server. [tags] (1) acme audit [depends] (2) server [libs] (3) lib/acme-audit.jar lib/acme-util.jar [xml] (4) etc/acme-audit.xml [ini-template] (5) ## An auditing property. # com.acme.audit.some.property=42 1 The tags that characterize this custom module (see here). 2 This custom module depends on the standard server module. 3 The *.jar files that contains the custom auditing component, and its dependencies. 4 The custom Jetty XML file from above. 5 The text that will be copied in the acme-audit.ini file when this custom module will be enabled. Now you can enable the custom auditing module with the following command issued from the $JETTY_BASE directory: $ java -jar $JETTY_HOME/start.jar --add-modules=http,acme-audit The command above will produce the following $JETTY_BASE directory structure: $JETTY_BASE âââ etc â âââ acme-audit.xml âââ modules â âââ acme-audit.mod âââ resources â âââ jetty-logging.properties âââ start.d âââ http.ini âââ acme-audit.ini Enabling the custom auditing component will create the $JETTY_BASE/start.d/acme-audit.ini module configuration file that you can edit to configure auditing properties.","title":"Custom Jetty Modules","component":"jetty","version":"12.1","name":"custom","url":"/docs/jetty/12.1/operations-guide/modules/custom.html","titles":[{"text":"Modifying an Existing Module","hash":"modify","id":1},{"text":"Creating a New Module","hash":"create","id":2}]},"30":{"id":30,"text":"A Jetty module provides one or more Java components that work together to implement one or more features. Such features could be listening for clear-text HTTP/1.1 requests, exposing Jetty components to JMX, provide hot-deployment of web applications, etc. Every Jetty feature is provided by a Jetty module. A Jetty module is defined in a <name>.mod file, where <name> is the module name (see also the section about module names). Jetty module files are read from the typical configuration source directories, under the modules/ subdirectory; from higher priority to lower priority: The $JETTY_BASE/modules/ directory. If a directory is specified with the --add-config-dir option, its modules/ subdirectory. The $JETTY_HOME/modules/ directory. The standard Jetty modules that Jetty provides out-of-the-box are under $JETTY_HOME/modules/. Custom Jetty modules should be put under $JETTY_BASE/modules/. A Jetty module has a unique name. The module name is by default derived from the file name, so module file acme.mod identifies a module named acme. However, a module file may specify a [provides] directive for a virtual module, so that many modules may provide a different implementation for the same feature. For example, among the standard modules provided by Jetty, the server module depends on the logging module, but there is no correspondent logging.mod f
1ile. However, the logging-jetty.mod file has, among others, this section: logging-jetty.mod [provides] logging|default This section means that the logging-jetty.mod file provides the virtual module logging, and it is the default provider. The logging-log4j2.mod file has a similar section: logging-log4j2.mod [provides] logging If there are no enabled modules that provide the logging virtual module, either explicitly or transitively, then the default provider is used, in this case logging-jetty.mod. Otherwise, a module that provides the logging virtual module is explicitly or transitively enabled, and the default provider is not used. A Jetty module may provide one or more Java components that implement a feature. These Java components are nothing more than regular Java classes that are instantiated and configured via Jetty XML files. The Jetty XML file of a Jetty module may instantiate and assemble together its own components, or reference existing components from other Jetty modules to enhance or reconfigure them. The Jetty moduleâs XML files are read from the typical configuration source directories, under the etc/ subdirectory; from higher priority to lower priority: The $JETTY_BASE/etc/ directory. If a directory is specified with the --add-config-dir option, its etc/ subdirectory. The $JETTY_HOME/etc/ directory. The standard Jetty modules XML files that Jetty provides out-of-the-box are under $JETTY_HOME/etc/. For example, a Jetty XML file that allocates Jettyâs QueuedThreadPool could be as simple as: jetty-threadpool.xml <?xml version=\"1.0\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure> <New id=\"threadPool\" class=\"org.eclipse.jetty.util.thread.QueuedThreadPool\"> <Set name=\"maxThreads\" type=\"int\"> <Property name=\"jetty.threadPool.maxThreads\" default=\"256\"/> </Set> </New> </Configure> Note how the Jetty XML file above is allocating (with the <New> element) a QueuedThreadPool instance, giving it the unique id of threadPool (so that other modules can reference it, if they need to). It is then calling the setter method QueuedThreadPool.setMaxThreads(int) with the value defined by the module property jetty.threadPool.maxThreads; if the property value is not defined, it will have the default value of 256. This is nothing more than Java code in XML format with configurable properties support that can be leveraged by the Jetty start mechanism. The Jetty moduleâs XML files make easy to instantiate and assemble Java components (just write the equivalent Java code in XML format), and make easy to configure them by declaring module properties that can be easily customized elsewhere (for example, in *.ini files as described in this section, or on the command line as described in this section). Remember that the standard Jetty XML files in $JETTY_HOME/etc/ should not be modified. Even if you need to modify a standard Jetty component, write a new Jetty XML file, save it under $JETTY_BASE/etc/, and create a custom Jetty module so that it gets processed when Jetty starts. A Jetty module property is declared in the module XML file(s) via the <Property> element. Modules properties are used to parametrize Jetty components so that you can customize their values when Jetty starts, rather than hard-coding it in the XML files. You can declare your own properties, but the jetty.* namespace is reserved. A module property can be given a value in a Jetty module [ini] section (see here), in a *.ini file as described in this section, or on the command line as described in this section. The syntax to specify a property value is the following: <name>=<value> Sets the property value unconditionally. <name>+=<value> Appends the value to the existing value. This is useful to append a value to properties that accept a comma separated list of values, for example: jetty.webapp.addProtectedClasses+=,com.acme. <name>?=<value> Sets the property value only if it is not already set. This is useful to define default values, for example for \"version\" properties, where the \"version\" property can be explicitly configured to a newer version, but if it is not explicitly configured it will have a default version (see also here). For example: conscrypt.version?=2.5.1 jetty.sslContext.provider?=Conscrypt Lines that start with # are comments. A text that describes the module. This text will be shown by the Jetty start mechanism when using the --list-modules command. A list of words that characterize the module. Modules that have the same tags will be shown by the Jetty start mechanism when using the --list-modules=<tag> command. example.mod [tags] demo webapp jsp A module name with an optional default specifier. As explained in the module name section, there can be many module files each providing a different implementation for the same feature. The format is: [provides] <module_name>[|default] where the |default part is optional and specifies that the module is the default provider. A list of module names that this module depends on. For example, the standard module http depends on module server. Enabling the http module also enables, transitively, the server module, since the http module cannot work without the server module; when the server module is transitively enabled, the modules it depends on will be transitively enabled, and so on recursively. The [depends] directive establishes a partial order relationship among modules so that enabled modules can be sorted and organized in a graph. Circular dependencies are not allowed. The order of the enabled modules is used to determine the processing of the configuration, for example the order of processing of the [files] section, the order of processing of XML files defined in the [xml] section, etc. This directive indicates that this module is ordered after the listed module names, if they are enabled. For example, module https is [after] module http2. Enabling the https module does not enable the http2 module. However, if the http2 module is enabled (explicitly or transitively), then the https module is sorted after the http2 module. In this way, you are guaranteed that the https module is processed after the http2 module. This directive indicates that this module is ordered before the listed module names, if they are enabled. For example, module test-keystore is [before] module ssl-context. Enabling the test-keystore module does not enable the ssl-context module. This directive is used to create a prerequisite module without the need to modify the depends directive of an existing module. For example, you want to create a custom org.eclipse.jetty.server.Server subclass instance to be used by the standard server module, but without modifying the existing server.mod file nor the jetty.xml file that server.mod uses. This can be achieved by creating the following custom-server Jetty custom module: custom-server.mod [description] This module creates a custom Server subclass instance. [before] server [xml] etc/custom-server.xml The custom-server.xml file is the following: custom-server.xml <?xml version=\"1.0\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure id=\"Server\" class=\"com.acme.server.CustomJettyServer\"> </Configure> The presence of the [before] directive in custom-server.mod causes the processing of the custom-server.xml file to happen before the processing of the standard jetty.xml file referenced by the standard server.mod Jetty module. Thus, the instance assigned to the Server identifier is your custom com.acme.server.CustomJettyServer instance from the custom-server.xml file; this instance is then used while processing the jetty.xml file. A list of paths (directories and/or files) that are necessary for the module, created or resolved when the module is enabled. Each path may be of the following types: Path Name A path name representing a file, or a directory if the path name ends with /, such as webapps/. The file or directory will be created relative to $JETTY_BASE, if not already present. For example: [files] logs/ Maven Artifact An URI representing a Maven artifact to be downloaded from Maven Central, if not already present. Property expansion is supported. The format is: [files] maven://<groupId>/<artifactId>/<version>[/<type>]|<pathName> where <type> is optional, and <pathName> after the | is the path under $JETTY_BASE where the downloaded file should be saved. For example: [files] maven://org.postgresql/postgresql/${postgresql-version}|lib/postgresql-${postgresql-version}.jar BaseHome An URI representing a $JETTY_HOME resource to be copied in $JETTY_BASE, if not already present. URIs of this type are typically only used by standard Jetty modules; custom modules should not need to use it. The format is: [files] basehome:<jettyHomePathName>|<pathName> For example: [files] basehome:modules/demo.d/demo-moved-context.xml|webapps/demo-moved-context.xml HTTP URL An http:// or https:// URL to be downloaded, if not already present. The format is: [files] <httpURL>|<pathName>
1 For example: [files] https://acme.com/favicon.ico|webapps/acme/favicon.ico A list of paths, relative to the configuration source directories, of *.jar library files and/or directories that are added to the server class-path (or module-path when running in JPMS mode). The [libs] section if often used in conjunction with the [files] section. For example: [files] maven://org.postgresql/postgresql/${postgresql-version}|lib/postgresql-${postgresql-version}.jar [libs] lib/postgresql-${postgresql-version}.jar The postgresql-<version>.jar artifact is downloaded from Maven Central, if not already present, into the $JETTY_BASE/lib/ directory when the module is enabled. When Jetty starts, the $JETTY_BASE/lib/postgresql-<version>.jar will be in the server class-path (or module-path). A list of paths, relative to the configuration source directories, of Jetty *.xml files that are passed as program arguments to be processed when Jetty starts (see the section about assembling Jetty components). Jetty XML files are read from the typical configuration source directories, under the etc/ subdirectory. Standard Jetty XML files are under $JETTY_HOME/etc/, while custom Jetty XML files are typically under $JETTY_BASE/etc/. For example: [xml] etc/custom/components.xml A list of program arguments to pass to the command line when Jetty is started. The program arguments may include any command line option (see here for the list of command line options), module properties and/or module XML files. A property defined in the [ini] section is available in the *.mod module file for property expansion, for example: [ini] postgresql-version?=42.6.0 [lib] lib/postgresql-${postgresql-version}.jar In the example above, the [lib] section contains ${postgresql-version}, a reference to property postgresql-version whose value is defined in the [ini] section. The expression ${<property>} expands the property replacing the expression with the property value. See also the JPMS section for additional examples about the [ini] section. A list of properties to be copied in the *.ini file generated when the module is enabled, either explicitly or transitively. The list of properties is derived from the module XML file(s) that declare them. The properties are typically assigned their default value and commented out, so that it is evident which properties have been uncommented and customized with a non-default value. A list of JVM command line options and/or system properties passed to a forked JVM. When the [exec] section is present, the JVM running the Jetty start mechanism will fork another JVM, passing the JVM command line options and system properties listed in the [exec] sections of the enabled modules. This is necessary because JVM options such as -Xmx (that specifies the max JVM heap size) cannot be changed in a running JVM. For an example, see this section. You can avoid that the Jetty start mechanism forks the second JVM, as explained in this section. A list of JVM command line options related to the Java Module System. This section is processed only when Jetty is started in JPMS mode. The directives are: add-modules Equivalent to the JVM option --add-modules. The format is: [jpms] add-modules: <module>(,<module>)* where module is a JPMS module name. patch-module Equivalent to the JVM option --patch-module. The format is: [jpms] patch-module: <module>=<file>(:<file>)* where module is a JPMS module name. add-opens Equivalent to the JVM option --add-opens. The format is: [jpms] add-opens: <module>/<package>=<target-module>(,<target-module>)* where module and target-module are a JPMS module names. add-exports Equivalent to the JVM option --add-exports. The format is: [jpms] add-exports: <module>/<package>=<target-module>(,<target-module>)* where module and target-module are a JPMS module names. add-reads Equivalent to the JVM option --add-exports. The format is: [jpms] add-reads: <module>=<target-module>(,<target-module>)* where module and target-module are a JPMS module names. The license under which the module is released. A Jetty module may be released under a license that is different from Jettyâs, or use libraries that require end-users to accept their licenses in order to be used. You can put the license text in the [license] section, and when the Jetty module is enabled the license text will be printed on the terminal, and the user prompted to accept the license. If the user does not accept the license, the module will not be enabled. For example: [license] Acme Project is an open source project hosted on GitHub and released under the Apache 2.0 license. https://www.apache.org/licenses/LICENSE-2.0.txt The minimum Jetty version for which this module is valid. For example, a module may only be valid for Jetty 10 and later, but not for earlier Jetty versions (because it references components that have been introduced in Jetty 10). For example: [version] 10.0 A Jetty module with such a section will only work for Jetty 10.0.x or later.","title":"Jetty Modules","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/modules/index.html","titles":[{"text":"Module Names","hash":"names","id":1},{"text":"Module Components","hash":"components","id":2},{"text":"Module Properties","hash":"properties","id":3},{"text":"Module Directives","hash":"directives","id":4},{"text":"[description]","hash":"directive-description","id":5},{"text":"[tags]","hash":"directive-tags","id":6},{"text":"[provides]","hash":"directive-provides","id":7},{"text":"[depends]","hash":"directive-depends","id":8},{"text":"[after]","hash":"directive-after","id":9},{"text":"[before]","hash":"directive-before","id":10},{"text":"[files]","hash":"directive-files","id":11},{"text":"[libs]","hash":"directive-libs","id":12}
1,{"text":"[xml]","hash":"directive-xml","id":13},{"text":"[ini]","hash":"directive-ini","id":14},{"text":"[ini-template]","hash":"directive-ini-template","id":15},{"text":"[exec]","hash":"directive-exec","id":16},{"text":"[jpms]","hash":"directive-jpms","id":17},{"text":"[license]","hash":"directive-license","id":18},{"text":"[version]","hash":"directive-version","id":19}]},"31":{"id":31,"text":"The alpn module enables support for the ALPN negotiation mechanism of the TLS protocol. You can configure the list of application protocols negotiated by the ALPN mechanism, as well as the default protocol to use if the ALPN negotiation fails (for example, the client does not support ALPN). The module properties are: ## Specifies the ordered list of application protocols supported by the server. ## The default list is specified by the list of the protocol modules that have ## been enabled, and the order is specified by the module dependencies. # jetty.alpn.protocols=h2,http/1.1 ## Specifies the protocol to use when the ALPN negotiation fails. # jetty.alpn.defaultProtocol=http/1.1 The accept-rate-limit module limits the rate of new connections accepted by the server, across all connectors. Once the configured accept rate has been reached, Jetty will not accept more connections. Existing, established connections will work normally. Once accepting new connections has been suspended, Jetty will periodically check whether the rate has returned withing the limits, and if so, accepting new connections will be resumed. This module is often used in conjunction with the network-connection-limit module. The number of connections seen at the JVM level may be different from the number of connections seen at the OS level. For more information, refer to this section. The module file is $JETTY_HOME/modules/accept-rate-limit.mod: ## The limit for the rate of accepted connections. #jetty.acceptratelimit.acceptRateLimit=1000 ## The period of time to check for the rate of accepted ## connections to have returned within the limit. #jetty.acceptratelimit.period=1000 ## The unit of time for the period. #jetty.acceptratelimit.units=MILLISECONDS The bytebufferpool module allows you to configure the server-wide ByteBuffer pool. Pooling ByteBuffers results in less memory usage and less pressure on the Garbage Collector. ByteBuffers are pooled in buckets; each bucket as a capacity that is a multiple of a capacity factor that you can configure. For example, if a request for a ByteBuffer of capacity 2000 is requested, and the capacity factor is 1024, then the pool will allocate a buffer from the second bucket, of capacity 2048 (1024 * 2). Applications that need to sustain many concurrent requests â or load spikes â may require many buffers during peak load. These buffers will remain pooled once the system transitions to a lighter load (or becomes idle), and it may be undesirable to retain a lot of memory for an idle system. It is possible to configure the max heap memory and the max direct memory that the pool retains. Excess buffers will not be pooled and will be eventually garbage collected. The module file is $JETTY_HOME/modules/bytebufferpool.mod: [description] Configures the ByteBufferPool used by ServerConnectors. The bucket sizes increase linearly. Use module \"bytebufferpool-quadratic\" for a pool that holds more coarse sized buffers. [depends] logging [xml] etc/jetty-bytebufferpool.xml [ini-template] ## Minimum capacity of a single ByteBuffer. #jetty.byteBufferPool.minCapacity=0 ## Maximum capacity of a single ByteBuffer. ## Requests for ByteBuffers larger than this value results ## in the ByteBuffer being allocated but not pooled. #jetty.byteBufferPool.maxCapacity=65536 ## Bucket capacity factor. ## ByteBuffers are allocated out of buckets that have ## a capacity that is multiple of this factor. #jetty.byteBufferPool.factor=4096 ## Maximum size for each bucket (-1 for unbounded). #jetty.byteBufferPool.maxBucketSize=-1 ## Maximum heap memory held idle by the pool (0 for heuristic, -1 for unlimited). #jetty.byteBufferPool.maxHeapMemory=0 ## Maximum direct memory held idle by the pool (0 for heuristic, -1 for unlimited). #jetty.byteBufferPool.maxDirectMemory=0 ## Whether statistics are enabled. #jetty.byteBufferPool.statisticsEnabled=false Among the configurable properties, the most relevant are: jetty.byteBufferPool.maxHeapMemory This property allows you to cap the max heap memory retained by the pool. jetty.byteBufferPool.maxDirectMemory This property allows you to cap the max direct memory retained by the pool. The compression modules allow you to configure server-wide request decompression and response compression by installing the org.eclipse.jetty.compression.server.CompressionH
1andler at the root of the Handler tree (see also this section for further details). The supported algorithms are the following: brotli, via the compression-brotli module gzip, via the compression-gzip module zstandard, via the compression-zstandard module You can explicitly enable one or more of the compression modules, or all of them with the compression-all module. This module enables request decompression and response compression for all the currently supported algorithms listed in this section. This module enables request decompression and response compression with the brotli algorithm. The module properties are: ## Minimum content length after which brotli is enabled # jetty.compression.brotli.minCompressSize=48 ## Buffer Size for Decoder # jetty.compression.brotli.decoder.bufferSize=16384 ## Buffer Size for Encoder # jetty.compression.brotli.encoder.bufferSize=4096 ## Compression Level for Encoder # valid values from 0 to 11 # jetty.compression.brotli.encoder.compressionLevel=11 ## Strategy for Encoder # 0 = Generic # 1 = Text # 2 = Font # jetty.compression.brotli.encoder.strategy=0 ## Brotli log2(LZ window size) for Encoder # valid values from 10 to 24 # jetty.compression.brotli.encoder.lgWindow=22 This module enables request decompression and response compression with the gzip algorithm. The module properties are: ## Minimum content length after which gzip is enabled # jetty.compression.gzip.minCompressSize=32 ## Inflater pool max size (-1 for unlimited, 0 for no pooling) # jetty.compression.gzip.inflaterPool.capacity=1024 ## Inflater pool use GZIP compatible compression #jetty.compression.gzip.inflaterPool.noWrap=true ## Deflater pool max size (-1 for unlimited, 0 for no pooling) # jetty.compression.gzip.deflaterPool.capacity=1024 ## Deflater pool default compression level (-1 for default) # jetty.compression.gzip.deflaterPool.compressionLevel=-1 ## Deflater pool use GZIP compatible compression # jetty.compression.gzip.deflaterPool.noWrap=true ## Buffer Size for Decoder # jetty.compression.gzip.decoder.bufferSize=512 ## Buffer Size for Encoder # jetty.compression.gzip.encoder.bufferSize=512 ## Compression Level for Encoder ## valid values from 1 to 9 ## Leave at -1 for default compression level from java.util.zip.Deflater. # jetty.compression.gzip.encoder.compressionLevel=-1 ## Strategy for Encoder ## 0 for Default Strategy ## 1 for Filtered ## 2 for Huffman Only ## See https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/zip/Deflater.html # jetty.compression.gzip.encoder.strategy=0 ## syncFlush for Encoder ## true for SYNC_FLUSH, false for NO_FLUSH (default) # jetty.compression.gzip.encoder.syncFlush=false This module enables request decompression and response compression with the zstdandard algorithm. The module properties are: ## Minimum content length after which zstandard is enabled # jetty.compression.zstandard.minCompressSize=48 ## Buffer Size for Decoder # If unspecified, this default comes from zstd-jni's integration with the zstd libs. # jetty.compression.zstandard.decoder.bufferSize=128000 ## Enable/Disable Magicless frames for Decoder # Note: No browser zstandard implementations should be generating Magicless frames. # Leave at false for maximum compatibility with known browsers. # jetty.compression.zstandard.decoder.magicless=false ## Buffer Size for Encoder # If unspecified, this default comes from zstd-jni's integration with the zstd libs. # jetty.compression.zstandard.encoder.bufferSize=128000 ## Compression Level for Encoder # If unspecified, this default comes from the zstd-jni's integration with the zstd libs. # valid values from 1 to 19 # jetty.compression.zstandard.encoder.compressionLevel=3 ## Strategy for Encoder # If unspecified, this default comes from the zstd-jni's integration with the zstd libs. # See https://facebook.github.io/zstd/zstd_manual.html#Chapter5 # valid values from 1 to 9 # Leave at -1 for maximum compatibility with known browsers. # jetty.compression.zstandard.encoder.strategy=-1 ## Enable/Disable Magicless frames for Encoder # Note: browser zstandard implementations require this to be false. # jetty.compression.zstandard.encoder.magicless=false # Enable/Disable compression checksums # Note: browser zstandard implementations requires this to be false. # jetty.compression.zstandard.encoder.checksum=false The network-connection-limit module limits the number of network connections accepted by the server, across all connectors. Once the configured maximum number of network connections is reached, Jetty will not accept more network connections. Existing, established network connections will work normally. When existing network connections are closed, accepting new network connections will be resumed. This module is often used in conjunction with the accept-rate-limit module. The number of network connections seen at the JVM level may be different from the number of network connections seen at the OS level. For more information, refer to this section. The module file is $JETTY_HOME/modules/network-connection-limit.mod: ## The maximum number of network connections allowed across all connectors. #jetty.networkConnectionLimit.maxNetworkConnectionCount=1000 ## The idle timeout to apply (in milliseconds) to existing EndPoints when the limit is reached. #jetty.networkConnectionLimit.endPointIdleTimeout=1000 The console-capture module captures System.out and System.err output and appends it to a rolling file. The file is rolled every day at the midnight of the configured timezone. Old, rolled files are kept for the number of days specified by the jetty.console-capture.retainDays property. The module properties are: ## Logging directory (absolute path, or relative to $JETTY_BASE). # jetty.console-capture.dir=./logs ## Whether to append to existing file. # jetty.console-capture.append=true ## How many days to retain old log files. # jetty.console-capture.retainDays=90 ## Timezone ID of the log timestamps, as specified by java.time.ZoneId. # jetty.console-capture.timezone=GMT The core-deploy module enables deployment of web applications that only use the Jetty Core APIs, as described
1in this section. See also the static-deploy module for Jetty static deployment, and the ee{8,9,10,11}-deploy modules for Jakarta EE deployment environments. The cross-origin module provides support for the CORS protocol implemented by browsers when performing cross-origin requests. This module installs the CrossOriginHandler in the Handler tree; CrossOriginHandler inspects cross-origin requests and adds the relevant CORS response headers. CrossOriginHandler should be used when an application performs cross-origin requests to your domain, to protect from cross-site request forgery attacks. The module properties are: ## Whether cross-origin requests can include credentials such as cookies or authentication headers. # jetty.crossorigin.allowCredentials=false ## A comma-separated list of headers allowed in cross-origin requests. # jetty.crossorigin.allowedHeaders=Content-Type ## A comma-separated list of HTTP methods allowed in cross-origin requests. # jetty.crossorigin.allowedMethods=GET,POST,HEAD ## A comma-separated list of origins regex patterns allowed in cross-origin requests. # jetty.crossorigin.allowedOriginPatterns= ## A comma-separated list of timing origins regex patterns allowed in cross-origin requests. # jetty.crossorigin.allowedTimingOriginPatterns= ## Whether preflight requests are delivered to the child Handler of CrossOriginHandler. # jetty.crossorigin.deliverPreflightRequests=false ## Whether requests whose origin is not allowed are delivered to the child Handler of CrossOriginHandler. # jetty.crossorigin.deliverNonAllowedOriginRequests=true ## Whether WebSocket upgrade requests whose origin is not allowed are delivered to the child Handler of CrossOriginHandler. # jetty.crossorigin.deliverNonAllowedOriginWebSocketUpgradeRequests=false ## A comma-separated list of headers allowed in cross-origin responses. # jetty.crossorigin.exposedHeaders= ## How long the preflight results can be cached by browsers, in seconds. # jetty.crossorigin.preflightMaxAge=60 The debuglog module logs extra information about request processing. This module installs the DebugHandler into the handler tree and logs information into a rollover log file. By default, the location of the log file is $JETTY_BASE/logs, although this can be configured via the jetty.debuglog.dir. The name of the log file is of the form: yyyy_mm_dd.debug.log, for example 2024-10-01.debug.log. All deployed contexts will write to the same log file. Note that if a request uses asynchronous processing, the log event for the completion of handling may occur out of order with the log event for the continuation of processing. If more precise logging of request processing is required - including well-ordered async processing events - or you wish to constrain request debug logging to particular contexts only, then configure an ee-specific DebugListener for each context instead of using this module. The module properties are: ## Logging directory (absolute path, or relative to $JETTY_BASE) # jetty.debuglog.dir=logs ## Whether to append to existing file # jetty.debuglog.append=false ## How many days to retain old log files # jetty.debuglog.retainDays=90 ## Timezone of the log entries # jetty.debuglog.timezone=GMT ## Show Request/Response headers # jetty.debug.showHeaders=true The deployment-scanner module installs the org.eclipse.jetty.deploy.DeploymentScanner component that watches web application deploy directories for changes, to deploy/redeploy/undeploy web applications that are present in those directories. This module is a dependency for all the deploy modules such as static-deploy, core-deploy and <<eeN-deploy,ee{8,9,10,11}-deploy. There is only one DeploymentScanner for all the deploy modules that are enabled. The module properties are: ## The web application deploy directory name, or a comma-separated ## list of directories (absolute paths, or relative to $JETTY_BASE). # jetty.deploy.webappsDir=webapps ## The environments directory name (absolute path, or relative to $JETTY_BASE). ## This is where environment specific configuration files are stored. # jetty.deploy.environmentsDir=environments ## Monitored directories scan period (seconds). ## This applies to both the webappsDir and environmentsDir. ## The value of 0 (default) disables hot deploy/redeploy/undeploy. ## Positive values enable hot deploy/redeploy/undeploy. # jetty.deploy.scanInterval=0 ## Whether to defer the initial scan at startup. ## Set it to true to have the initial scan deferred until the Server component is started. ## In this way, deploy failures do not fail the Server startup. ## Set it to false (
1default) to have initial scan occur during Server startup. # jetty.deploy.deferInitialScan=false Among the configurable properties, the most relevant are: jetty.deploy.webappsDir The name of the directory, or a comma-separated list of directories, that is scanned to deploy web applications. jetty.deploy.scanInterval The scan period in seconds, that is how frequently the DeploymentScanner wakes up to scan the monitored directories for changes. By default, jetty.deploy.scanInterval=0 so that hot deployment is disabled and only cold deployment is possible (see also here for more information). The dos module installs the org.eclipse.jetty.server.handler.DoSHandler at the root of the Handler tree. The DoSHandler limits the rate of requests per remote client, as explained in this section. The module properties are: ## The algorithm to use for obtaining an remote client identifier from a Request: ID_FROM_REMOTE_ADDRESS, ID_FROM_REMOTE_PORT, ID_FROM_REMOTE_ADDRESS_PORT, ID_FROM_CONNECTION #jetty.dos.id.type=ID_FROM_REMOTE_ADDRESS #jetty.dos.id.class=org.eclipse.jetty.server.handler.DosHandler ## The class to use to create Tracker instances to track the rate of requests #jetty.dos.trackerFactory=org.eclipse.jetty.server.handler.DoSHandler$LeakingBucketTrackerFactory ## The Handler class to use to reject DOS requests #jetty.dos.rejectHandler=org.eclipse.jetty.server.handler.DoSHandler$DelayedRejectHandler ## The maximum requests per second per client #jetty.dos.leakingBucketTracker.maxRequestsPerSecond=100 ## The size of the leaky bucket. Larger buckets allow longer bursts before enforcing the rate #jetty.dos.leakingBucketTracker.bucketSize=100 ## The time in seconds to retain an empty bucket. #jetty.dos.leakingBucketTracker.idleTimeout=1 ## The period to delay dos requests before rejecting them. #jetty.dos.rejectHandler.delayed.delayMs=1000 ## The maximum number of requests to be held in the delay queue #jetty.dos.rejectHandler.delayed.maxDelayQueue=1000 ## The maximum number of clients to track; or -1 for a default value; or 0 for unlimited #jetty.dos.maxTrackers=100000 ## Should untracked requests (due to maxTrackers) be rejected or allowed #jetty.dos.rejectUntracked=false ## The status code used to reject requests; or 0 to abort the request; or -1 for a default #jetty.dos.rejectStatus=429 ## A comma-separated list of HTTP methods to include when matching a request. # jetty.dos.include.method= ## A comma-separated list of HTTP methods to exclude when matching a request. # jetty.dos.exclude.method= ## A comma-separated list of URI path patterns to include when matching a request. # jetty.dos.include.path= ## A comma-separated list of URI path patterns to exclude when matching a request. # jetty.dos.exclude.path= ## A comma-separated list of remote addresses patterns to include when matching a request. # jetty.dos.include.inet= ## A comma-separated list of remote addresses patterns to exclude when matching a request. # jetty.dos.exclude.inet= The eager-content module installs the org.eclipse.jetty.server.handler.EagerContentHandler at the root of the Handler tree. The EagerContentHandler can eagerly load request content, asynchronously, before calling the next Handler. For more information see this section. EagerContentHandler can eagerly load content for form uploads, multipart uploads and any request content, and you can configure it with different properties for these three cases. The module properties are: ## The maximum number of form fields or -1 for a default. # jetty.eager.form.maxFields=-1 ## The maximum size of the form in bytes -1 for a default. # jetty.eager.form.maxLength=-1 ## The directory where MultiPart parts will be saved as files. # jetty.eager.multipart.location=/tmp ## The maximum number of parts that can be parsed from the MultiPart content, or -1 for unlimited. # jetty.eager.multipart.maxParts=100 ## The maximum size in bytes of the whole MultiPart content, or -1 for unlimited. # jetty.eager.multipart.maxSize=52428800 ## The maximum part size in bytes, or -1 for unlimited. # jetty.eager.multipart.maxPartSize=10485760 ## The maximum size of a part in memory, after which it will be written as a file. # jetty.eager.multipart.maxMemoryPartSize=1024 ## The max length in bytes of the headers of a part, or -1 for unlimited. # jetty.eager.multipart.maxHeadersSize=8192 ## Whether parts without a fileName are stored as files. # jetty.eager.multipart.useFilesForPartsWithoutFileName=true ## The MultiPart compliance mode. # jetty.eager.multipart.complianceMode=RFC7578 ## The maximum bytes of request content, including framing overhead, to read and retain eagerly, or -1 for a default. # jetty.eager.content.maxRetainedBytes=-1 ## The framing overhead to use when calculating the request content bytes to read and retain, or -1 for a default. # jetty.eager.content.framingOverhead=-1 ## Whether requests should be rejected if they exceed maxRetainedBytes. # jetty.eager.content.rejectWhenExceeded=false ## A comma-separated list of HTTP methods to include when matching a request. # jetty.eager.include.method= ## A comma-separated list of HTTP methods to exclude when matching a request. # jetty.eager.exclude.method= ## A comma-separated list of URI path patterns to include when matching a request. # jetty.eager.include.path= ## A comma-separated list of URI path patterns to exclude when matching a request. # jetty.eager.exclude.path= ## A comma-separated list of remote addresses patterns to include when matching a request. # jetty.eager.include.inet= ## A comma-separated list of remote addresses patterns to exclude when matching a request. # jetty.eager.exclude.inet= The ee{8,9,10,11}-deploy modules enable deployment of corresponding Java/Jakarta EE web applications, as described
1in this section. Each eeN-deploy module supports the correspondent Java/Jakarta EE specification. Multiple eeN-deploy modules may be enabled at the same time, allowing deployment of, for example, old Java EE 8 web applications alongside new Jakarta EE 11 web applications, in the same server. The module configuration properties are nearly identical across the EE versions. The module configuration properties for the ee11-deploy Jetty module are: ## Defaults Descriptor for all deployed webapps # jetty.deploy.defaultsDescriptorPath=${jetty.base}/etc/webdefault-ee11.xml ## Whether to extract *.war files # jetty.deploy.extractWars=true ## Whether to give the parent classloader priority # jetty.deploy.parentLoaderPriority=true ## Comma separated list of configuration classes to set. # jetty.deploy.configurationClasses= ## Pattern to select jars from the container classloader to be scanned (or null to scan no jars) # jetty.deploy.containerScanJarPattern=.*/jakarta.servlet-api-[^/]*\\.jar$|.*wasp-.*\\.jar$|.*jakarta.servlet.jsp.jstl-.*\\.jar$ ## Pattern to select jars from the container classloader to be scanned (or null to scan all jars). # jetty.deploy.webInfScanJarPattern= ## Pattern to exclude discovered ServletContainerInitializers # jetty.deploy.servletContainerInitializerExclusionPattern= ## Order of discovered ServletContainerInitializers # jetty.deploy.servletContainerInitializerOrder= See also the static-deploy module and the core-deploy module for Jetty specific deployment environments. The ee{8,9,10,11}-ext modules allow to add libraries to the environment class-path or module-path, for example to provide implementations of Jakarta APIs such as a Jakarta Mail implementation or Jakarta Transaction implementation. The libraries must be in *.jar format, and must be placed in $JETTY_BASE/lib/ee{8,9,10,11}/ext. Refer also to the server specific ext module. The ee{8,9,10,11}-proxy module adds a simple reverse proxy service that proxies incoming requests to a backend server. Each module targets the corresponding Jakarta EE platform version. The module properties are: ## The proxy contextPath. # jetty.proxy.contextPath=/ ## The proxy Servlet class. # jetty.proxy.servletClass=org.eclipse.jetty.ee11.proxy.ProxyServlet$Transparent ## The proxy Servlet mapping. # jetty.proxy.servletMapping=/* ## The target URI to proxy to, for example http://backend:9090/path. ## This parameter is mandatory. # jetty.proxy.proxyTo= ## The prefix of the URI path in context to strip from the incoming URI. ## For example, incoming URI http://proxy:8080/ctx/foo/bar, with ## jetty.proxy.prefix=/foo becomes http://backend:9090/path/bar. # jetty.proxy.prefix= ## The proxy HttpClient max number of threads. # jetty.proxy.maxThreads=128 ## The proxy HttpClient max number of connections. # jetty.proxy.maxConnections=256 ## The proxy HttpClient idle timeout. # jetty.proxy.idleTimeout=30000 ## The proxy HttpClient total request timeout. # jetty.proxy.timeout=60000 ## The proxy HttpClient request buffer size. # jetty.proxy.requestBufferSize=4096 ## The proxy HttpClient response buffer size. # jetty.proxy.responseBufferSize=16384 ## The proxy HttpClient max request headers size. # jetty.proxy.maxRequestHeadersSize=8192 ## The proxy HttpClient max response headers size. # jetty.proxy.maxResponseHeadersSize=8192 ## The proxy HttpClient number of selectors. # jetty.proxy.selectors=1 Among the configurable properties, the only mandatory one is: jetty.proxy.proxyTo The URI of the backend server, in absolute form, for example http://backend:9090/path. The path in context of the incoming request is appended to the jetty.proxy.proxyTo property to obtain the URI to proxy to. For example, for the incoming URI http://proxy:8080/ctx/foo/bar, the path in context (assuming the context path is /ctx) is /foo/bar, therefore the request is proxied to http://backend:9090/path/foo/bar. The ee{8,9,10,11}-webapp module adds support for Jakarta EE {8,9,10,11} web applications. Multiple versions of this module exist (ee{8,9,10,11}-webapp) to support each Jakarta EE platformâs version of the Java Servlet specification. The module configuration properties are identical across all versions of this module, and are as follows: ## Customize protected and hidden classes for this web application context. #jetty.webapp.addProtectedClasses+=,org.example. #jetty.webapp.addHiddenClasses+=,org.example. ## Default ContextHandler class for ee11 environment deployments # jetty.deploy.defaultContextHandlerClass=org.e
1clipse.jetty.ee11.webapp.WebAppContext Configuration of protected and hidden classes, if necessary, is explained in this section. Refer also to the module properties syntax, detailed here. The ext module allows to add libraries to the server class-path or module-path, for example for custom classes that extend Jetty classes, for server-wide logging libraries, for JDBC drivers, etc. The libraries must be in *.jar format, and must be placed in $JETTY_BASE/lib/ext. Refer also to the environment specific ee{8,9,10,11}-ext modules. The graceful module allows to shut down gracefully the Jetty server when it is stopped (see this section for more information about stopping Jetty). The graceful module installs the GracefulHandler at the root of the Handler tree; the GracefulHandler rejects new requests, but allows current requests to terminate within a configurable timeout, as explained in this section. The module properties are: ## The timeout, in milliseconds, to apply when stopping the server gracefully. # jetty.server.stopTimeout=5000 ## The idleTimeout, in milliseconds, to apply to active connections during a graceful shutdown. ## Don't specify this property for the default behavior; use -1 to disable this mechanism. ## Any other value overrides the same configuration in the connectors. # jetty.graceful.shutdownIdleTimeout=1000 The http module provides the clear-text connector and support for the clear-text HTTP/1.1 protocol, and depends on the server module. The module properties to configure the clear-text connector are: ### Clear-Text HTTP Connector Configuration ## The host/address to bind the connector to. # jetty.http.host=0.0.0.0 ## The port the connector listens on. # jetty.http.port=8080 ## The connector idle timeout, in milliseconds. # jetty.http.idleTimeout=30000 ## The number of acceptors (-1 picks a default value based on number of cores). # jetty.http.acceptors=1 ## The number of selectors (-1 picks a default value based on number of cores). # jetty.http.selectors=-1 ## The ServerSocketChannel accept queue backlog (0 picks the platform default). # jetty.http.acceptQueueSize=0 ## The thread priority delta to give to acceptor threads. # jetty.http.acceptorPriorityDelta=0 ## Whether to enable the SO_REUSEADDR socket option. # jetty.http.reuseAddress=true ## Whether to enable the SO_REUSEPORT socket option. # jetty.http.reusePort=false ## Whether to enable the TCP_NODELAY socket option on accepted sockets. # jetty.http.acceptedTcpNoDelay=true ## The SO_RCVBUF socket option to set on accepted sockets. ## A value of -1 indicates that the platform default is used. # jetty.http.acceptedReceiveBufferSize=-1 ## The SO_SNDBUF socket option to set on accepted sockets. ## A value of -1 indicates that the platform default is used. # jetty.http.acceptedSendBufferSize=-1 Among the configurable properties, the most relevant are: jetty.http.port The network port that Jetty listens to for clear-text HTTP/1.1 connections â default 8080. jetty.http.idleTimeout The amount of time a connection can be idle (i.e. no bytes received and no bytes sent) until the server decides to close it to save resources â default 30 seconds. jetty.http.acceptors The number of threads that compete to accept connections â default 1. Use -1 to let the accept heuristic decides the value; the current heuristic calculates a value based on the number of cores). Refer to this section for more information about acceptor threads. jetty.http.selectors The number of NIO selectors (with an associated thread) that manage connections â default -1 (i.e. a select heuristic decides the value; the current heuristic calculates a value based on the number of cores). Accepting connections from remote clients may be configured as a blocking operation, or a non-blocking operation. When accepting connections is configured as a blocking operation (the number of acceptors is greater than zero), a thread is blocked in the accept() call until a connection is accepted, and other acceptor threads (if any) are blocked on the lock acquired by the accepting thread just before the accept() call. When the accepting thread accepts a connection, it performs a little processing of the just accepted connection, before forwarding it to other components. During this little processing other connections may be established; if there is only one accepting thread, the newly established connections are waiting for the accepting thread to finish the processing of the previously accepted connection and call again accept(). Servers that manage a very high number of connections that may (naturally) come and go, or that handle inefficient protocols that open and close connections very frequently (such as HTTP/1.0) may benefit of an increased number of acceptor threads, so that when one acceptor thread processes a just accepted connection, another acceptor thread can immediately take over accepting connections. When accepting connections is configured as a non-blocking operation (the number of acceptors is zero), then the server socket is set in non-blocking mode and added to a NIO selector. In this way, no dedicated acceptor threads exist: the work of accepting connections is performed by the selector thread. Performing a NIO select() call is a blocking operation, where the selecting thread is blocked in the select() call until at least one connection is ready to be processed for an I/O operation. There are 4 I/O operations: ready to be accepted, ready to be connected, ready to be read and ready to be written. A single NIO selector can manage thousands of connections, with the assumption that not many of them will be ready at the same time. For a single NIO selector, the ratio between the average number of selected connections over the total number of connections for every select() call depends heavily on the protocol but also on the application. Multiplexed TCP protocols such as HTTP/2 tend to be busier than duplex protocols such as HTTP/1.1, leading to a higher ratio. REST applications that exch
1ange many little JSON messages tend to be busier than file server applications, leading to a higher ratio. The higher the ratio, the higher the number of selectors you want to have, compatibly with the number of cores â there is no point in having 64 selector threads on a single core hardware. The http2 module enables support for the secure HTTP/2 protocol. The module properties are: ## Specifies the maximum number of concurrent requests per session. # jetty.http2.maxConcurrentStreams=128 ## Specifies the initial stream receive window (client to server) in bytes. # jetty.http2.initialStreamRecvWindow=524288 ## Specifies the initial session receive window (client to server) in bytes. # jetty.http2.initialSessionRecvWindow=1048576 ## Specifies the maximum number of keys in all SETTINGS frames received by a session. # jetty.http2.maxSettingsKeys=64 ## Specifies the maximum number of bad frames and pings per second, ## after which a session is closed to avoid denial of service attacks. # jetty.http2.rateControl.maxEventsPerSecond=128 The jetty.http2.rateControl.maxEventsPerSecond property controls the number of \"bad\" or \"unnecessary\" frames that a client may send before the server closes the connection (with code ENHANCE_YOUR_CALM) to avoid a denial of service. For example, an attacker may send empty SETTINGS frames to a server in a tight loop. While the SETTINGS frames donât change the server configuration and each of them is somehow harmless, the server will be very busy processing them because they are sent by the attacker one after the other, causing a CPU spike and eventually a denial of service (as all CPUs will be busy processing empty SETTINGS frames). The same attack may be performed with PRIORITY frames, empty DATA frames, PING frames, etc. The http2c module enables support for the clear-text HTTP/2 protocol. The module properties are: ## Specifies the maximum number of concurrent requests per session. # jetty.http2c.maxConcurrentStreams=128 ## Specifies the initial stream receive window (client to server) in bytes. # jetty.http2c.initialStreamRecvWindow=524288 ## Specifies the initial session receive window (client to server) in bytes. # jetty.http2c.initialSessionRecvWindow=1232896 ## Specifies the maximum number of keys in all SETTINGS frames received by a session. # jetty.http2c.maxSettingsKeys=64 ## Specifies the maximum number of bad frames and pings per second, ## after which a session is closed to avoid denial of service attacks. # jetty.http2c.rateControl.maxEventsPerSecond=128 The jetty.http2.rateControl.maxEventsPerSecond property controls the number of \"bad\" or \"unnecessary\" frames that a client may send before the server closes the connection (with code ENHANCE_YOUR_CALM) to avoid a denial of service. For example, an attacker may send empty SETTINGS frames to a server in a tight loop. While the SETTINGS frames donât change the server configuration and each of them is somehow harmless, the server will be very busy processing them because they are sent by the attacker one after the other, causing a CPU spike and eventually a denial of service (as all CPUs will be busy processing empty SETTINGS frames). The same attack may be performed with PRIORITY frames, empty DATA frames, PING frames, etc. The http3 module enables support for the HTTP/3 protocol. Support for the QUIC protocol underlying HTTP/3 is provided by default via the http3-quiche module that uses the Quiche native library. The http3-quiche module properties are: ## The host/address to bind the connector to. # jetty.quic.host=0.0.0.0 ## The port the connector listens on. # jetty.quic.port=8444 ## The connector idle timeout, in milliseconds. # jetty.quic.idleTimeout=30000 ## Specifies the maximum number of requests per session. # jetty.quic.bidirectionalMaxStreams=131072 ## Specifies the session max data (client to server) in bytes. # jetty.quic.sessionMaxData=25165824 ## Specifies the stream max data (client to server) in bytes. # jetty.quic.remoteBidirectionalStreamMaxData=16777216 ## Specifies the stream idle timeout, in milliseconds. # jetty.http3.streamIdleTimeout=30000 The http-config module provides HTTP configuration parameters that describe the HTTP semantic, and therefore do not depend on a
1specific HTTP protocol version. This module creates an instance of HttpConfiguration for clear-text HTTP. For secure HTTP, the ssl module creates a copy of the HttpConfiguration created by this module. The module properties are: ### Common HTTP configuration ## Scheme to use to build URIs for secure redirects # jetty.httpConfig.secureScheme=https ## Port to use to build URIs for secure redirects # jetty.httpConfig.securePort=8443 ## Input buffer size (in bytes), used if not overridden by TLS or other concerns # jetty.httpConfig.inputBufferSize=8192 ## Response content buffer size (in bytes) # jetty.httpConfig.outputBufferSize=32768 ## Max response content write length that is buffered (in bytes) # jetty.httpConfig.outputAggregationSize=8192 ## If HTTP/1.x persistent connections should be enabled # jetty.httpConfig.persistentConnectionsEnabled=true ## Max request headers size (in bytes) # jetty.httpConfig.requestHeaderSize=8192 ## Default response headers size (in bytes) # jetty.httpConfig.responseHeaderSize=8192 ## Max response headers size (in bytes), or -1 to use jetty.httpConfig.responseHeaderSize as the max. # jetty.httpConfig.maxResponseHeaderSize=16384 ## Whether to send the Server: header # jetty.httpConfig.sendServerVersion=true ## Whether to send the Date: header # jetty.httpConfig.sendDateHeader=false ## Max per-connection header cache size (in nodes) # jetty.httpConfig.headerCacheSize=1024 ## Maximum number of error dispatches to prevent looping # jetty.httpConfig.maxErrorDispatches=10 ## Relative Redirect Locations allowed # jetty.httpConfig.relativeRedirectAllowed=true ## Redirect body generated # jetty.httpConfig.generateRedirectBody=false ## Whether to use direct ByteBuffers for reading or writing # jetty.httpConfig.useInputDirectByteBuffers=true # jetty.httpConfig.useOutputDirectByteBuffers=true ## The minimum space available in a retained input buffer before allocating a new one. # jetty.httpConfig.minInputBufferSpace=1024 Among the configurable properties, the most relevant are: jetty.httpConfig.requestHeaderSize The maximum size of the request headers, beyond which the request is rejected with the HTTP status code 431 Request Header Fields Too Large. jetty.httpConfig.headerCacheSize The header cache is used when parsing HTTP/1 to more efficiently handle fields that are repeated in every request on a connection. If the server does not receive persistent connection or infrequent repeated fields, then there may be a performance gain in reducing the cache size. If large fields are frequently repeated, then a large cache may be beneficial. jetty.httpConfig.outputAggregationSize The size of the buffer that aggregates response writes that are not explicitly flushed. This is used only at the Servlet layer, to buffer writes performed with ServletOutputStream. jetty.httpConfig.sendServerVersion Whether you want to send the Server header in every HTTP response: HTTP/1.1 200 OK Content-Length: 0 Server: Jetty(12.1.13) The Jetty server strives to keep up with the latest IETF RFCs for compliance with internet specifications, which are periodically updated. When possible, Jetty will support backwards compatibility by providing compliance modes that can be configured to allow violations of the current specifications that may have been allowed in obsoleted specifications. The module properties to configure the Jetty server compliance are: ## HTTP Compliance: STRICT, RFC9110, RFC7230, RFC7230_LEGACY, RFC2616, RFC2616_LEGACY, LEGACY # jetty.httpConfig.compliance=RFC9110 ## URI Compliance mode for HTTP Requests ## URI Compliance: DEFAULT, LEGACY, RFC3986, RFC3986_UNAMBIGUOUS, UNSAFE # jetty.httpConfig.uriCompliance=DEFAULT ## URI Compliance mode for HTTP Response Redirects (the Location header) ## URI Compliance: DEFAULT, DEFAULT_REDIRECT, LEGACY, RFC3986, RFC3986_UNAMBIGUOUS, UNSAFE # jetty.httpConfig.redirectUriCompliance=DEFAULT_REDIRECT ## Cookie compliance mode for parsing request Cookie headers: RFC6265_STRICT, RFC6265, RFC6265_LEGACY, RFC2965, RFC2965_LEGACY # jetty.httpConfig.requestCookieCompliance=RFC6265 ## Cookie compliance mode for generating response Set-Cookie: RFC2965, RFC6265 # jetty.httpConfig.responseCookieCompliance=RFC6265 ## MultiPart compliance mode: RFC7578_STRICT, RFC7578, LEGACY # jetty.httpConfig.multiPartCompliance=RFC7578 Among the configurable properties, the most relevant are: jetty.httpConfig.compliance Configures the compliance to HTTP specifications, see also this
1section. The value could be: one of the predefined HttpCompliance constants, such as RFC9110, RFC7230 or RFC2616; or a comma-separated list of violations to allow or forbid, as specified by the HttpCompliance.from(String) method. For example, jetty.httpConfig.compliance=RFC9110,MULTIPLE_CONTENT_LENGTHS means that the HTTP compliance is that defined by RFC9110, but also allows the HttpCompliance.Violation.MULTIPLE_CONTENT_LENGTHS, so that requests that have multiple Content-Length headers are accepted (they would be rejected when using just HttpCompliance.RFC9110). jetty.httpConfig.uriCompliance Configures the compliance to URI specifications, see also this section. The value could be: one of the predefined UriCompliance constants, such as DEFAULT or RFC3986; or a comma-separated list of violations to allow or forbid, as specified by the UriCompliance.from(String) method. For example, jetty.httpConfig.uriCompliance=RFC3986,-AMBIGUOUS_PATH_SEPARATOR means that the URI compliance is that defined by RFC3986, but also does not allow the UriCompliance.Violation.AMBIGUOUS_PATH_SEPARATOR, so that requests that have URIs such as /foo/bar%2Fbaz (where %2F is the URL-encoded / character) are rejected (they would be accepted when using just UriCompliance.RFC3986). jetty.httpConfig.requestCookieCompliance jetty.httpConfig.responseCookieCompliance Configure the compliance to HTTP cookie specifications, respectively for requests and responses, see also this section. The value could be: one of the predefined CookieCompliance constants, such as RFC6265; or a comma-separated list of violations to allow or forbid, as specified by the CookieCompliance.from(String) method. For example, jetty.httpConfig.requestCookieCompliance=RFC6265,-RESERVED_NAMES_NOT_DOLLAR_PREFIXED means that the cookie compliance is that defined by RFC6265, but also does not allow the CookieCompliance.Violation.RESERVED_NAMES_NOT_DOLLAR_PREFIXED, so that requests that have cookie headers such as Cookie: $foo=bar are rejected (they would be accepted when using just CookieCompliance.RFC6265). jetty.httpConfig.multiPartCompliance Configures the compliance to MultiPart specifications, see also this section. The value could be: one of the predefined MultiPartCompliance constants, such as RFC7578_STRICT or RFC7578; or a comma-separated list of violations to allow or forbid, as specified by the MultiPartCompliance.from(String) method. For example, jetty.httpConfig.multiPartCompliance=RFC7578,-CONTENT_TRANSFER_ENCODING means that the MultiPart compliance is that defined by RFC7578, but also does not allow the MultiPartCompliance.Violation.CONTENT_TRANSFER_ENCODING, so that parts that specify the Content-Transfer-Encoding header are rejected (they would be accepted when using just MultiPartCompliance.RFC7578). The forwarded module provides support for processing the Forwarded HTTP header (defined in RFC 7239) and the now obsoleted X-Forwarded-* HTTP headers. The module properties are: ### ForwardedRequestCustomizer Configuration ## Whether to process only the RFC7239 \"Forwarded\" header. ## \"X-Forwarded-*\" headers are not processed. # jetty.httpConfig.forwardedOnly=false ## Whether the address obtained from \"Forwarded: by=\" or ## \"X-Forwarded-Server\" is used in the request authority. # jetty.httpConfig.forwardedProxyAsAuthority=false ## Whether the \"X-Forwarded-Port\" header is used in the request authority, ## or else it is the remote client port. # jetty.httpConfig.forwardedPortAsAuthority=true ## The name of the RFC 7239 HTTP header. # jetty.httpConfig.forwardedHeader=Forwarded ## The name of the obsolete forwarded host HTTP header. # jetty.httpConfig.forwardedHostHeader=X-Forwarded-Host ## The name of the obsolete forwarded server HTTP header. # jetty.httpConfig.forwardedServerHeader=X-Forwarded-Server ## The name of the obsolete forwarded scheme HTTP header. # jetty.httpConfig.forwardedProtoHeader=X-Forwarded-Proto ## The name of the obsolete forwarded for HTTP header. # jetty.httpConfig.forwardedForHeader=X-Forwarded-For ## The name of the obsolete forwarded port HTTP header. # jetty.httpConfig.forwardedPortHeader=X-Forwarded-Port ## The name of the obsolete forwarded https HTTP header. # jetty.httpConfig.forwardedHttpsHeader=X-Proxied-Https ## The name of the obsolete forwarded SSL session ID HTTP header. # jetty.httpConfig.forwardedSslSessionIdHeader=Proxy-ssl-id ## The name of the obsolete forwarded SSL cipher HTTP header. # jetty.httpConfig.forwardedCipherSuiteHeader=Proxy-auth-cert The https module provides the HTTP/1.1 protocol to the ssl module. The module file is $JETTY_HOME/modules/https.mod: # DO NOT EDIT THIS FILE - See: https://jetty.org/docs/ [description] Adds HTTPS protocol support to the TLS(SSL) Connector. [tags] connector https http ssl [depend] ssl [after] alpn http2 [xml] etc/jetty-https.xml This module enables local Java Management Extension (JMX) support for Jetty components. This configuration is useful for local development and testing. If you need to enable remote access, use the jmx-remote module. The jmx-remote module provides remote access to JMX clients. The module properties to configure remote JMX connector are: ## The host/address to bind the RMI server to. # jetty.jmxremote.rmiserverhost=localhost ## The port the RMI server listens to (0 means a random port is chosen). # jetty.jmxremote.rmiserverport=1099 ## The host/address to bind the RMI registry to. # jetty.jmxremote.rmiregistryhost=localhost ## The port the RMI registry listens to. # jetty.jmxremote.rmiregistryport=1099 ## The host name exported in the RM
1I stub. -Djava.rmi.server.hostname=localhost The system property java.rmi.server.hostname is specified with the usual notation, prepending a -D in front of the system property name. The system property java.rmi.server.hostname is uncommented because it is necessary in the default configuration â most systems do not have the local name resolution configured properly for remote access. As an example, in a Linux machine named beryl, the /etc/hosts file may contain these entries: 127.0.0.1 localhost 127.0.1.1 beryl If the system property java.rmi.server.hostname is not specified, the RMI implementation uses the host name beryl to figure out the IP address to store in the RMI stub, in this case 127.0.1.1. However, the RMI server is configured to bind to localhost, i.e. 127.0.0.1. If the system property java.rmi.server.hostname is not specified, the RMI client will try to connect to 127.0.1.1 (because thatâs what in the RMI stub) and fail because nothing is listening on that address. The loginservice-hash module creates a HashLoginService and adds it as a bean on the Server. A SecurityHandler uses it by matching its configured realm name. The HashLoginService reads users, their credentials and their roles from a properties file, where each line has the format <username>: <password>[,<rolename>â¦â]. Enabling the module copies a template etc/realm.properties file into the $JETTY_BASE directory that you can edit to define your users. The jetty.hashLoginService.name property sets the realm name, which must match the realm name expected by the Authenticator. It defaults to default, the realm name used by web applications that declare a <login-config> without an explicit <realm-name>. Set it to match the <realm-name> in a web applicationâs web.xml when a specific realm is used. The module properties are: ## The name of the realm. It must match the realm name expected by the ## Authenticator. Web applications that declare a <login-config> without a ## <realm-name> use the realm name \"default\", which is why that is the ## default value here. # jetty.hashLoginService.name=default ## The properties file that holds the users, passwords and roles. ## Format of each line: <username>: <password>[,<rolename>...] # jetty.hashLoginService.config=etc/realm.properties ## The interval, in seconds, at which the properties file is scanned for ## changes and reloaded. A value of 0 (the default) disables reloading. # jetty.hashLoginService.reloadInterval=0 ## Whether to fully validate an already authenticated user on each request ## by re-loading and re-checking their credentials against the user store, ## rather than trusting the existing authenticated identity. # jetty.hashLoginService.fullValidate=false See also this section for more information about Jettyâs security features. The min-data-rate installs the MinimumDataRateHandler at the root of the Handler tree. MinimumDataRateHandler enables support to enforce minimum data rates for reading request content and writing response content, as explained in this section. The module properties are: ## The minimum data rate to enforce when reading request content, in bytes/s. ## Use 0 to disable the minimum data rate enforcement. #jetty.minDataRate.minReadRate=0 ## The minimum data rate to enforce when writing response content, in bytes/s. ## Use 0 to disable the minimum data rate enforcement. #jetty.minDataRate.minWriteRate=0 The openid module enables support for OpenID Connect (OIDC) authentication in Jetty, as detailed in this section. This module allows Jetty to authenticate users via an OpenID Connect identity provider, making possible to integrate features like \"Sign in with Google\" or \"Sign in with Microsoft\", among others. This simplifies user authentication while leveraging the security and convenience of external identity providers. The module properties are: ## The OpenID Identity Provider's issuer ID (the entire URL *before* \".well-known/openid-configuration\") # jetty.openid.provider=https://id.example.com/ ## The OpenID Identity Provider's authorization endpoint (optional if the metadata of the OP is accessible) # jetty.openid.provider.authorizationEndpoint=https://id.example.com/authorization ## The OpenID Identity Provider's token endpoint (optional if the metadata of the OP is accessible) # jetty.openid.provider.tokenEndpoint=https://id.example.com/token ## The Client Identifier # jetty.openid.clientId=test1234 ## The Client Secret # jetty.openid.clientSecret=XT_Mafv_aUCGheuC
1aKY8P ## Additional Scopes to Request # jetty.openid.scopes=email,profile ## Whether to Authenticate users not found by base LoginService # jetty.openid.authenticateNewUsers=false ## True if all certificates should be trusted by the default SslContextFactory # jetty.openid.sslContextFactory.trustAll=false ## What authentication method to use with the Token Endpoint (client_secret_post, client_secret_basic). # jetty.openid.authenticationMethod=client_secret_post ## Whether the user should be logged out after the idToken expires. # jetty.openid.logoutWhenIdTokenIsExpired=false Among the configurable properties, the only required properties are: jetty.openid.provider The issuer identifier of the OpenID Provider, which is the base URL before .well-known/openid-configuration. It must match the issuer field in the providerâs configuration and is case-sensitive. jetty.openid.clientId The Client Identifier assigned to your application by the OpenID Provider, used to uniquely identify your app during authentication requests. jetty.openid.clientSecret The Client Secret issued by the OpenID Provider, used to verify your applicationâs identity during the authentication process. This must be kept confidential. The qos module installs the QoSHandler at the root of the Handler tree; the QoSHandler applies limits to the number of concurrent requests, as explained in this section. The module properties are: ## The maximum number of concurrent requests allowed; use 0 for a default ## value calculated from the ThreadPool configuration or the number of CPU cores. # jetty.qos.maxRequestCount=0 ## The maximum number of requests that may be suspended. # jetty.qos.maxSuspendedRequestCount=1024 ## The maximum duration that a request may remain suspended, in milliseconds; use 0 for unlimited time. # jetty.qos.maxSuspendDuration=0 ## A comma-separated list of HTTP methods to include when matching a request. # jetty.qos.include.method= ## A comma-separated list of HTTP methods to exclude when matching a request. # jetty.qos.exclude.method= ## A comma-separated list of URI path patterns to include when matching a request. # jetty.qos.include.path= ## A comma-separated list of URI path patterns to exclude when matching a request. # jetty.qos.exclude.path= ## A comma-separated list of remote addresses patterns to include when matching a request. # jetty.qos.include.inet= ## A comma-separated list of remote addresses patterns to exclude when matching a request. # jetty.qos.exclude.inet= The requestlog module provides HTTP request/response logging in the standard NCSA format, or in a custom format of your choice. The module properties are: ## Format string # jetty.requestlog.formatString=%{client}a - %u %{dd/MMM/yyyy:HH:mm:ss ZZZ|GMT}t \"%r\" %s %O \"%{Referer}i\" \"%{User-Agent}i\" ## Logging directory (absolute path, or relative to $JETTY_BASE). # jetty.requestlog.dir=logs ## File path # jetty.requestlog.filePath=${jetty.requestlog.dir}/yyyy_mm_dd.request.log ## Date format for rollovered files (uses SimpleDateFormat syntax) # jetty.requestlog.filenameDateFormat=yyyy_MM_dd ## How many days to retain old log files # jetty.requestlog.retainDays=90 ## Whether to append to existing file # jetty.requestlog.append=false ## Timezone of the log file rollover # jetty.requestlog.rollover.timezone=GMT The property jetty.requestlog.formatString can be customized using format codes. Format codes are specified with the syntax %MODIFIERS{PARAM}CODE as follows: MODIFIERS Optional list of comma separated HTTP status codes which may be preceded by a single \"!\" to indicate negation. If the status code is not in the list the literal string \"-\" will be logged instead of the resulting value from the percent code. {PARAM} Parameter string which may be optional depending on the percent code used. CODE A one or two character code specified by the table of format codes below. Format Codes Format String Description X The X character. %% The percent character. %{format}a The address or host name. Valid format values are: \"server\", \"client\", \"local\", \"remote\". The format parameter is optional and defaults to \"server\". Values \"server\" and \"client\" are the logical addresses which can be modified in the request headers, while \"local\" and \"remote\" are the physical addresses so may be the addresses of a proxy between the end-user and the server. %{format}p The port. Valid format values are: \"server\", \"client\", \"local\", \"remote\". The format parameter is optional and defaults to \"server\". Values \"server\" and \"client\" are the logical ports which can be modified in the request headers, while \"local\" and \"remote\" are the physical ports so may be the ports of a proxy between the end-user and the server. %{CLF}I The size of request in bytes, excluding HTTP headers. The parameter is optional. When the parameter value is \"CLF\" the Common Log Format is used, i.e. a {@code -} rather than a {@code 0} when no bytes are present. %{CLF}O The size of response in bytes, excluding HTTP headers. The parameter is optional. When the parameter value is \"CLF\" the Common Log Format is used, i.e. a {@code -} rather than a {@code 0} when no bytes are present. %{CLF}S The bytes transferred (received and sent). This is the combination of {@code %I} and {@code %O}. The parameter is optional. When the parameter value is \"CLF\" the Common Log Format is used, i.e. a {@code -} rather than a {@code 0} when no bytes are present. %{VARNAME}C The value of the request cookie VARNAME. The parameter is optional. Only version 0 cookies are fully supported. When the parameter is missing, all request cookies will be logged. %D The time taken to
1serve the request, in microseconds. %{VARNAME}e The value of the environment variable VARNAME. %f The file system path of the requested resource. %H The name and version of the request protocol, such as \"HTTP/1.1\". %{VARNAME}i The value of the VARNAME request header. %k The number of requests handled on a connection. The initial request on a connection yields a value 0, the first request after the initial on the same connection yields the value 1, the second request on the same connection yields the value 2, etc. %m The HTTP request method. %{VARNAME}o The value of the VARNAME response header. %q The query string, prepended with a ? if a query string exists, otherwise an empty string. %r First line of an HTTP/1.1 request (or equivalent information for HTTP/2 or later). %R The name of the Handler or Servlet generating the response (if any). %s The HTTP response status code. %{format|timeZone|locale}t The time at which the request was received. The parameter is optional and may have the following values: {format}, {format|timeZone} or {format|timeZone|locale}. format Default is e.g. [18/Sep/2011:19:18:28 -0400] where the last number indicates the timezone offset from GMT. Must be in a format supported by the {@code java.time} package. timeZone Default is GMT. Must be in a format supported by the {@code java.time} package. locale Default is the JVM default locale. Must be in a format supported by {@code java.util.Locale.forLanguageTag()}. %{UNIT}T The time taken to serve the request. The parameter UNIT is optional and defaults to \"s\". The parameter UNIT indicates the unit of time: \"s\" for seconds, \"ms\" for milliseconds, \"us\" for microseconds. %{us}T is identical to {@code %D}. %{d}u The remote user if the request was authenticated with servlet authentication. May be an invalid value if response status code ({@code %s}) is 401 (unauthorized). The parameter is optional. When the parameter value is \"d\", deferred authentication will also be checked. %U The URL path requested, not including any query string. %X The connection status when response is completed: X The connection is aborted before the response completed. + The connection may be kept alive after the response is sent. - The connection will be closed after the response is sent. %{VARNAME}ti The value of the VARNAME request trailer. %{VARNAME}to The value of the VARNAME response trailer. %{OPTION}uri The request URI. The parameter is optional and may have the be one of the following options: %uri The entire request URI. %{-query}uri The entire request URI without the query. %{-path,-query}uri The request URI without path or query (so just `scheme://authority`). %{scheme}uri The scheme of the request URI. %{authority}uri The authority of the request URI. %{path}uri The path of the request URI. %{query}uri The query of the request URI. %{host}uri The host of the request URI. %{port}uri The port of the request URI. %{attributeName}attr The value of the request attribute with the given name. The requestlog-slf4j module provides HTTP request/response logging to the SLF4J logging framework, as an alternative to the file-based requestlog module. Request logs are written to a configurable SLF4J logger at INFO level, allowing integration with any SLF4J-compatible logging framework (Logback, Log4j2, etc.). The module properties are: ## SLF4J Logger name for request log # jetty.requestlog.slf4j.loggerName=org.eclipse.jetty.server.RequestLog ## Format string # jetty.requestlog.formatString=%{client}a - %u %{dd/MMM/yyyy:HH:mm:ss ZZZ|GMT}t \"%r\" %s %O \"%{Referer}i\" \"%{User-Agent}i\" The property jetty.requestlog.formatString uses the same format codes as the requestlog module. Format codes are specified with the syntax %MODIFIERS{PARAM}CODE as follows: MODIFIERS Optional list of comma separated HTTP status codes which may be preceded by a single \"!\" to indicate negation. If the status code is not in the list the literal string \"-\" will be logged instead of the resulting value from the percent code. {PARAM} Parameter string which may be optional depending on the percent code used. CODE A one or tw
1o character code specified by the table of format codes below. Format Codes Format String Description X The X character. %% The percent character. %{format}a The address or host name. Valid format values are: \"server\", \"client\", \"local\", \"remote\". The format parameter is optional and defaults to \"server\". Values \"server\" and \"client\" are the logical addresses which can be modified in the request headers, while \"local\" and \"remote\" are the physical addresses so may be the addresses of a proxy between the end-user and the server. %{format}p The port. Valid format values are: \"server\", \"client\", \"local\", \"remote\". The format parameter is optional and defaults to \"server\". Values \"server\" and \"client\" are the logical ports which can be modified in the request headers, while \"local\" and \"remote\" are the physical ports so may be the ports of a proxy between the end-user and the server. %{CLF}I The size of request in bytes, excluding HTTP headers. The parameter is optional. When the parameter value is \"CLF\" the Common Log Format is used, i.e. a {@code -} rather than a {@code 0} when no bytes are present. %{CLF}O The size of response in bytes, excluding HTTP headers. The parameter is optional. When the parameter value is \"CLF\" the Common Log Format is used, i.e. a {@code -} rather than a {@code 0} when no bytes are present. %{CLF}S The bytes transferred (received and sent). This is the combination of {@code %I} and {@code %O}. The parameter is optional. When the parameter value is \"CLF\" the Common Log Format is used, i.e. a {@code -} rather than a {@code 0} when no bytes are present. %{VARNAME}C The value of the request cookie VARNAME. The parameter is optional. Only version 0 cookies are fully supported. When the parameter is missing, all request cookies will be logged. %D The time taken to serve the request, in microseconds. %{VARNAME}e The value of the environment variable VARNAME. %f The file system path of the requested resource. %H The name and version of the request protocol, such as \"HTTP/1.1\". %{VARNAME}i The value of the VARNAME request header. %k The number of requests handled on a connection. The initial request on a connection yields a value 0, the first request after the initial on the same connection yields the value 1, the second request on the same connection yields the value 2, etc. %m The HTTP request method. %{VARNAME}o The value of the VARNAME response header. %q The query string, prepended with a ? if a query string exists, otherwise an empty string. %r First line of an HTTP/1.1 request (or equivalent information for HTTP/2 or later). %R The name of the Handler or Servlet generating the response (if any). %s The HTTP response status code. %{format|timeZone|locale}t The time at which the request was received. The parameter is optional and may have the following values: {format}, {format|timeZone} or {format|timeZone|locale}. format Default is e.g. [18/Sep/2011:19:18:28 -0400] where the last number indicates the timezone offset from GMT. Must be in a format supported by the {@code java.time} package. timeZone Default is GMT. Must be in a format supported by the {@code java.time} package. locale Default is the JVM default locale. Must be in a format supported by {@code java.util.Locale.forLanguageTag()}. %{UNIT}T The time taken to serve the request. The parameter UNIT is optional and defaults to \"s\". The parameter UNIT indicates the unit of time: \"s\" for seconds, \"ms\" for milliseconds, \"us\" for microseconds. %{us}T is identical to {@code %D}. %{d}u The remote user if the request was authenticated with servlet authentication. May be an invalid value if response status code ({@code %s}) is 401 (unauthorized). The parameter is optional. When the parameter value is \"d\", deferred authentication will also be checked. %U The URL path requested, not including any query string. %X The connection status when response is completed: X The connection is aborted before the response completed. + The connection may be kept alive after the response is sent. - The connection will be closed after the response is sent. %{VARNAME}ti The value of the VARNAME request trailer. %{VARNAME}to The value of the VARNAME response trailer. %{OPTION}uri The request URI. The parameter is optional and may have the be one of the following options: %uri The entire request URI.
1%{-query}uri The entire request URI without the query. %{-path,-query}uri The request URI without path or query (so just `scheme://authority`). %{scheme}uri The scheme of the request URI. %{authority}uri The authority of the request URI. %{path}uri The path of the request URI. %{query}uri The query of the request URI. %{host}uri The host of the request URI. %{port}uri The port of the request URI. %{attributeName}attr The value of the request attribute with the given name. Unlike the requestlog module, requestlog-slf4j does not create a logs/ directory or write to files. All log output is handled by your SLF4J logging configuration. This module adds the $JETTY_BASE/resources directory to the serverâs classpath. A common use-case for this module is to provide resources for third-party libraries via the server classpath. For instance, many logging libraries (including Log4j2 and Logback) look for their configuration files on the classpath. Jetty provides a logging library implementation â enabled via the logging-jetty module â whose configuration file is $JETTY_BASE/resources/jetty-logging.properties. The rewrite module inserts the RewriteHandler at the beginning of the Handler chain, providing URI-rewriting features similar to the Apacheâs mod_rewrite or the Nginx rewrite module. The module properties are: ## Request attribute name used to store the original request path. # jetty.rewrite.originalPathAttribute=jetty.rewrite.originalRequestPath A common use of the rewrite module is to redirect/rewrite old URI paths that have been renamed, for example from /old/* to /new/*; in this way, the old paths will not result in a 404 response, but rather be redirected/rewritten to the new paths. RewriteHandler matches incoming requests against a set of rules that you can specify in the $JETTY_BASE/etc/jetty-rewrite-rules.xml file. Rules can be matched against request data such as the request URI or the request headers; if there is a match, the rule is applied. The rule file $JETTY_BASE/etc/jetty-rewrite-rules.xml is initially empty, but contains commented examples of rules that you can add. The list of available rules can be found here. An example of jetty-rewrite-rules.xml is the following: jetty-rewrite-rules.xml <?xml version=\"1.0\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure id=\"Rewrite\" class=\"org.eclipse.jetty.rewrite.handler.RuleContainer\"> <Call name=\"addRule\"> <!-- Redirect with a 301 from /old/* to /new/* --> <Arg> <New class=\"org.eclipse.jetty.rewrite.handler.RedirectRegexRule\"> <Set name=\"statusCode\">301</Set> <Set name=\"pattern\">/old/(.*)</Set> <Set name=\"location\">/new/$1</Set> </New> </Arg> </Call> </Configure> Rules can be scoped to a specific virtual host. In the example below, the rule will only be evaluated if the virtual host matches example.com: jetty-rewrite-rules.xml <?xml version=\"1.0\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure id=\"Rewrite\" class=\"org.eclipse.jetty.rewrite.handler.RuleContainer\"> <Call name=\"addRule\"> <Arg> <New class=\"org.eclipse.jetty.rewrite.handler.VirtualHostRuleContainer\"> <Call name=\"addVirtualHost\"> <!-- Only match the example.com domain --> <Arg>example.com</Arg> </Call> <Call name=\"addRule\"> <Arg> <New class=\"org.eclipse.jetty.rewrite.handler.RedirectPatternRule\"> <Set name=\"pattern\">/advice</Set> <Set name=\"location\">/support</Set> </New> </Arg> </Call> </New> </Arg> </Call> </Configure> The scheduler module allows you to configure the server-wide scheduler. The scheduler is used to schedule tasks that must run at a later time, for example the tasks that perform actions when timeouts expire, in particular idle timeouts. The module properties to configure the scheduler are: ## The scheduler thread name, defaults to \"Scheduler-{hashCode()}\" if blank. # jetty.scheduler.name= ## Whether the server scheduler threads are daemon. # jetty.scheduler.daemon=false ## The number of server scheduler threads. # jetty.scheduler.threads=1 The server module provides generic server support, and configures generic HTTP properties that apply to all HTTP protocols, the scheduler properties and the server specific properties. The server module configures the shared parameters for generic HTTP handling, but does not enable any specific network protocol. You have to explicitly enable the protocols you want to supp
1ort by enabling, for example, the http module for clear-text HTTP/1.1 support, or the http2 module for secure HTTP/2 support, etc. See also the protocols section for more information about the supported protocols. The module properties to configure the Jetty server are: ### Server configuration ## Whether ctrl+c on the console gracefully stops the Jetty server. # jetty.server.stopAtShutdown=true ## Dump the state of the Jetty server, components, and webapps after startup. # jetty.server.dumpAfterStart=false ## The temporary directory used by the Jetty server and as a root for its contexts. # jetty.server.tempDirectory= ## Dump the state of the Jetty server, components, and webapps before shutdown. # jetty.server.dumpBeforeStop=false ## Whether the handlers of the ContextHandlerCollection can be updated once the server is started. ## If set to false, then <env>-deploy module jetty.deploy.scanInterval should also be set to 0. # jetty.server.contexts.dynamic=true ## Should the DefaultHandler serve the jetty favicon.ico from the root. # jetty.server.default.serveFavIcon=true ## Should the DefaultHandler show a list of known contexts in a root 404 response. # jetty.server.default.showContexts=true Among the configurable properties, the most relevant are: jetty.server.dumpAfterStart Whether to perform a Server.dump() operation after the Server has started. The output of the dump operation is sent to System.err. See also the Jetty Server Dump section for more information. jetty.server.dumpBeforeStop Whether to perform a Server.dump() operation before the Server stops. The output of the dump operation is sent to System.err. See also the Jetty Server Dump section for more information. jetty.server.stopAtShutdown Whether to call Server.stop() through a JVM shutdown hook when the JVM exits. The size-limit module installs the SizeLimitHandler at the root of the Handler tree; the SizeLimitHandler applies limits to the request content and the response content, as explained in this section. The module properties are: ## The maximum request content size in bytes, or -1 for unlimited. # jetty.sizeLimit.maxRequestContentSize=-1 ## The maximum response content size in bytes, or -1 for unlimited. # jetty.sizeLimit.maxResponseContentSize=-1 The ssl module provides the secure connector, and allows you to configure the KeyStore properties and the TLS parameters, and depends on the server module. For more information about securing a connector and supporting secure protocols, refer to this section. The module properties to configure the secure connector are: ### TLS (SSL) Connector Configuration ## The host/address to bind the connector to. # jetty.ssl.host=0.0.0.0 ## The port the connector listens on. # jetty.ssl.port=8443 ## The connector idle timeout, in milliseconds. # jetty.ssl.idleTimeout=30000 ## The number of acceptors (-1 picks a default value based on number of cores). # jetty.ssl.acceptors=1 ## The number of selectors (-1 picks a default value based on number of cores). # jetty.ssl.selectors=-1 ## The ServerSocketChannel accept queue backlog (0 picks the platform default). # jetty.ssl.acceptQueueSize=0 ## The thread priority delta to give to acceptor threads. # jetty.ssl.acceptorPriorityDelta=0 ## Whether to enable the SO_REUSEADDR socket option. # jetty.ssl.reuseAddress=true ## Whether to enable the SO_REUSEPORT socket option. # jetty.ssl.reusePort=false ## Whether to enable the TCP_NODELAY socket option on accepted sockets. # jetty.ssl.acceptedTcpNoDelay=true ## The SO_RCVBUF socket option to set on accepted sockets. ## A value of -1 indicates that the platform default is used. # jetty.ssl.acceptedReceiveBufferSize=-1 ## The SO_SNDBUF socket option to set on accepted sockets. ## A value of -1 indicates that the platform default is used. # jetty.ssl.acceptedSendBufferSize=-1 ## Whether client SNI data is required for all secure connections. ## When SNI is required, clients that do not send SNI data are rejected with an HTTP 400 response. # jetty.ssl.sniRequired=false ## Whether client SNI data is checked to match CN and SAN in server certificates. ## When SNI is checked, if the match fails the connection is rejected with an HTTP 400 response. # jetty.ssl.sniHostCheck=true ## The max age, in seconds, for the Strict-Transport-Security response header. # jetty.ssl.stsMaxAgeSeconds=31536000 ## Whether to include the subdomain property in any Strict-Transport-Security header. # jetty.ssl.stsIncludeSubdomains=true Among the configurable properties, the most relevant are: jetty.ssl.port The network port that Jetty listens to for secure connections â default 8443. jetty.ssl.idleTimeout The amount of time a connection can be idle (i.e. no bytes received and no bytes sent) until the server decides to close it to save resources â default 30000 milliseconds. jetty.ssl.acceptors The number of threads that compete to accept connections â default 1. Use -1 to let the accept heuristic decides the value; the current heuristic calculates a value based on the number of cores). Refer to this section for more information about acceptor threads. jetty.ssl.selectors The number of NIO selectors (with an associated thread) that manage connections â default -1 (i.e. a select heuristic decides the value; the current heuristic calculates a value based on the number of cores). Refer to this section for more information about selector threads. The ssl-context module provides the KeyStore, TrustStore and TLS configuration necessary to the ssl module. The Jetty component that manages the KeyStore, that c
1ontains the cryptographic material and the TLS configuration is an instance of SslContextFactory.Server. The module properties to configure the KeyStore and TLS parameters are: ### SslContextFactory Configuration ### Note that OBF passwords are not secure, just protected from casual observation. ## The JSSE Provider. # jetty.sslContext.provider= ## The KeyStore file path, either an absolute path or a relative path to $JETTY_BASE. # jetty.sslContext.keyStorePath=etc/keystore.p12 ## The KeyStore password. # jetty.sslContext.keyStorePassword= ## The Keystore type. # jetty.sslContext.keyStoreType=PKCS12 ## The KeyStore provider. # jetty.sslContext.keyStoreProvider= ## The KeyManager password. # jetty.sslContext.keyManagerPassword= ## The TrustStore file path, either an absolute path or a relative path to $JETTY_BASE. # jetty.sslContext.trustStorePath=etc/keystore.p12 ## The TrustStore password. # jetty.sslContext.trustStorePassword= ## The TrustStore type. # jetty.sslContext.trustStoreType=PKCS12 ## The TrustStore provider. # jetty.sslContext.trustStoreProvider= ## The Endpoint Identification Algorithm. ## Same as javax.net.ssl.SSLParameters#setEndpointIdentificationAlgorithm(String). # jetty.sslContext.endpointIdentificationAlgorithm= ## Whether client certificate authentication is required. # jetty.sslContext.needClientAuth=false ## Whether client certificate authentication is desired, but not required. # jetty.sslContext.wantClientAuth=false ## Whether cipher order is significant. # jetty.sslContext.useCipherSuitesOrder=true ## The SSLSession cache size. # jetty.sslContext.sslSessionCacheSize=-1 ## The SSLSession cache timeout (in seconds). # jetty.sslContext.sslSessionTimeout=-1 ## Whether TLS renegotiation is allowed. # jetty.sslContext.renegotiationAllowed=true ## The max number of TLS renegotiations per connection. # jetty.sslContext.renegotiationLimit=5 ## Whether client SNI data is required for all secure connections. ## When SNI is required, clients that do not send SNI data are rejected with a TLS handshake error. # jetty.sslContext.sniRequired=false ## The specific TLS protocol to use. # jetty.sslContext.protocol= ## A comma-separated list of TLS protocols to include. # jetty.sslContext.includeProtocols= ## A comma-separated list of TLS protocols to exclude. # jetty.sslContext.excludeProtocols=SSL,SSLv2,SSLv2Hello,SSLv3 ## A comma-separated list of cipher suites to include. # jetty.sslContext.includeCipherSuites= ## A comma-separated list of cipher suites regular expression patterns to exclude. # jetty.sslContext.excludeCipherSuites=^.*_(MD5|SHA|SHA1)$,^SSL_.*$,^.*_NULL_.*$,^.*_anon_.*$ ## The alias to use when the KeyStore contains multiple entries. # jetty.sslContext.alias= ## Whether to validate the certificates in the KeyStore at startup. # jetty.sslContext.validateCertificates=false ## Whether to validate peer certificates received during the TLS handshake. # jetty.sslContext.validatePeerCertificates=false ## The secure random algorithm to use to initialize the SSLContext. # jetty.sslContext.secureRandomAlgorithm= ## The KeyManagerFactory algorithm. # jetty.sslContext.keyManagerFactoryAlgorithm= # The TrustManagerFactory algorithm. # jetty.sslContext.trustManagerFactoryAlgorithm= ## Whether TLS session caching should be used. # jetty.sslContext.sessionCachingEnabled=true Among the configurable properties, the most relevant are: jetty.sslContext.keyStorePath The KeyStore path on the file system, either an absolute path or a relative path to $JETTY_BASE â defaults to $JETTY_BASE/etc/keystore.p12. jetty.sslContext.keyStorePassword The KeyStore password, which you want to explicitly configure. The password may be obfuscated with the Jetty Password tool. If you need to configure client certificate authentication, you want to configure one of these properties (they are mutually exclusive): jetty.sslContext.needClientAuth Whether client certificate authentication should be required. jetty.sslContext.wantClientAuth Whether client certificate authentication should be requested. Configuring SslContextFactory.Server using properties is sufficient for most cases. For the cases where Jetty module properties are not defined, or when you need more advanced configuration, you can refer to this section. If you configure client certificate authentication, you need to configure and distribute a client KeyStore as explained in this section. The ssl-reload module provides a periodic scanning of the directory where the KeyStore file resides. When the scanning detects a change to the KeyStore file, the correspondent SslContextFactory.Server component is reloaded with the new KeyStore configuration. The module properties are: # Monitored directory scan period, in seconds. # jetty.sslContext.reload.scanInterval=1 The state-tracking Jetty module inserts the StateTrackingHandler at the beginning of the Handler chain. StateTrackingHandler is a troubleshooting Handler that tracks usages of Handler/Request/Response asynchronous APIs, and logs at warning level invalid usages of the APIs that may lead to blockages, deadlocks, or missing completion of Callbacks. This module can be enabled to troubleshoot web applications that do not behave as expected, for example: That consume a lot of threads (possibly because they block). That do not send responses (or send only partial responses) to clients. That timeout when apparently they have received or have sent all data. The module properties are: ## The timeout in ms for the completion of the handle() callback. # jetty.stateTracking.handlerCallbackTimeout=0 ## Whether the handle() callback is completed in case of timeout. # jetty.stateTracking.completeHandlerCallbackAtTimeout=false ## The timeout in ms for the execution of the demand callback. # jetty.stateTracking.demandCallbackTimeout=0 ## The timeout in ms for the execution of a response write. # jetty.stateTracking.writeTimeout=0 ## The timeout in ms for the execution of the response write callback. # jetty.stateTracking.writeCallbackTimeout=0 The static-deploy module enables deployment of web applications that consist only of static files, as de
1scribed in this section. See also the core-deploy module for Jetty core deployment, and the ee{8,9,10,11}-deploy modules for Jakarta EE deployment environments. The test-keystore module creates on-the-fly a KeyStore containing a self-signed certificate for domain localhost. The KeyStore file is automatically deleted when the JVM exits, and re-created when you restart Jetty, to enforce the fact that it is a test KeyStore that should not be reused if not for testing. The module file is $JETTY_HOME/modules/test-keystore.mod: [description] Test keystore with self-signed SSL Certificate. DO NOT USE IN PRODUCTION!!! [tags] demo ssl bouncycastle keystore [before] ssl-context [files] maven://org.bouncycastle/bcpkix-jdk18on/${bouncycastle.version}|lib/bouncycastle/bcpkix-jdk18on-${bouncycastle.version}.jar maven://org.bouncycastle/bcprov-jdk18on/${bouncycastle.version}|lib/bouncycastle/bcprov-jdk18on-${bouncycastle.version}.jar maven://org.bouncycastle/bcutil-jdk18on/${bouncycastle.version}|lib/bouncycastle/bcutil-jdk18on-${bouncycastle.version}.jar [lib] lib/jetty-keystore-${jetty.version}.jar lib/bouncycastle/bcpkix-jdk18on-${bouncycastle.version}.jar lib/bouncycastle/bcprov-jdk18on-${bouncycastle.version}.jar lib/bouncycastle/bcutil-jdk18on-${bouncycastle.version}.jar [xml] etc/jetty-test-keystore.xml [ini] bouncycastle.version?=1.85 jetty.webapp.addHiddenClasses+=,${jetty.base.uri}/lib/bouncycastle/ jetty.sslContext.keyStorePath?=etc/test-keystore.p12 jetty.sslContext.keyStoreType?=PKCS12 jetty.sslContext.keyStorePassword?=OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4 Note how properties jetty.sslContext.keyStorePath and jetty.sslContext.keyStorePassword are configured, only if not already set (via the ?= operator), directly in the module file, rather than in a *.ini file. This is done to avoid that these properties accidentally overwrite a real KeyStore configuration. The thread-limit module installs the ThreadLimitHandler at the root of the Handler tree; the ThreadLimitHandler applies limits to the number of concurrent threads per remote IP address, as explained in this section. The module properties are: ## Select style of reverse proxy forwarded header. # jetty.threadlimit.forwardedHeader=X-Forwarded-For # jetty.threadlimit.forwardedHeader=Forwarded ## Whether thread limiting is enabled. # jetty.threadlimit.enabled=true ## The thread limit per remote IP address. # jetty.threadlimit.threadLimit=10 ## A comma-separated list of HTTP methods to include when matching a request. # jetty.threadlimit.include.method= ## A comma-separated list of HTTP methods to exclude when matching a request. # jetty.threadlimit.exclude.method= ## A comma-separated list of URI path patterns to include when matching a request. # jetty.threadlimit.include.path= ## A comma-separated list of URI path patterns to exclude when matching a request. # jetty.threadlimit.exclude.path= ## A comma-separated list of remote addresses patterns to include when matching a request. # jetty.threadlimit.include.inet= ## A comma-separated list of remote addresses patterns to exclude when matching a request. # jetty.threadlimit.exclude.inet= The threadpool module allows you to configure the server-wide thread pool. The thread pool creates threads on demand up to maxThreads, and idles them out if they are not used. Since Jetty uses the thread pool internally to execute critical tasks, it is not recommended to constrain the thread pool to small values of maxThreads with the purpose of limiting HTTP request concurrency, as this could very likely cause a server lockup when Jetty needs to run a critical task but there are no threads available. Start with the default value of maxThreads, and tune for larger values if needed. The module properties to configure the thread pool are: ## Thread name prefix. #jetty.threadPool.namePrefix=qtp<hashCode> ## Minimum number of pooled threads. #jetty.threadPool.minThreads=10 ## Maximum number of pooled threads. #jetty.threadPool.maxThreads=200 ## Number of reserved threads (-1 for heuristic). #jetty.threadPool.reservedThreads=-1 ## Whether to use virtual threads, if the runtime supports them. ## Deprecated, use Jetty module 'threadpool-virtual' instead. #jetty.threadPool.useVirtualThreads=false ## Thread idle timeout (in milliseconds). #jetty.threadPool.idleTimeout=60000 ## The max number of idle threads that are evicted in one idleTimeout peri
1od. #jetty.threadPool.maxEvictCount=1 ## Whether to output a detailed dump. #jetty.threadPool.detailedDump=false Among the configurable properties, the most relevant are: jetty.threadPool.namePrefix The name prefix to use for the thread names. jetty.threadPool.detailedDump Whether the thread pool should dump the whole stack trace of each thread, or just the topmost stack frame â defaults to false. jetty.threadPool.idleTimeout The time, in milliseconds, after which an idle thread is released from the pool â defaults to 60000, i.e. 60 seconds. jetty.threadPool.maxThreads The max number of threads pooled by the thread pool â defaults to 200. If you want to use virtual threads, introduced as a preview feature in Java 19 and Java 20, and become an official feature since Java 21, use the following modules: The threadpool-virtual Jetty module for Java 21 or later. The threadpool-virtual-preview Jetty module for Java 19 and Java 20. See also the section about configuring the thread pool. The threadpool-all-virtual module allows you to configure the server-wide thread pool, similarly to what you can do with the threadpool Jetty module, so that all threads are virtual threads, introduced as an official feature since Java 21. Only use this module if you are using Java 21 or later. The module properties to configure the thread pool are: ## Virtual threads name prefix. #jetty.threadPool.namePrefix=vtp<hashCode> ## Maximum number of concurrent tasks run by virtual threads. #jetty.threadPool.maxConcurrentTasks=200 ## Whether to track virtual threads so they appear ## in the dump even if they are unmounted. #jetty.threadPool.tracking=false ## Whether to output virtual thread's stack traces in the dump. #jetty.threadPool.detailedDump=false The property jetty.threadpool.maxThreads limits, using a Semaphore, the number of current virtual threads in use. Please refer to the virtual threads section of the Jetty Threading Architecture for more information about virtual threads and their pitfalls. The threadpool-virtual module allows you to configure the server-wide thread pool, similarly to what you can do with the threadpool Jetty module, but also specify to use virtual threads, introduced as an official feature since Java 21. Only use this module if you are using Java 21 or later. If you are using Java 19 or Java 20, use the threadpool-virtual-preview Jetty module instead. Refer to the threadpool Jetty module for the general features provided by that Jetty module that also this Jetty module provides. The module properties to configure the thread pool are: ## Platform threads name prefix. #jetty.threadPool.namePrefix=qtp<hashCode> ## Minimum number of pooled threads. #jetty.threadPool.minThreads=10 ## Maximum number of pooled threads. #jetty.threadPool.maxThreads=200 ## Number of reserved threads (-1 for heuristic). #jetty.threadPool.reservedThreads=-1 ## Thread idle timeout (in milliseconds). #jetty.threadPool.idleTimeout=60000 ## The max number of idle threads that can be evicted in one idleTimeout period. #jetty.threadPool.maxEvictCount=1 ## Whether to output a detailed dump. #jetty.threadPool.detailedDump=false ## Virtual threads name prefix. #jetty.threadPool.virtual.namePrefix=qtp<hashCode>-virtual- ## Max number of concurrent tasks run by virtual threads. #jetty.threadPool.virtual.maxConcurrentTasks=200 ## Whether to track virtual threads so they appear ## in the dump even if they are unmounted. #jetty.threadPool.virtual.tracking=false The specific properties to configure virtual threads are: jetty.threadPool.virtual.namePrefix The name prefix to use for the virtual thread names. jetty.threadPool.virtual.tracking Whether to track virtual threads so that they appear in a Server Dump even when they are unmounted. jetty.threadPool.virtual.maxConcurrentTasks The number of concurrent tasks run by virtual threads. This property limits resource usage, avoiding that virtual threads run an unlimited number of concurrent tasks when the system is under load. The threadpool-virtual-preview module allows you to configure the server-wide thread pool, similarly to what you can do with the threadpool Jetty module, but also specify to use virtual threads, introduced as a preview feature in Java 19 and in Java 20. Only use this module if you are using Java 19 or Java 20. If you are using Java 21 or later, use the threadpool-virtual Jetty module instead. To enable preview features, this module needs to specify the --enable-preview command line option using the [exec] directive, and as such it will fork another JVM. Refer to the threadpool Jetty module for the general features provided by that Jetty module that also this Jetty module provides. The module properties to configure the thread pool are: ## Platform threads name prefix. #jetty.threadPool.namePrefix=qtp<hashCode> ## Minimum number of pooled threads. #jetty.threadPool.minThreads=10 ## Maximum number of pooled threads. #jetty.threadPool.maxThreads=200 ## Number of reserved threads (-1 for heuristic). #jetty.threadPool.reservedThreads=-1 ## Thread idle timeout (in milliseconds). #jetty.threadPool.idleTimeout=60000 ## The max number of idle threads that can be evicted in one idleTimeout peri
1od. #jetty.threadPool.maxEvictCount=1 ## Whether to output a detailed dump. #jetty.threadPool.detailedDump=false ## Virtual threads name prefix. #jetty.threadPool.virtual.namePrefix=qtp<hashCode>-virtual- ## Whether virtual threads are allowed to set thread locals. #jetty.threadPool.virtual.allowSetThreadLocals=true ## Whether virtual threads inherits the values of inheritable thread locals. #jetty.threadPool.virtual.inheritInheritableThreadLocals=true The specific properties to configure virtual threads are: jetty.threadPool.virtual.namePrefix The name prefix to use for the virtual thread names. jetty.threadPool.virtual.allowSetThreadLocals Whether virtual threads are allowed to set thread locals. jetty.threadPool.virtual.inheritInheritableThreadLocals Whether virtual threads inherit the values of InheritableThreadLocal variables. The well-known Jetty module creates a ResourceHandler deployed at the /.well-known context path which serves files from a directory. By default, the directory created at $JETTY_BASE/.well-known is used, but it can be configured from well-known.ini to anywhere in the filesystem. Note that the .well-known directory may be seen as a hidden directory by the filesystem. The concept of well-known URIs has been defined in RFC5785. This module can be used for things like the automatic renewal of Letâs Encrypt certificates. See IANA Well-Known URIs for more possible examples of how this can be used. The module properties are: ## Well Known Directory (absolute path, or relative to $JETTY_BASE). # jetty.wellknown.dir=.well-known ## Allow contents of the well-known directory to be listed. # jetty.wellknown.listDirectories=false","title":"Standard Modules","component":"jetty","version":"12.1","name":"standard","url":"/docs/jetty/12.1/operations-guide/modules/standard.html","titles":[{"text":"Module alpn","hash":"alpn","i
1d":1},{"text":"Module accept-rate-limit","hash":"accept-rate-limit","id":2},{"text":"Module bytebufferpool","hash":"bytebufferpool","id":3},{"text":"Compression Modules","hash":"compression","id":4},{"text":"Module compression-all","hash":"compression-all","id":5},{"text":"Module compression-brotli","hash":"compression-brotli","id":6},{"text":"Module compression-gzip","hash":"compression-gzip","id":7},{"text":"Module compression-zstandard","hash":"compression-zstandard","id":8},{"text":"Module network-connection-limit","hash":"network-connection-limit","id":9},{"text":"Module console-capture","hash":"console-capture","id":10},{"text":"Module core-deploy","hash":"core-deploy","id":11},{"text":"Module cross-origin","hash":"cross-origin","id":12},{"text":"Module debuglog","hash":"debuglog","id":13},{"text":"Module deployment-scanner","hash":"deployment-scanner","id":14},{"text":"Module dos","hash":"dos","id":15},{"text":"Module eager-content","hash":"eager-content","id":16},{"text":"Module ee{8,9,10,11}-deploy","hash":"eeN-deploy","id":17},{"text":"Module ee{8,9,10,11}-ext","hash":"eeN-ext","id":18},{"text":"Module ee{8,9,10,11}-proxy","hash":"eeN-proxy","id":19},{"text":"Module ee{8,9,10,11}-webapp","hash":"eeN-webapp","id":20},{"text":"Module ext","hash":"ext","id":21},{"text":"Module graceful","hash":"graceful","id":22},{"text":"Module http","hash":"http","id":23},{"text":"Configuration of Acceptors","hash":"http-acceptors","id":24},{"text":"Configuration of Selectors","hash":"http-selectors","id":25},{"text":"Module http2","hash":"http2","id":26},{"text":"Module http2c","hash":"http2c","id":27},{"text":"Module http3","hash":"http3","id":28},{"text":"Module http-config","hash":"http-config","id":29},{"text":"Server Compliance Properties","hash":"server-compliance-properties","id":30},{"text":"Module forwarded","hash":"forwarded","id":31},{"text":"Module https","hash":"https","id":32},{"text":"Module jmx","hash":"jmx","id":33},{"text":"Module jmx-remote","hash":"jmx-remote","id":34},{"text":"Module loginservice-hash","hash":"loginservice-hash","id":35},{"text":"Module min-data-rate","hash":"min-data-rate","id":36},{"text":"Module openid","hash":"openid","id":37},{"text":"Module qos","hash":"qos","id":38},{"text":"Module requestlog","hash":"requestlog","id":39},{"text":"Module requestlog-slf4j","hash":"requestlog-slf4j","id":40},{"text":"Module resources","hash":"resources","id":41},{"text":"Module rewrite","hash":"rewrite","id":42},{"text":"Module scheduler","hash":"scheduler","id":43},{"text":"Module server","hash":"server","id":44},{"text":"Server Configuration Properties","hash":"server-config","id":45},{"text":"Module size-limit","hash":"size-limit","id":46},{"text":"Module ssl","hash":"ssl","id":47},{"text":"Module ssl-context","hash":"ssl-context","id":48},{"text":"Module ssl-reload","hash":"ssl-reload","id":49},{"text":"Module state-tracking","hash":"state-tracking","id":50},{"text":"Module static-deploy","hash":"static-deploy","id":51},{"text":"Module test-keystore","hash":"test-keystore","id":52},{"text":"Module thread-limit","hash":"thread-limit","id":53},{"text":"Module threadpool","hash":"threadpool","id":54},{"text":"Module threadpool-all-virtual","hash":"threadpool-all-virtual","id":55},{"text":"Module threadpool-virtual","hash":"threadpool-virtual","id":56},{"text":"Module threadpool-virtual-preview","hash":"threadpool-virtual-preview","id":57},{"text":"Module well-known","hash":"well-known","id":58}]},"32":{"id":32,"text":"The auto discovery features of the Servlet specification can make deployments slow and uncertain. Auto discovery of Jakarta EE web application configuration can be useful during the development as it allows new features and frameworks to be enabled simply by dropping in a jar file. However, for production deployment, the need to scan the contents of many jars can have a significant impact at startup time. The ee{8,9,10,11}-quickstart modules allows a Jakarta EE web application to be pre-scanned, making startup predictable and faster. During the pre-scanning all declarative configuration (from web.xml, web-fragment.xml and annotations) are encoded into an effective web.xml, called WEB-INF/quickstart-web.xml, which can be inspected to understand what will be deployed. Programmatic configuration is not encoded into the generated quickstart-web.xml file. With the ee{8,9,10,11}-quickstart modules, web applications that took many seconds to scan and deploy can now be deployed in a few hundred milliseconds. You can enable the ee11-quickstart module in this way: $ cd $JETTY_BASE $ java -jar $JETTY_HOME/start.jar --add-modules=ee11-quickstart The $JETTY-BASE/start.d/quickstart.ini file contains these configurable parameters: jetty.quickstart.mode The values are: GENERATE In this mode, the quickstart-web.xml file are generated and then the Jetty Server is stopped. Use this mode first before changing to either AUTO or QUICKSTART. AUTO Allows to deploy the Jakarta EE web application either with or without a quickstart-web.xml file. If the quickstart-web.xml file is present, then it will be used, otherwise the web application is deployed normally. QUICKSTART In this mode, if the quickstart-web.xml file is not present, then the web application deployment will fail. jetty.quickstart.origin Use this parameter to set the name of the attribute in the quickstart-web.xml file that contains the origin of each element. Knowing the descriptor or annotation from which each element derives can be useful for debugging. Note that the origin attribute does not conform to the web xml schema, so if you deploy with xml validation, youâll see errors. It is probably best to do a few trial runs with the attribute set, then turn it off for final generation. jetty.quickstart.xml Use this parameter to change the name of the generated file. By default this is quickstart-web.xml in the Jakarta EE web applicationâs WEB-INF directory. The file named by this parameter will always be interpreted relative to the WEB-INF directory. If your Jakarta EE web application is a *.war file, you will need to either first unpack it yourself, or use a Jetty context XML file (or code equivalent) that calls WebAppContext.setExtractWAR(true). If you allow Jetty to do the unpacking, it will use the usual mechanisms to find the location where to unpack. Note that by default Jetty unpacks to a temporary location which is not reused between executions. You must either specify the directory where to unpack, or make a work directory in your $JETTY_BASE to ensure the unpacked war is preserved and reused across restarts.","title":"Faster Jakarta EE Web Application Deployment","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/quickstart/index.html","titles":[{"text":"Enabling","hash":"enabling","id":1}]}
1,"33":{"id":33,"text":"A KeyStore is a file on the file system that contains a private key and a public certificate, along with the certificate chain of the certificate authorities that issued the certificate. The private key, the public certificate and the certificate chain, but more generally the items present in a KeyStore, are typically referred to as \"cryptographic material\". Keystores may encode the cryptographic material with different encodings, the most common being PKCS12, and are typically protected by a password. Refer to the secure protocols section for more information about how to configure a secure connector using a KeyStore. KeyStores are created with the JDK tool $JAVA_HOME/bin/keytool. The following command creates a KeyStore file containing a private key and a self-signed certificate: keytool -genkeypair (1) -alias mykey (2) -validity 90 (3) -keyalg RSA (4) -keysize 2048 (5) -keystore /path/to/keystore.p12 (6) -storetype pkcs12 (7) -dname \"CN=domain.com, OU=Unit, O=Company, L=City, S=State, C=Country\" (8) -ext san=dns:www.domain.com,dns:domain.org (9) -v (10) 1 the command to generate a key and certificate pair 2 the alias name of the key and certificate pair 3 specifies the number of days after which the certificate expires 4 the algorithm must be RSA (the DSA algorithm does not work for web sites) 5 indicates the strength of the key 6 the KeyStore file 7 the KeyStore type, stick with the standard PKCS12 8 the distinguished name (more below) â customize it with your values for CN, OU, O, L, S and C 9 the extension with the subject alternative names (more below) 10 verbose output The command prompts for the KeyStore password that you must choose to protect the access to the KeyStore. The important parts of the command above are the Common Name (CN) part of the distinguished name, and the subject alternative names (SAN). The CN value must be the main domain you own and that you want to use for your web applications. For example, if you have bought domains domain.com and domain.org, you want to specify CN=domain.com as your main domain. Furthermore, to specify additional domains or subdomains within the same certificate, you must specify the SAN extension. In the example above, san=dns:www.domain.com,dns:domain.org specifies www.domain.com and domain.org as alternative names for your web applications (that you can configure using virtual hosts). In rare cases, you may want to specify IP addresses, rather than domains, in the SAN extension. The syntax in such case is san=ip:127.0.0.1,ip:[::1], which specifies as subject alternative names IPv4 127.0.0.1 and IPv6 [::1]. A single KeyStore may contain multiple key/certificate pairs. This is useful when you need to support multiple domains on the same Jetty server (typically accomplished using virtual hosts). You can create multiple key/certificate pairs as detailed in the previous section, provided that you assign each one to a different alias. Compliant TLS clients will send the TLS SNI extension when creating new connections, and Jetty will automatically choose the right certificate by matching the SNI name sent by the client with the CN or SAN of certificates present in the KeyStore. Self-signed certificates are not trusted by browsers and generic clients: you need to establish a trust chain by having your self-signed certificate signed by a certificate authority (CA). Browsers and generic clients (e.g. Java clients) have an internal list of trusted certificate authorities root certificates; they use these trusted certificates to verify the certificate they received from the server when they connect to your web applications. To have your self-signed certificate signed by a certificate authority you first need to produce a certificate signing request (CSR): keytool -certreq (1) -file domain.com.csr (2) -keystore keystore.p12 (3) 1 the command to generate a certificate signing request 2 the file to save the CSR 3 the keystore that contains the self-signed certificate Then, you have to send the CSR file to the certificate authority of your choice, and wait for their reply (they will probably require a proof that you really own the domains indicated in your certificate). Eventually, the certificate authority will reply to you with one or more files containing the CA certificate chain, and your certificate signed by their certificate chain. The file you receive from the CA is typically in PEM format, and you must import it back into the same KeyStore file you used to generate the CSR. You must import both the certificate chain and your signed certificate. First, import the certificate chain: keytool -importcert (1) -alias ca (2) -file chain_from_ca.pem (3) -keystore
1keystore.p12 (4) -trustcacerts (5) -v (6) 1 the command to import certificates 2 use the ca alias to differentiate from the alias of the server certificate 3 the file containing the certificate chain received from the CA 4 your KeyStore file 5 specify that you trust CA certificates 6 verbose output Then, import the signed certificate: keytool -importcert -file signed_certificate.pem -keystore keystore.p12 -trustcacerts -v Now you have a trusted certificate in your KeyStore that you can use for the domains of your web applications. Refer to the section about configuring secure protocols to configure the secure connector with your newly created KeyStore. For the majority of secure web sites, it is the client (typically the browser) that validates the certificate sent by the server (by verifying the certificate chain). This is the server domain certificate. However, the TLS protocol supports a mutual authentication mode where also the client must send a certificate to the server, that the server validates. You typically want to sign the client certificate(s) with a server certificate that you control, and you must distribute the client certificate(s) to all the clients that need it, and redistribute the client certificates when they expire. The server authentication certificate may be different from the server domain certificate, but itâs typically stored in the same KeyStore for simplicity (although under a different alias). First, you want to create the private key and server authentication certificate that you will use to sign client certificates: keytool -genkeypair -alias server_authn (1) -validity 90 -keyalg RSA -keysize 2048 -keystore keystore.p12 (2) -storetype pkcs12 -dname \"CN=server_authn, OU=Unit, O=Company, L=City, S=State, C=Country\" (3) -ext bc=ca:true (4) -v 1 use the server_authn alias to differentiate from the alias of the server certificate 2 the KeyStore file 3 the CN is not that important, since this certificate will not be validated by clients 4 the extension with the basic constraints (more below) The important difference with the creation of a server certificate is the basic constraints extension (bc) that indicates that this certificates acts as a certificate authority (ca:true). Now you want to export both the private key and server authentication certificate. Unfortunately, the keytool program cannot export private keys, so you need to use a different command line program like openssl, or a graphical program like KeyStore Explorer. Letâs use openssl to export the server authentication private key: openssl pkcs12 -in keystore.p12 -nodes -nocerts -out server_authn.key Now letâs export the server authentication certificate: keytool -exportcert -keystore keystore.p12 -rfc -file server_authn.crt -v At this point, you want to create a client KeyStore, so that you can sign the client certificate with the server authentication cryptographic material: keytool -genkeypair -validity 90 -keyalg RSA -keysize 2048 -keystore client_keystore.p12 (1) -storetype pkcs12 -dname \"CN=client, OU=Unit, O=Company, L=City, S=State, C=Country\" (2) -v 1 the client KeyStore file 2 the CN is not that important, since it will not be validated by the server Now produce a certificate signing request (CSR): keytool -certreq -file client.csr -keystore client_keystore.p12 Now you need to sign the CSR, but again the keytool program does not have this functionality, and you must resort again to use openssl: openssl x509 -req -days 90 -in client.csr -CA server_authn.crt -CAkey server_authn.key -CAcreateserial -sha256 -out signed.crt Now you need to import the server authentication certificate and the signed client certificate into the client KeyStore. First, the server authentication certificate: keytool -importcert -alias ca -file server_authn.crt -keystore client_keystore.p12 -v Then, the signed client certificate: keytool -importcert -file signed.crt -keystore client_keystore.p12 -v Now you can distribute client_keystore.p12 to your client(s). Refer to the section about configuring secure protocols to configure the secure connector to require client authentication.","title":"Configuring SSL/TLS KeyStores","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/keystore/index.html","titles":[{"text":"Creating a KeyStore","hash":"create","id":1},{"text":"KeyStores with Multiple Entries","hash":"create-many","i
1d":2},{"text":"Creating a Certificate Signing Request","hash":"csr","id":3},{"text":"Importing the Signed Certificate","hash":"csr-import","id":4},{"text":"Creating a KeyStore for Client Certificate Authentication","hash":"client-authn","id":5}]},"34":{"id":34,"text":"The Jetty Server object is the central component that links protocol connectors to web applications. The Server component is defined by the server Jetty module, that in turn depends on other Jetty modules that provide key functionalities, in particular: Logging ByteBuffer pooling Thread pooling You can configure two types of logging in Jetty: server logging and request logging. Server logging refers to the console output produced by Jetty itself. Request logging refers to the information that Jetty can capture about incoming HTTP requests and responses. Jetty uses the SLF4J API for its logging. SLF4J is a generic abstraction layer that is supported by many different logging frameworks (or SLF4J bindings). Jetty provides a default binding via the jetty-slf4j-impl Maven artifact, but you can plug in the SLF4J binding of your choice provided by other logging frameworks. Jettyâs server logging is enabled by default with the logging Jetty module. You typically wonât have to enable the logging module directly, since it is a transitive dependency of the server module, and thus pulled in by many of the most commonly used modules. The logging module is a virtual module and its default implementation is provided by the logging-jetty Jetty module, which uses the Jetty SLF4J binding. Jettyâs default SLF4J binding uses an appender (org.eclipse.jetty.logging.StdErrAppender) to format a logging message with metadata (like a timestamp) before sending it to System.err. The default StdErrAppender format is: <datetime>:<level>:<logger name>:<thread name>:<message> where <datetime> is a timestamp with the format yyyy-MM-dd HH:mm:ss.SSS. You can configure the appender via a file named jetty-logging.properties, which must be found in the server class-path. When you enable the logging-jetty module â either directly or by transitive dependency, as in the following example â Jetty automatically generates a jetty-logging.properties file in $JETTY_BASE/resources/: $ java -jar $JETTY_HOME/start.jar --add-modules=http [Running Jetty] :{args=--add-modules=http, highlight=(logging-jetty transitively enabled|copy.\\.properties), jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined} INFO : mkdir ${jetty.base}/start.d INFO : scheduler transitively enabled INFO : server transitively enabled INFO : logging-jetty transitively enabled INFO : http initialized in ${jetty.base}/start.d/http.ini INFO : resources transitively enabled INFO : http-config transitively enabled INFO : threadpool transitively enabled INFO : logging/slf4j dynamic dependency of logging-jetty INFO : bytebufferpool transitively enabled INFO : mkdir ${jetty.base}/resources INFO : copy ${jetty.home}/modules/logging/jetty/resources/jetty-logging.properties to ${jetty.base}/resources/jetty-logging.properties INFO : Base directory was modified You can specify the following configuration options in jetty-logging.properties: org.eclipse.jetty.LEVEL=<logging level> Sets the logging level for the logger tree based at org.eclipse.jetty. You can specify any of the usual SLF4J logging levels â TRACE, DEBUG, INFO (default), WARN and ERROR â plus two additional levels: ALL (an alias for TRACE) and OFF (disables logging entirely). You can also configure a default logging level for specific loggers, or arbitrary logger trees: com.example.MyComponent.LEVEL=DEBUG (sets logging level of logger com.example.MyComponent to DEBUG) com.example.LEVEL=DEBUG (sets logging level of tree com.example.* to DEBUG) com.example.STACKS=<boolean> Specifies whether to hide stack traces for some arbitrary logger tree com.example.*. The exception type and message are logged normally; only stack traces are hidden. Default value is false org.eclipse.jetty.logging.appender.NAME_CONDENSE=<boolean> Specifies whether to condense logger names, so that for example org.eclipse.jetty.util.QueuedThreadPool becomes oeju.QueuedThreadPool. Default value is true. org.eclipse.jetty.logging.appender.MESSAGE_ALIGN=<integer> Specifies the column at which the logging <message> should be printed. The value 0 specifies no alignment. Default value is 0. org.eclipse.jetty.logging.appender.MESSAGE_ESCAPE=<boolean> Specifies whether to escape ISO control characters such as \\r or \\n present in the message. Character \\r is replaced with < and character \\n is replaced with |; all other ISO control characters are replaced with ?. Default value is false. org.eclipse.jetty.logging.appender.ZONE_ID=<timezone id> Specifies the timezone ID (such as PST, or America/Los_Angeles or GMT-8:00) for the <datetime> part of the logging line. The empty string specifies the UTC timezone. Default value is the local timezone. When using the Jetty SLF4J binding, the logging levels can be dynamically changed via JMX, see the troubleshooting section for more information. Logging to System.err may be fine at development time, but you will typically want to capture logs on disk for later inspection, or if you donât have a terminal access (for example, if you started Jetty as a
1service). The console-capture Jetty module allows you to capture what is written to System.out and System.err and write it to a log file. By default, console-capture logs to a file in the $JETTY_BASE/logs/ directory. See the console-capture module documentation for details on configuring how logs are written to the log directory. The console-capture Jetty module should be used only in conjunction with the logging-jetty module, as other SLF4J bindings such as LogBack or Log4j2 have their own, more sophisticated, rolling file appenders. You can use a different SLF4J binding if you are more familiar with other logging libraries, or if you need custom logging appenders. There are a number of out-of-the-box Jetty modules that you can use: logging-logback, to use the LogBack binding logging-log4j2, to use the Log4j2 binding logging-log4j1, to use the Log4j1 binding (note that Log4j 1.x is end-of-life) logging-jul, to use the java.util.logging binding logging-noop, to use the SLF4J no-operation binding (discards all logging) To enable the logging-logback module, run: $ java -jar $JETTY_HOME/start.jar --add-modules=logging-logback,http Since LogBack is released under a license that is different from Jettyâs, you will be prompted to accept the LogBack license. Once you accept the LogBack license, your $JETTY_BASE directory will have the following structure. $JETTY_BASE âââ lib â âââ logging â âââ logback-classic-<version>.jar â âââ logback-core-<version>.jar âââ resources â âââ logback.xml âââ start.d âââ http.ini âââ logging-logback.ini Jetty downloaded the required LogBack *.jar files, and created a $JETTY_BASE/resources/logback.xml file for configuring your LogBack logging. Please refer to the LogBack configuration manual for more information about how to configure LogBack. To enable the logging-log4j2 module, run: $ java -jar $JETTY_HOME/start.jar --add-modules=logging-log4j2,http After accepting the Log4j2 license, you will have the following directory structure: $JETTY_BASE âââ lib â âââ logging â âââ log4j-api-<version>.jar â âââ log4j-core-<version>.jar â âââ log4j-slf4j2-impl-<version>.jar âââ resources â âââ log4j2.xml âââ start.d âââ http.ini âââ logging-log4j2.ini Jetty downloaded the required Log4j2 *.jar files, and created a $JETTY_BASE/resources/log4j2.xml file that you can configure to customize your Log4j2 logging. Please refer to the Log4j2 configuration manual for more information about how to configure Log4j2. When you use libraries that provide the features you need (for example, JDBC drivers), it may be possible that those libraries use a different logging framework than SLF4J. SLF4J provides bridges for legacy logging APIs that allows you to bridge logging from one of these legacy logging frameworks to SLF4J. Once the logging is bridged to SLF4J, you can use Jettyâs default configuration or a custom configuration so that your logging is centralized in one place. Jetty provides the logging-jul-capture module for bridging from java.util.logging to SLF4J. The modules logging-jcl-capture and logging-log4j1-capture similarly provide bridges from Jakarta Commons Logging (JCL) and Apache Log4j, respectively; however, these modules are obsolete and should not be used anymore. For libraries that use java.util.logging as their logging framework, you can enable Jettyâs logging-jul-capture module: $ java -jar $JETTY_HOME/start.jar --add-modules=logging-jul-capture The logging-jul-capture module implies --exec and therefore spawns a second JVM because it needs to provide the system property java.util.logging.config.file (so that java.util.logging can read the configuration from the specified file), and because it needs to make available on the System ClassLoader the class org.slf4j.bridge.SLF4JBridgeHandler. For example, a library that uses java.util.logging as its logging library is the Postgresql JDBC driver. With the logging-jul-capture Jetty module, the logging follows this diagram: Note how Jetty logs directly to SLF4J, while the Postgresql JDBC driver logs to SLF4J through the SLF4JBridgeHandler. They both arrive to the SLF4J binding, in this case the Jetty SLF4J binding (but could be any other SLF4J binding such as LogBack). HTTP requests and responses can be logged to provide data that can be later analyzed with other tools, that can provide information such as the most frequently accessed request URIs, the response status codes, the request/response content lengths, geographical information about the clients, etc. Request logging is enabled by enabling the requestlog Jetty module. In the example below, both the http Jetty module and the requestlog module are enabled, so that you can make HTTP requests to the server and have them logged: $ cd $JETTY_BASE $ java -jar $JETTY_HOME/start.jar --add-modules=http,requestlog The $JETTY_BASE directory looks like this: $JETTY_BASE âââ logs âââ resources â âââ jetty-logging.properties âââ start.d âââ http.ini âââ requestlog.ini The $JETTY_BASE/start.d/requestlog.ini file is the Jetty module configuration file that allows you to configure the requestlog module, see this section for more details. By default the requestlog Jetty module produces the $JETTY_BASE/logs/yyyy_MM_dd.request.log, where the pattern yyyy_MM_dd is replaced with the current date, for example 2020_01_31. The format of the request log lines is the result of a format str
1ing that uses formatting symbols to log relevant request/response data. The default format is the NCSA Format extended with referrer data and user-agent data. A typical log line looks like this: 192.168.0.100 - - [31/Jan/2020:20:30:40 +0000] \"GET / HTTP/1.1\" 200 6789 \"-\" \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36\" The line above (that uses fake values) shows 192.168.0.100 for the client IP address, a hard-coded - for the identity, - for the authenticated user name, [31/Jan/2020:20:30:40 +0000] for the date and time with timezone, \"GET / HTTP/1.1\" for the HTTP request line, 200 for the HTTP response status code, 6789 for the HTTP response content length, \"-\" for the referrer and \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36\" for the user-agent. The format string can be customized as described in this section. Request log files are rolled every day, and retained for customizable number of days, by default 90 days. When Jetty is behind a load balancer, you want to log the remote client IP address, not the load balancer IP address. Refer to this section to configure the load balancer and Jetty to retain the remote client IP address information. The requestlog-slf4j Jetty module provides an alternative to the file-based requestlog module. Instead of writing request logs to a file, it writes them to the SLF4J logging framework at INFO level. This is useful when: You want request logs to appear in your applicationâs main log stream Youâre using a centralized logging system (ELK, Splunk, etc.) You prefer console output during development You want your logging framework (Logback, Log4j2) to handle log rotation and formatting To enable SLF4J request logging: $ java -jar $JETTY_HOME/start.jar --add-modules=http,requestlog-slf4j By default, request logs are written to the logger named org.eclipse.jetty.server.RequestLog at INFO level. You can configure the logger name in $JETTY_BASE/start.d/requestlog-slf4j.ini: jetty.requestlog.slf4j.loggerName=com.example.RequestLog The format string can be customized the same way as the standard requestlog module: jetty.requestlog.formatString=%{client}a - %u %t \"%r\" %s %O The requestlog-slf4j module delegates to your SLF4J logging configuration. To see request logs in your output, ensure that: The logger org.eclipse.jetty.server.RequestLog (or your custom logger name) is configured at INFO level or lower Your SLF4J binding (Logback, Log4j2, etc.) is properly configured Example Logback configuration: <logger name=\"org.eclipse.jetty.server.RequestLog\" level=\"INFO\"/> Jetty uses thread pooling to efficiently execute tasks that provide Jetty functionalities. Like any other component, the Jetty thread pool is configured and enabled via the threadpool Jetty module, that is transitively enabled by the server Jetty module which, in turn, is transitively enabled by a protocol module such as the http Jetty module: $ java -jar $JETTY_HOME/start.jar --add-modules=http The command above gives you the default configuration for the thread pool. If you want to explicitly configure the thread pool, it is enough to explicitly specify the threadpool module: $ java -jar $JETTY_HOME/start.jar --add-modules=threadpool,http After the command above, the $JETTY_BASE directory looks like this: $JETTY_BASE âââ resources â âââ jetty-logging.properties âââ start.d âââ http.ini âââ threadpool.ini Now you can customize the threadpool.ini file to explicitly configure the thread pool. Virtual threads have been introduced as a preview feature in Java 19 and Java 20, and have become an official feature since Java 21. The threadpool-virtual-preview Jetty module provides support for virtual threads in Java 19 and Java 20, and it is mutually exclusive with the threadpool Jetty module. When using Java 21, there are two Jetty modules available: threadpool-virtual threadpool-all-virtual Both are mutually exclusive with the threadpool Jetty module. If you have already enabled the threadpool Jetty module, it is sufficient to remove it by removing the $JETTY_BASE/start.d/threadpool.ini file. The threadpool-virtual Jetty module provides a mixed thread mode, where platform threads are used to run internal Jetty tasks, but application code is invoked using virtual threads. The threadpool-all-virtual Jetty module provides a thread mode where all threads are virtual threads, including those used internally by Jetty. You can enable either module using: $ java -jar $JETTY_HOME/start.jar --add-modules=threadpool-virtual,http or $ java -jar $JETTY_HOME/start.jar --add-modules=threadpool-all-virtual,http After the command above, the $JETTY_BASE/start.d/ directory will contain the corresponding threadpool-virtual.ini or threadpool-all-virtual.ini file. You can now explicitly configure the thread pool module properties inside the *.ini file and then start Jetty.","title":"Jetty Server","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/server/index.html","titles":[{"text":"Logging","hash":"logging","id":1},{"text":"Server Logging","hash":"logging-server","id":2},{"text":"Default Configuration","hash":"logging-server-default","id":3},{"text":"Capturing Logs to a Rolling File","hash":"logging-server-default-rolling","id":4},{"text":"Custom Configuration","hash":"logging-server-custom","id":5},{"text":"Logging with LogBack","hash":"logging-server-custom-logback","id":6},{"text":"Logging with Log4j2","hash":"logging-server-custom-log4j2","id":7},{"text":"Bridging Logging to SLF4J","hash":"logging-server-bridges","id":8},{"text":"Bridging from java.util.logging","hash":"logging-server-bridge-jul","id":9},{"text":"Request Logging","hash":"logging-request","id":10},{"text":"Request Logging to SLF4J","hash":"logging-request-slf4j","id":11},{"text":"Thread Pooling","hash":"threadpool","id":12},{"text":"Virtual Threads Support","hash":"threadpool-virtual","id":13}]},"35":{"id":35,"text":"Connectors are the network components through which Jetty accepts incoming network connections. Each connector listens on a network port and can be configured with ConnectionFactory components that understand one or more network protocols. Understanding a protocol means that the connector is able to interpret incoming network bytes (for example, the bytes that represent an HTTP/1.1 request) and convert them into more abstract objects (for example an HttpServletRequest object) that are then processed by applications. Conversely, an abstract object (for example an HttpServletResponse) is converted into the correspondent outgoing network bytes (the bytes that represent an HTTP/1.1 response). Like other Jetty components, connectors are enabled and configured by enabling and configuring the correspondent Jetty module. Recall that you must always issue the commands to enable Jetty modules from within the $JETTY_BASE directory, and that the Jetty module configuration files are in the $JETTY_BASE/start.d/ directory. You can obtain the list of connector-related modules in this way: $ java -jar $JETTY_HOME/start.jar --list-modules=connector Clear text HTTP/1.1 is enabled with the http Jetty module with the following command (issued from within the $JETTY_BASE directory): $ java -jar $JETTY_HOME/start.jar --add-modules=http [Running Jetty] :{jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=http} **2026-09-23 22:24:40.194:**INFO :oejs.Server:main: jetty-12.1.13; built: 2026-09-07T09:11:01.281Z; git: e99386749a0a4888cd9b555ffc96a476fd48d94e; jvm 21.0.8+9-LTS **2026-09-23 22:24:40.219:**INFO :oejs.AbstractConnector:main: Started oejs.ServerConnector@72cc7e6f{HTTP/1.1, (http/1.1)}{0.0.0.0:8080} **2026-09-23 22:24:40.223:**INFO :oejs.Server:main: Started oejs.Server@18271936{STARTING}[12.1.13,sto=0] @36ms After having enabled the http module, the $JETTY_BASE directory looks like this: JETTY_BASE âââ resources â âââ jetty-logging.properties âââ start.d âââ http.ini The http.ini file is the file that you want to edit to configure network and protocol parameters â for more details see this section. Note that the http Jetty module depends on the server Jetty module. Some parameters that you may want to configure are in fact common HTTP parameters that are applied not only for clear-text HTTP/1.1, but also for secure HTTP/1.1 or for clear-text HTTP/2 or for encrypted HTTP/2, or for HTTP/3, and these configuration parameters may be present in the server module configuration file. You can force the creation of the server.ini file via: $ java -jar $JETTY_HOME/start.jar --add-modules=server Now the $JETTY_BASE directory looks like this: JETTY_BASE âââ resources â âââ jetty-logging.properties âââ start.d âââ http.ini âââ server.ini Now you can edit the server.ini file â for more details see this section. Secure HTTP/1.1 is enabled with both the ssl and https Jetty modules with the following command (issued from within the $JETTY_BASE directory): $ java -jar $JETTY_HOME/start.jar --add-modules=ssl,https [Running Jetty] :{args=--add-modules=ssl,https, jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined} INFO : mkdir ${jetty.base}/start.d INFO : scheduler transitively enabled INFO : server transitively enabled INFO : logging-jetty transitively enabled INFO : resources transitively enabled INFO : http-config transitively enabled INFO : ssl-context transitively enabled INFO : https initialized in ${jetty.base}/start.d/https.ini INFO : ssl initialized in ${jetty.base}/start.d/ssl.ini INFO : threadpool transitively enabled INFO : logging/slf4j transitive provider of logging/slf4j for logging-jetty INFO : logging/slf4j dynamic dependency of logging-jetty INFO : bytebufferpool transitively enabled INFO : mkdir ${jetty.base}/resources INFO : copy ${jetty.home}/modules/logging/jetty/resources/jetty-logging.properties to ${jetty.base}/resources/jetty-logging.properties INFO : Base directory was modified The command above enables the ssl module, that provides the secure network connector, the KeyStore configuration and TLS configuration â for more details see this section. Then, the https module adds HTTP/1.1 as the protocol secured by TLS. The $JETTY_BASE directory looks like this: $JETTY_BASE âââ resources â âââ jetty-logging.properties âââ start.d âââ https.ini âââ ssl-context.ini Note that the KeyStore file is missing, because you have to provide one with the cryptographic material you want (read this section to create your own KeyStore). You need to configure these two properties by editing ssl-context.ini: jetty.sslContext.keyStorePath jetty.sslContext.keyStorePassword As a quick example, you can enable the test-keystore module, that creates on-the-fly a KeyStore containing a self-signed certificate: $ java -jar $JETTY_HOME/start.jar --add-modules=test-keystore [Running Jetty] :{args=--add-modules=test-keystore, jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=ssl,https} INFO : test-keystore initialized in ${jetty.base}/start.d/test-keystore.ini INFO : mkdir ${jetty.base}
1/lib/bouncycastle INFO : copy /path/to/maven.repository/org/bouncycastle/bcpkix-jdk18on/1.85/bcpkix-jdk18on-1.85.jar to ${jetty.base}/lib/bouncycastle/bcpkix-jdk18on-1.85.jar INFO : copy /path/to/maven.repository/org/bouncycastle/bcprov-jdk18on/1.85/bcprov-jdk18on-1.85.jar to ${jetty.base}/lib/bouncycastle/bcprov-jdk18on-1.85.jar INFO : copy /path/to/maven.repository/org/bouncycastle/bcutil-jdk18on/1.85/bcutil-jdk18on-1.85.jar to ${jetty.base}/lib/bouncycastle/bcutil-jdk18on-1.85.jar INFO : Base directory was modified The $JETTY_BASE directory is now: âââ etc â âââ test-keystore.p12 âââ resources â âââ jetty-logging.properties âââ start.d âââ https.ini âââ ssl-context.ini âââ test-keystore.ini Starting Jetty yields: $ java -jar $JETTY_HOME/start.jar [Running Jetty] :{highlight=(\\{.*:8443}), jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=ssl,https,test-keystore} 2026-09-23 22:24:44.449:WARN :oejk.KeystoreGenerator:main: Generating Test Keystore: DO NOT USE IN PRODUCTION! 2026-09-23 22:24:45.221:INFO :oejs.Server:main: jetty-12.1.13; built: 2026-09-07T09:11:01.281Z; git: e99386749a0a4888cd9b555ffc96a476fd48d94e; jvm 21.0.8+9-LTS 2026-09-23 22:24:45.285:INFO :oejus.SslContextFactory:main: x509=oejus.X509@64c2b546(jetty-test-keystore,h=[localhost],a=[],w=[]) for oejus.SslContextFactory$Server@7e094740[provider=null,keyStore=file:///path/to/jetty.home-base/etc/test-keystore.p12,trustStore=null] 2026-09-23 22:24:45.358:WARN :oejusS.config:main: Weak cipher suite TLS_RSA_WITH_AES_256_GCM_SHA384 enabled for oejus.SslContextFactory$Server@7e094740[provider=null,keyStore=file:///path/to/jetty.home-base/etc/test-keystore.p12,trustStore=null] 2026-09-23 22:24:45.358:WARN :oejusS.config:main: Weak cipher suite TLS_RSA_WITH_AES_128_GCM_SHA256 enabled for oejus.SslContextFactory$Server@7e094740[provider=null,keyStore=file:///path/to/jetty.home-base/etc/test-keystore.p12,trustStore=null] 2026-09-23 22:24:45.358:WARN :oejusS.config:main: Weak cipher suite TLS_RSA_WITH_AES_256_CBC_SHA256 enabled for oejus.SslContextFactory$Server@7e094740[provider=null,keyStore=file:///path/to/jetty.home-base/etc/test-keystore.p12,trustStore=null] 2026-09-23 22:24:45.358:WARN :oejusS.config:main: Weak cipher suite TLS_RSA_WITH_AES_128_CBC_SHA256 enabled for oejus.SslContextFactory$Server@7e094740[provider=null,keyStore=file:///path/to/jetty.home-base/etc/test-keystore.p12,trustStore=null] 2026-09-23 22:24:45.366:INFO :oejs.AbstractConnector:main: Started oejs.ServerConnector@588ab592{SSL, (ssl, http/1.1)}{0.0.0.0:8443} 2026-09-23 22:24:45.374:INFO :oejs.Server:main: Started oejs.Server@4cc61eb1{STARTING}[12.1.13,sto=0] @150ms Note how Jetty is listening on port 8443 for the secure HTTP/1.1 protocol. If you point your browser at https://localhost:8443/ you will get a warning from the browser about a \"potential security risk ahead\", or that \"your connection is not private\", or similar message depending on the browser. This is normal because the certificate contained in test-keystore.p12 is self-signed â and as such not signed by a recognized certificate authority â and therefore browsers do not trust it. HTTP/2 is the successor of the HTTP/1.1 protocol, but it is quite different from HTTP/1.1: where HTTP/1.1 is a duplex, text-based protocol, HTTP/2 is a multiplex, binary protocol. Because of these fundamental differences, a client and a server need to negotiate what version of the HTTP protocol they speak, based on what versions each side supports. To ensure maximum compatibility, and reduce the possibility that an intermediary that only understands HTTP/1.1 will close the connection when receiving unrecognized HTTP/2 bytes, HTTP/2 is typically deployed over secure connections, using the TLS protocol to wrap HTTP/2. Browsers only support secure HTTP/2. The protocol negotiation is performed by the ALPN TLS extension: the client advertises the list of protocols it can speak, and the server communicates to the client the protocol chosen by the server. For example, you can have a client that only supports HTTP/1.1 and a server that supports both HTTP/1.1 and HTTP/2: Nowadays, itâs common that both clients and servers support HTTP/2, so servers prefer HTTP/2 as the protocol to speak: When you configure a connector with the HTTP/2 protocol, you typically want to also configure the HTTP/1.1 protocol. The reason to configure both protocols is that you typically do not control the clients: for example an old browser that does not support HTTP/2, or a monitoring console that performs requests using HTTP/1.1, or a heartbeat service that performs a single HTTP/1.0 request to verify that the server is alive. Deciding whether you want to configure Jetty with secure HTTP/2 or clear-text HTTP/2 depends on your use case. You want to configure secure HTTP/2 when Jetty is exposed directly to browsers, because browsers only support secure HTTP/2. You may configure clear-text HTTP/2 (mostly for performance reasons) if you offload TLS at a load balancer (for example, HAProxy) or at a reverse proxy (for example, nginx). You may configure clear-text HTTP/2 (mostly for performance reasons) to call microservices deployed to different Jetty servers (although you may want to use secure HTTP/2 for confidentiality reasons). When you enable secure HTTP/2 you typically want to enable also secure HTTP/1.1, for backwards compatibility reasons: in this way, old browsers or other clients that do not support HTTP/2 will be able to connect to your server. You need to enable: the ssl Jetty module, which provides the secure connector and the KeyStore and TLS configuration the http2 Jetty module, which adds ALPN handling and adds the HTTP/2 protocol to the secured connector optionally, the https Jetty module, which adds the HTTP/1.1 protocol to the secured connector Use the following command (issued from within the $JETTY_BASE directory): $ java -jar $JETTY_HOME/start.jar --add-modules=ssl,http2,https As when enabling the https Jetty module, you need a valid KeyStore (read this section to create your own KeyStore). As a quick example, you can enable the test-keystore module, that creates on-the-fly a KeyStore containing a self-signed certificate: $ java -jar $JETTY_HOME/start.jar --add-modules=test-keystore Starting Jetty yields: $ java -jar $JETTY_HOME/start.jar [Running Jetty] :{highlight=(\\{.*:8443}), jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=ssl,http2,https,test-keystore} 2026-09-23 22:24:47.613:WARN :oejk.KeystoreGenerator:main: Generating Test Keystore: DO NOT USE IN PRODUCTION! 2026-09-23 22:24:48.478:INFO :oejs.Server:main: jetty-12.1.13; built: 2026-09-07T09:11:01.281Z; git: e99386749a0a4888cd9b555ffc96a476fd48d94e; jvm 21.0.8+9-LTS 2026-09-23 22:24:48.530:INFO :oejus.SslContextFactory:main: x509=oejus.X509@384fc774(jetty-test-keystore,h=[localhost],a=[],w=[]) for oejus.SslContextFactory$Server@e3cee7b[provider=null,keyStore=file:///path/to/jetty.home-base/etc/test-keystore.p12,trustStore=null] 2026-09-23 22:24:48.608:WARN :oejusS.config:main: Weak cipher suite TLS_RSA_WITH_AES_256_GCM_SHA384 enabled for oejus.SslContextFactory$Server@e3cee7b[provider=null,keyStore=file:///path/to/jetty.home-base/etc/test-keystore.p12,trustStore=null] 2026-09-23 22:24:48.609:WARN
1:oejusS.config:main: Weak cipher suite TLS_RSA_WITH_AES_128_GCM_SHA256 enabled for oejus.SslContextFactory$Server@e3cee7b[provider=null,keyStore=file:///path/to/jetty.home-base/etc/test-keystore.p12,trustStore=null] 2026-09-23 22:24:48.609:WARN :oejusS.config:main: Weak cipher suite TLS_RSA_WITH_AES_256_CBC_SHA256 enabled for oejus.SslContextFactory$Server@e3cee7b[provider=null,keyStore=file:///path/to/jetty.home-base/etc/test-keystore.p12,trustStore=null] 2026-09-23 22:24:48.609:WARN :oejusS.config:main: Weak cipher suite TLS_RSA_WITH_AES_128_CBC_SHA256 enabled for oejus.SslContextFactory$Server@e3cee7b[provider=null,keyStore=file:///path/to/jetty.home-base/etc/test-keystore.p12,trustStore=null] 2026-09-23 22:24:48.617:INFO :oejs.AbstractConnector:main: Started oejs.ServerConnector@530a8454{SSL, (ssl, alpn, h2, http/1.1)}{0.0.0.0:8443} 2026-09-23 22:24:48.618:INFO :oejs.Server:main: Started oejs.Server@5215cd9a{STARTING}[12.1.13,sto=0] @145ms Note how Jetty is listening on port 8443 and the protocols supported are the sequence (ssl, alpn, h2, http/1.1). The (ordered) list of protocols after alpn are the application protocols, in the example above (h2, http/1.1). When a new connection is accepted by the connector, Jetty first interprets the TLS bytes, then it handles the ALPN negotiation knowing that the application protocols are (in order) h2 and then http/1.1. You can customize the list of application protocols and the default protocol to use in case the ALPN negotiation fails by editing the alpn module properties. The HTTP/2 protocol parameters can be configured by editing the http2 module properties. When you enable clear-text HTTP/2 you typically want to enable also clear-text HTTP/1.1, for backwards compatibility reasons and to allow clients to upgrade from HTTP/1.1 to HTTP/2. You need to enable: the http Jetty module, which provides the clear-text connector and adds the HTTP/1.1 protocol to the clear-text connector the http2c Jetty module, which adds the HTTP/2 protocol to the clear-text connector $ java -jar $JETTY_HOME/start.jar --add-modules=http,http2c Starting Jetty yields: $ java -jar $JETTY_HOME/start.jar [Running Jetty] :{highlight=(\\{.+:8080}), jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=http,http2c} 2026-09-23 22:24:50.748:INFO :oejs.Server:main: jetty-12.1.13; built: 2026-09-07T09:11:01.281Z; git: e99386749a0a4888cd9b555ffc96a476fd48d94e; jvm 21.0.8+9-LTS 2026-09-23 22:24:50.782:INFO :oejs.AbstractConnector:main: Started oejs.ServerConnector@7857fe2{HTTP/1.1, (http/1.1, h2c)}{0.0.0.0:8080} 2026-09-23 22:24:50.788:INFO :oejs.Server:main: Started oejs.Server@58e1d9d{STARTING}[12.1.13,sto=0] @49ms Note how Jetty is listening on port 8080 and the protocols supported are HTTP/1.1 and h2c (i.e. clear-text HTTP/2). With this configuration, browsers and client applications will be able to connect to port 8080 using: HTTP/1.1 directly (e.g. curl --http1.1 http://localhost:8080): GET / HTTP/1.1 Host: localhost:8080 HTTP/1.1 with upgrade to HTTP/2 (e.g. curl --http2 http://localhost:8080): GET / HTTP/1.1 Host: localhost:8080 Connection: Upgrade, HTTP2-Settings Upgrade: h2c HTTP2-Settings: HTTP/2 directly (e.g. curl --http2-prior-knowledge http://localhost:8080): 50 52 49 20 2a 20 48 54 54 50 2f 32 2e 30 0d 0a 0d 0a 53 4d 0d 0a 0d 0a 00 00 12 04 00 00 00 00 00 00 03 00 00 00 64 00 04 40 00 00 00 00 02 00 00 00 00 00 00 1e 01 05 00 00 00 01 82 84 86 41 8a a0 e4 1d 13 9d 09 b8 f0 1e 07 7a 88 25 b6 50 c3 ab b8 f2 e0 53 03 2a 2f 2a The HTTP/2 protocol parameters can be configured by editing the http2c module properties. When you enable support for the HTTP/3 protocol, by default the secure HTTP/2 protocol is also enabled, so that browsers or clients that do not support HTTP/3 will be able to connect to your server. You need to enable: the ssl Jetty module, which provides the KeyStore and TLS configuration the http3 Jetty module, which adds the HTTP/3 protocol on the HTTP/3 connector Use the following command (issued from within the $JETTY_BASE directory): $ java -jar $JETTY_HOME/start.jar --add-modules=ssl,http3 Enabling any module Jetty module that supports secure network communication requires a valid KeyStore (read this section to create your own KeyStore), that, as a quick example, you can enable with the test-keystore module, that creates on-the-fly a KeyStore containing a self-signed certificate: $ java -jar $JETTY_HOME/start.jar --add-modules=test-keystore Starting Jetty yields: $ java -jar $JETTY_HOME/start.jar [Running Jetty] :{highlight=(\\{.*:8444}), jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--approve-all-licenses --add-modules=ssl,http3,test-keystore} 2026-09-23 22:24:53.123:WARN :oejk.KeystoreGenerator:main: Generating Test Keystore: DO NOT USE IN PRODUCTION! 2026-09-23 22:24:54.013:INFO :oejs.Server:main: jetty-12.1.13; built: 2026-09-07T09:11:01.281Z; git: e99386749a0a4888cd9b555ffc96a476fd48d94e; jvm 21.0.8+9-LTS 2026-09-23 22:24:54.068:INFO :oejus.SslContextFactory:main: x509=oejus.X509@3c321bdb(jetty-test-keystore,h=[localhost],a=[],w=[]) for oejus.SslContextFactory$Server@24855019[provider=null,keyStore=file:///path/to/jetty.home-base/etc/test-keystore.p12,trustStore=null] 2026-09-23 22:24:54.136:WARN :oejusS.config:main: Weak cipher suite TLS_RSA_WITH_AES_256_GCM_SHA384 enabled for oejus.SslContextFactory$Server@24855019[provider=null,keyStore=file:///path/to/jetty.home-base/etc/test-keystore.p12,trustStore=null] 2026-09-23 22:24:54.137:WARN :oejusS.config:main: Weak cipher suite TLS_RSA_WITH_AES_128_GCM_SHA256 enabled for oejus.SslContextFactory$Server@24855019[provider=null,keyStore=file:///path/to/jetty.home-base/etc/test-keystore.p12,trustStore=null] 2026-09-23 22:24:54.137:WARN :oejusS.config:main: Weak cipher suite TLS_RSA_WITH_AES_256_CBC_SHA256 enabled for oejus.SslContextFactory$Server@24855019[provider=null,keyStore=file:///path/to/jetty.home-base/etc/test-keystore.p12,trustStore=null] 2026-09-23 22:24:54.137:WARN :oejusS.config:main: Weak cipher suite TLS_RSA_WITH_AES_128_CBC_SHA256 enabled for oejus.SslContextFactory$Server@24855019[provider=null,keyStore=file:///path/to/jetty.home-base/etc/test-keystore.p12,trustStore=null] 2026-09-23 22:24:54.146:INFO :oejs.AbstractConnector:main: Started oejs.ServerConnector@5d10455d{SSL, (ssl, alpn, h2)}{0.0.0.0:8443}
1 2026-09-23 22:24:54.147:INFO :oejqqs.AbstractQuicheServerConnectionFactory:main: HTTP/3+QUIC support is experimental and not suited for production use. 2026-09-23 22:24:54.181:INFO :oejs.AbstractConnector:main: Started oejqqs.QuicheServerConnector@867ba60{h3, (h3)}{0.0.0.0:8444} 2026-09-23 22:24:54.183:INFO :oejs.Server:main: Started oejs.Server@15fc442{STARTING}[12.1.13,sto=0] @175ms Note how Jetty is listening on port 8443 for HTTP/2 and on port 8444 for HTTP/3. The HTTP/3 protocol parameters can be configured by editing the http3 module properties. WebSocket is a network protocol for bidirectional data communication, initiated via HTTP and then upgraded to WebSocket. WebSocket provides a simple, low-level, framing protocol layered over the underlying transport protocol, typically TCP. One or more WebSocket data frames compose a WebSocket message that is either a UTF-8 text message or binary message. Jetty provides an implementation of the following standards and specifications. RFC-6455 - The WebSocket Protocol Jetty supports version 13 of the released and final specification. JSR-356 - The Java WebSocket API (javax.websocket) This is the official Java API for working with WebSockets. RFC-7692 - WebSocket Per-Message Deflate Extension This is the replacement for perframe-compression, switching the compression to being based on the entire message, not the individual frames. RFC-8441 - Bootstrapping WebSockets with HTTP/2 Allows a single stream of an HTTP/2 connection to be upgraded to WebSocket. This allows one TCP connection to be shared by both protocols and extends HTTP/2âs more efficient use of the network to WebSockets. Jetty provides two WebSocket implementations: one based on the Jakarta EE WebSocket APIs defined by JSR 356, provided by module ee11-websocket-jakarta (for Java EE 8, the module is called ee8-websocket-javax), and one based on Jetty specific WebSocket APIs, provided by module websocket-jetty. Remember that a WebSocket connection is always initiated from the HTTP protocol (either an HTTP/1.1 upgrade or an HTTP/2 connect), therefore to enable WebSocket you need to enable HTTP. To enable WebSocket support, you also need to decide what version of the HTTP protocol you want WebSocket to be initiated from, and whether you want secure HTTP. For example, to enable clear-text WebSocket from HTTP/1.1, using the Jakarta EE 11 implementation, use the following command (issued from within the $JETTY_BASE directory): $ java -jar $JETTY_HOME/start.jar --add-modules=http,ee11-websocket-jakarta To enable secure WebSocket from HTTP/2, using the Jetty implementation, use the following command (issued from within the $JETTY_BASE directory): $ java -jar $JETTY_HOME/start.jar --add-modules=http2,websocket-jetty When enabling secure protocols you need a valid KeyStore (read this section to create your own KeyStore). As a quick example, you can enable the test-keystore module, that creates on-the-fly a KeyStore containing a self-signed certificate: $ java -jar $JETTY_HOME/start.jar --add-modules=test-keystore To enable WebSocket on both HTTP/1.1 and HTTP/2, both clear-text and secure, using the Jakarta EE 11 implementation, use the following command (issued from within the $JETTY_BASE directory): $ java -jar $JETTY_HOME/start.jar --add-modules=http,https,http2c,http2,{ee-current}-websocket-jakarta Enabling the Jakarta EE WebSocket Jetty modules comes with a startup cost because Jetty must perform two steps: Scan Jakarta EE web applications *.war files (and all the jars and classes inside it) looking for WebSocket EndPoint classes (either annotated with the Jakarta EE WebSocket API annotations or extending/implementing Jakarta EE WebSocket API classes/interfaces). This can be a significant cost if your web application contains a lot of classes and/or jar files. Configure and wire WebSocket EndPoints so that WebSocket messages are delivered to the correspondent WebSocket EndPoint. WebSocket support is by default enabled for all Jakarta EE web applications. For a specific Jakarta EE web application, you can disable step 2 for Jakarta EE WebSocket support (when the ee11-websocket-jakarta module is enabled) by setting the context attribute org.eclipse.jetty.websocket.jakarta to fal
1se: <?xml version=\"1.0\" encoding=\"UTF-8\"?> <web-app xmlns=\"https://jakarta.ee/xml/ns/jakartaee\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd\" version=\"6.0\"> <!-- Disable Jakarta WebSocket --> <context-param> <param-name>org.eclipse.jetty.websocket.jakarta</param-name> <param-value>false</param-value> </context-param> ... </web-app> For Java EE 8, the parameter name is org.eclipse.jetty.websocket.javax. Furthermore, for a specific web application, you can disable step 1 (and therefore also step 2) as described in the annotations processing section. Web applications may need to use a WebSocket client to communicate with third party WebSocket services. If the web application uses the Jakarta EE WebSocket APIs, the Jakarta EE WebSocket client APIs are provided by Jetty and are available to the web application as long as the ee11-websocket-jakarta Jetty module is enabled. However, the Jakarta EE WebSocket Client APIs are quite limited (for example, they do not support secure WebSocket). For this reason, web applications may want to use the Jetty WebSocket Client APIs. When using the Jetty WebSocket Client APIs, Jakarta EE web applications should include the required jars and their dependencies in the WEB-INF/lib directory of the *.war file. Alternatively, when deploying your Jakarta EE web applications in Jetty, you can enable the websocket-jetty-client Jetty module to allow Jakarta EE web applications to use the Jetty WebSocket Client APIs provided by Jetty, without the need to include jars and their dependencies in the *.war file. FastCGI is a network protocol primarily used by a web server to communicate to a FastCGI server. FastCGI servers are typically used to serve web content generated by dynamic web languages, primarily PHP, but also Python, Ruby, Perl and others. Web servers that supports FastCGI are, among others, Apache, Nginx, and Jetty. Web servers typically act as reverse proxies, converting HTTP requests that they receive from clients (browsers) to FastCGI requests that are forwarded to the FastCGI server. The FastCGI server spawns the dynamic web language interpreter, passing it the information contained in the FastCGI request and a dynamic web language script is executed, producing web content, typically HTML. The web content is then formatted into a FastCGI response that is returned to the web server, which converts it to an HTTP response that is then returned to the client. The most well known FastCGI server is the PHP FastCGI Process Manager, or php-fpm. In the following we will assume that php-fpm is used as FastCGI server. This is a diagram of what described above: Jetty can be configured to act as a web server that supports FastCGI, replacing the functionality that is normally provided by Apache or Nginx. This allows users to leverage Jetty features such as the support for HTTP/1.1, HTTP/2 and HTTP/3, Jettyâs scalability, and of course Jettyâs native support for Jakarta EE Web Standards such as Servlets, JSPs, etc. With such configuration, users can not only deploy their Jakarta EE web applications in Jetty, but also serve their WordPress site or blog or their Drupal site without having to install and manage multiple web servers. This section explains how to configure Jetty to serve your WordPress site. The prerequisites are: Have php-fpm installed on your server host, and configured to listen either on a Unix-Domain socket (such as /run/php/php-fpm.sock), or on a TCP socket (such as localhost:9000). Have WordPress installed on your server host, for example under /var/www/wordpress. For more information about how to install WordPress and the necessary PHP modules, please refer to the WordPress Installation Guide. Then, the secure HTTP and/or the secure HTTP/2 Jetty modules should be enabled to allow browsers to connect to Jetty. Lastly, enable the fcgi-proxy module to provide FastCGI support (to convert HTTP requests from browsers to FastCGI for php-fpm and vice versa), and the core-deploy module to deploy your WordPress web application as a Jetty context XML file. For example: $ java -jar $JETTY_HOME/start.jar --add-modules=ssl,https,fcgi-proxy,core-deploy The https Jetty module requires a KeyStore. If you do not already have one configured, you can add the test-keystore Jetty module to the command line above to create a KeyStore on-the-fly. Now you can deploy a Jetty context XML file that represents your WordPress web application. Use the following file as example, copy it as $JETTY_BASE/webapps/wordpress.xml and customize it as necessary: <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.server.handler.ContextHandler\"> <New id=\"root\" class=\"java.lang.String\"> <Arg>/var/www/wordpress</Arg> (1) </New> <Set name=\"contextPath\">/</Set> (2) <Set name=\"baseResourceAsString\"><Ref refid=\"root\" /></Set> <Set name=\"handler\"> <New class=\"org.eclipse.jetty.server.handler.TryPathsHandler\"> <Set name=\"originalPathAttribute\">wordpress.originalPath</Set> <Set name=\"originalQueryAttribute\">wordpress.originalQuery</Set> <Set name=\"paths\"> <Call class=\"java.util.List\" name=\"of\"> <Arg>$path</Arg> <Arg>/index.php</Arg> </Call> </Set> <Set name=\"handler\"> <New class=\"org.eclipse.jetty.server.handler.PathMappingsHandler\"> <Call name=\"addMapping\"> <Arg> <New class=\"org.eclipse.jetty.http.pathmap.ServletPathSpec\"><Arg>*.php</Arg></New> </Arg> <Arg> <New class=\"org.eclipse.jetty.fcgi.proxy.FastCGIProxyHandler\"> (3) <Arg>(https?)://([^/]+)(.*)</Arg> (4) <Arg>http://localhost:9000$3</Arg> (5) <Arg><Ref refid=\"root\" /></Arg> <Set name=\"originalPathAttribute\">wordpress.originalPath</Set> <Set name=\"originalQueryAttribute\">wordpress.originalQuery</Set> <Set name=\"scriptPattern\"><Call class=\"java.util.regex.Pattern\" name=\"compile\"><Arg>(.+?\\\\.php)</Arg></Call></Set> <Set name=\"fastCGISecure\">true</Set> <Set name=\"unixDomainPath\"><Call class=\"java.nio.file.Path\" name=\"of\"><Arg>/run/php/php-fpm.sock</Arg></Call></Set> (6) </New> </Arg> </Call> <Call name=\"addMapping\"> <Arg> <New class=\"org.eclipse.jetty.http.pathmap.ServletPathSpec\"><Arg>/</Arg></New> </Arg> <Arg> <New class=\"org.eclipse.jetty.server.handler.ResourceHandler\"> (7) <Set name=\"welcomeFiles\"><Call class=\"java.util.List\" name=\"of\"><Arg>/index.php</Arg></Call></Set> <Set name=\"welcomeMode\"><Call class=\"org.eclipse.jetty.server.ResourceService$WelcomeMode\" name=\"valueOf\"><Arg>REHANDLE</Arg></Call></Set> <Set name=\"dirAllowed\">false</Set> </New> </Arg> </Call>
1 </New> </Set> </New> </Set> </Configure> 1 Specify the WordPress installation path. 2 Specify the context path of your web application. 3 The FastCGIProxyHandler forwards requests whose URI path matches *.php to php-fpm. 4 The client URI regex pattern to match. 5 The URI used to forward the request to php-fpm, where $3 is the 3rd matching group of the client URI regex pattern (int this example, the client URI path). If php-fpm is configured to listen on a TCP socket, the host and port must match the listening TCP socket. If php-fpm is configured to listen on a Unix-Domain socket, the host and port values are ignored but must be present. 6 If php-fpm is configured to listen on a Unix-Domain socket, specify the Unix-Domain socket path, otherwise omit this line. 7 The ResourceHandler serves static files from WordPress, such as *.css, *.js and image files. Now you can start Jetty and navigate to http://localhost:8080 with your browser to enjoy WordPress: $ java -jar $JETTY_HOME/start.jar Secure protocols are normal protocols such as HTTP/1.1, HTTP/2 or WebSocket that are wrapped by the TLS protocol. Any network protocol based on TCP can be wrapped with TLS. QUIC, the protocol based on UDP that transports HTTP/3, uses TLS messages but not the TLS protocol framing. The https scheme used in URIs really means tls+http/1.1 (or tls+http/2, or quic+http/3) and similarly the wss scheme used in URIs really means tls+websocket, etc. Senders wrap the underlying protocol bytes (e.g. HTTP bytes or WebSocket bytes) with the TLS protocol, while receivers first interpret the TLS protocol to obtain the underlying protocol bytes, and then interpret the wrapped bytes. The ssl Jetty module allows you to configure a secure network connector; if other modules require encryption, they declare a dependency on the ssl module. It is the job of other Jetty modules to configure the wrapped protocol. For example, it is the https module that configures the wrapped protocol to be HTTP/1.1. Similarly, it is the http2 module that configures the wrapped protocol to be HTTP/2. If you enable both the https and the http2 module, you will have a single secure connector that will be able to interpret both HTTP/1.1 and HTTP/2. Secure protocols have a slightly more complicated configuration since they require to configure a KeyStore. Refer to the KeyStore section for more information about how to create and manage a KeyStore. For simple cases, you only need to configure the KeyStore path and KeyStore password as explained in this section. For more advanced configuration, for example where Jetty module properties are not defined, or the values for those properties need to be fetched from external sources, you can follow the steps below. First, create a custom Jetty XML file and reference it in $JETTY_BASE/start.d/ssl-context.ini: ssl-context.ini --module=ssl-context etc/tls-config.xml (1) ... 1 The path to the custom XML file, relative to $JETTY_BASE. The ssl-context.ini file above only shows the lines that are not commented out (you can leave the lines that are commented unmodified for future reference). You want to create the $JETTY_BASE/etc/tls-config.xml with the following template content: tls-config.xml <?xml version=\"1.0\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure> <Ref refid=\"sslContextFactory\"> ... (1) </Ref> </Configure> 1 Here goes your advanced configuration. The tls-config.xml file references the sslContextFactory component (created by the ssl-context Jetty module) that configures the KeyStore and TLS parameters, so that you can now call its APIs via XML (using the syntax described in this section), and you will have full flexibility for any advanced configuration you want (see below for few examples). Refer to the SslContextFactory.Server javadocs for the list of methods that you can call through the Jetty XML file. Use module properties whenever possible, and only resort to use a Jetty XML file for advanced configuration that you cannot do using module properties. By default, the SSL protocols (SSL, SSLv2, SSLv3, etc.) are already excluded because they are vulnerable. To explicitly add the exclusion of TLSv1.0 and TLSv1.1 (that are also vulnerable â which leaves only TLSv1.2 and TLSv1.3 available), you want to use this X
1ML: tls-config.xml <?xml version=\"1.0\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure> <Ref refid=\"sslContextFactory\"> <Call name=\"addExcludeProtocols\"> <Arg> <Array type=\"String\"> <Item>TLSv1.0</Item> <Item>TLSv1.1</Item> </Array> </Arg> </Call> </Ref> </Configure> By default, certain cipher suites are already excluded because they are either weak or vulnerable. To explicitly exclude more cipher suites in addition to those excluded by default, you can use this XML: tls-config.xml <?xml version=\"1.0\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure> <Ref refid=\"sslContextFactory\"> <Call name=\"addExcludeCipherSuites\"> <Arg> <Array type=\"String\"> <Item>^TLS_DHE_.*$</Item> <Item>TLS_CHACHA20_POLY1305_SHA256</Item> </Array> </Arg> </Call> </Ref> </Configure> Note how each array item specifies a regular expression that matches multiple ciphers, or specifies a precise cipher to exclude. You can choose to create multiple XML files, and reference them all from $JETTY_BASE/start.d/ssl-context.ini, or put all your custom configurations in a single XML file. When you create a certificate, you must specify for how many days it is valid. The typical validity is 90 days, and while this period may seem short, it has two advantages: Reduces the risk in case of compromised/stolen keys. Encourages automation, i.e. certificate renewal performed by automated tools (rather than manually) at scheduled times. To renew a certificate, you must go through the same steps you followed to create the certificate the first time, and then you can reload the KeyStore without the need to stop Jetty. Jetty can be configured to monitor the directory of the KeyStore file, and reload the SslContextFactory component if the KeyStore file changed. This feature can be enabled by activating the ssl-reload Jetty module: $ java -jar $JETTY_HOME/start.jar --add-modules=ssl-reload For more information about the configuration of the ssl-reload Jetty module, see this section. If not explicitly configured, the TLS implementation is provided by the JDK you are using at runtime. OpenJDKâs vendors may replace the default TLS provider with their own, but you can also explicitly configure an alternative TLS provider. The standard TLS provider from OpenJDK is implemented in Java (no native code), and its performance is not optimal, both in CPU usage and memory usage. A faster alternative, implemented natively, is Googleâs Conscrypt, which is built on BoringSSL, which is Googleâs fork of OpenSSL. As Conscrypt eventually binds to a native library, there is a higher risk that a bug in Conscrypt or in the native library causes a JVM crash, while the Java implementation will not cause a JVM crash. To use Conscrypt as the TLS provider just enable the conscrypt Jetty module: $ java -jar $JETTY_HOME/start.jar --add-modules=conscrypt If not explicitly configured, the TLS implementation is provided by the JDK you are using at runtime. OpenJDKâs vendors may replace the default TLS provider with their own, but you can also explicitly configure an alternative TLS provider. Bouncy Castle is a pure Java alternative provider for the Java security APIs, and includes a TLS provider. To use Bouncy Castle as the TLS provider just enable the bouncycastle Jetty module: $ java -jar $JETTY_HOME/start.jar --add-modules=bouncycastle Server Name Indication (SNI) is a TLS extension that clients send to indicate what domain they want to connect to during the initial TLS handshake. Modern TLS clients (e.g. browsers) always send the SNI extension; however, older TLS clients may not send the SNI extension. Being able to handle the SNI is important when you have virtual hosts and a KeyStore with multiple certificates, one for each domain. For example, you may have deployed over a secure connector two web applications, both at context path /, one at virtual host one.com and one at virtual host two.net. The KeyStore contains two certificates, one for one.com and one for two.net. There are three ssl module properties that control the SNI behavior on the server: one that works at the TLS level, and two that works at the HTTP level. The property that works at the TLS level is: jetty.sslContext.sniRequired Whether SNI is required at the TLS level, defaults to false. Its behavior is explained by the following table: Table 1. Behavior of the jetty.sslContext.sniRequired property sniRequired=false sniRequired=true SNI = null client receives default certificate client receives TLS failure SNI = wrong.org client receives default certificate client receives TLS failure SNI = one.com client receives one.com certificate client receives one.com certificate The default certificate is the certificate returned by the TLS implementation in case there is no SNI match, and you should not rely on this certificate to be the same across Java vendors and versions, or Jetty versions, or TLS provider vendors and versions. In the example above it could be either the one.com certificate or the two.net certificate. When jetty.sslContext.sniRequired=true, clients that donât send a valid SNI receive a TLS failure, and their attempt to connect to the server fails. The details of this failure may not be reported and could be difficult to figure out that the failure is related to an invali
1d SNI. For this reason, other two properties are defined at the HTTP level, so that clients can received an HTTP 400 response with more details about what went wrong while trying to connect to the server: jetty.ssl.sniRequired Whether SNI is required at the HTTP level, defaults to false. Its behavior is similar to the jetty.sslContext.sniRequired property above, and is explained by the following table: Table 2. Behavior of the jetty.ssl.sniRequired property sniRequired=false sniRequired=true SNI = null Accept Reject: 400 Bad Request SNI = wrong.org Accept Reject: 400 Bad Request SNI = one.com Accept Accept When jetty.ssl.sniRequired=true, the SNI is matched against the certificate sent to the client, and only if there is a match the request is accepted. When the request is accepted, there could be an additional check controlled by the following property: jetty.ssl.sniHostCheck Whether the certificate sent to the client matches the Host header, defaults to true. Its behavior is explained by the following table: Table 3. Behavior of the jetty.ssl.sniHostCheck property sniHostCheck=false sniHostCheck=true certificate = one.com Host: wrong.org Accept Reject: 400 Bad Request certificate = one.com Host: one.com Accept Accept In the normal case with the default server configuration, for a TLS clients that sends SNI, and then sends an HTTP request with the correct Host header, Jetty will pick the correct certificate from the KeyStore based on the SNI received from the client, and accept the request. Accepting the request does not mean that the request is responded with an HTTP 200 OK, but just that the request passed successfully the SNI checks and will be processed by the server. If the request URI is for a resource that does not exist, the response will likely be a 404 Not Found. You may modify the default values of the SNI properties if you want stricter control over old/broken TLS clients or bad HTTP requests. You may need to configure one or more Jetty instances behind an intermediary, typically a load balancer such as HAProxy, or a reverse proxy such as Apache HTTP Server or Nginx. HAProxy can communicate either HTTP/1.1 or HTTP/2 to backend servers such as Jetty. Apache HTTP Server and Nginx can only speak HTTP/1.1 to backend servers such as Jetty, and have no plans to support HTTP/2 towards backend servers. In these setups, typically the proxy performs TLS offloading, and the communication with backend servers happens in clear-text. It is possible, however, to configure the proxy so that all the bytes arriving from the client are tunnelled opaquely to the backend Jetty server (that therefore needs to perform the TLS offloading) and vice versa the bytes arriving from the Jetty server are tunnelled opaquely to the client. Also in these setups, the TCP/IP connection terminating on the Jetty servers does not originate from the client, but from the proxy, so that the remote IP address and port number may be reported incorrectly in backend server logs, or worse applications may not work because they need to be able to differentiate different clients based on the client IP address. For this reason, intermediaries typically implement at least one of several de facto standards to communicate information about the original client connection to the backend Jetty server. Jetty supports two methods to process client information sent by intermediaries: The Forwarded HTTP header, defined in RFC 7239 and replacing the old X-Forwarded-* headers, defined in this section. The Proxy Protocol, defined in this section. In both methods, web applications asking for the remote client IP address will receive the remote client IP address as specified by the client information sent by the intermediary, not the physical IP address of TCP connection with the intermediary. Likewise, web applications asking for the remote client IP port will receive the remote client IP port as specified by the client information sent by the intermediary. Finally, web applications asking whether the remote request was secure will receive whether the remote client made a secure request using the https scheme as specified by the client information sent by the intermediary. The Forwarded HTTP header is added by the intermediary with information about the client and the client request, for example: GET / HTTP/1.1 Host: domain.com Forwarded: for=2.36.72.144:21216;proto=https In the example above, the intermediary added the Forwarded header specifying that the client remote address is 2.36.72.144:21216 and that the request was made with the https scheme. Letâs assume you have already configured Jetty with the HTTP/1.1 protocol with the following command (issued from within the $JETTY_BASE directory): $ java -jar $JETTY_HOME/start.jar --add-modules=http Support for the Forwarded HTTP header (and its predecessor X-Forwarded-* headers) is enabled with the forwarded Jetty module: $ java -jar $JETTY_HOME/start.jar --add-modules=forwarded [Running Jetty] :{args=--add-modules=forwarded, jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=http} INFO : forwarded initialized in ${jetty.base}/start.d/forwarded.ini INFO : Base directory was modified With the forwarded Jetty module enabled, Jetty interprets the Forwarded header and makes its information available to web applications. For further information about configuring the forwarded Jetty module, see this section. The Proxy Protocol is the de facto standard, introduced by HAProxy, to communicate client information to backend servers via the TCP connection, rather than via HTTP headers. The information about the client connection is sent as a small data frame on each newly established connection. This mechanism is therefore independent of any protocol, so it can be used for TLS, HTTP/1.1, HTTP/2, etc. There are 2 versions of the proxy protocol: v1 and v2, both supported by Jetty. Proxy protocol v1 is human readable, but it only carries information about the client TCP connection (IP address and IP port). Proxy protocol v2 has a binary format, carries the information about the client TCP connection, and can carry additional arbitrary information encoded in pairs (type, value) where type is a single byte that indicates the valueâs meaning, and value is a variable length byte array that can encode user-defined data. Support for the proxy protocol can be enabled for the clear-text connector or for the secure connector (or both). Letâs assume you have already configured Jetty with the HTTP/1.1 clear-text protocol with the following command (issued from within the $JETTY_BASE directory): $ java -jar $JETTY_HOME/start.jar --add-modules=http To enable proxy protocol support for the clear-text connector, enable the proxy-protocol Jetty module: $ java -jar $JETTY_HOME/start.jar --add-modules=proxy-protocol [Running Jetty] :{args=--add-modules=proxy-protocol, jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=http} INFO : proxy-protocol initialized in ${jetty.base}/start.d/proxy-protocol.ini INFO : Base directory was modified Starting Jetty yields: $ java -jar $JETTY_HOME/start.jar [Running Jetty] :{args=--module=proxy-protocol, highlight=(\\{.*:8080}), jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined} 2026-09-23 22:24:58.468:INFO :oejs.Server:main: jetty-12.1.13; built: 2026-09-07T09:11:01.281Z; git: e99386749a0a4888cd9b555ffc96a476fd48d94e; jvm 21.0.8+9-LTS 2026-09-23 22:24:58.494:INFO :oejs.AbstractConnector:main: Started oejs.ServerConnector@2f46bb3d{[proxy], ([proxy], http/1.1)}{0.0.0.0:8080} 2026-09-23 22:24:58.498:INFO :oejs.Server:main: Started oejs.Server@7a35b0f5{STARTING}[12.1.13,sto=0] @36ms Note how in the example above the list of protocols for the clear-text connector is first proxy and then http/1.1. For every new TCP connection, Jetty first interprets the proxy protocol bytes with the client information; after this initial proxy protocol processing, Jetty interprets the incoming bytes as HTTP/1.1 bytes. Enabling proxy protocol support for the secure connector is similar. Letâs assume you have already configured Jetty with the HTTP/1.1 secure protocol and the test KeyStore with the following command (issued from within the $JETTY_BASE directory): $ java -jar $JETTY_HOME/start.jar --add-modules=https,test-keystore Enable the proxy-protocol-ssl Jetty module with the following command (issued from within the $JETTY_BASE directory): $ java -jar $JETTY_HOME/start.jar --add-modules=proxy-protocol-ssl [Running Jetty] :{args=--add-modules=proxy-protocol-ssl, jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=https} INFO : proxy-protocol-ssl initialized in ${jetty.base}/start.d/proxy-protocol-ssl.ini INFO : Base directory was modified Starting Jetty yields: $ java -jar $JETTY_HOME/start.jar [Running Jetty] :{highlight=(\\{.*:8443}), jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=https,test-keystore,proxy-protocol-ssl} 2026-09-23 22:25:02.054:WARN :oejk.KeystoreGenerator:main: Generating Test Keystore: DO NOT USE IN PRODUCTION! 2026-09-23 22:25:02.761:INFO :oejs.Server:main: jetty-12.1.13; built: 2026-09-07T09:11:01.281Z; git: e99386749a0a4888cd9b555ffc96a476fd48d94e; jvm 21.0.8+9-LTS 2026-09-23 22:25:02.815:INFO :oejus.SslContextFactory:main: x509=oejus.X509@e24ddd0(jetty-test-keystore,h=[localhost],a=[],w=[]) for oejus.SslContextFactory$Server@6f70f32f[provider=null,keyStore=file:///path/to/jetty.home-base/etc/test-keystore.p12,trustStore=null] 2026-09-23 22:25:02.873:WARN :oejusS.config:main: Weak cipher suite TLS_RSA_WITH_AES_256_GCM_SHA384 enabled for oejus.SslContextFactory$Server@6f70f32f[provider=null,keyStore=file:///path/to/jetty.home-base/etc/test-keystore.p12,trustStore=null] 2026-09-23 22:25:02.873:WARN :oejusS.config:main: Weak cipher suite TLS_RSA_WITH_AES_128_GCM_SHA256 enabled for oejus.SslContextFactory$Server@6f70f32f[provider=null,keyStore=file:///path/to/jetty.home-base/etc/test-keystore.p12,trustStore=null] 2026-09-23 22:25:02.873:WARN :oejusS.config:main: Weak cipher suite TLS_RSA_WITH_AES_256_CBC_SHA256 enabled for oejus.SslContextFactory$Server@6f70f32f[provider=null,keyStore=file:///path/to/jetty.home-base/etc/test-keystore.p12,trustStore=null] 2026-09-23 22:25:02.873:WARN :oejusS.config:main: Weak cipher suite TLS_RSA_WITH_AES_128_CBC_SHA256 enabled for oejus.SslContextFactory$Server@6f70f32f[provider=null,keyStore=file:///path/to/jetty.home-base/etc/test-keystore.p12,trustStore=null] 2026-09-23 22:25:02.892:INFO :oejs.AbstractConnector:main: Started oejs.ServerConnector@4830a33d{[proxy], ([proxy], ssl, http/1.1)}{0.0.0.0:8443}
1 2026-09-23 22:25:02.894:INFO :oejs.Server:main: Started oejs.Server@3228d990{STARTING}[12.1.13,sto=0] @138ms Note how in the example above the list of protocols for the secure connector is first proxy, then ssl and then http/1.1. HAProxy is an open source solution that offers load balancing and proxying for TCP and HTTP based application, and can be used as a replacement for Apache or Nginx when these are used as reverse proxies. The deployment proposed here has HAProxy playing the role that Apache and Nginx usually do: to perform the TLS offloading (that is, decrypt incoming bytes and encrypt outgoing bytes) and then forwarding the now clear-text traffic to a backend Jetty server, speaking either HTTP/1.1 or HTTP/2. Since HAProxyâs TLS offloading is based on OpenSSL, it is much more efficient than the Java implementation shipped with OpenJDK. After you have installed HAProxy on your system, you want to configure it so that it can perform TLS offloading. HAProxy will need a single file containing the X509 certificates and the private key, all in PEM format, with the following order: The site certificate; this certificateâs Common Name refers to the site domain (for example: CN=*.webtide.com) and is signed by Certificate Authority #1. The Certificate Authority #1 certificate; this certificate may be signed by Certificate Authority #2. The Certificate Authority #2 certificate; this certificate may be signed by Certificate Authority #3; and so on until the Root Certificate Authority. The Root Certificate Authority certificate. The private key corresponding to the site certificate. Refer to the section about KeyStores for more information about generating the required certificates and private key. Now you can create the HAProxy configuration file (in Linux itâs typically /etc/haproxy/haproxy.cfg). This is a minimal configuration: haproxy.cfg global tune.ssl.default-dh-param 1024 defaults timeout connect 10000ms timeout client 60000ms timeout server 60000ms frontend fe_http (1) mode http bind *:80 # Redirect to https redirect scheme https code 301 frontend fe_https (2) mode tcp bind *:443 ssl no-sslv3 crt /path/to/domain.pem ciphers TLSv1.2 alpn h2,http/1.1 default_backend be_http backend be_http (3) mode tcp server domain 127.0.0.1:8282 send-proxy-v2 1 The fe_http front-end accepts connections on port 80 and redirects them to use the https scheme. 2 The fe_https front-end accepts connections on port 443, and it is where the TLS decryption/encryption happens. You must specify the path to the PEM file containing the TLS key material (the crt /path/to/domain.pem part), the ciphers that are suitable for HTTP/2 (ciphers TLSv1.2), and the ALPN protocols supported (alpn h2,http/1.1). This front-end then forwards the now decrypted bytes to the backend in mode tcp. The mode tcp says that HAProxy will not try to interpret the bytes but instead opaquely forwards them to the backend. 3 The be_http backend will forward (again in mode tcp) the clear-text bytes to a Jetty connector that talks clear-text HTTP/2 and HTTP/1.1 on port 8282. The send-proxy-v2 directive sends the proxy protocol v2 bytes to the backend server. On the Jetty side, you need to enable the following modules: $ java -jar $JETTY_HOME/start.jar --add-modules=proxy-protocol,http2c,http,deploy You need to specify the host (127.0.0.1) and port (8282) you have configured in HAProxy when you start Jetty: $ java -jar $JETTY_HOME/start.jar jetty.http.host=127.0.0.1 jetty.http.port=8282 You want the Jetty connector that listens on port 8282 to be available only to HAProxy, and not to remote clients. For this reason, you want to specify the jetty.http.host property on the command line (or in $JETTY_BASE/start.d/http.ini to make this setting persistent) to bind the Jetty connector only on the loopback interface (127.0.0.1), making it available to HAProxy but not to remote clients. If your Jetty instance runs on a different machine and/or on a different (sub)network, you may want to adjust both the back-end section of the HAProxy configuration file and the jetty.http.host property to match accordingly. With this configuration for HAProxy and Jetty, browsers supporting HTTP/2 will connect to HAProxy, which will decrypt the traffic and send it to Jetty. Likewise, HTTP/1.1 clients will connect to HAProxy, which will decrypt the traffic and send it to Jetty. The Jetty connector, configured with the http2c and the http modules is able to distinguish whether the incoming bytes are HTTP/2 or HTTP/1.1 and will handle the request accordingly. The response is relayed back to HAProxy, which will encrypt it and send it back to the remote client. This configuration offers you efficient TLS offloading, HTTP/2 support and transparent fallback to HTTP/1.1 for clients that donât support HTTP/1.1.","t
1itle":"Jetty Connectors and Protocols","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/protocols/index.html","titles":[{"text":"Clear-Text HTTP/1.1","hash":"http","id":1},{"text":"Secure HTTP/1.1","hash":"https","id":2},{"text":"Configuring HTTP/2","hash":"http2","id":3},{"text":"Secure vs Clear-Text HTTP/2","hash":"secure-vs-clear-text-http2","id":4},{"text":"Secure HTTP/2","hash":"http2s","id":5},{"text":"Clear-Text HTTP/2","hash":"http2c","id":6},{"text":"HTTP/3","hash":"http3","id":7},{"text":"WebSocket","hash":"websocket","id":8},{"text":"Configuring WebSocket","hash":"websocket-configure","id":9},{"text":"Selectively Disabling WebSocket","hash":"websocket-disable","id":10},{"text":"Using WebSocket Client in Web Applications","hash":"websocket-webapp-client","id":11},{"text":"FastCGI","hash":"fcgi","id":12},{"text":"Configuring WordPress","hash":"fcgi-configure","id":13},{"text":"Configuring Secure Protocols","hash":"ssl","id":14},{"text":"Customizing KeyStore and SSL/TLS Configuration","hash":"ssl-customize","id":15},{"text":"Customizing SSL/TLS Protocol Versions","hash":"ssl-customize-versions","id":16},{"text":"Customizing SSL/TLS Ciphers","hash":"ssl-customize-ciphers","id":17},{"text":"Renewing the Certificates","hash":"ssl-renew","id":18},{"text":"Watching and Reloading the KeyStore","hash":"ssl-reload","id":19},{"text":"Using Conscrypt as SSL/TLS Provider","hash":"ssl-conscrypt","id":20},{"text":"Using Bouncy Castle as SSL/TLS Provider","hash":"ssl-bouncycastle","id":21},{"text":"Configuring SNI","hash":"ssl-sni","id":22},{"text":"Jetty Behind a Load Balancer or Reverse Proxy","hash":"proxy","id":23},{"text":"Configuring the Forwarded Header","hash":"proxy-forwarded","id":24},{"text":"Configuring the Proxy Protocol","hash":"proxy-protocol","id":25},{"text":"HAProxy and Jetty with HTTP/1.1 and HTTP/2","hash":"proxy-haproxy","id":26}]},"36":{"id":36,"text":"JAAS implements a Java version of the standard Pluggable Authentication Module (PAM) framework. JAAS can be used for two purposes: for authentication of users, to reliably and securely determine who is currently executing Java code, regardless of whether the code is running as an application, an applet, a bean, or a servlet for authorization of users to ensure they have the access control rights (permissions) required to do the actions performed JAAS authentication is performed in a pluggable fashion. This permits applications to remain independent from underlying authentication technologies. New or updated authentication technologies can be plugged under an application without requiring modifications to the application itself. See Java Authentication and Authorization Service (JAAS) Reference Guide for more information about JAAS. The Jetty JAAS support aims to dictate as little as possible whilst providing a sufficiently flexible infrastructure to allow users to drop either one of the JAAS Login Modules that ships with Jetty, or their own custom LoginModules. Enable the jaas module. # DO NOT EDIT THIS FILE - See: https://jetty.org/docs/ [description] Enables JAAS for deployed web applications. [depend] security [before] deployment-scanner [xml] etc/jetty-jaas.xml [ini-template] ## The file location (absolute path, or relative to $JETTY_BASE) ## for the JAAS \"java.security.auth.login.config\" system property. # jetty.jaas.login.conf=etc/login.conf The configurable items in the resulting $JETTY_BASE/start.d/jaas.ini file are: jetty.jaas.login.conf This is the location of the file that will be referenced by the system property java.security.auth.login.config: Jetty sets this system property for you based on the value of this property. The value of this property is assumed to be relative to $JETTY_BASE. The default value is etc/login.conf, which resolves to $JETTY_BASE/etc/login.conf. If you donât want to put your login module configuration file here, you can change this property to point to where it is. See more about the contents of this file in the Configuring JAAS section. The <realm-name> in web.xml will be used to identify the org.eclipse.jetty.security.jaas.JAASLoginService declaration that integrates JAAS with Jetty. For example, this web.xml c
1ontains a realm called Test JAAS Realm: <login-config> <auth-method>FORM</auth-method> <realm-name>Test JAAS Realm</realm-name> (1) <form-login-config> <form-login-page>/login/login</form-login-page> <form-error-page>/login/error</form-error-page> </form-login-config> </login-config> 1 The name of the realm, which must be identical to the name of an org.eclipse.jetty.security.jaas.JAASLoginService declaration. We now need to declare an org.eclipse.jetty.security.jaas.JAASLoginService that references the realm name of Test JAAS Realm. Hereâs an example of a suitable XML snippet: <New class=\"org.eclipse.jetty.security.jaas.JAASLoginService\"> <Set name=\"Name\">Test JAAS Realm</Set> (1) <Set name=\"LoginModuleName\">xyz</Set> (2) </New> 1 The name is the same as that declared in the <realm-name> in web.xml. 2 The name that identifies a set of javax.security.auth.spi.LoginModule configurations that comprise the JAAS config file identified in the jetty.jaas.login.conf property of the jaas module. The org.eclipse.jetty.security.jaas.JAASLoginService can be declared in a couple of different places, pick whichever suits your purposes best: If you have more than one web application that you would like to use the same security infrastructure, then you can declare your org.eclipse.jetty.security.jaas.JAASLoginService as a bean that is added to the org.eclipse.jetty.server.Server. The file in which you declare this needs to be on Jettyâs execution path. The recommended procedure is to create a file in your $JETTY_BASE/etc directory and then ensure it is on the classpath either by adding it to the Jetty start command line, or more conveniently to a custom module. Hereâs an example of this type of XML file: <?xml version=\"1.0\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure id=\"Server\" class=\"org.eclipse.jetty.server.Server\"> <Call name=\"addBean\"> <Arg> <New class=\"org.eclipse.jetty.security.jaas.JAASLoginService\"> <Set name=\"name\">Test JAAS Realm</Set> <Set name=\"LoginModuleName\">xyz</Set> </New> </Arg> </Call> </Configure> Alternatively, if you want to use JAAS with a specific web application only, you declare your org.eclipse.jetty.security.jaas.JAASLoginService in a Jetty context XML file specific to that web application: <?xml version=\"1.0\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> <Set name=\"securityHandler\"> <New class=\"org.eclipse.jetty.ee11.servlet.security.ConstraintSecurityHandler\"> <Set name=\"loginService\"> <New class=\"org.eclipse.jetty.security.jaas.JAASLoginService\"> <Set name=\"name\">Test JAAS Realm</Set> <Set name=\"loginModuleName\">xyz</Set> </New> </Set> </New> </Set> </Configure> We now need to set up the contents of the file we specified as the jetty.jaas.login.conf property when we configured the jaas module. Refer to the syntax rules of this file for a full description. Remembering the example we set up previously, the contents of the $JETTY_BASE/etc/login.conf file could look as follows: xyz { (1) com.acme.SomeLoginModule required debug=true; (2) com.other.OtherLoginModule optional; (3) }; 1 The name of the configuration exactly as specified in your org.eclipse.jetty.security.jaas.JAASLoginService declaration. 2 The first LoginModule declaration, containing the classname of the LoginModule and its configuration properties. 3 A second LoginModule declaration. You can provide as many LoginModule alternatives as you like, with a minimum of one. Refer to the JAAS documentation for more information on the standard configuration properties, and how JAAS interprets this file. org.eclipse.jetty.security.jaas.spi.JDBCLoginModule org.eclipse.jetty.security.jaas.spi.PropertyFileLoginModule org.eclipse.jetty.security.jaas.spi.DataSourceLoginModule org.eclipse.jetty.security.jaas.ldap.LdapLoginModule Passwords can be obfuscated using the Jetty Password tool. The org.eclipse.jetty.security.jaas.spi.JDBCLoginModule stores user passwords and roles in a database accessed via JDBC calls. You can configure the JDBC connection information, as well as the names of the table and columns storing the username and credential, and the names of the table and columns storing the roles. Here is an example login module configuration file entry for it using an HSQLDB driver: jdbc { (1) org.eclipse.jetty.security.jaas.spi.JDBCLoginModule required (2)(3) dbUrl=\"jdbc:hsqldb:.\" (4) dbUserName=\"sa\" (5) dbDriver=\"org.hsqldb.jdbcDriver\" (6) userTable=\"myusers\" (7) userField=\"myuser\" (8) credentialField=\"mypassword\" (9) userRoleTable=\"myuserroles\" (10) userRoleUserField=\"myuser\" (11) userRoleRoleField=\"myrole\"; (12) }; 1 The name of the configuration. 2 The name of the LoginModule class. 3 A standard JAAS flag making successful authentication via this LoginModule mandatory. 4 The JDBC url used to connect to the database. 5 The name of the JDBC user to use for the connection. 6 The name of the JDBC Driver class. 7 The name of the table holding the user authenication information. 8 The name of the column holding the user name. 9 The name of the column holding the user credential. 10 The name of the table holding the user authorization information. 11 The name of the column holding the user name. 12 The name of the column holding the user role. The properties 7-12 are used to format the following queries: select <credentialField> from <userTable> where <userField>=? select <userRoleRoleField> from <userRoleTable> where <userRoleUserField>=? Credential and role information is lazily read from the database when a previously unauthenticated user requests authentication. Note that this information is only cached for the length of the authenticated session. When the user logs out or the session expires, the information is flushed from memory. Note that passwords can be stored in the database in plain text or encoded formats â see the note on \"Passwords/Credentials\" above. Similar to the org.eclipse.jetty.security.jaas.spi.JDBCLoginModule, but using a javax.sql.DataSource to connect to the database instead of a JDBC driver. The javax.sql.DataSource is obtained at runtime by performing a JNDI lookup on java:comp/env/${dnJNDIName}. A sample login module configuration for this LoginModule: ds { (1) org.eclipse.jetty.security.jaas.spi.DataSourceLoginModule required (2)(3) dbJNDIName=\"ds\" (4) userTable=\"myusers\" (5) userField=\"myuser\" (6) credentialField=\"mypassword\" (7) userRoleTable=\"myuserroles\" (8) userRoleUserField=\"myuser\" (9) userRoleRoleField=\"myrole\"; (10) }; 1 The name of the configuration. 2 The name of the LoginModule class. 3 A standard JAAS flag making successful authentication via this LoginModule mandatory. 4 The JNDI n
1ame, relative to java:comp/env/ to lookup to obtain the javax.sql.DataSource. 5 The name of the table holding the user authenication information. 6 The name of the column holding the user name. 7 The name of the column holding the user credential. 8 The name of the table holding the user authorization information. 9 The name of the column holding the user name. 10 The name of the column holding the user role. With this login module implementation, the authentication and role information is read from a property file. props { (1) org.eclipse.jetty.security.jaas.spi.PropertyFileLoginModule required (2)(3) file=\"/somewhere/somefile.props\"; (4) }; 1 The name of the configuration. 2 The name of the LoginModule class. 3 A standard JAAS flag making successful authentication via this LoginModule mandatory. 4 The location of a properties file containing the authentication and authorization information. The property file must be of the format: <username>: <password> [,<rolename> ...] Hereâs an example: fred: OBF:1xmk1w261u9r1w1c1xmq,user,admin harry: changeme,user,developer tom: MD5:164c88b302622e17050af52c89945d44,user dick: CRYPT:adpexzg3FUZAk,admin The contents of the file are fully read in and cached in memory the first time a user requests authentication. The org.eclipse.jetty.security.jaas.spi.LdapLoginModule uses LDAP to access authentication and authorization information stored in a directory. The LDAP connection information and structure of the authentication/authorization data can be configured. Hereâs an example: example { (1) org.eclipse.jetty.security.jaas.spi.LdapLoginModule required (2)(3) contextFactory=\"com.sun.jndi.ldap.LdapCtxFactory\" (4) hostname=\"ldap.example.com\" (5) port=\"389\" (6) bindDn=\"cn=Directory Manager\" (7) bindPassword=\"directory\" (8) authenticationMethod=\"simple\" (9) useLdaps=\"true\" (10) userBaseDn=\"ou=people,dc=alcatel\" (11) userRdnAttribute=\"uid\" (12) userIdAttribute=\"cn\" (13) userPasswordAttribute=\"userPassword\" (14) userObjectClass=\"inetOrgPerson\" (15) roleBaseDn=\"ou=groups,dc=example,dc=com\" (16) roleNameAttribute=\"cn\" (17) roleMemberAttribute=\"uniqueMember\" (18) roleObjectClass=\"groupOfUniqueNames\"; (19) forceBindingLogin=\"false\" (20) debug=\"false\" (21) }; 1 The name of the configuration. 2 The name of the LoginModule class. 3 A standard JAAS flag making successful authentication via this LoginModule mandatory. 4 The name of the context factory to use for the LDAP connection. 5 The hostname for the LDAP connection. Optional. 6 The port for the LDAP connection. Optional. 7 The caller security Principal. Optional. 8 The caller security credential. Optional. 9 The security level for the LDAP connection environment. Optional. 10 If true, use ldaps instead of ldap for the connection url. 11 The distinguished name of the directory to search for user information. 12 The name of the attribute for the user roles. 13 The name of the attribute for the user id. 14 The name of the attribute for the user password. 15 The ObjectClass for users. 16 The distinguished name of the directory to search for role information. 17 The name of the attribute for roles. 18 The name of the attribute storing the user for the roles ObjectClass. 19 The name of the ObjectClass for roles. 20 If true, the authentication proceeds on the basis of a successful LDAP binding using the username and credential provided by the user. If false, then authentication proceeds based on username and password information retrieved from LDAP. 21 If true, failed login attempts are logged on the server.","title":"JAAS","component":"jetty","version":"12.1","name":"jaas-support","url":"/docs/jetty/12.1/operations-guide/security/jaas-support.html","titles":[{"text":"Configuration","hash":"configuration","id":1},{"text":"The jaas module","hash":"module","id":2},{"text":"Configure the Jakarta EE web application for JAAS","hash":"webapp","id":3},{"text":"Configure JAAS","hash":"loginconf","id":4},{"text":"Provided LoginModules","hash":"loginmodules","id":5},{"text":"JDBCLoginModule","hash":"jdbcloginmodule","id":6},{"text":"DataSourceLoginModule","hash":"datasourceloginmodule","id":7},{"text":"PropertyFileLoginModule","hash":"propertyfileloginmodule","id":8}
1,{"text":"LdapLoginModule","hash":"ldaploginmodule","id":9}]},"37":{"id":37,"text":"Forms can be a vector for denial-of-service attacks, like explained in this section of the Programming Guide. To configure the form limits for a Jakarta EE web application, the WebAppContext instance can be configured from a Jetty context XML file or from a WEB-INF/jetty-ee{8,9,10,11}-web.xml file: <Configure class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> ... <Set name=\"maxFormContentSize\">200000</Set> <Set name=\"maxFormKeys\">200</Set> </Configure> Setting the form limits can also be done, for both Jakarta EE web applications and Jetty Core web applications, by setting the following Context attributes. org.eclipse.jetty.server.Request.maxFormKeys org.eclipse.jetty.server.Request.maxFormContentSize For Jakarta EE web applications, these attributes can be set in web.xml via the <context-param> element. For Jakarta EE and Jetty web applications, these attributes can be set in the Jetty context XML file. For Jakarta EE web applications: <Configure class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> ... <Call name=\"setAttribute\"> <Arg>org.eclipse.jetty.server.Request.maxFormKeys</Arg> <Arg>128</Arg> </Call> </Configure> For Jetty Core web applications: <Configure class=\"org.eclipse.jetty.coreapp.CoreAppContext\"> ... <Call name=\"setAttribute\"> <Arg>org.eclipse.jetty.server.Request.maxFormKeys</Arg> <Arg>128</Arg> </Call> </Configure>","title":"Limiting Form Content","component":"jetty","version":"12.1","name":"configuring-form-size","url":"/docs/jetty/12.1/operations-guide/security/configuring-form-size.html","titles":[{"text":"Configuring Form Limits for a Web Application","hash":"configuring-form-limits-for-a-web-application","id":1}]},"38":{"id":38,"text":"Enabling this module allows Jetty to utilize authentication modules that implement the Jakarta Authentication (JASPI) specification. JASPI provides an SPI (Service Provider Interface) for pluggable, portable, and standardized authentication modules. Compatible modules are portable between servers that support the JASPI specification. This module provides a bridge from Jakarta Authentication to the Jetty Security framework. Only modules conforming to the \"Servlet Container Profile\" with the ServerAuthModule interface within the JakartaAuthentication are supported. These modules must be configured before start-up. Operations for runtime registering or de-registering authentication modules are not supported. Enable the jaspi module: # DO NOT EDIT THIS FILE - See: https://jetty.org/docs/ [description] Enables JASPI authentication for deployed web applications. [environment] ee11 [tags] security [depend] ee11-security auth-config-factory [lib] lib/jetty-ee11-jaspi-${jetty.version}.jar lib/ee11-jaspi/jakarta.authentication-api-3.1.0.jar [xml] etc/jaspi/jetty-ee11-jaspi-authmoduleconfig.xml [files] basehome:etc/jaspi/jetty-ee11-jaspi-authmoduleconfig.xml|etc/jaspi/jetty-ee11-jaspi-authmoduleconfig.xml Activate either the ee9-jaspi or ee11-jaspi module, whichever matches your EE platform version. $ java -jar $JETTY_HOME/start.jar --add-modules=ee11-jaspi You can then register a AuthConfigProvider onto the static AuthConfigFactory obtained with AuthConfigFactory.getFactory(). This registration can be done in the XML configuration file which will be copied to $JETTY_BASE/etc/jaspi/jaspi-authmoduleconfig.xml when the module is enabled. The ee9-jaspi-demo and ee11-jaspi-demo modules illustrate setting up HTTP Basic Authentication using the EE9 and EE 11 Jakarta Authentication modules that come packaged with Jetty. The following example uses Jettyâs EE 11 implementation of AuthConfigProvider to register a ServerAuthModule directly. <?xml version=\"1.0\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure> <Call class=\"jakarta.security.auth.message.config.AuthConfigFactory\" name=\"getFactory\"> <Call name=\"registerConfigProvider\"> <!-- The Jetty provided implementation of AuthConfigProvider which will wrap a ServerAuthModule. --> <Arg type=\"String\">org.eclipse.jetty.ee11.security.jaspi.provider.JaspiAuthConfigProvider</Arg> <!-- A Map of initialization properties. --> <Arg> <Map> <Entry> <!-- Provide the fully qualified classname of the ServerAuthModule to be used. --> <Item>ServerAuthModule</Item> <Item>
1org.eclipse.jetty.ee11.security.jaspi.modules.BasicAuthenticationAuthModule</Item> </Entry> <Entry> <!-- Realm as utilised by Jetty Security --> <Item>org.eclipse.jetty.ee11.security.jaspi.modules.RealmName</Item> <Item>Test Realm</Item> </Entry> </Map> </Arg> <!-- Message Layer Identifier as per spec chapter 3.1 --> <Arg type=\"String\">HttpServlet</Arg> <!-- Application Context Identifier as per spec chapter 3.2 AppContextID ::= hostname blank context-path The algorithm applied here will use the _serverName on the configured JaspiAuthenticatorFactory (if set) and try to match it against the \"server\" part (in the \"server /test\" example below). Next it will try to match the ServletContext#getVirtualServerName to the \"server\" part. If neither are set, it will then try to match the first Subject's principal name, and finally fall back to the default value \"server\" if none are available. The context-path should match the context path where this applies. --> <Arg type=\"String\">server /test</Arg> <!-- A friendly description of the provided auth-module. --> <Arg type=\"String\">A simple provider using HTTP BASIC authentication.</Arg> </Call> </Call> </Configure> Other custom or 3rd party modules that are compatible with the ServerAuthModule interface in JASPI can be registered in the same way. To integrate with Jetty authentication mechanisms you must add a LoginService to your context. The LoginService provides a way for you to obtain a UserIdentity from a username and credentials. JASPI can interact with this Jetty LoginService by using the PasswordValidationCallback. The CallerPrincipalCallback and GroupPrincipalCallback do not require use of a Jetty LoginService. The principal from the CallerPrincipalCallback will be used directly with the IdentityService to produce a UserIdentity. Jetty provides an implementation of the AuthConfigFactory interface which is used to register AuthConfigProviders. This can be replaced by a custom implementation by adding a custom module which provides auth-config-factory. This custom module must reference an XML file which sets a new instance of the AuthConfigFactory with the static method AuthConfigFactory.setFactory(). For an example of this see the ee11-jaspi-default-auth-config-factory module, which provides the default implementation used by Jetty. # DO NOT EDIT THIS FILE - See: https://jetty.org/docs/ [description] Provides a DefaultAuthConfigFactory for jaspi [environment] ee11 [tags] security [depend] ee11-security [provide] auth-config-factory [xml] etc/jaspi/jetty-ee11-jaspi-default.xml","title":"JASPI","component":"jetty","version":"12.1","name":"jaspi-support","url":"/docs/jetty/12.1/operations-guide/security/jaspi-support.html","titles":[{"text":"Configuration","hash":"configuration","id":1},{"text":"The jaspi module","hash":"module","id":2},{"text":"Configure JASPI","hash":"xml","id":3},{"text":"JASPI Demo","hash":"jaspi-demo","id":4},{"text":"Integration with Jetty Authentication Mechanisms","hash":"integration-with-jetty-authentication-mechanisms","id":5},{"text":"Replacing the Jetty DefaultAuthConfigFactory","hash":"replacing-the-jetty-defaultauthconfigfactory","id":6}]},"39":{"id":39,"text":"HTTP sessions are a concept within the Servlet API which allow requests to store and retrieve information across the time a user spends in an application. Jetty offers a number of pluggable alternatives for managing and distributing/persisting sessions. Choosing the best alternative is an important consideration for every application as is the correct configuration to achieve optimum performance. Before diving into the specifics of how to plug-in and configure various alternative HTTP session management modules, letâs review some useful terminology: Session is a means of retaining information across requests for a particular user. The Servlet Specification defines the semantics of sessions. Some of the most important characteristics of sessions is that they have a unique id and that their contents cannot be shared between different contexts (although the id can be): if a session is invali
1dated in one context, then all other sessions that share the same id in other contexts will also be invalidated. Sessions can expire or they can be explicitly invalidated. SessionIdManager is responsible for allocating session ids. A Jetty server can have at most 1 SessionIdManager. HouseKeeper is responsible for periodically orchestrating the removal of expired sessions. This process is referred to as \"scavenging\". SessionHandler is responsible for managing the lifecycle of sessions. A context can have at most 1 SessionHandler. SessionCache is a L1 cache of in-use session objects. The SessionCache is used by the SessionHandler. SessionDataStore is responsible for all clustering/persistence operations on sessions. A SessionCache uses a SessionDataStore as a backing store. CachingSessionDataStore is an L2 cache of session data. A SessionCache can use a CachingSessionDataStore as its backing store. More details on these concepts can be found in the Programming Guide. SessionDataStores implementations interact with other, usually third party, systems responsible for storing and/or distributing session information. Sessions can be distributed without being persisted. They can also be persisted without being distributed. Because persisting session information to a shared store is a very common way of distributing (also known as \"clustering\") sessions, in the documentation we will often refer to just \"persisting\". There are a number of modules that offer pluggable alternatives for http session management. You can design how you want to cache and store http sessions by selecting alternative combinations of session modules. For example, Jetty ships with two alternative implementations of the SessionCache: one that caches sessions in memory: session-cache-hash one that does not actually cache: session-cache-null There are at least 6 alternative implementations of the SessionDataStore that you can use to persist/distribute your http sessions: file system storage: session-store-file relational database storage: session-store-jdbc NoSQL database storage: session-store-mongo Google Cloud datastore storage: session-store-gcloud Hazelcast: session-store-hazelcast-remote or session-store-hazelcast-embedded Infinispan: session-store-infinispan-remote or session-store-infinispan-embedded It is worth noting that if you do not configure any session modules, Jetty will still provide HTTP sessions that are cached in memory but are never persisted. The sessions module is the base module that all other session modules depend upon. As such it will be transitively enabled if you enable any of the other session modules: you need to explicitly enable it if you wish to change any settings from their defaults. Enabling the sessions module puts the $JETTY_HOME/etc/sessions/id-manager.xml file onto the execution path and generates a $JETTY_BASE/start.d/sessions.ini file. The id-manager.xml file instantiates a DefaultSessionIdManager and HouseKeeper. The former is used to generate and manage session ids whilst the latter is responsible for periodic scavenging of expired sessions. The $JETTY_BASE/start.d/sessions.ini file contains these configuration properties: jetty.sessionIdManager.workerName This uniquely identifies the jetty server instance and is applied to the SessionIdManager. You can either provide a value for this property, or you can allow Jetty to try and synthesize a workerName - the latter option is only advisable in the case of a single, non-clustered deployment. There are two ways a default workerName can be synthesized: if running on Google AppEngine, the workerName will be formed by concatenating the values of the environment variables JETTY_WORKER_INSTANCE and GAE_MODULE_INSTANCE otherwise, the workerName will be formed by concatenating the environment variable JETTY_WORKER_INSTANCE and the literal 0. So, if youâre not running on Google AppEngine, and you havenât configured one, the workerName will always be: node0. If you have more than one Jetty instance, it is crucial that you configure the workerName differently for each instance. jetty.sessionScavengeInterval.seconds This is the peri
1od in seconds between runs of the HouseKeeper, responsible for orchestrating the removal of expired sessions. By default it will run approximately every 600 secs (ie 10 mins). As a rule of thumb, you should ensure that the scavenge interval is shorter than the <session-timeout> of your sessions to ensure that they are promptly scavenged. On the other hand, if you have a backend store configured for your sessions, scavenging too frequently can increase the load on it. Donât forget that the <session-timeout> is specified in web.xml in minutes and the value of the jetty.sessionScavengeInterval.seconds is in seconds. The HouseKeeper is responsible for the periodic initiation of session scavenge cycles. The jetty.sessionScavengeInterval.seconds property in $JETTY_BASE/start.d/sessions.ini controls the periodicity of the cycle. The HouseKeeper semi-randomly adds an additional 10% to the configured sessionScavengeInterval. This is to prevent multiple nodes in a cluster that are all started at once from syncing up scavenge cycles and placing extra load on the configured persistence mechanism. A session whose expiry time has been exceeded is considered eligible for scavenging. The session might be present in a SessionCache and/or present in the session persistence/clustering mechanism. Scavenging occurs for all contexts on a server at every cycle. The HouseKeeper sequentially asks the SessionHandler in each context to find and remove expired sessions. The SessionHandler works with the SessionDataStore to evaluate candidates for expiry held in the SessionCache, and also to sweep the persistence mechanism to find expired sessions. The sweep takes two forms: once per cycle the SessionDataStore searches for sessions for its own context that have expired; infrequently, the SessionDataStore will widen the search to expired sessions in all contexts. The former finds sessions that are no longer in this contextâs SessionCache, and using some heuristics, are unlikely to be in the SessionCache of the same context on another node either. These sessions will be loaded and fully expired, meaning that HttpSessionListener.destroy() will be called for them. The latter finds sessions that have not been disposed of by scavenge cycles on any other context/node. As these will be sessions that expired a long time ago, and may not be appropriate to load by the context doing the scavenging, these are summarily deleted without HttpSessionListener.destroy() being called. A combination of these sweeps should ensure that the persistence mechanism does not fill over time with expired sessions. As aforementioned, the sweep period needs to be short enough to find expired sessions in a timely fashion, but not so often that it overloads the persistence mechanism. In this section we will look at the alternatives for the SessionCache, i.e. the L1 cache of in-use session objects. Jetty ships with 2 alternatives: an in-memory cache, and a null cache. The latter does not actually do any caching of sessions, and can be useful if you either want to minimize your support for sessions, or you are in a clustered deployment without a sticky loadbalancer. The scenarios go into more detail on this. If you wish to change any of the default configuration values you should enable the session-cache-hash module. The name \"hash\" harks back to historical Jetty session implementations, whereby sessions were kept in memory using a HashMap. The $JETTY_BASE/start.d/session-cache-hash.ini contains the following configurable properties: jetty.session.evictionPolicy Integer, default -1. This controls whether session objects that are held in memory are subject to eviction from the cache. Eviction means that the session is removed from the cache. This can reduce the memory footprint of the cache and can be useful if you have a lot of sessions. Eviction is usually used in conjunction with a SessionDataStore that persists sessions. The eviction strategies and their corresponding values are: -1 (NO EVICTION) sessions are never evicted from the cache. The only way they leave are via expiration or invalidation. 0 (EVICT AFTER USE) sessions are evicted from the cache as soon as the last active request for it finishes. The session will be passed to the SessionDataStore to be written out before eviction. >= 1 (EVICT ON INACTIVITY) any positive number is the time in seconds after which a session that is in the cache but has not experienced any activity will be evicted. Use the jetty.session.saveOnInactiveEvict property to force a session write before eviction. If you are not using one of the session store modules, ie one of the session-store-xxxxs, then sessions will be lost when the context is stopped, or the session is evicted. jetty.session.saveOnInactiveEvict Boolean, default false. This controls whether a session will be persisted to the SessionDataStore if it is being evicted due to the EVICT ON INACTIVITY policy. Usually sessions will be written to the SessionDataStore whenever the last simultaneous request exits the session. However, as SessionDataStores can be configured to skip some writes (see the documentation for the session-store-xxx module that you are using), this option is provided to ensure that the session will be written out. Be careful with this option, as in clustered scenarios it would be possible to \"re-animate\" a session that has actually been deleted by another node. jetty.session.saveOnCreate Boolean, default false. Controls whether a session that is newly created will be immediately saved to the SessionDataStore or lazily saved as the last request for the session exits. This can be useful if the request dispatches to another context and needs to re-use the same session id. jetty.session.removeUnloadableSessions Boolean, default false. Controls whether the session cache should ask a SessionDataStore to delete a session that cannot be restored - for example because it is corrupted. jetty.session.flushOnResponseCommit Boolean, default true. If true, if a session is \"dirty\" - ie it has never been saved or its attributes have changed - it will be written to the SessionDataStore as the response is about to commit. This ensures that all subsequent requests - whether to the same or different node - will see the updated session data. If false, a dirty session will only be written to the backing store when the last simultaneous request for it leaves the session. Be aware that in this case, the write can happen after the response is returned to the client. jetty.session.invalidateOnShutdown Boolean, default false. If true, when a context is shutdown, all sessions in the cache are invalidated and deleted both from the cache and from the SessionDataStore. You may need to use the session-cache-null module if your clustering setup does not have a sticky load balancer, or if you want absolutely minimal support for sessions. If you enable this module, but you donât enable a module that provides session persistence (ie one of the session-store-xxx modules), then sessions will neither be retained in memory nor persisted. The $JETTY_BASE/start.d/session-cache-null.ini contains the following configurable properties: jetty.session.saveOnCreate Boolean, default false. Controls whether a session that is newly created will be immediately saved to the SessionDataStore or lazily saved as the last request for the session exits. This can be useful if the request dispatches to another context and needs to re-use the same session id. jetty.session.removeUnloadableSessions Boolean, default false. Controls whether the session cache should ask a SessionDataStore to delete a session that cannot be restored - for example because it is corrupted. jetty.session.flushOnResponseCommit Boolean, default false. If true, if a session is \"dirty\" - ie its attributes have changed - it will be written to the backing store as the response is about to commit. This ensures that all subsequent requests whether to the same or different node will see the updated session data. If false, a dirty session will only be written to the backing store when the last simultaneous request for it leaves the session. The session-store-file Jetty module supports persistent storage of session data in a filesystem. Persisting sessions to the local file system should never be used in a clustered environment. Enabling this module creates the $JETTY_BASE/sessions directory. By default session data will be saved to this directory, one file representing each session. File names follow this pattern: [expiry]_[contextpath]_[virtualhost]_[id] expiry This is the expiry time in milliseconds since the epoch. contextpath This is the context path with any special characters, including /, replaced by the underscore character. For example, a context path of /catalog would become _catalog. A context path of simply / becomes just _. virtualhost This is the first virtual host associated with the context and has the form of 4 digits separated by . characters: [digit].[digit].[digit].[digit]. If there are no virtual hosts associated with a context, then 0.0.0.0 is used. id This is the unique id of the session. Putting all of the above together as an example, a session with an id of node0ek3vx7x2y1e7pmi3z00uqj1k0 for the context with path /test with no virtual hosts and an expiry of 1599558193150 would have a file name of: 1599558193150__test_0.0.0.0_node0ek3vx7x2y1e7pmi3z00uqj1k0 The $JETTY_BASE/start.d/sessions.ini file contains the following properties which may be modified to customise filesystem session storage: jetty.session.storeDir The default is $JETTY_BASE/sessions. This is a path that defines the location for storage of session files. jetty.session.file.deleteUnrestorableFiles Boolean, default false. If set to true, unreadable files will be deleted. This is useful to prevent repeated logging of the same error when the scavenger periodically (re-)attempts to load the corrupted information for a session in order to expire it. jetty.session.gracePeriod.seconds Integer, default 3600. Used during session scavenging. Multiples of this period are used to define how long ago a stored session must have expired before it should be scavenged. jetty.session.savePeriod.seconds Integer, in seconds, default is 0. Whenever a session is accessed by a request, its lastAccessTime and expiry are updated. Even if your sessions are read-mostly, the lastAccessTime and expiry will always change. For heavily-used, read-mostly sessions you can save some time by skipping some writes for sessions for which only these fields have changed (ie no session attributes changed). The value of this property is used to skip writes for these kinds of sessions: the session will only be written out if the time since the last write exceeds the value of this property. You should be careful in the use of this property in clustered environments: if you set too large a value for this property, the session may not be written out sufficiently often to update its expiry time thus making it appear to other nodes that it has expired. Thorough consideration of the maxIdleTime of the session when setting the savePeriod is imperative - it would be undesirable to set a savePeriod that is larger than the maxIdleTime. Enabling the session-store-jdbc module configures Jetty to persist session data in a relational database. After enabling the module, the $JETTY_BASE/start.d/session-store-jdbc.ini file contains the following customizable properties: jetty.session.gracePeriod.seconds Integer, default 3600. Used during session scavenging. Multiples of this period are used to define how long ago a stored session must have expired before it should be scavenged. jetty.session.savePeriod.seconds Integer, in seconds, default is 0. Whenever a session is accessed by a request, its lastAccessTime and expiry are updated. Even if your sessions are read-mostly, the lastAccessTime and expiry will always change. For heavily-used, read-mostly sessions you can save some time by skipping some writes for sessions for which only these fields have changed (ie no session attributes changed). The value of this property is used to skip writes for these kinds of sessions: the session will only be written out if the time since the last write exceeds the value of this property. You should be careful in the use of this property in clustered environments: if you set too large a value for this property, the session may not be written out sufficiently often to update its expiry time thus making it appear to other nodes that it has expired. Thorough consideration of the maxIdleTime of the session when setting the savePeriod is imperative - it would be undesirable to set a savePeriod that is larger than the maxIdleTime. db-connection-type Default datasource. Set to either datasource or driver depending on the type of connection being used. Depending which you select, there are additional properties available: datasource jetty.session.jdbc.datasourceName Name of the remote datasource. driver jetty.session.jdbc.driverClass Name of the JDBC driver that c
1ontrols access to the remote database, such as com.mysql.jdbc.Driver jetty.session.jdbc.driverUrl URL of the database which includes the driver type, host name and port, service name and any specific attributes unique to the database, such as a username. As an example, here is a mysql connection with the username appended: jdbc:mysql://127.0.0.1:3306/sessions?user=sessionsadmin. jetty.session.jdbc.blobType Optional. Default blob or bytea for Postgres. This is the keyword used by the particular database to identify the blob data type. If netiher default is suitable you can set this value explicitly. jetty.session.jdbc.longType Optional. Default bigint or number(20) for Oracle. This is the keyword used by the particular database to identify the long integer data type. Set this explicitly if neither of the default values is appropriate. jetty.session.jdbc.stringType Optional. Default varchar. This is the keyword used by the particular database to identify character type. If the default is not suitable, you can set this value explicitly. jetty.session.jdbc.schema.schemaName jetty.session.jdbc.schema.catalogName Optional. The exact meaning of these two properties is dependent on your database vendor, but can broadly be described as further scoping for the session table name. See https://en.wikipedia.org/wiki/Database_schema and https://en.wikipedia.org/wiki/Database_catalog. These extra scoping names can come into play at startup time when Jetty determines if the session table already exists, or otherwise creates it on-the-fly. If you have employed either of these concepts when you pre-created the session table, or you want to ensure that Jetty uses them when it auto-creates the session table, then you have two options: either set them explicitly, or let Jetty infer them from a database connection (obtained using either a Datasource or Driver according to the db-connection-type you have configured). To set them explicitly, uncomment and supply appropriate values for the jetty.session.jdbc.schema.schemaName and/or jetty.session.jdbc.schema.catalogName properties. Alternatively, to allow Jetty to infer them from a database connection, use the special string INFERRED instead. If you leave them blank or commented out, then the sessions table will not be scoped by schema or catalog name. jetty.session.jdbc.schema.table Default JettySessions. This is the name of the table in which session data is stored. jetty.session.jdbc.schema.accessTimeColumn Default accessTime. This is the name of the column that stores the time - in ms since the epoch - at which a session was last accessed jetty.session.jdbc.schema.contextPathColumn Default contextPath. This is the name of the column that stores the contextPath of a session. jetty.session.jdbc.schema.cookieTimeColumn Default cookieTime. This is the name of the column that stores the time - in ms since the epoch - that the cookie was last set for a session. jetty.session.jdbc.schema.createTimeColumn Default createTime. This is the name of the column that stores the time - in ms since the epoch - at which a session was created. jetty.session.jdbc.schema.expiryTimeColumn Default expiryTime. This is name of the column that stores - in ms since the epoch - the time at which a session will expire. jetty.session.jdbc.schema.lastAccessTimeColumn Default lastAccessTime. This is the name of the column that stores the time - in ms since the epoch - that a session was previously accessed. jetty.session.jdbc.schema.lastSavedTimeColumn Default lastSavedTime. This is the name of the column that stores the time - in ms since the epoch - at which a session was last written. jetty.session.jdbc.schema.idColumn Default sessionId. This is the name of the column that stores the id of a session. jetty.session.jdbc.schema.lastNodeColumn Default lastNode. This is the name of the column that stores the workerName of the last node to write a session. jetty.session.jdbc.schema.virtualHostColumn Default virtualHost. This is the name of the column that stores the first virtual host of the context of a session. jetty.session.jdbc.schema.maxIntervalColumn Default maxInterval. This is the name of the column that stores the interval - in ms - during which a session can be idle before being considered expired. jetty.session.jdbc.schema.mapColumn Default map. This is the name of the column that stores the serialized attributes of a session. Enabling the session-store-mongo module configures Jetty to store session data in MongoDB. Because MongoDB is not a technology provided by the Eclipse Foundation, you will be prompted to assent to the licenses of the external vendor (Apache in this case) during the install. Jars needed by MongoDB are downloaded and stored into a directory named $JETTY_BASE/lib/nosql/. If you want to use updated versions of the jar files automatically downloaded by Jetty, you can place them in the associated $JETTY_BASE/lib/ directory and use the --skip-create-files=<module name> command line option to prevent errors when starting your server. The $JETTY_BASE/start.d/session-store-mongo.ini file contains these configurable properties: jetty.session.mongo.dbName Default is \"HttpSessions\". This is the name of the database in MongoDB used to store the session collection. jetty.session.mongo.collectionName Default is \"jettySessions\". This is the name of the collection in MongoDB used to store all of the sessions. The connection type- You can connect to MongoDB either using a host/port combination, or a URI. By default, the host/port method is selected, but you can change this by commenting out the unwanted method, and uncommenting the other one. connection-type=address Used when utilizing a direct connection to the MongoDB server. jetty.session.mongo.host Host name or address for the remote MongoDB instance. jetty.session.mongo.port Port number for the remote MongoDB instance. connection-type=uri Used when utilizing MongoURI for secured connections. jetty.session.mongo.connectionString The string defining the MongoURI value, such as mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:port
1N]]][/[database][?options]]. More information on how to format the MongoURI string can be found in the official documentation for mongo. You will only use one connection-type at a time, either address or uri. If both are utilized in your session-store-mongo.ini, only the last connection-type configured in the file will be used. jetty.session.gracePeriod.seconds Integer, in seconds. Default 3600. Used during session scavenging. Multiples of this period are used to define how long ago a stored session must have expired before it should be scavenged. jetty.session.savePeriod.seconds Integer, in seconds, default is 0. Whenever a session is accessed by a request, its lastAccessTime and expiry are updated. Even if your sessions are read-mostly, the lastAccessTime and expiry will always change. For heavily-used, read-mostly sessions you can save some time by skipping some writes for sessions for which only these fields have changed (ie no session attributes changed). The value of this property is used to skip writes for these kinds of sessions: the session will only be written out if the time since the last write exceeds the value of this property. You should be careful in the use of this property in clustered environments: if you set too large a value for this property, the session may not be written out sufficiently often to update its expiry time thus making it appear to other nodes that it has expired. Thorough consideration of the maxIdleTime of the session when setting the savePeriod is imperative - it would be undesirable to set a savePeriod that is larger than the maxIdleTime. In order to persist/cluster sessions using Infinispan, Jetty needs to know how to contact Infinispan. There are two options: a remote Infinispan instance, or an in-process Infinispan instance. The former is referred to as \"remote\" Infinispan and the latter as \"embedded\" Infinispan. If you wish Jetty to be able to scavenge expired sessions, you will also need to enable the appropriate infinispan-[remote|embedded]-query module. The session-store-infinispan-remote module configures Jetty to talk to an external Infinispan instance to store session data. Because Infinispan is not a technology provided by the Eclipse Foundation, you will be prompted to assent to the licenses of the external vendor (Apache in this case). Infinispan-specific jar files are download to the directory named $JETTY_BASE/lib/infinispan/. In addition to adding these modules to the classpath of the server it also added several ini configuration files to the $JETTY_BASE/start.d directory. If you have updated versions of the jar files automatically downloaded by Jetty, you can place them in the associated $JETTY_BASE/lib/ directory and use the --skip-create-files=<module name> command line option to prevent errors when starting your server. The $JETTY_BASE/start.d/session-store-infinispan-remote.ini contains the following configurable properties: jetty.session.infinispan.remoteCacheName Default \"sessions\". This is the name of the cache in Infinispan where sessions will be stored. jetty.session.infinispan.idleTimeout.seconds Integer, in seconds, default 0. This is the amount of time, in seconds, that a session entry in Infinispan can be idle (ie neither read nor written) before Infinispan will delete its entry. Usually, you do not want to set a value for this, as you want Jetty to manage all session expiration (and call any HttpSessionListeners). You should enable the infinispan-remote-query to allow jetty to scavenge for expired sessions. If you do not, then there is the possibility that sessions can be left in Infinispan but no longer referenced by any Jetty node (so called \"zombie\" or \"orphan\" sessions), in which case you can use this feature to ensure their removal. You should make sure that the number of seconds you specify is larger than the configured maxIdleTime for sessions. jetty.session.gracePeriod.seconds Integer, default 3600. Used during session scavenging. Multiples of this period are used to define how long ago a stored session must have expired before it should be scavenged. jetty.session.savePeriod.seconds Integer, in seconds, default is 0. Whenever a session is accessed by a request, its lastAccessTime and expiry are updated. Even if your sessions are read-mostly, the lastAccessTime and expiry will always change. For heavily-used, read-mostly sessions you can save some time by skipping some writes for sessions for which only these fields have changed (ie no session attributes changed). The value of this property is used to skip writes for these kinds of sessions: the session will only be written out if the time since the last write exceeds the value of this property. You should be careful in the use of this property in clustered environments: if you set too large a value for this property, the session may not be written out sufficiently often to update its expiry time thus making it appear to other nodes that it has expired. Thorough consideration of the maxIdleTime of the session when setting the savePeriod is imperative - it would be undesirable to set a savePeriod that is larger than the maxIdleTime. The infinispan-remote-query module allows Jetty to scavenge expired sessions. Note that this is an additional module, to be used in conjunction with the session-store-infinispan-remote module. There are no configuration properties associated with this module. Enabling the session-store-infinispan-embedded module runs an in-process instance of Infinispan. Because Infinispan is not a technology provided by the Eclipse Foundation, you will be prompted to assent to the licenses of the external vendor (Apache in this case). Infinispan-specific jar files will be downloaded and saved to a directory named $JETTY_BASE/lib/infinispan/. If you have updated versions of the jar files automatically downloaded by Jetty, you can place them in the associated $JETTY_BASE/lib/ directory and use the --skip-create-files=<module name> command line option to prevent errors when starting your server. The $JETTY_BASE/start.d/session-store-infinispan-embedded.ini contains the following configurable properties: jetty.session.infinispan.idleTimeout.seconds Integer, in seconds, default 0. This is the amount of time, in seconds, that a session entry in Infinispan can be idle (ie neither read nor written) before Infinispan will delete its entry. Usually, you do not want to set a value for this, as you want Jetty to manage all session expiration (and call any HttpSessionListeners). You should enable the infinispan-embedded-query to allow Jetty to scavenge for expired sessions. If you do not, then there is the possibility that expired sessions can be left in Infinispan. You should make sure that the number of seconds you specify is larger than the configured maxIdleTime for sessions. jetty.session.gracePeriod.seconds Integer, default 3600. Used during session scavenging. Multiples of this period are used to define how long ago a stored session must have expired before it should be scavenged. jetty.session.savePeriod.seconds Integer, in seconds, default is 0. Whenever a session is accessed by a request, its lastAccessTime and expiry are updated. Even if your sessions are read-mostly, the lastAccessTime and expiry will always change. For heavily-used, read-mostly sessions you can save some time by skipping some writes for sessions for which only these fields have changed (ie no session attributes changed). The value of this property is used to skip writes for these kinds of sessions: the session will only be written out if the time since the last write exceeds the value of this property. Thorough consideration of the maxIdleTime of the session when setting the savePeriod is imperative - it would be undesirable to set a savePeriod that is larger than the maxIdleTime. The infinispan-embedded-query module allows Jetty to scavenge expired sessions. There are no configuration properties associated with this module. From Jetty-9.4.13 onwards, we have changed the format of the serialized session when using a remote cache (ie using hotrod). Prior to release 9.4.13 we used the default Infinispan serialization, however this was not able to store sufficient information to allow Jetty to properly deserialize session attributes in all circumstances. See issue https://github.com/jetty/jetty.project/issues/2919 for more background. We have provided a conversion program which will convert any sessions stored in Infinispan to the new format. We recommend that you backup your stored sessions before running the conversion program. How to use the converter: java -cp jakarta.servlet-api-6.0.0.jar:jetty-util-12.1.13.jar:jetty-server-12.1.13.jar:infinispan-remote-9.1.0.Final.jar:jetty-infinispan-12.1.13.jar:[other classpath] org.eclipse.jetty.session.infinispan.InfinispanSessionLegacyConverter Usage: InfinispanSessionLegacyConverter [-Dhost=127.0.0.1] [-Dverbose=true|false] [check] The classpath Must contain the servlet-api, jetty-util, jetty-server, jetty-infinispan and infinispan-remote jars. If your sessions contain attributes that use application classes, you will also need to al
1so put those classes onto the classpath. If your session has been authenticated, you may also need to include the jetty-security and jetty-http jars on the classpath. Parameters When used with no arguments the usage message is printed. When used with the cache-name parameter the conversion is performed. When used with both cache-name and check parameters, sessions are checked for whether or not they are converted. -Dhost you can optionally provide a system property with the address of your remote Infinispan server. Defaults to the localhost. -Dverbose defaults to false. If true, prints more comprehensive stacktrace information about failures. Useful to diagnose why a session is not converted. cache-name the name of the remote cache containing your sessions. This is mandatory. check the optional check command will verify sessions have been converted. Use it after doing the conversion. To perform the conversion, run the InfinispanSessionLegacyConverter with just the cache-name, and optionally the host system property. The following command will attempt to convert all sessions in the cached named my-remote-cache on the machine myhost, ensuring that application classes in the /my/custom/classes directory are on the classpath: java -cp jakarta.servlet-api-6.0.0.jar:jetty-util-12.1.13.jar:jetty-server-12.1.13.jar:infinispan-remote-9.1.0.Final.jar:jetty-infinispan-12.1.13.jar:/my/custom/classes org.eclipse.jetty.session.infinispan.InfinispanSessionLegacyConverter -Dhost=myhost my-remote-cache If the converter fails to convert a session, an error message and stacktrace will be printed and the conversion will abort. The failed session should be untouched, however it is prudent to take a backup of your cache before attempting the conversion. Hazelcast c
1an be used to cluster session information in one of two modes: either remote or embedded. Remote mode means that Hazelcast will create a client to talk to other instances, possibly on other nodes. Embedded mode means that Hazelcast will start a local instance and communicate with that. Enabling the session-store-hazelcast-remote module allows jetty to communicate with a remote Hazelcast instance to cluster session data. Because Hazelcast is not a technology provided by the Eclipse Foundation, you will be prompted to assent to the licenses of the external vendor (Apache in this case). Hazelcast-specific jar files will be downloaded and saved to a directory named $JETTY_BASE/lib/hazelcast/. If you have updated versions of the jar files automatically downloaded by Jetty, you can place them in the associated $JETTY_BASE/lib/ directory and use the --skip-create-files=<module name> command line option to prevent errors when starting your server. The start.d/session-store-hazelcast-remote.ini contains a list of all the configurable options for the Hazelcast module: jetty.session.hazelcast.mapName The default is \"jetty-distributed-session-map\". This is the name of the Map in Hazelcast where sessions will be stored. jetty.session.hazelcast.onlyClient Boolean, default true. The Hazelcast instance will be configured in client mode. jetty.session.hazelcast.configurationLocation Optional. This is the path to an external Hazelcast xml configuration file. jetty.session.hazelcast.useQueries Boolean, default false. If true, Jetty will use Hazelcast queries to find sessions to scavenge. If false sessions that are not currently in a session cache cannot be scavenged, and will need to be removed by some external process. jetty.session.hazelcast.addresses Optional. These are the addresses of remote Hazelcast instances with which to communicate. jetty.session.gracePeriod.seconds Integer, in seconds. Default 3600. Used during session scavenging. Multiples of this period are used to define how long ago a stored session must have expired before it should be scavenged. jetty.session.savePeriod.seconds Integer, in seconds, default is 0. Whenever a session is accessed by a request, its lastAccessTime and expiry are updated. Even if your sessions are read-mostly, the lastAccessTime and expiry will always change. For heavily-used, read-mostly sessions you can save some time by skipping some writes for sessions for which only these fields have changed (ie no session attributes changed). The value of this property is used to skip writes for these kinds of sessions: the session will only be written out if the time since the last write exceeds the value of this property. You should be careful in the use of this property in clustered environments: if you set too large a value for this property, the session may not be written out sufficiently often to update its expiry time thus making it appear to other nodes that it has expired. Thorough consideration of the maxIdleTime of the session when setting the savePeriod is imperative - it would be undesirable to set a savePeriod that is larger than the maxIdleTime. Be aware that if your session attributes contain classes from inside your web application (or Jetty classes) then you will need to put these classes onto the classpath of all of your Hazelcast instances. This will run an in-process instance of Hazelcast. This can be useful for example during testing. To enable this you enable the session-store-hazelcast-embedded module. Because Hazelcast is not a technology provided by the Eclipse Foundation, you will be prompted to assent to the licenses of the external vendor (Apache in this case). Hazelcast-specific jar files will be downloaded to a directory named $JETTY_BASE/lib/hazelcast/. The $JETTY_BASE/start.d/start.d/session-store-hazelcast-embedded.ini contains a list of all the configurable options for the Hazelcast module: jetty.session.hazelcast.mapName The default is \"jetty-distributed-session-map\". This is the name of the Map in Hazelcast where sessions will be stored. jetty.session.hazelcast.hazelcastInstanceName Default is \"JETTY_DISTRIBUTED_SESSION_INSTANCE\". This is the unique name of the Hazelcast instance that will be created. jetty.session.hazelcast.configurationLocation Optional. This is the path to an external Hazelcast xml configuration file. jetty.session.hazelcast.useQueries Boolean, default false'. If `true, Jetty will use Hazelcast queries to find expired sessions to scavenge. If false sessions that are not currently in a session cache cannot be scavenged, and will need to be removed by some external process. jetty.session.gracePeriod.seconds Integer, in seconds. Default 3600. Used during session scavenging. Multiples of this period are used to define how long ago a stored session must have expired before it should be scavenged. jetty.session.savePeriod.seconds Integer, in seconds, default is 0. Whenever a session is accessed by a request, its lastAccessTime and expiry are updated. Even if your sessions are read-mostly, the lastAccessTime and expiry will always change. For heavily-used, read-mostly sessions you can save some time by skipping some writes for sessions for which only these fields have changed (ie no session attributes changed). The value of this property is used to skip writes for these kinds of sessions: the session will only be written out if the time since the last write exceeds the value of this property. You should be careful in the use of this property in clustered environments: if you set too large a value for this property, the session may not be written out sufficiently often to update its expiry time thus making it appear to other nodes that it has expired. Thorough consideration of the maxIdleTime of the session when setting the savePeriod is imperative - it would be undesirable to set a savePeriod that is larger than the maxIdleTime. If your session attributes contain classes from inside your web application (or jetty classes) then you will need to put these classes onto the classpath of all of your Hazelcast instances. In the case of embedded Hazelcast, as it is started before your web application, it will NOT have access to your web applicationâs classes - you will need to extract these classes and put them onto the jetty serverâs classpath. Jetty can store http session information into GCloud by enabling the session-store-gcloud module. You will first need to create a project and enable the Google Cloud API: https://cloud.google.com/docs/authentication#preparation. Take note of the project id that you create in this step as you need to supply it in later steps. Before running Jetty, you will need to choose one of the following methods to set up the local environment to enable remote GCloud DataStore communications. Using the GCloud SDK: Ensure you have the GCloud SDK installed: https://cloud.google.com/sdk/?hl=en Use the GCloud tool to set up the project you created in the preparation step: gcloud config set project PROJECT_ID Use the GCloud tool to authenticate a Google account associated with the project created in the preparation step: gcloud auth login ACCOUNT Using environment variables Define the environment variable GCLOUD_PROJECT with the project id you created in the preparation step. Generate a JSON service account key and then define the environment variable GOOGLE_APPLICATION_CREDENTIALS=/path/to/my/key.json The Google deployment tools will automatically configure the project and authentication information for you. Using some special, composite indexes can speed up session search operations, although it may make write operations slower. By default, indexes will not be used. In order to use them, you will need to manually upload a file that defines the indexes. This file is named index.yaml and
1you can find it in your distribution in $JETTY_BASE/etc/sessions/gcloud/index.yaml. Follow the instructions here to upload the pre-generated index.yaml file. To enable communication using the GCloud Emulator: Ensure you have the GCloud SDK installed: https://cloud.google.com/sdk/?hl=en Follow the instructions here on how to start the GCloud datastore emulator, and how to propagate the environment variables that it creates to the terminal in which you run Jetty. The session-store-gcloud module provides GCloud support for storing session data. Because the Google Cloud DataStore is not a technology provided by the Eclipse Foundation, when enabling the module you will be prompted to assent to the licenses of the external vendor. As GCloud requires certain Java Commons Logging features to work correctly, Jetty routes these through SLF4J. By default, Jetty implements the SLF4J api, but you can choose a different logging implementation by following the instructions here If you want to use updated versions of the jar files automatically downloaded during the module enablement, you can place them in the associated $JETTY_BASE/lib/ directory and use the --skip-create-files=<module name> command line option to prevent errors when starting your server. The $JETTY_BASE/start.d/session-store-gcloud.ini file contains all of the configurable properties for the session-store-gcloud module: jetty.session.gcloud.maxRetries Integer. Default 5. Maximum number of retries to connect to GCloud DataStore to write a session. jetty.session.gcloud.backoffMs Integer in milliseconds. Default 1000. Number of milliseconds between successive attempts to connect to the GCloud DataStore to write a session. jetty.session.gracePeriod.seconds Integer, in seconds. Default 3600. Used during session scavenging. Multiples of this period are used to define how long ago a stored session must have expired before it should be scavenged. jetty.session.savePeriod.seconds Integer, in seconds, default is 0. Whenever a session is accessed by a request, its lastAccessTime and expiry are updated. Even if your sessions are read-mostly, the lastAccessTime and expiry will always change. For heavily-used, read-mostly sessions you can save some time by skipping some writes for sessions for which only these fields have changed (ie no session attributes changed). The value of this property is used to skip writes for these kinds of sessions: the session will only be written out if the time since the last write exceeds the value of this property. You should be careful in the use of this property in clustered environments: if you set too large a value for this property, the session may not be written out sufficiently often to update its expiry time thus making it appear to other nodes that it has expired. Thorough consideration of the maxIdleTime of the session when setting the savePeriod is imperative - it would be undesirable to set a savePeriod that is larger than the maxIdleTime. jetty.session.gcloud.namespace Optional. Sets the namespace for GCloud Datastore to use. If set, partitions the visibility of session data between web applications, which is helpful for multi-tenant deployments. More information can be found here. Configuration of the stored session object and its fields names- You should very rarely, if ever, need to change these defaults. jetty.session.gcloud.model.kind The default is \"GCloudSession\". This is the type of the object that is stored in GCloud. jetty.session.gcloud.model.id The default is \"id\". This is the session id. jetty.session.gcloud.model.contextPath The default is \"contextPath\". This is the canonicalized context path of the context to which the session belongs. jetty.session.gcloud.model.vhost The default is \"vhost\". This is the canonicalized virtual host of the context to which the session belongs. jetty.session.gcloud.model.accessed The default is \"accessed\". This is the current access time of the session. jetty.session.gcloud.model.lastAccessed The default is \"lastAccessed\". This is the last access time of the session. jetty.session.gcloud.model.createTime The default is \"createTime\". This is the time, in ms since the epoch, at which the session was created. jetty.session.gcloud.model.cookieSetTime The default is \"cookieSetTime\". This is the time at which the session cookie was last set. jetty.session.gcloud.model.lastNode The default is \"lastNode\". This is the workerName of the last node to manage the session. jetty.session.gcloud.model.expiry The default is \"expiry\". This is the time, in ms since the epoch, at which the session will expire. jetty.session.gcloud.model.maxInactive The default is \"maxInactive\". This is the session timeout in ms. jetty.session.gcloud.model.attributes The default is \"attributes\". This is a map of all the session attributes. If your chosen persistence technology is slow, it can be helpful to locally cache the session data. The CachingSessionDataStore is a special type of SessionDataStore that locally caches session data, which makes reads faster. It writes-through to your chosen type of SessionDataStore when session data changes. The MemcachedSessionDataMap uses memcached to perform caching of SessionData. To enable it with the Jetty distribution, enable the session-store-cache module, along with your chosen session-store-xxxx module. The $JETTY_BASE/start.d/session-store-cache.ini contains the following configurable properties: jetty.session.memcached.host Default value is localhost. This is the host on which the memcached server resides. jetty.session.memcached.port Default value is 11211. This is the port on which the memcached server is listening. jetty.session.memcached.expirySec Default value 0. This is the length of time in seconds that an item can remain in the memcached cache, where 0 indicates indefinitely. jetty.session.memcached.heartbeats Default value true. Whether the memcached system should generate heartbeats. The standard support for web applications in Jetty will use sessions cached in memory, but not persisted/clustered, with a scavenge for expired sessions that occurs every 10 minutes. If you wish to pare back support for sessions because you know your app doesnât use them (or use JSPs that use them), then you can do the following: enable the base sessions module and configure the scavenge interval to 0 to prevent scavenging enable the null session cache module to prevent sessions being cached in memory If you wish to do any further minimization, you should consult the Programming Guide. Preferably, your cluster will utilize a sticky load balancer. This will route requests for the same session to the same Jetty instance. In this case, the DefaultSessionCache can be used to keep in-use session objects in memory. You can fine-tune the cache by controlling how long session objects remain in memory with the eviction policy settings. If you have a large number of sessions or very large session objects, then you may want to manage your memory allocation by controlling the amount of time session objects spend in the cache. The EVICT_ON_SESSION_EXIT eviction policy will remove a session object from the cache as soon as the last simultaneous request referencing it exits. Alternatively, the EVICT_ON_INACTIVITY policy will remove a session object from the cache after a configurable amount of time has passed without a request referencing it. If your sessions are very long lived and infrequently referenced, you might use the EVICT_ON_INACTIVITY_POLICY to control the size of the cache. If your sessions are small, or relatively few or stable in number or they are read-mostly, then you might select the NEVER_EVICT policy. With this policy, session objects will remain in the cache until they either expire or are explicitly invalidated. If you have a high likelihood of simultaneous requests for the same session object, then the EVICT_ON_SESSION_EXIT policy will ensure the session object stays in the cache as long as it is needed. Without a sticky load balancer requests for the same session may arrive on any no
1de in the cluster. This means it is likely that the copy of the session object in any SessionCache is likely to be out-of-date, as the session was probably last accessed on a different node. In this case, your choices are to use either the NullSessionCache or to de-tune the DefaultSessionCache. If you use the NullSessionCache all session object caching is avoided. This means that every time a request references a session it must be read in from persistent storage. It also means that there can be no sharing of session objects for multiple requests for the same session: each will have their own independent session object. Furthermore, the outcome of session writes are indeterminate because the Servlet Specification does not mandate ACID transactions for sessions. If you use the DefaultSessionCache, there is a risk that the caches on some nodes will contain out-of-date session information as simultaneous requests for the same session are scattered over the cluster. To mitigate this somewhat you can use the EVICT_ON_SESSION_EXIT eviction policy: this will ensure that the session is removed from the cache as soon as the last simultaneous request for it exits. Again, due to the lack of session transactionality, the ordering outcome of write operations cannot be guaranteed. As the session is cached while at least one request is accessing it, it is possible for multiple simultaneous requests to share the same session object. For various reasons it might not be possible for the SessionDataStore to re-read a stored session. One scenario is that the session stores a serialized object in its attributes, and after a re-deployment there in an incompatible class change. Setting the $JETTY_BASE/start.d/session-cache-hash.ini or $JETTY_BASE/start.d/session-cache-null.ini property jetty.session.removeUnloadableSessions to true will allow the unreadable session to be removed from persistent storage. This can be useful for preventing the scavenger from continually generating errors on the same expired, but un-readable session.","title":"HTTP Session Management","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/session/index.html","titles":[{"text":"HTTP Session Overview","hash":"overview","id":1},{"text":"Terminology","hash":"terminology","id":2},{"text":"Session Modules","hash":"modules","id":3},{"text":"The Base Session Module","hash":"base","id":4},{"text":"Configuration","hash":"configuration","id":5},{"text":"Session Scavenging","hash":"base-scavenge","id":6},{"text":"Modules for HTTP Session Caching","hash":"cache","id":7},{"text":"Caching in Memory","hash":"cache-hash","id":8},{"text":"Configuration","hash":"configuration-2","id":9},{"text":"No Caching","hash":"cache-null","id":10},{"text":"Configuration","hash":"configuration-3","id":11},{"text":"Modules for Persistent HTTP Sessions: File System","hash":"filesystem","id":12},{"text":"Configuration","hash":"configuration-4","id":13},{"text":"Modules for Persistent HTTP Sessions: JDBC","hash":"jdbc","id":14},{"text":"Configuration","hash":"configuration-5","id":15},{"text":"Modules for Persistent HTTP Sessions: MongoDB","hash":"mongo","id":16},{"text":"Configuration","hash":"configuration-6","id":17},{"text":"Modules for Persistent HTTP Sessions: Infinispan","hash":"infinispan","id":18},{"text":"Remote Infinispan Session Module","hash":"infinispan-remote","id":19},{"text":"Configuration","hash":"configuration-7","id":20},{"text":"Remote Infinispan Query Module","hash":"infinispan-remote-query","id":21},{"text":"Embedded Infinispan Session Module","hash":"infinispan-embedded","id":22},{"text":"Configuration","hash":"configuration-8","id":23},{"text":"Embedded Infinispan Query Module","hash":"infinispan-embedded-query","id":24},{"text":"Converting Session Format for Jetty-9.4.13","hash":"converting-session-format-for-jetty-9-4-13","id":25},{"text":"Modules for Persistent HTTP Sessions: Hazelcast","hash":"hazelcast","id":26},{"text":"Remote Hazelcast Clustering","hash":"hazelcast-remote","id":27},{"text":"Configuration","hash":"configuration-9","id":28},{"text":"Embedded Hazelcast Clustering","hash":"hazelcast-embedded","id":29},{"text":"Configuration","hash":"configuration-10","id":30},{"text":"Modules for Persistent HTTP Sessions: Google Cloud DataStore","hash":"gcloud","id":31},{"text":"Preparation","hash":"preparation","id":32},{"text":"Communicating with GCloudDataStore","hash":"communicating-with-gclouddatastore","id":33}
1,{"text":"When Running Jetty Outside of Google Infrastructure","hash":"when-running-jetty-outside-of-google-infrastructure","id":34},{"text":"When Running Jetty Inside of Google Infrastructure","hash":"when-running-jetty-inside-of-google-infrastructure","id":35},{"text":"Configuring Indexes for Session Data","hash":"configuring-indexes-for-session-data","id":36},{"text":"Communicating with the GCloudDataStore Emulator","hash":"communicating-with-the-gclouddatastore-emulator","id":37},{"text":"Enabling the Google Cloud DataStore Module","hash":"enabling-the-google-cloud-datastore-module","id":38},{"text":"Configuration","hash":"configuration-11","id":39},{"text":"Modules for Persistent HTTP Sessions: The L2 Session Data Cache","hash":"memcached","id":40},{"text":"MemcachedSessionDataMap","hash":"memcachedsessiondatamap","id":41},{"text":"Configuration","hash":"configuration-12","id":42},{"text":"Session Scenarios","hash":"usecases","id":43},{"text":"Minimizing Support for Sessions","hash":"minimizing-support-for-sessions","id":44},{"text":"Clustering with a Sticky Load Balancer","hash":"clustering-with-a-sticky-load-balancer","id":45},{"text":"Clustering Without a Sticky Load Balancer","hash":"clustering-without-a-sticky-load-balancer","id":46},{"text":"Handling Corrupted or Unreadable Session Data","hash":"handling-corrupted-or-unreadable-session-data","id":47}]},"40":{"id":40,"text":"A more general discussion about OpenID and its support in Jetty is available in the programming guide section. To enable OpenID support, you need to enable the openid module: $ java -jar $JETTY_HOME/start.jar --add-modules=openid To configure OpenID Authentication with Jetty you will need to specify the OpenID Providerâs issuer identifier (a case-sensitive URL) and the OAuth 2.0 Client ID and Client Secret. If the OpenID Provider does not allow metadata discovery you will also need to specify the token endpoint and authorization endpoint of the OpenID Provider. These values can be set as properties in $JETTY_BASE/start.d/openid.ini file. Refer to the openid Jetty module for the list of configurable properties. This is an example of an openid.ini file which uses discovery of the OpenID endpoints: ## The OpenID Identity Provider's issuer ID (the entire URL *before* \".well-known/openid-configuration\") jetty.openid.provider=https://id.example.com/ ## The Client Identifier jetty.openid.clientId=test1234 ## The Client Secret jetty.openid.clientSecret=XT_Mafv_aUCGheuCaKY8P The Jakarta EE web applicationâs web.xml file needs some specific configuration to use OpenID. There must be a <login-config> element with an <auth-method> value of OPENID, and a <realm-name> value of the exact URL string used to set the OpenID Provider. To set the error page, you must set a <context-param> named org.eclipse.jetty.security.openid.error_page whose value should be a path relative to the web application where authentication errors should be redirected. For example: <?xml version=\"1.0\" encoding=\"UTF-8\"?> <web-app xmlns=\"http://xmlns.jcp.org/xml/ns/javaee\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_1.xsd\" version=\"6.1\"> ... <login-config> <auth-method>OPENID</auth-method> <realm-name>https://accounts.google.com</realm-name> </login-config> <context-param> <param-name>org.eclipse.jetty.security.openid.error_page</param-name> <param-value>/error</param-value> </context-param> ... </web-app> If security roles are required, they can be configured through a wrapped LoginService which is deferred to for role information by the OpenIdLoginService, and assigns security roles to users. You can configure the wrapped LoginService by modifying the $JETTY_BASE/etc/openid-baseloginservice.xml file. You can further configure whether to only authenticate users known to the wrapped LoginService by configuring the property jetty.openid.authenticateNewUsers in the $JETTY_BASE/start.d/openid.ini file. By default, Jetty defines one OpenID Provider that you can configure using the properties defined in the $JETTY_BASE/start.d/openid.ini file. You can support multiple OpenID Providers by creating a custom Jetty module (as described
1in this section). The custom Jetty module XML file should add an additional OpenIdConfiguration as a bean on the Server instance, for the additional OpenID Provider. If there are multiple OpenID configuration instances in the Server, then the OpenIdAuthenticationFactory will select the one with an issuer matching the <realm-name> of the <login-config> element in the web.xml of a given web application.","title":"OpenID Support","component":"jetty","version":"12.1","name":"openid-support","url":"/docs/jetty/12.1/operations-guide/security/openid-support.html","titles":[{"text":"OpenID Provider Configuration","hash":"openid-provider-configuration","id":1},{"text":"Jakarta EE Web Application Specific Configuration in web.xml","hash":"jakarta-ee-web-application-specific-configuration-in-web-xml","id":2},{"text":"Authorization with Security Roles","hash":"authorization-with-security-roles","id":3},{"text":"Supporting Multiple OpenID Providers","hash":"supporting-multiple-openid-providers","id":4}]},"41":{"id":41,"text":"Make sure you have read the Jetty architecture section if you are not familiar with the terms used in this section. The Jetty start mechanism is invoked by executing $JETTY_HOME/start.jar, from within a $JETTY_BASE directory, with zero or more command line options: $ cd $JETTY_BASE $ java -jar $JETTY_HOME/start.jar ... The Jetty start mechanism has two main modes of operation: The tool mode, detailed in this section, when it is used as a command line tool to configure the $JETTY_BASE directory by enabling modules, creating sub-directories and files, downloading files, etc. In this mode, the JVM started with java -jar $JETTY_HOME/start.jar performs the specified command and then exits. The start mode, detailed in this section, when it is used to start the JVM that runs Jetty with the specified configuration. In this mode, the JVM started with java -jar $JETTY_HOME/start.jar starts Jetty and does not exit until stopped, for example by hitting Ctrl+C on the terminal. Refer to the Jetty start mechanism reference section for the complete list of the available command line options. You want to use the Jetty start mechanism to configure your $JETTY_BASE and then to start Jetty. Within the Jetty start mechanism, the source of configurations is layered in this order, from higher priority to lower priority: The command line options. The $JETTY_BASE directory, and its files. The directory specified with the --add-config-dir option, and its files. The $JETTY_HOME directory, and its files. You can enable Jetty modules persistently across restarts with the --add-modules command: $ java -jar $JETTY_HOME/start.jar --add-modules=https,http2 The Jetty start mechanism will look for the specified modules following the order specified above. In the common case (without a --add-config-dir directory), it will look in $JETTY_BASE/modules/ first and then in $JETTY_HOME/modules/. Since the https and http2 modules are standard Jetty modules, they are present in $JETTY_HOME/modules/ and loaded from there. When you enable a Jetty module, the Jetty start mechanism: Creates the correspondent $JETTY_BASE/start.d/*.ini module configuration file. The content of these *.ini files is copied from the [ini-template] section of the correspondent *.mod file. Executes the directives specified in [files] section (if present) of the *.mod file. This may simply create a file or a directory, or download files from the Internet. Both steps are performed transitively for all module dependencies. For example, enabling the http module results in the $JETTY_BASE directory to have the following structure: $JETTY_BASE âââ resources â âââ jetty-logging.properties âââ start.d âââ bytebufferpool.ini âââ http-config.ini âââ http.ini âââ scheduler.ini âââ server.ini âââ threadpool.ini The $JETTY_BASE/resources/jetty-logging.properties is created by the [files] directives of the logging-jetty module, which is a transitive dependency of the server module. A module is enabled because the correspondent $JETTY_BASE/start.d/*.ini file contains a --module=<name> directive. Commenting out the --module=<name> directive effectively disables the module. Deleting the correspondent $JETTY_BASE/start.d/*.ini file also disables the module. You can now edit the $JETTY_BASE/start.d/*.ini configuration files, typically by uncommenting properties to change their default value. You want to edit the $JETTY_BASE/start.d/*.ini configuration files so that the configuration is applied every time Jetty is started (or re-started). For example, $JETTY_BASE/start.d/http.ini contains the following property, commented out: http.ini # jetty.http.port=8080 You can change the clear-text HTTP port Jetty listens to by uncommenting that property and changing its value: http.ini jetty.http.port=9876 When Jetty is started (or re-started) this configuration is applied and Jetty will listen for clear-text HTTP/1.1 on port 9876. You can also enable a module transiently, only for the current execution of the java -jar $JETTY_HOME/start.jar command. If you have an empty $JETTY_BASE, the following command enables the http module, but does not create any $JETTY_BASE/start.d/*.ini files. $ java -jar $JETTY_HOME/start.jar --module=http Since there are no $JETTY_BASE/start.d/*.ini files, you can only customize the properties via the command line, for example: $ java -jar $JETTY_HOME/start.jar --module=http jetty.http.port=9876 Enabling modules on the command line is useful to verify that the modules work as expected, or to try different c
1onfigurations. It is possible to enable some module persistently via --add-modules and some other module transiently via --module. Remember that once the current execution terminates, the modules enabled transiently on the command line via --module and their configuration are not saved and will not be enabled on the next execution (unless you specify them again on the command line). You can also specify module properties transiently, only for the current execution of the java -jar $JETTY_HOME/start.jar command. Properties specified on the command line override the same properties specified in *.ini files. For example, you can enable the server module in $JETTY_BASE and the http module on the command line, and specify properties for both on the command line: # Enable the server module in $JETTY_BASE. $ java -jar $JETTY_HOME/start.jar --add-modules=server # Start Jetty enabling the http module on the command line, # and specifying properties for both modules. $ java -jar $JETTY_HOME/start.jar --module=http jetty.server.dumpAfterStart=true jetty.http.port=9876 Refer to the custom module section for the details about how to create your own modules. You can add your own modules by adding a $JETTY_BASE/modules/*.mod file. For example, you may want to add a Postgres JDBC driver to the server class-path, to avoid that each deployed web application bring its own version. This allows you to control the exact Postgres JDBC driver version for all web applications. Create the $JETTY_BASE/modules/postgresql.mod file: postgresql.mod [description] Postgres JDBC Driver Module [lib] lib/postgresql-${postgresql-version}.jar [files] maven://org.postgresql/postgresql/${postgresql-version}|lib/postgresql-${postgresql-version}.jar [ini] postgresql-version?=42.6.0 [ini-template] ## Postgres JDBC version. # postgresql-version=42.6.0 Then enable it: $ java -jar $JETTY_HOME/start.jar --add-modules=postgresql Enabling the postgresql module will execute the [files] directive (downloading the *.jar file from Maven Central if not already present) and create the $JETTY_BASE/start.d/postgresql.ini with the content of the [ini-template] section. The [lib] section ensures that the specified file is in the server class-path when Jetty is started. You can display the Jetty configuration to verify that the server class-path is correct. Using a custom Jetty module, you can customize the JVM startup options. This is useful if you need to start Jetty and want to specify JVM options such as: -Xmx, to specify the max heap size -Xlog:gc, to specify the GC log file and options -javaagent, to specify Java agents -XX: options, for example to specify the GC implementation --enable-preview, to enable Java preview features Start by creating $JETTY_BASE/modules/jvm.mod: jvm.mod [description] JVM Options Module [exec] -Xmx1g -Xlog:gc*,gc+stats=off:file=logs/gc.log:time,level,tags Enable it: $ java -jar $JETTY_HOME/start.jar --add-modules=jvm Since the module defines an [exec] section, it will fork another JVM when Jetty is started. This means that when you start Jetty, there will be two JVMs running: one created by you when you run java -jar $JETTY_HOME/start.jar, and another forked by the Jetty start mechanism with the JVM options you specified (that cannot be applied to an already running JVM). Again, you can display the JVM command line to verify that it is correct. The second JVM forked by the Jetty start mechanism when one of the modules requires forking, for example a module that contains an [exec] section, may not be desirable, and may be avoided as explained in this section. Once you have enabled and configured the $JETTY_BASE, you can display the configuration to verify that it is correct. Using the standard server and http Jetty modules, and the postgresql and jvm custom Jetty module defined above, you obtain: $ java -jar $JETTY_HOME/start.jar --list-config [Running Jetty] :{args=--list-config, jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=server,http,postgresql,jvm} Enabled Modules: ---------------- 0) resources transitive provider of resources for logging-jetty 1) logging/slf4j transitive provider of logging/slf4j for logging-jetty dynamic dependency of logging-jetty 2) logging-jetty transitive provider of logging for threadpool transitive provider of logging for bytebufferpool transitive provider of logging for scheduler 3) bytebufferpool ${jetty.base}/start.d/bytebufferpool.ini 4) http-config ${jetty.base}/start.d/http-config.ini 5) scheduler ${jetty.base}/start.d/scheduler.ini 6) threadpool ${jetty.base}/start.d/threadpool.ini 7) jvm ${jetty.base}/start.d/jvm.ini 8) server ${jetty.base}/start.d/server.ini 9) http ${jetty.base}/start.d/http.ini 10) postgresql ${jetty.base}/start.d/postgresql.ini JVM Version & Properties: ------------------------- java.home = /path/to/java.home java.vm.vendor = Eclipse Adoptium java.vm.version = 21.0.8+9-LTS java.vm.name = OpenJDK 64-Bit Server VM java.vm.info = mixed mode, sharing java.runtime.name = OpenJDK Runtime Environment java.runtime.version = 21.0.8+9-LTS java.io.tmpdir = /path/to/jetty.home-base/work user.dir = /path/to/jetty.home-base user.language = en user.country = US Jetty Version & Properties: --------------------------- jetty.version = 12.1.13 jetty.tag.version = jetty-12.1.13 jetty.build = e99386749a0a4888cd9b555ffc96a476fd48d94e jetty.home = /path/to/jetty.home jetty.base = /path/to/jetty.home-base Config Search Order: -------------------- <command-line> ${jetty.base} -> /path/to/jetty.home-base ${jetty.home} -> /path/to/jetty.home Forked JVM Arguments: --------------------- -Xmx1g -Xlog:gc*,gc+stats=off:file=logs/gc.log:time,level,tags System Properties: ------------------ (no system properties specified) Properties: Jetty ----------------- java.version = 21.0.8 java.version.platform = 21 jetty.base = /path/to/jetty.home-base jetty.base.uri = file:///path/to/jetty.home-base jetty.home = /path/to/jetty.home jetty.home.uri = file:///path/to/jetty.home jetty.webapp.addHiddenClasses = org.eclipse.jetty.logging.,${jetty.home.uri}/lib/logging/,org.slf4j. maven.offline = false postgresql-version = 42.6.0 runtime.feature.alpn = true slf4j.version = 2.0.17 Classpath: Jetty ---------------- Version Information on 9 entries in the classpath. Note: order presented here is how they would appear on the classpath. changes to the --module=name command line options will be reflected here. 0: (dir) | ${jetty.base}/resources 1: 2.0.17 | ${jetty.home}/lib/logging/slf4j-api-2.0.17.jar | https://opensource.org/license/m
1it 2: 12.1.13 | ${jetty.home}/lib/logging/jetty-slf4j-impl-12.1.13.jar | EPL-2.0 OR Apache-2.0 3: 12.1.13 | ${jetty.home}/lib/jetty-http-12.1.13.jar | EPL-2.0 OR Apache-2.0 4: 12.1.13 | ${jetty.home}/lib/jetty-util-12.1.13.jar | EPL-2.0 OR Apache-2.0 5: 12.1.13 | ${jetty.home}/lib/jetty-server-12.1.13.jar | EPL-2.0 OR Apache-2.0 6: 12.1.13 | ${jetty.home}/lib/jetty-xml-12.1.13.jar | EPL-2.0 OR Apache-2.0 7: 12.1.13 | ${jetty.home}/lib/jetty-io-12.1.13.jar | EPL-2.0 OR Apache-2.0 8: 42.6.0 | ${jetty.base}/lib/postgresql-42.6.0.jar | BSD-2-Clause Active XMLs: Jetty ------------------ ${jetty.home}/etc/jetty-bytebufferpool.xml ${jetty.home}/etc/jetty-http-config.xml ${jetty.home}/etc/jetty-scheduler.xml ${jetty.home}/etc/jetty-threadpool.xml ${jetty.home}/etc/jetty.xml ${jetty.home}/etc/jetty-http.xml Note how the configuration displayed above includes: In the list of enabled modules, the postgresql and jvm modules In the list of JVM arguments, those specified by the jvm module In the server class-path, the *.jar file specified by the postgresql module The Jetty start mechanism can display a full JVM command line that will start Jetty with the configuration you specified, with the --dry-run option: $ java -jar $JETTY_HOME/start.jar --dry-run The full JVM command line generated by --dry-run can be split in various parts that can be used individually, for example in scripts. Furthermore, Jetty modules may specify the --exec option that will fork a second JVM to start Jetty, which may not be desirable. Some option, such as --jpms, imply --exec, as it wonât be possible to modify the module-path in the already started JVM. To start Jetty without forking a second JVM, the --dry-run option can be used to generate a command line that is then executed so that starting Jetty only spawns one JVM. You can use the --dry-run option as explained below to avoid forking a second JVM when using modules that have the [exec] section, or the --exec option, or when using the --jpms option. For example, using the --dry-run option with the jvm.mod introduced in this section produces the following command line: $ java -jar $JETTY_HOME/start.jar --dry-run [Running Jetty] :{args=--dry-run, jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=http,jvm, replace=( ),$1\\\\\\n} /path/to/java.home/bin/java \\ -Djava.io.tmpdir='/path/to/jetty.home-base/work' \\ -Djetty.home='/path/to/jetty.home' \\ -Djetty.base='/path/to/jetty.home-base' \\ -Xmx1g \\ '-Xlog:gc*,gc+stats=off:file=logs/gc.log:time,level,tags' \\ --class-path \\ '/path/to/jetty.home-base/resources:/path/to/jetty.home/lib/logging/slf4j-api-2.0.17.jar:/path/to/jetty.home/lib/logging/jetty-slf4j-impl-12.1.13.jar:/path/to/jetty.home/lib/jetty-http-12.1.13.jar:/path/to/jetty.home/lib/jetty-util-12.1.13.jar:/path/to/jetty.home/lib/jetty-server-12.1.13.jar:/path/to/jetty.home/lib/jetty-xml-12.1.13.jar:/path/to/jetty.home/lib/jetty-io-12.1.13.jar' \\ org.eclipse.jetty.xml.XmlConfiguration \\ java.version=21.0.8 \\ jetty.base='/path/to/jetty.home-base' \\ jetty.base.uri='file:///path/to/jetty.home-base' \\ jetty.home='/path/to/jetty.home' \\ jetty.home.uri='file:///path/to/jetty.home' \\ jetty.webapp.addHiddenClasses='org.eclipse.jetty.logging.,file:///path/to/jetty.home/lib/logging/,org.slf4j.' \\ maven.offline=false \\ runtime.feature.alpn=true \\ slf4j.version=2.0.17 \\ '/path/to/jetty.home/etc/jetty-bytebufferpool.xml' \\ '/path/to/jetty.home/etc/jetty-http-config.xml' \\ '/path/to/jetty.home/etc/jetty-scheduler.xml' \\ '/path/to/jetty.home/etc/jetty-threadpool.xml' \\ '/path/to/jetty.home/etc/jetty.xml' \\ '/path/to/jetty.home/etc/jetty-http.xml'' You can then run the generated command line by copying the output generated using the --dry-run option, and pasting it in a terminal window. The --dry-run option is quite flexible and below you can find a few examples of how to use it to avoid forking a second JVM, or generating scripts or creating an arguments file that can be passed to (a possibly alternative) java executable. To display the java executable used to start Jetty: $ java -jar $JETTY_HOME/start.jar --dry-run=java [Running Jetty] :{args=--dry-run=java, jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=http} /path/to/java.home/bin/java To display the JVM options: $ java -jar $JETTY_HOME/start.jar --dry-run=opts [Running Jetty] :{args=--dry-run=opts, jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=http,jvm, replace=( ),$1\\\\\\n} -Djava.io.tmpdir='/path/to/jetty.home-base/work' \\ -Djetty.home='/path/to/jetty.home' \\ -Djetty.base='/path/to/jetty.home-base' \\ -Xmx1g \\ '-Xlog:gc*,gc+stats=off:file=logs/gc.log:time,level,tags' To display the JVM class-path: $ java -jar $JETTY_HOME/start.jar --dry-run=path [Running Jetty] :{args=--dry-run=path, jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=http,jvm, replace=( |:),$1\\\\\\n} --class-path \\ '/path/to/jetty.home-base/resources:\\ /path/to/jetty.home/lib/logging/slf4j-api-2.0.17.jar:\\ /path/to/jetty.home/lib/logging/jetty-slf4j-impl-12.1.13.jar:\\ /path/to/jetty.home/lib/jetty-http-12.1.13.jar:\\ /path/to/jetty.home/lib/jetty-util-12.1.13.jar:\\ /path/to/jetty.home/lib/jetty-server-12.1.13.jar:\\ /path/to/jetty.home/lib/jetty-xml-12.1.13.jar:\\ /path/to/jetty.home/lib/jetty-io-12.1.13.jar' To display the JVM class-path and module-path, if you want to start Jetty using JPMS with the --jpms option: $ java -jar $JETTY_HOME/start.jar --jpms --dry-run=path [Running Jetty] :{args=--jpms
1--dry-run=path, jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=http,jvm, replace=( |:),$1\\\\\\n} --module-path \\ '/path/to/jetty.home/lib/jetty-util-12.1.13.jar:\\ /path/to/jetty.home/lib/jetty-xml-12.1.13.jar:\\ /path/to/jetty.home/lib/logging/jetty-slf4j-impl-12.1.13.jar:\\ /path/to/jetty.home/lib/jetty-http-12.1.13.jar:\\ /path/to/jetty.home/lib/logging/slf4j-api-2.0.17.jar:\\ /path/to/jetty.home/lib/jetty-io-12.1.13.jar:\\ /path/to/jetty.home/lib/jetty-server-12.1.13.jar' \\ --class-path \\ '/path/to/jetty.home-base/resources' \\ --add-modules \\ ALL-DEFAULT,ALL-MODULE-PATH To display the JVM main class: $ java -jar $JETTY_HOME/start.jar --dry-run=main [Running Jetty] :{args=--dry-run=main, jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=http} org.eclipse.jetty.xml.XmlConfiguration To display the JVM main class when starting Jetty using JPMS: $ java -jar $JETTY_HOME/start.jar --jpms --dry-run=main [Running Jetty] :{args=--jpms --dry-run=main, jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=http} --module org.eclipse.jetty.xml/org.eclipse.jetty.xml.XmlConfiguration The main class is typically Jettyâs XmlConfiguration class that accepts, as program arguments, a list of properties and a list of Jetty XML files to process. The Jetty XML files compose together the Jetty components that are then configured with the values from the command line properties. To display the program arguments passed to the main class: $ java -jar $JETTY_HOME/start.jar --dry-run=args [Running Jetty] :{args=--dry-run=args, jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=http, replace=( ),$1\\\\\\n} java.version=21.0.8 \\ jetty.base='/path/to/jetty.home-base' \\ jetty.base.uri='file:///path/to/jetty.home-base' \\ jetty.home='/path/to/jetty.home' \\ jetty.home.uri='file:///path/to/jetty.home' \\ jetty.webapp.addHiddenClasses='org.eclipse.jetty.logging.,file:///path/to/jetty.home/lib/logging/,org.slf4j.' \\ maven.offline=false \\ runtime.feature.alpn=true \\ slf4j.version=2.0.17 \\ '/path/to/jetty.home/etc/jetty-bytebufferpool.xml' \\ '/path/to/jetty.home/etc/jetty-http-config.xml' \\ '/path/to/jetty.home/etc/jetty-scheduler.xml' \\ '/path/to/jetty.home/etc/jetty-threadpool.xml' \\ '/path/to/jetty.home/etc/jetty.xml' \\ '/path/to/jetty.home/etc/jetty-http.xml'' Note how the program arguments are a list of properties in the form <name>=<value> and a list of Jetty XML files. To display the environments configuration: $ java -jar $JETTY_HOME/start.jar --dry-run=envs [Running Jetty] :{args=--dry-run=args, jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=http,ee10-deploy, replace=( ),$1\\\\\\n} java.version=21.0.8 \\ jetty.base='/path/to/jetty.home-base' \\ jetty.base.uri='file:///path/to/jetty.home-base' \\ jetty.home='/path/to/jetty.home' \\ jetty.home.uri='file:///path/to/jetty.home' \\ jetty.webapp.addHiddenClasses='org.eclipse.jetty.logging.,file:///path/to/jetty.home/lib/logging/,org.slf4j.' \\ maven.offline=false \\ runtime.feature.alpn=true \\ slf4j.version=2.0.17 \\ '/path/to/jetty.home/etc/jetty-bytebufferpool.xml' \\ '/path/to/jetty.home/etc/jetty-http-config.xml' \\ '/path/to/jetty.home/etc/jetty-scheduler.xml' \\ '/path/to/jetty.home/etc/jetty-threadpool.xml' \\ '/path/to/jetty.home/etc/jetty.xml' \\ '/path/to/jetty.home/etc/jetty-deployer-standard.xml' \\ '/path/to/jetty.home/etc/jetty-deployment-scanner.xml' \\ '/path/to/jetty.home/etc/sessions/id-manager.xml' \\ '/path/to/jetty.home/etc/jetty-ee-webapp.xml' \\ '/path/to/jetty.home/etc/jetty-http.xml'' Note how the environments configuration specifies additional class-path and Jetty XML files for every environment. The various parts of the full JVM command line can be combined to leverage the JVM arguments file feature (that is, specify the JVM options in a file rather than on the command line) that is built-in in the java executable: $ java -jar $JETTY_HOME/start.jar --dry-run=opts,path,main,args,envs > /tmp/jvm_cmd_line.txt $ /some/other/java @/tmp/jvm_cmd_line.txt Using --dry-run=opts,path,main,args,envs can be used to avoid that the Jetty start mechanism forks a second JVM when using modules that require forking. In the Linux bash shell you can run the output of --dry-run in this way: $ java -jar $JETTY_HOME/start.jar --dry-run=opts,path,main,args,envs | xargs java The output of different --dry-run executions can be creatively comb
1ined in a script, for example in the Linux bash shell: $ OPTS=$(java -jar start.jar --dry-run=opts,path) $ MAIN=$(java -jar start.jar --dry-run=main) $ ARGS=$(java -jar start.jar --dry-run=args) $ ENVS=$(java -jar start.jar --dry-run=envs) $ echo $OPTS -Dextra=opt $MAIN $ARGS $ENVS extraProp=value extra.xml | xargs java After you have configured the $JETTY_BASE directory, as explained in this section, you can start Jetty as a standalone server. In the start mode, the Jetty start mechanism computes a JVM command line with JVM options, system properties, class-path, module-path, main class and program arguments, and then executes it, forking a new JVM if necessary. The Jetty start mechanism performs these steps: Loads all the Jetty modules files (that have extension *.mod) from the modules/ subdirectory of each configuration source directory (see this section for the list of configuration sources). In this way, a Jetty module graph can be built in memory, where the module dependencies form the edges of the graph and each node contains the metadata information declared by each module (for example, the libraries that it needs, the XML files to process, and so on), in preparation for the next step. Reads the Jetty module configuration files (that have extension *.ini) from the start.d/ subdirectory of each configuration source directory and from the command line. This step produces a list of enabled modules; for each enabled module all its dependencies are transitively resolved by navigating the graph built in the previous steps. Processes the list of enabled (explicitly and transitively) modules, gathering the list of libraries to add to the class-path or module-path, the JPMS directives to add to the command line if necessary, the properties and XML files to add as program arguments, etc., so that a full JVM command line can be generated. Executes the command line, either in-JVM or by forking a second JVM (if the --exec option is present or implied by other options such as --jpms), and waits for the JVM, or the forked JVM, to exit. When the Jetty server is started in-JVM, the server class-path gathered by processing the enabled modules is organized in a URLClassLoader, the Jetty Start ClassLoader, that is a child of the System ClassLoader: The System ClassLoader only has $JETTY_HOME/start.jar in its class-path, since the JVM was started with java -jar $JETTY_HOME/start.jar. The Jetty Start ClassLoader has in its class-path the *.jar files gathered by processing the enabled modules, typically from $JETTY_HOME/lib/jetty-*.jar, but possibly also from $JETTY_BASE/lib/*.jar if custom modules extend the server class-path with their own *.jar files. When the Jetty server is started in a forked JVM, there will be two JVMs: one started by you with java -jar $JETTY_HOME/start.jar and one forked by the Jetty start mechanism. In the forked JVM, the System ClassLoader has the server class-path and/or module-path in its class-path, since the forked JVM is started with java --class-path $JETTY_HOME/lib/jetty-server-<version>.jar:...: It is worth mentioning that there are two standard Jetty modules that allow you to easily add entries to the Jetty server class-path: The resources module, which adds the $JETTY_BASE/resources directory to the server class-path. This is useful if you have third party libraries that lookup resources from the class-path: just put those resources in the $JETTY_BASE/resources/ directory. Logging libraries often perform class-path lookup of their configuration files (for example, log4j.properties, log4j.xml, logging.properties, and logback.xml), so $JETTY_BASE/resources/ is the ideal place to add those files. The ext module, that adds all the *.jar files under the $JETTY_BASE/lib/ext/ directory, and subdirectories recursively, to the server class-path. On one hand, the ext module provides a handy place to put third party libraries and their dependencies; on the other hand, the $JETTY_BASE/lib/ext/ directory may become a confused mixture of many *.jar files from different third party libraries. Prefer to group third party libraries and their dependencies into their own directories using custom modules, or at least group them into $JETTY_BASE/lib/ext/ subdirectories such as $JETTY_BASE/lib/ext/util/ or $JETTY_BASE/lib/ext/acme/. When a Jakarta EE Jetty module is enabled, for example the ee11-webapp and/or the ee11-deploy module, the server ClassLoader hierarchy is modified as follows: When different versions of the Jakarta EE ee<N>-deploy or ee<N>-webapp modules are enabled, the server ClassLoader hierarchy is the following: Note how the Jetty EE 10 ClassLoader and the Jetty EE 11 ClassLoader are siblings. In this way, they can load independently their own version of the Jakarta EE APIs *.jar files, and the Jetty implementation of the Jakarta EE APIs, without conflicts. The Jetty start mechanism eventually invokes, by default, main class org.eclipse.jetty.xml.XmlConfiguration, passing properties and Jetty XML files as program arguments. The Jetty XML files are nothing more than Java code in XML format. The XML files are processed to instantiate Jetty components such as org.eclipse.jetty.server.Server or org.eclipse.jetty.util.ssl.SslContextFactory$Server. The components are then assembled together to provide the configured Jetty features. The Jetty XML files are parametrized using properties, and a property is just a name/value pair. This parametrization of the XML files allows an XML file that resides in $JETTY_HOME/etc/ to declare a property such as jetty.http.port, and allow this property to be set in a $JETTY_BASE/start.d/http.ini file, so that you donât need to change the XML files in $JETTY_HOME, but only change *.ini files in your $JETTY_BASE. You can write your own custom modules with your own Jetty XML files, and your own properties, to further customize Jetty. When Jetty is started, the Jetty components that you have configured by enabling Jetty modules are assembled and started. If you have started Jetty from a terminal, you can exit the Jetty JVM by hitting Ctrl+C on the same terminal. Similarly, from a different terminal, you can exit the Jetty JVM using kill -INT <pid> or kill -TERM <pid>. In the three cases above, the JVM is exited, but by default Jetty components are not stopped. If you want to stop the Jetty components, to stop Jetty more gracefully, you can start Jetty with this property: $ java -jar $JETTY_HOME/start.jar jetty.server.stopAtShutdown=true This property can also be set in $JETTY_BASE/start.d/server.ini so that it is persistently configured across Jetty restarts (see also the server module). The jetty.server.stopAtShutdown property configures a JVM shutdown hook that is run, stopping the Server instance, when the JVM exits. Obviously, the JVM can also be stopped with kill -KILL <pid> that exits the process abruptly without running the JVM shutdown hooks. Stopping Jetty abruptly when there are active HTTP requests being handled may result in a variety or errors, because Jetty components that are used to handle requests are being stopped concurrently. For example, when the Jetty thread pool is stopped, an attempt to submit a task would throw RejectedExecutionException; when a component is stopped, its fields may be nulled-out, resulting in a NullPointerException being thrown if the component is used; etc. You can stop Jetty gracefully by adding the graceful Jetty module (see this section for more information). When Jetty is stopped, the graceful module organizes to reject new requests, but allows existing requests to finish within a configurable timeout; then closes all the connections, stops all the Jetty components, and then exits the JVM. In this way, existing requests are not responded with an error caused by the server stopping, provided they complete within the timeout. You can configure a Jetty server so that it can be stopped by remote clients using a command sent through a TCP socket. You can start Jetty with the following properties: stop.host, the host name Jetty will bind to listen for stop commands. Defaults to 127.0.0.1 which means that the stop command can be issued only clients that run on the same host as Jetty. stop.port, the port number Jetty will listen to for stop commands. Defaults to -1, which means that Jetty will not listen to any port. stop.key, the password to verify when a stop command is received. Defaults to a password that is randomly generated and printed when Jetty starts. $ java -jar $JETTY_HOME/start.jar stop.port=8181 [Running Jetty] :{args=stop.port=8181, highlight=(?i)stop.key, jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=http} 2026-09-23 22:25:19.186:WARN :oejs.ShutdownMonitor:main: org.eclipse.jetty.server.ShutdownMonitor is deprecated, and has been replaced with org.eclipse.jetty.server.ShutdownService STOP.PORT=8181 STOP.KEY=td067bb79ips STOP.EXIT=true 2026-09-23 22:25:19.199:INFO :oejs.Server:main: jetty-12.1.13; built: 2026-09-07T09:11:01.281Z; git: e99386749a0a4888cd9b555ffc96a476fd48d94e; jvm 21.0.8+9-LTS 2026-09-23 22:25:19.219:INFO :oejs.AbstractConnector:main: Started oejs.ServerConnector@2cb4893b{HTTP/1.1, (http/1.1)}{0.0.0.0:8080} 2026-09-23 22:25:19.219:INFO :oejs.Server:main: Started oejs.Server@5b218417{STARTING}[12.1.13,sto=0] @38ms In the example above, Jetty is started with just the stop.port property, and the stop.key is printed on the terminal when Jetty starts. You can choose your own stop.key, but make sure itâs a strong password. A remote client can now use the Jetty start mechanism to stop the remote Jetty server: $ java -jar $JETTY_HOME/start.jar --stop stop.port=8181 stop.key=<stop.key> Note the --stop command along with the stop.port and stop.key properties. The stop.key must be the same as the one of remote Jetty server, either the one you chose, or the one printed on the terminal when Jetty starts. Remote clients can wait for the remote Jetty server to shut down by specifying the stop.wait property with the number of seconds to wait: $ java -jar $JETTY_HOME/start.jar --stop stop.port=8181 stop.key=<stop.key> stop.wait=15 If the time specified elapses, without the confirmation that the remote Jetty server stopped, then the --stop command exits with a non-zero return code. The steps performed by the Jetty start mechanism are logged by the StartLog class, that outputs directly, by default, to System.err. This is necessary to avoid that the Jetty start mechanism depend on logging libraries that may clash with those defined by Jetty logging modules, when Jetty is started in-VM. This section is about the logging performed by the Jetty start mechanism before it configures and starts Jetty. See the logging section for information about logging when Jetty starts. You can enable DEBUG level logging with the --debug command line option, for both the tool and start modes: $ java -jar $JETTY_HOME/start.jar --debug ... You can send the start log output to a file, by default relative to $JETTY_BASE, with the --start-log-file=<file> option: $ java -jar $JETTY_HOME/start.jar --debug --start-log-file=start.log ... This is useful for capturing startup issues where the Jetty-specific logger has not yet kicked in due to a possible startup configuration error. [Running Jetty] :{args=--help, jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined} Usage: $ java -jar $JETTY_HOME/start.jar [command] [options...] Commands can be of two types: report commands or configuration commands. Commands execute and then exit the JVM. Options can be specified with or without commands. When no command is specified, Jetty is started with the given options. Report Commands: ---------------- --help Prints this help / usage information. --version Prints the version information for Jetty and dependent jars, then exits. --list-classpath Prints the class-path (or module-path) information that will be used to start Jetty. --list-config Lists the resolved configuration that will be used to start Jetty. Output includes: o Enabled Jetty modules o Java environment o Jetty environment o Config file search order o JVM arguments o System properties o Properties o Java class-path or module-path o XML configuration files --list-modules Lists the modules defined in ${jetty.base}/modules/*.mod and then in ${jetty.home}/modules/*.mod. --list-modules=<tag>(,<tag>)* Lists the modules by tag. Use '*' for all tags. Prefix a tag with '-' to exclude the tag. The special tag \"internal\" is always excluded unless it is explicitly included. --list-all-modules Lists all modules. --show-modules=<module>(,<module>)* Shows the detail of the listed modules, including dependencies, tags, libraries and XMLs. --stop Sends a stop signal to the running Jetty instance. The running Jetty instance must have been started with a stop.port=<port> property and the --stop command must be executed with the same property. --dry-run Prints the command line that start.jar generates, in a format usable by a POSIX compliant shell, then exits. This may be used to generate command lines into scripts: $ java -jar start.jar --dry-run > jetty.sh --dry-run=<part>(,<part>)* Prints specific parts of the command line in a format usable by a POSIX compliant shell. The parts are: o \"java\" - the JVM to run o \"opts\" - the JVM options (e.g. -D, -X and -XX flags) o \"path\" - the JVM class-path and/or the JPMS module-path o \"main\" - the main class to run o \"args\" - the arguments passed to the main class o \"envs\" - the generated XML files to create the environments Configure Commands: ------------------- --add-modules=<moduleName>(,<moduleName>)* Adds the given modules to the list of modules enabled at when Jetty starts. Transitive dependencies are followed and dependent modules may also explicitly added. Modules are added by creating an *.ini file in the ${jetty.base}/start.d/ directory. The *.ini file contains the --module option that enables the module, and any other option defined in the module's [ini-template] section. If the *.ini file specifies properties, these may be overridden by specifying the same properties on the command line. If a module is transitively enabled, its *.ini file will not be generated. To generate the *.ini file, the module must be explicitly listed in the --add-modules=... command. This option replaces the deprecated --add-to-start and --add-to-startd commands. --create-start-d Creates a ${jetty.base}/start.d directory. If the ${jetty.base}/start.ini file exists, then it is moved into the ${jetty.base}/start.d/ directory. Using a ${jetty.base}/start.d/ directory is the default and this option is only needed to either force the creation of the ${jetty.base}/start.d/ directory, or to move a ${jetty.base}/start.ini file to ${jetty.base}/start.d/. --create-start-ini Creates a ${jetty.base}/start.ini file. If a ${jetty.base}/start.d/ directory exists, then all the contained *.ini files are concatenated into the ${jetty.base}/start.ini file. --update-ini Scans all the ${jetty.base}/start.d/*.ini files and updates any property with values specified on the command line. For example: $ java -jar ${jetty.host}/start.jar --update-ini jetty.http.port=8888 --create-files Creates any missing files that are required by enabled modules, as specified in their [files] section. This may download a file from the network if a HTTP URI is specified in the [files] section. --write-module-graph=<filename> Creates a graphviz *.dot file of the module graph as it is configured for the current ${jetty.base}. See https://graphviz.org/ for details on how to post-process this file into the output best suited for your needs. Options: -------- --env=<environmentName> Sets the environment which will apply to all subsequent libraries, properties and XML files. --modules=<moduleName>(,<moduleName>)* Enables a module for this execution. To enable a module for all future executions, use the --add-modules command. Note: this option is used in the ${jetty.base}/start.ini file or in ${jetty.base}/start.d/*.ini files created by the --add-modules command. --libs=<classpath>
1Adds the specified class-path entries to the the server class-path; or module-path; or environment classpath if there has been a prior --env argument. --files=<uri>|<location> --download=<uri>|<location> Downloads a file from the given URI, if it does not already exist at the given location. Note: the location is always relative to ${jetty.base}. You might need to escape the pipe \"\\|\" to use it in some shell environments. Supported schemes: http: download from http (unsecure) website https: download from https (secure) website maven: download from maven repository system first checking local repository see `maven.local.repo` field below then global repository see `maven.repo.uri` field below basehome: download relative path from active configured jetty dirs (eg: `${jetty.base}` and any `--include-jetty-dir` and finally checking the `${jetty.home}`) --exec Executes the generated command line in a forked JVM (see the --dry-run command). This can be used when ${jetty.base}/start.d/*.ini files contain -D, -X or -XX arguments, but creates an extra JVM process. --exec-properties=<filename> Assigns a fixed name to the file used to transfer properties to the sub process. This allows the generated properties file to be saved and reused. Without this option, a temporary file is used. --commands=<filename> Uses each line of the specified file as arguments on the JVM command line. --jpms Starts Jetty in JPMS mode in a forked JVM (see also the --dry-run command). The library *.jar files are set on the forked JVM module-path (rather than the forked JVM class-path), while directories are set on the forked JVM class-path. The main class is specified with the JPMS option --module <moduleName>/<mainClassName>. --debug Enables debug output of the startup execution. Note: this does not setup debug logging for Jetty itself, only for the startup execution. If you want debug logging for Jetty, configure one of the available logging modules using the --add-modules command. --start-log-file=<filename> A filename, relative to ${jetty.base}, where all startup output will be sent. This is useful for capturing startup issues when the Jetty logging module has not yet started due to configuration errors. --allow-insecure-http-downloads Allow the use of insecure `http://` scheme for content download. --approve-all-licenses Approves all license questions from modules that have particular license requirements. Useful for enabling modules from a script, so that it does not require user interaction. --skip-create-files=<moduleName>(,<moduleName>)* --skip-file-validation=<moduleName>(,<moduleName>)* Disables the creation of files as specified by the [files] section of the specified modules. Useful if a logging module specifies a *.properties config file, but you want to use that module with an *.xml config file instead. --add-config-dir=<path> --include-jetty-dir=<path> Includes the specified directory as a configuration source. This directory behaves similarly to ${jetty.base} but sits at a layer between ${jetty.home} and ${jetty.base}. Useful when you want to apply a common \"corporate\" configuration to all specific ${jetty.base} directories without having to modify ${jetty.home}. -D<name>=<value> Specifies a system property, as well as a start property. Note: this is a program argument that is interpreted and added to the existing JVM system properties. <file>.xml Specifies a Jetty XML file relative to ${jetty.base}. This file is in addition to the Jetty XML files resolved from the [xml] sections of the enabled modules. If there has been a prior --env argument, the XML will be executed within that environment <name>=<value> Specifies a property value that overrides the same property defined in a ${jetty.base}/start.d/*.ini file, or in the [ini] section of a *.mod file. <name>=<value> Sets the property value unconditionally. <name>+=<value> Appends the given value to the existing value. <name>?=<value> Sets the property value only if it is not already set. If there has been a prior --env argument, then the property is set only for the current environment, otherwise it is set for the whole server. <file>.properties Specifies a file of property assignments that overrides the same property defined in a ${jetty.base}/start.d/*.ini file, or in the [ini] section of a *.mod file. If there has been a prior --env argument, then the property is set only for the current environment, otherwise it is set for the whole server. jetty.home=<directory> Sets the ${jetty.home} directory. By default it is resolved from the start.jar file path. jetty.base=<directory> Sets the ${jetty.base} directory. By default it is resolved from the current directory path. stop.host=<string> Used with the --stop command. Specifies the host where the Jetty server to stop is running (defaults to 127.0.0.1). stop.port=<number> Used with the --stop command. Specifies the port to use to contact the Jetty server to stop. stop.key=<alphanumeric> Used with the --stop command. The passphrase required to stop the Jetty server. stop.wait=<number> Used with the --stop command. The time, in seconds, to wait for confirmation that the running Jetty server has stopped. If not specified, the stopper will not wait. maven.local.repo=<dir> The maven local repository directory to find and store maven artifacts. Defaults to: 1. Environment variable `JETTY_MAVEN_LOCAL_REPO` 2. Environment variable `MAVEN_LOCAL_REPO` 3. Directory ${home}/.m2/repository maven.repo.uri=<url> The base URL to use to download Maven dependencies. Defaults to: https://repo1.maven.org/maven2/.","title":"Jetty Start Mechanism","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/start/index.html","titles":[{"text":"Configuring $JETTY_BASE","hash":"configure","id":1},{"text":"Enabling Modules","hash":"configure-enable","id":2},{"text":"Disabling Modules","hash":"configure-disable","id":3},{"text":"Editing *.ini Files","hash":"configure-edit-ini","id":4},{"text":"Enabling Modules on Command Line","hash":"configure-module-command-line","id":5},{"text":"Specifying Properties on Command Line","hash":"configure-properties-command-line","id":6},{"text":"Adding Your Own Modules","hash":"configure-custom-module","id":7},{"text":"Custom Module with JVM Options","hash":"configure-custom-module-exec","id":8},{"text":"Displaying the Configuration","hash":"configure-display","id":9},{"text":"Displaying the JVM Command Line","hash":"configure-dry-run","id":10},{"text":"Starting Jetty","hash":"start","id":11},{"text":"Server Class-Path","hash":"start-class-path","id":12},{"text":"Server Jakarta EE Environment Class-Path","hash":"start-class-path-environments","id":13},{"text":"Assembling Jetty Components","hash":"start-xml","id":14},{"text":"Stopping Jetty","hash":"stop","id":15},{"text":"Stopping Gracefully","hash":"stop-graceful","id":16},{"text":"Stopping Jetty from Remote","hash":"stop-remote","id":17},{"text":"Start Mechanism Logging","hash":"start-mechanism-logging","id":18},{"text":"Usage Reference","hash":"reference","id":19}]},"42":{"id":42,"text":"The org.eclipse.jetty.util.security.Password class present in the org.eclipse.jetty:jetty-util artifact provides support for password obfuscation and password checksums. There are many cases where you might need to provide credentials such as usernames and passwords to authenticate your access to certain services, for example KeyStore and TrustStore passwords, JDBC credentials, Basic or Digest authentication credentials, etc. Passwords are typically stored in clear-text in configuration files; a program such as Jetty reading the configuration file must be able to retrieve the original password to pass it to the service (for example, a KeyStore or a JDBC driver). You can protect clear-text stored passwords from casual view by obfuscating them using class org.eclipse.jetty.util.security.Password: $ java -cp jetty-util-12.1.13.jar org.eclipse.jetty.util.security.Password --prompt Username: (1) Password: secret (2) OBF:1yta1t331v8w1v9q1t331ytc (3) MD5:5eBe2294EcD0E0F08eAb7690D2A6Ee69 (4) ... MD:SHA-1:E5E9Fa1bA31eCd1aE84f75CaAa474f3a663f05F4 ... MD:SHA3-256:F5A5207a8729B1F709Cb710311751eB2Fc8aCaD5A1Fb8aC991B736E69b6529A3 ... 1 Hit Enter to specify a blank user. 2 Enter the password you want to obfuscate. 3 The obfuscated password. 4 MD5 and other MessageDigest checksums of the password, using different algorithms. The Password tool produced an obfuscated string for the password secret, namely OBF:1yta1t331v8w1v9q1t331ytc (the prefix OBF: must be retained). The obfuscated string can be de-obfuscated to obtain the original password. Now you can use the obfuscated password in Jetty configuration files, for example to specify the KeyStore password in ssl-context.ini when configuring secure connectors, as explained here. For example: ssl-context.ini jetty.sslContext.keyStorePassword=OBF:1yta1t331v8w1v9q1t331ytc Remember that password obfuscation only protects from casual view â it can be de-obfuscated to obtain the original password. You can also use the obfuscated password in your Java source code. Extreme care should be taken when using the Password tool from the command line, especially in cases where the username or password contains characters that may be interpreted by the shell, such as the character $, and the --prompt command line option is not used. For example, running the following produces the wrong password: $ java -cp jetty-util-12.1.13.jar org.eclipse.jetty.util.security.Password bob secret$phrase where bob is the user, and secret$phrase is the desired password. The shell may interpret $phrase as a shell variable, likely an empty string, so the Password class only receives secret as the password to obfuscate and hash. Always use the --prompt command line option, or disable shell interpretation for the parameters, for example by surrounding the parameters with single quotes: $ java -cp jetty-util-12.1.13.jar org.eclipse.jetty.util.security.Password 'bob' 'secret$phrase' You can also use obfuscated passwords in Jetty XML files where a clear-text password is usually required. Here is an example, setting an obfuscated password for a JDBC DataSource: <New id=\"myDS\" class=\"org.eclipse.jetty.plus.jndi.Resource\"> <Arg></Arg> <Arg>jdbc/myDS</Arg> <Arg> <New class=\"com.zaxxer.hikari.HikariDataSource\"> <Arg> <New class=\"com.zaxxer.hikari.HikariConfig\"> <Set name=\"dataSourceClassName\">org.postgresql.ds.PGSimpleDataSource</Set> <Set name=\"username\">dbuser</Set> <Set name=\"password\"> <Call class=\"org.eclipse.jetty.util.security.Password\" name=\"deobfuscate\"> (1) <Arg>OBF:1yta1t331v8w1v9q1t331ytc</Arg> </Call> </Set> ... </New> </Arg> </New> </Arg> </New> 1 Note the usage of Password.deobfuscate(...) to avoid storing the clear-text password in the XML file. Password checksums are computed using the JDK MessageDigest class and are useful when Jetty receives a password and needs to verify it without storing the original password (for example, with Basic authentication). Differently from obfuscated passwords, password checksums are not reversible and cannot be used when Jetty needs to pass the original password to other services; they can only be used to verify that the received password matches the password checksum. You can store the Basic authentication credentials in checksum form on the server and verify the password received from the client by comparing the stored checksum with the checksum of the received password computed on-the-fly. If the checksum is identical, then the password was correct. MessageDigest algorithms vary in strength, that is the probability that two different inputs produce the same checksum. The MD5 and SHA-1 algorithms are not recommended, as they are weak and insecure. Use at least SHA-256, typically available in all modern JVMs.","title":"Jetty Tools","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/tools/index.html","titles":[{"text":"Password Tool","hash":"password","id":1},{"text":"Password Obfuscation","hash":"password-obfuscation","id":2},{"text":"Password Checksums","hash":"password-checksum","id":3}]},"43":{"id":43,"text":"Jetty modules are proper JPMS modules: each Jetty module has a module-info.class file. This makes possible to run Jetty from the module-path, rather than the class-path. To start Jetty on the module-path rather than the class-path, it is enough to add the --jpms option to the command line, for example: $ java -jar $JETTY_HOME/start.jar --jpms The --jpms option implies the --exec option. When running on the module-path using the --jpms option, the Jetty start mechanism will fork a second JVM passing it the right JVM options to run on the module-path. Therefore, you will have two JVMs running: one that runs start.jar and one that runs Jetty on the module-path. Forking a second JVM may be avoided as explained in this section. When Jetty is started in JPMS mode, all JPMS modules in the module-path are added to the set of JPMS root modules through the JVM option --add-modules=ALL-MODULE-PATH. For a *.jar file that is not a JPMS module, but is on the module-path, the JVM will assume internally it is an automatic JPMS module, with a JPMS module name derived from the *.jar file name. As an alternative to adding the --jpms option to the command line, you can use a custom Jetty module to centralize your JPMS configuration, where you can specify additional JPMS directives. Create the $JETTY_BASE/modules/jpms.mod file: jpms.mod [de
1scription] JPMS Configuration Module [ini] --jpms [jpms] # Additional JPMS configuration. The [ini] section with --jpms is equivalent to passing the --jpms option to the command line (see also this section). The [jpms] section allows you to specify additional JPMS configuration, for example additional --add-modules options, or --add-opens options, etc. (see also this section). Then enable it: $ java -jar $JETTY_HOME/start.jar --add-modules=jpms Now you can start Jetty without extra command line options, and it will start in JPMS mode because you have enabled the jpms module. The main advantage of running Jetty in JPMS mode is that it provides early error reporting if a dependency is missing, especially in case of custom Jetty modules. If a Jetty module requires a specific library *.jar file, and the *.jar file is missing, this will be detected early when running in JPMS mode, since the *.jar file would be a JPMS module, and the JPMS module graph resolution would detect this problem as the JVM starts up. When running in class-path mode, this problem can only be detected when the library classes are loaded, therefore much later at run-time, when an HTTP request arrives and its processing requires to load the library classes. Similarly, duplicate *.jar files, of possibly different versions, are not allowed by JPMS. This is again detected early, at JVM startup, when running in JPMS mode, rather than passing completely unnoticed when running in class-path mode, where classes may be loaded from either of those *.jar files, possibly from the wrong version. Another advantage of running Jetty in JPMS mode is that JPMS provides strong encapsulation. This means that it is not possible to use reflection to access non-exported classes in JPMS modules within the ModuleLayer hierarchy. This is enforced at the JVM level, not at the application level through, for example, a custom ClassLoader that performs class loading filtering. It also means that it is not possible to use reflection to access sibling ModuleLayers. For example a Jakarta EE 10 web application would not be able to use reflection to access a sibling Jakarta EE 11 web application. When the Jetty server is started in JPMS mode, there will be two JVMs: one started by you with java -jar $JETTY_HOME/start.jar and one forked by the Jetty start mechanism. Remember that you can avoid to fork a second JVM, as described in this section. The forked JVM is started with java --module-path $JETTY_HOME/lib/jetty-server-<version>.jar:..., and therefore has the server libraries in its module-path, loaded by the System ClassLoader, in the boot ModuleLayer: When a Jakarta EE Jetty module is enabled, for example the ee11-webapp and/or the ee11-deploy module, the forked JVM is configured as follows: Note how the parent of the Jetty EE 11 ClassLoader is the System ClassLoader, and how the parent of the Jetty EE 11 ModuleLayer is the Boot ModuleLayer. When different versions of the Jakarta EE Jetty modules are enabled, the forked JVM is configured as follows: Note how the Jetty EE ClassLoaderss are siblings, and both have the System ClassLoader as parent. Note also how the Jetty EE ModuleLayers are siblings, and both have the Boot ModuleLayer as parent. Web applications may need additional services from the Servlet Container, such as JDBC DataSource references or JTA UserTransaction references. For example, for JDBC it is typical to store, in JNDI, a reference to the connection poolâs DataSource or directly a reference to the JDBC driverâs DataSource (for example, org.postgresql.ds.PGConnectionPoolDataSource). Jetty needs to be able to instantiate those classes and therefore needs to be able to load those classes and all their super-classes, among which includes javax.sql.DataSource. When Jetty runs on the class-path, this is easily achieved by using a custom module as explained in this section. However, when running on the module-path, things are quite different. When Jetty tries to load, for example, class org.postgresql.ds.PGConnectionPoolDataSource, it must be in a JPMS module that is resolved
1in the run-time module graph. Furthermore, any dependency, for example classes from the java.sql JPMS module, must also be in a module present in the resolved module graph. Thanks to the fact that when Jetty starts in JPMS mode the --add-modules=ALL-MODULE-PATH option is added to the JVM command line, every *.jar file in the module-path is also present in the module graph. There are now two cases for the postgresql-<version>.jar file: either it is a proper JPMS module, or it is an automatic JPMS module (either an explicit automatic JPMS module with the Automatic-Module-Name attribute in the manifest, or an implicit automatic JPMS module whose name is derived from the *.jar file name). If the postgresql-<version>.jar file is a proper JPMS module, then there is nothing more that you should do: the postgresql-<version>.jar file is in the module-path, and all the modules in the module-path are in the module graph (thanks to --add-modules=ALL-MODULE-PATH), and any dependency declared in the module-info.class will be added to the module graph. Otherwise, postgresql-<version>.jar file is an automatic module, and will likely have a dependency on the JDK-bundled java.sql JPMS module. Fortunately, when Jetty starts in JPMS mode, the --add-modules=ALL-DEFAULT option is also added to the JVM command line, so that all the Java JPMS modules are added to the module graph, and this would include the java.sql JPMS module. Thanks to the fact that Jetty starts by default adding --add-modules=ALL-DEFAULT,ALL-MODULE-PATH, it is enough that you put custom libraries (and their dependencies) in the module-path, and you should not need any extra JPMS configuration. However, you can explicitly configure JPMS directives in a custom Jetty module, for example to open or patch a JPMS module. Using the postgresql.mod introduced in this section as an example, modify your custom Jetty module and add the JPMS directives you need, like so: postgresql.mod [jpms] add-modules: <module>(,<module>)* patch-module: <module>=<file>(<path-separator><file>)* add-opens: <source-module>/<package>=<target-module>(,<target-module>)* add-exports: <source-module>/<package>=<target-module>(,<target-module>)* add-reads: <source-module>=<target-module>(,<target-module>)* The Jetty JPMS directives are equivalent to the JDK JPMS directives. The [jpms] section is only used when Jetty is started on the module-path.","title":"Starting Jetty using JPMS","component":"jetty","version":"12.1","name":"start-jpms","url":"/docs/jetty/12.1/operations-guide/start/start-jpms.html","titles":[{"text":"Advantages of JPMS","hash":"advantages","id":1},{"text":"Server Module-Path and ModuleLayers","hash":"hierarchy","id":2},{"text":"Advanced JPMS Configuration","hash":"advanced","id":3}]},"44":{"id":44,"text":"The Jetty XML format is a straightforward mapping of XML elements to Java APIs so that any object can be instantiated and getters, setters, and methods can be called. The Jetty XML format is very similar to that of frameworks like Spring or Plexus, although it predates all of them and itâs typically more powerful as it can invoke any Java API. The Jetty XML format is used in Jetty modules to create the Jetty server components, as well as in Jetty XML context files to configure web applications, but it can be used to call any Java API. The Jetty XML syntax defines XML element that allow you to call any Java API and that allow you to interact in a simpler way with the Jetty module system and the Jetty deploy system. The Jetty XML elements define attributes such as id, name, class, etc. that may be replaced by correspondent elements, so that these XML documents are equivalent: <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure> <Get id=\"stderr\" class=\"java.lang.System\" name=\"err\"> <Call name=\"println\" arg=\"HELLO\" /> </Get> </Configure> <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure> <Get> <Id>stderr</Id> <Name>err</Name> <Class>java.lang.System</Class> <Call> <Name>println</Name> <Arg>HELLO</Arg> </Call> </Get> </Configure> The version using attributes is typically shorter and nicer to read, but sometimes the attribute value cannot be a literal string (for example, it could be the value of a system property) and thatâs where elements gives you the required flexibility. Element Configure must be the root element of the XML document. The following Jetty XML creates an empty String and assigns it the id mystring: <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure id=\"mystring\" class=\"java.lang.String\" /> This is equivalent to the following Java code: var mystring = new String(); If an object with the id mystring already exists, then it is not created again but rather just referenced. Within element <Configure>, the created object (if any) is in scope and may be the implicit target of other, nested, elements. Typically, the <Configure> element is used to configure a Server instance or ContextHandler subclasses such as WebAppContext that represent web applications. Element Arg is used to pass arguments to constructors and method calls. The following example creates a minimal Jetty Server: <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.server.Server\"> <Arg type=\"int\">8080</Arg> </Configure> Arguments may have a type attribute that explicitly performs type coercion. Arguments may also have a name attribute, which is matched with the corresponding Java annotation in the source class, that helps to identify arguments: <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.server.Server\"> <Arg name=\"port\" type=\"int\">8080</Arg> </Configure> Element <New> creates a new object of the type specified by the mandatory class attribute. A sequence of Arg elements, that must be contiguous and before other elements, may be present to specify the constructor arguments. Within element <New> the newly created object is in scope and may be the implicit target of other, nested, elements. The following example creates an ArrayList: <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure> <New id=\"mylist\" class=\"java.util.ArrayList\"> <Arg type=\"int\">16</Arg> </New> </Configure> This is equivalent to the following Java code: var mylist = new ArrayList(16); Element <Call> invokes a method specified by the mandatory name attribute. A sequence of Arg elements, that must be contiguous and before other elements, may be present to specify the method arguments. Within element <Call> the return value, if the return type is not void, is in scope and may be the implicit target of other, nested, elements. <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure> <New class=\"java.util.ArrayList\"> <Call name=\"listIterator\"> <Arg type=\"int\">0</Arg> </Call> <Call name=\"next\" /> </New> </Configure> This is equivalent to the following Java code: new ArrayList().listIterator(0).next(); It is possible to call static methods by specifying the class attribute: <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure> <Call id=\"myhost\" name=\"getByName\" class=\"java.net.InetAddress\"> <Arg>jdk.java.net</Arg> </Call> </Configure> This is equivalent to the following Java code: var myhost = InetAddress.getByName(\"jdk.java.net\"); The class attribute (or <Class> element) can also be used to specify the Java class or interface to use to lookup the non-static method n
1ame. This is necessary when the object in scope, onto which the <Call> would be applied, is an instance of a class that is not visible to Jetty classes, or not accessible because it is not public. For example: <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure> <Call class=\"java.util.concurrent.Executors\" name=\"newSingleThreadScheduledExecutor\"> <Call class=\"java.util.concurrent.ExecutorService\" name=\"shutdown\" /> </Call> </Configure> In the example above, Executors.newSingleThreadScheduledExecutor() returns an object whose class is a private JDK implementation class. Without an explicit class attribute (or <Class> element), it is not possible to invoke the method shutdown() when it is obtained via reflection from the private JDK implementation class, because while the method is public, the private JDK implementation class is not, therefore this exception is thrown: java.lang.IllegalAccessException: class org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration (in module org.eclipse.jetty.xml) cannot access a member of class java.util.concurrent.Executors$DelegatedExecutorService (in module java.base) with modifiers \"public\" The solution is to explicitly use the class attribute (or <Class> element) of the <Call> element that is invoking the shutdown() method, specifying a publicly accessible class or interface that the object in scope extends or implements (in the example above java.util.concurrent.ExecutorService). Element <Get> retrieves the value of a JavaBean property specified by the mandatory name attribute. If the JavaBean property is foo (or Foo), <Get> first attempts to invoke method getFoo() or method isFoo(); failing that, attempts to retrieve the value from field foo (or Foo). <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure id=\"server\" class=\"org.eclipse.jetty.server.Server\"> <!-- Invokes getter method server.getVersion() --> <Get id=\"version\" name=\"version\" /> <!-- Gets the System.err field --> <Get class=\"java.lang.System\" name=\"err\"> <Call name=\"println\"> <Arg>Jetty</Arg> </Call> </Get> </Configure> The class attribute (or <Class> element) allows to perform static calls, or to lookup the getter method from the specified class, as described in the <Call> section. Element <Set> stores the value of a JavaBean property specified by the mandatory name attribute. If the JavaBean property is foo (or Foo), <Set> first attempts to invoke method setFoo(â¦â) with the value in the scope as argument; failing that, attempts to store the value in the scope to field foo (or Foo). <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure id=\"server\" class=\"org.eclipse.jetty.server.Server\"> <!-- The value in the <Set> scope is the string \"true\" --> <Set name=\"dryRun\">true</Set> <!-- The value in the <Set> scope is the instance created by <New> --> <Set name=\"requestLog\"> <New class=\"org.eclipse.jetty.server.CustomRequestLog\" /> </Set> </Configure> The class attribute (or <Class> element) allows to perform static calls, or to lookup the setter method from the specified class, as described in the <Call> section. Element <Map> allows the creation of a new java.util.Map implementation, specified by the class attribute â by default a HashMap. The map entries are specified with a sequence of <Entry> elements, each with exactly 2 <Item> elements, for example: <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure> <Map class=\"java.util.concurrent.ConcurrentHashMap\"> <Entry> <Item>host</Item> <Item> <Call class=\"java.net.InetAddress\" name=\"getByName\"> <Arg>localhost</Arg> </Call> </Item> </Entry> </Map> </Configure> Element <Put> is a convenience element that puts a key/value pair into objects that implement java.util.Map. You can only specify the key value via the name attribute, so the key can only be a literal string (for keys that are not literal strings, use the <Call> element). <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure> <New class=\"java.util.Properties\"> <Put name=\"host\"> <Call class=\"java.net.InetAddress\" name=\"getByName\"> <Arg>localhost</Arg> </Call> </Put> </New> </Configure> Element <Array> creates a new array, whose component type may be specified by the type attribute, or by a Type child element. <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure> <Array type=\"java.lang.Object\"> <Item /> <!-- null --> <Item>literalString</Item> <Item type=\"String\"></Item> <!-- empty string --> <Item type=\"Double\">1.0D</Item> <Item> <New class=\"java.lang.Exception\" /> </Item> </Array> </Configure> Element <Ref> allows you to reference an object via the refid attribute`, putting it into scope so that nested elements can operate on it. You must give a unique id attribute to the objects you want to reference. <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <!-- The Jetty Server has id=\"server\" --> <Configure id=\"server\" class=\"org.eclipse.jetty.server.Server\"> <Get class=\"java.lang.System\" name=\"err\"> <!-- Here the System.err field is in scope, but you want to operate on the server to get its version --> <Ref refid=\"server\"> <!-- Store the server version under id=\"myversion\" --> <Get id=\"myversion\" name=\"version\" /> </Ref> <Call name=\"println\"> <!-- Reference the server version stored above --> <Arg>Server version is: <Ref refid=\"myversion\" /></Arg> </Call> </Get> </Configure> Element <Property> retrieves the value of the Jetty module property specified by the name attribute, and it is mostly used when creating custom Jetty modules or when using Jetty context XML files. The deprecated attribute allows you to specify a comma separated list of old, deprecated, property names for backward compatibility. The default attribute allows you to specify a default value for the property, if it has not been explicitly defined. For example, you may want to configure the context path of your web application in this way: <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> <Set name=\"contextPath\"> <Property name=\"com.myapps.mywiki.context.path\" default=\"/wiki\" /> </Set> <Set name=\"war\">/opt/myapps/mywiki.war</Set> </Configure> The contextPath value is resolved by looking for the Jetty module property com.myapps.mywiki.context.path; if this property is not set, then the default value of /wiki is used. Element <SystemProperty> retrieves the value of the JVM system property specified by the name attribute, via System.getProperty(â¦â). The deprecated attribute allows you to specify a comma separated list of old, deprecated, system property names for backward compatibility. The default attribute allows you to specify a default value for the system property value, if it has not been explicitly defined. The following example creates a minimal Jetty Server that listens on a port specified by the com.acme.http.port system property: <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure id=\"server\" class=\"org.eclipse.jetty.server.Server\"> <Arg type=\"int\"> <SystemProperty name=\"com.acme.http.port\" default=\"8080\" /> </Arg> </Configure> Element <Env> retrieves the value of the environment variable specified by the name attribute, via System.getenv(â¦â). The deprecated attribute allows you to specify a comma separated list of old, deprecated, environment variable names for backward compatibility. The default attribute allows you to specify a default value for the environment variable value, if it has not been explicitly defined. The following example creates a minimal Jetty Server that listens on a port specified by the COM_ACME_HTTP_PORT environment variable: <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure id=\"server\" class=\"org.eclipse.jetty.server.Server\"> <Arg type=\"int\"> <Env name=\"COM_ACME_HTTP_PORT\" default=\"8080\" /> </Arg> </Configure> Elements that have the type attribute explicitly perform the type coercion of the string value present in the XML document to the Java type specified by the type attribute. Supported types are the following: all primitive types and their boxed equivalents, for example type=\"int\" but also type=\"Integer\" (short form) and type=\"java.lang.Integer\" (fully qualified form) java.lang.String, in both short form and fully qualified form java.net.URL, in both short form and fully qualified form java.net.InetAddress, in both short form and fully qualified form Elements that create new objects or that return a value create a scope. Within these elements there may be nested elements that will operate on that scope, i.e. on the new object or returned value. The following example illustrates how scopes work: <?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure id=\"server\" class=\"org.eclipse.jetty.server.Server\"> <Arg type=\"int\">8080</Arg> <!-- Here the Server object has been created and is in scope --> <!-- Calls the setter on the Server object that is in scope --> <Set name=\"stopTimeout\">5000</Set> <!-- Creates a new object --> <New id=\"httpConfig\" class=\"org.eclipse.jetty.server.HttpConfiguration\"> <!-- Here the HttpConfiguration just created is in a nested scope --> <!-- Calls the setter on the HttpConfiguration object that is in scope --> <Set name=\"secureScheme\">https</Set> </New> <!-- Calls the getter on the Server object that is in scope --> <Get name=\"ThreadPool\"> <!-- Here the ThreadPool object returned by the getter is in a nested scope --> <!-- Calls the setter on the ThreadPool object that is in scope --> <Set name=\"maxThreads\" type=\"int\">256</Set> </Get> <!-- Gets the System.err field --> <Get class=\"java.lang.System\" name=\"err\"> <!-- Here the System.err object is in scope --> <!-- Equivalent to: var myversion = server.getVersion() --> <Ref refid=\"server\"> <!-- Here the \"server\" object is in scope --> <Get id=\"myversion\" name=\"version\" /> </Ref> <!-- Calls println() on the System.err object --> <Call name=\"println\"> <Arg>Server version is: <Ref refid=\"myversion\" /></Arg> </Call> </Get> </Configure>","title":"Jetty XML","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/xml/index.html","titles":[{"text":"Jetty XML Syntax","hash":"syntax","id":1},{"text":"<Configure>","hash":"syntax-configure","id":2},{"text":"<Arg>","hash":"syntax-arg","id":3},{"text":"<New>","hash":"syntax-new","id":4},{"text":"<Call>","hash":"syntax-call","id":5},{"text":"<Get>","hash":"syntax-get","id":6},{"text":"<Set>","hash":"syntax-set","id":7},{"text":"<Map> and <Entry>","hash":"syntax-map","id":8},{"text":"<Put>","hash":"syntax-put","id":9},{"text":"<Array> and <Item>
1","hash":"syntax-array","id":10},{"text":"<Ref>","hash":"syntax-ref","id":11},{"text":"<Property>","hash":"syntax-property","id":12},{"text":"<SystemProperty>","hash":"syntax-system-property","id":13},{"text":"<Env>","hash":"syntax-env","id":14},{"text":"Type Coercion","hash":"syntax-types","id":15},{"text":"Scopes","hash":"syntax-scope","id":16}]},"45":{"id":45,"text":"To troubleshoot Jetty when used as a standalone server, there are two main tools: the Jetty Server Dump and enabling DEBUG level logging. It is typically very helpful to enable JMX, as detailed in this section. Enabling JMX allows to access the Jetty server (possibly a production server) from a remote location, and obtain the information exported by Jetty via JMX. Access to the Jetty server via JMX allows to either diagnose the problem, possibly reconfigure and restart the Jetty server. Make sure you read about how to secure the access to Jetty when using remote JMX. The most useful too to troubleshoot a Jetty server is the Jetty Component Dump, that reports the internal state of the Jetty server and all its components (the thread pool, the ByteBuffer pool, the currently established connections, and so on). The Jetty server dump can easily be obtained via JMX using a JMX console such as Java Mission Control (JMC), as explained in this section. The Jetty server dump may be reported just after the Server starts. This is useful to verify that all the expected components have been correctly configured and started for the optimal functioning of the server. Similarly, the Jetty server dump may be reported just before the Server stops. This is useful to log the state of a server that is not working properly. The server Jetty module defines, in this section, the properties jetty.server.dumpAfterStart and jetty.server.dumpBeforeStop that you can configure to report the Jetty server dump. These properties can be specified temporarily as command line arguments, as explained in this section: $ java -jar $JETTY_HOME/start.jar jetty.server.dumpAfterStart=true Alternatively, you can specify these properties in the $JETTY_BASE/start.d/server.ini file, as explained in this section, to make the values persistent across server restarts. Enabling DEBUG level logging for the org.eclipse.jetty logger name provides the maximum amount of information to troubleshoot Jetty issues. Refer to the logging section for more information about how to configure logging in Jetty. Enabling DEBUG level logging for org.eclipse.jetty is very, very expensive. Your server could be slowed down to almost a halt, especially if it is under heavy load. Furthermore, the log file could quickly fill up the entire filesystem (unless configured to roll over), so you want to be really careful using DEBUG logging. For production servers, consider using the Jetty Server Dump first, and enable DEBUG logging only as a last resort. However, sometimes issues are such that only DEBUG logging can really tell whatâs going on in the system, and enabling DEBUG logging is your best chance to figure the issue out. Below you can find few suggestions that can help you reduce the impact when you have to enable DEBUG logging. If Jetty instances are behind a load balancer, you may configure the load balancer to send less load to a particular Jetty instance, and enable DEBUG logging in that instance only. In certain cases the issue can be reproduced reliably, but only in the production environment. You can use JMX to temporarily enable DEBUG logging, reproduce the issue, and then disable DEBUG logging. Alternatively, if you cannot reliably reproduce the issue, but you know it is happening, you can temporarily enable DEBUG logging for a small period of time, letâs say 10-60 seconds, and then disable DEBUG logging. Changing the log level at runtime is a feature of the logging implementation that you are using. The Jetty SLF4J implementation, used by default, exposes via JMX method boolean JettyLoggerFactoryMBean.setLoggerLevel(String loggerName, String levelName) that you can invoke via a JMX console to change the level for the specified logger name. The method returns true if the logger level was successfully changed. For example, you can pass the string org.eclipse.jetty as the first parameter, and the string DEBUG (upper case) as the second parameter. You can then use the string INFO or WARN (upper case) to restore the logging level to its previous value. Enabling DEBUG logging for the org.eclipse.jetty logger name implies that all children logger names, recursively, inherit the DEBUG level. Processing a single HTTP request involves many Jetty components: the I/O subsystem (under org.eclipse.jetty.io
1), the thread pool (under org.eclipse.jetty.util), the HTTP/1.1 parsing (under org.eclipse.jetty.http), etc. If you can cut the amount of DEBUG logging to just what you need to troubleshoot the issue, the impact of enabling DEBUG logging will be much less than enabling it for all Jetty components. For example, if you need to troubleshoot a client that sends bad HTTP/1.1 requests, it may be enough to enable only the org.eclipse.jetty.http logger name, therefore saving the large amount of DEBUG logging produced by the I/O subsystem and by the thread pool. In another case, you may need to troubleshoot only HTTP/2 requests, and therefore enabling only the org.eclipse.jetty.http2 logger name could be enough. The Java Virtual Machines allows remote processes on different hosts to connect for debugging purposes, by using specific command line options. While it is possible to enable remote debugging on a Jetty server, it is typically not recommended for security and performance reasons. Only enable remote debugging on a Jetty server as a last resort to troubleshoot issues that could not be troubleshot otherwise. You can easily create a custom Jetty module (see this section) with the following content: remote-debug.mod [description] Enables remote debugging [exec] -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 The [exec] directive (documented here) is necessary to pass the -agentlib:jdwp JVM option to the forked JVM that runs Jetty, so that you can attach with a debugger. The address parameter of the -agentlib:jdwp command line option specifies the network address and port the Jetty JVM listens on for remote debugging. Please refer to the Java Debug Wire Protocol documentation for additional information about the -agentlib:jdwp command line option and its parameters. You can now enable the remote-debug Jetty module with the following command issued from the $JETTY_BASE directory: $ java -jar $JETTY_HOME/start.jar --add-modules=server,remote-debug The command above minimally adds a Jetty server without connectors (via the server Jetty module) and the remote-debug Jetty module, and produces the following $JETTY_BASE directory structure: $JETTY_BASE âââ modules â âââ remote-debug.mod âââ resources â âââ jetty-logging.properties âââ start.d âââ remote-debug.ini âââ server.ini You can easily disable the remote-debug Jetty module as explained in this section. Alternatively, you can enable the remote-debug module on the command line, as explained in this section. Starting the Jetty server with the remote-debug module enabled yields: [Running Jetty] :{highlight=5005, jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=server,remote-debug} WARN : Forking second JVM due to forking module(s): [remote-debug]. Use --dry-run to generate the command line to avoid forking. Listening for transport dt_socket at address: 5005 2026-09-23 22:25:22.285:INFO :oejs.Server:main: jetty-12.1.13; built: 2026-09-07T09:11:01.281Z; git: e99386749a0a4888cd9b555ffc96a476fd48d94e; jvm 21.0.8+9-LTS 2026-09-23 22:25:22.299:INFO :oejs.Server:main: Started oejs.Server@6cc4cdb9{STARTING}[12.1.13,sto=0] @21ms Note how the JVM is listening on port 5005 to allow remote debuggers to connect. If you want to avoid to fork a second JVM to pass the -agentlib:jdwp JVM option, please read this section. Jettyâs StateTrackingHandler (described in this module) can be used to troubleshoot problems in web applications. StateTrackingHandler tracks the usages of Handler/Request/Response asynchronous APIs by web applications, emitting events (logged at WARN level) when an invalid usage of the APIs is detected. In conjunction with dumping the Jetty component tree, it dumps the state of current requests, detailing whether they have reads or writes that are pending, whether callbacks have been completed, along with thread stack traces (including virtual threads) of operations that have been started but not completed, or are stuck in blocking code. You need to enable the state-tracking Jetty module, and configure it to track what you are interested in tracking (for more details, see the javadocs).","title":"Troubleshooting","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/operations-guide/troubleshooting/index.html","titles":[{"text":"Jetty Server Dump","hash":"dump","id":1},{"text":"Dump at Server Start/Stop","hash":"dump-start-stop","id":2},{"text":"Enabling DEBUG Logging","hash":"logging","id":3},{"text":"Jetty Behind a Load Balancer","hash":"logging-backend","id":4},{"text":"Enabling DEBUG Logging for a Short Time","hash":"logging-jmx","i
1d":5},{"text":"Enabling DEBUG Logging for SubPackages","hash":"logging-subpackages","id":6},{"text":"Remote Debugging","hash":"debugging","id":7},{"text":"Troubleshooting Handlers","hash":"handlers","id":8},{"text":"StateTrackingHandler","hash":"handlers-state-tracking","id":9}]},"46":{"id":46,"text":"The Jetty libraries (both client and server) use Java NIO to handle I/O, so that at its core Jetty I/O is completely non-blocking. The main class of The Jetty I/O library is SelectorManager. SelectorManager manages internally a configurable number of ManagedSelectors. Each ManagedSelector wraps an instance of java.nio.channels.Selector that in turn manages a number of java.nio.channels.SelectionKey instances, that each wrap a java.nio.channels.SelectableChannel instance such as java.nio.channels.SocketChannel. SocketChannel instances are typically created by the Jetty implementation, on client-side when connecting to a server and on server-side when accepting connections from clients. In both cases the SocketChannel instance is passed to SelectorManager (which passes it to ManagedSelector and eventually to java.nio.channels.Selector) to be registered for use within Jetty. It is possible for an application to create the SocketChannel instances outside Jetty, even perform some initial network traffic also outside Jetty (for example for authentication purposes), and then pass the SocketChannel instance to SelectorManager for use within Jetty. This example shows how a client can connect to a server: public void connect(SelectorManager selectorManager, Map<String, Object> context) throws IOException { String host = \"host\"; int port = 8080; // Create an unconnected SocketChannel. SocketChannel socketChannel = SocketChannel.open(); socketChannel.configureBlocking(false); // Connect and register to Jetty. if (socketChannel.connect(new InetSocketAddress(host, port))) selectorManager.accept(socketChannel, context); else selectorManager.connect(socketChannel, context); } This example shows how a server accepts a client connection: public void accept(ServerSocketChannel acceptor, SelectorManager selectorManager) throws IOException { // Wait until a client connects. SocketChannel socketChannel = acceptor.accept(); socketChannel.configureBlocking(false); // Accept and register to Jetty. Object attachment = null; selectorManager.accept(socketChannel, attachment); } SocketChannels that are passed to SelectorManager are wrapped into two related components: an EndPoint and a Connection. EndPoint is the Jetty abstraction for a SocketChannel or a DatagramChannel: you can read bytes from an EndPoint, you can write bytes to an EndPoint , you can close an EndPoint, etc. Connection is the Jetty abstraction that is responsible to read bytes from the EndPoint and to deserialize the read bytes into objects. For example, an HTTP/1.1 server-side Connection implementation is responsible to deserialize HTTP/1.1 request bytes into an HTTP request object. Conversely, an HTTP/1.1 client-side Connection implementation is responsible to deserialize HTTP/1.1 response bytes into an HTTP response object. Connection is the abstraction that implements the reading side of a specific protocol such as HTTP/1.1, or HTTP/2, or HTTP/3, or WebSocket: it is able to read and parse incoming bytes in that protocol. The writing side for a specific protocol may be implemented in the Connection but may also be implemented in other components, although eventually the bytes to write will be written through the EndPoint. While there are primarily only two implementations of EndPoint,SocketChannelEndPoint for TCP and DatagramChannelEndPoint for UDP (used both on the client-side and on the server-side), there are many implementations of Connection, typically two for each protocol (one for the client-side and one for the server-side). The EndPoint and Connection pairs can be chained, for example in case of encrypted communication using the TLS protocol. There is an EndPoint and Connection TLS pair where the EndPoint reads the encrypted bytes from the socket and the Connection decrypts them; next in the chain there is an EndPoint and Connection pair where the EndPoint \"reads\" decrypted bytes (provided by the previous Connection) and the Connection deserializes them into specific protocol objects (for example HTTP/2 frame objects). Certain protocols, such as WebSocket, start the communication with the server using one protocol (for example, HTTP/1.1), but then change the communication to use another protocol (for example, WebSocket). EndPoint supports changing the Connection object on-the-fly via EndPoint.upgrade(Connection). This allows to use the HTTP/1.1 Connection during the initial communication and later to replace it with a WebSocket Connection. SelectorManager is an abstract class because while it knows how to create concrete EndPoint instances, it does not know how to create protocol specific Connection instances. Creating Connection instances is performed on the server-side by ConnectionFactorys and on the client-side by ClientConnectionFactorys. On the server-side, the component that aggregates a SelectorManager with a set of ConnectionFactorys is ServerConnector for TCP sockets, QuicServerConnector for QUIC sockets, and UnixDomainServerConnector for Unix-Domain sockets (see the server-side architecture section for more information). On the client-side, the components that aggregates a SelectorManager with a set of ClientConnectionFactorys are HttpClientTrans
1port subclasses (see the client-side architecture section for more information). The Jetty I/O library use Java NIO to handle I/O, so that I/O is non-blocking. At the Java NIO level, in order to be notified when a SocketChannel or DatagramChannel has data to be read, the SelectionKey.OP_READ flag must be set. In the Jetty I/O library, you can call EndPoint.fillInterested(Callback) to declare interest in the \"read\" (also called \"fill\") event, and the Callback parameter is the object that is notified when such an event occurs. At the Java NIO level, a SocketChannel or DatagramChannel is always writable, unless it becomes congested. In order to be notified when a channel uncongests and it is therefore writable again, the SelectionKey.OP_WRITE flag must be set. In the Jetty I/O library, you can call EndPoint.write(Callback, ByteBuffer...) to write the ByteBuffers and the Callback parameter is the object that is notified when the whole write is finished (i.e. all ByteBuffers have been fully written, even if they are delayed by congestion/uncongestion). The EndPoint APIs abstract out the Java NIO details by providing non-blocking APIs based on Callback objects for I/O operations. The EndPoint APIs are typically called by Connection implementations, see this section. Connection is the abstraction that deserializes incoming bytes into objects, for example an HTTP request object or a WebSocket frame object, that can be used by more abstract layers. Connection instances have two lifecycle methods: Connection.onOpen(), invoked when the Connection is associated with the EndPoint. Connection.onClose(Throwable), invoked when the Connection is disassociated from the EndPoint, where the Throwable parameter indicates whether the disassociation was normal (when the parameter is null) or was due to an error (when the parameter is not null). When a Connection is first created, it is not registered for any Java NIO event. It is therefore typical to implement onOpen() to call EndPoint.fillInterested(Callback) so that the Connection declares interest for read events, and it is invoked (via the Callback) when the read event happens. The abstract class AbstractConnection partially implements Connection and provides simpler APIs. The example below shows a typical implementation that extends AbstractConnection: // Extend AbstractConnection to inherit basic implementation. class MyConnection extends AbstractConnection { public MyConnection(EndPoint endPoint, Executor executor) { super(endPoint, executor); } @Override public void onOpen() { super.onOpen(); // Declare interest for fill events. // When the fill event happens, method onFillable() below is invoked. fillInterested(); } @Override public void onFillable() { // Invoked when a fill event happens. } } The Jetty I/O library allows applications to register event listeners for the Connection events \"opened\" and \"closed\" via the interface Connection.Listener. This is useful in many cases, for example: Gather statistics about connection lifecycle, such as time of creation and duration. Gather statistics about the number of concurrent connections, and take action if a threshold is exceeded. Gather statistics about the number of bytes read and written, and the number of \"messages\" read and written, where \"messages\" may mean HTTP/1.1 requests or responses, or WebSocket frames, or HTTP/2 frames, etc. Gather statistics about the different types of connections being opened (TLS, HTTP/1.1, HTTP/2, WebSocket, etc.). Etc. Connection.Listener implementations must be added as beans to a server-side Connector, or to client-side HttpClient, WebSocketClient, HTTP2Client or HTTP3Client. You can add as beans many Connection.Listener objects, each with its own logic, so that you can separate different logics into different Connection.Listener implementations. The Jetty I/O library provides useful Connection.Listener implementations that you should evaluate before writing your own, for example ConnectionStatistics. Here is a simple example of a Connection.Listener used both on the client and on the server: class ThresholdConnectionListener implements Connection.Listener { private final AtomicInteger connections = new AtomicInteger(); private int threshold; private boolean notified; public ThresholdConnectionListener(int threshold) { this.threshold = threshold; } @Override public void onOpened(Connection connection) { int count = connections.incrementAndGet(); if (count > threshold && !notified) { notified = true; System.getLogger(\"connection.threshold\").log(System.Logger.Level.WARNING, \"Connection threshold exceeded\"); } } @Override public void onClosed(Connection connection) { int count = connections.decrementAndGet(); // Reset the alert when we are below 90% of the threshold. if (count < threshold * 0.9F) n
1otified = false; } } // Configure server-side connectors with Connection.Listeners. Server server = new Server(); ServerConnector connector = new ServerConnector(server); server.addConnector(connector); // Add statistics. connector.addBean(new ConnectionStatistics()); // Add your own Connection.Listener. connector.addBean(new ThresholdConnectionListener(2048)); server.start(); // Configure client-side HttpClient with Connection.Listeners. HttpClient httpClient = new HttpClient(); // Add statistics. httpClient.addBean(new ConnectionStatistics()); // Add your own Connection.Listener. httpClient.addBean(new ThresholdConnectionListener(512)); httpClient.start(); With the concepts above it is now possible to write a simple, fully non-blocking, Connection implementation that simply echoes the bytes that it reads back to the other peer. A naive, but wrong, implementation may be the following: class WrongEchoConnection extends AbstractConnection implements Callback { public WrongEchoConnection(EndPoint endPoint, Executor executor) { super(endPoint, executor); } @Override public void onOpen() { super.onOpen(); // Declare interest for fill events. fillInterested(); } @Override public void onFillable() { try { ByteBuffer buffer = BufferUtil.allocate(1024); int filled = getEndPoint().fill(buffer); if (filled > 0) { // Filled some bytes, echo them back. getEndPoint().write(this, buffer); } else if (filled == 0) { // No more bytes to fill, declare // again interest for fill events. fillInterested(); } else { // The other peer closed the // connection, close it back. getEndPoint().close(); } } catch (Exception x) { getEndPoint().close(x); } } @Override public void succeeded() { // The write is complete, fill again. onFillable(); } @Override public void failed(Throwable x) { getEndPoint().close(x); } } The implementation above is wrong and leads to StackOverflowError. The problem with this implementation is that if the writes always complete synchronously (i.e. without being delayed by TCP congestion), you end up with this sequence of calls: Connection.onFillable() EndPoint.write() Connection.succeeded() Connection.onFillable() EndPoint.write() Connection.succeeded() ... which leads to StackOverflowError. This is a typical side effect of asynchronous programming using non-blocking APIs, and happens in the Jetty I/O library as well. The callback is invoked synchronously for efficiency reasons. Submitting the invocation of the callback to an Executor to be invoked in a different thread would cause a context switch and make simple writes extremely inefficient. This side effect of asynchronous programming leading to StackOverflowError is so common that the Jetty libraries have a generic solution for it: a specialized Callback implementation named org.eclipse.jetty.util.IteratingCallback that turns recursion into iteration, therefore avoiding the StackOverflowError. IteratingCallback is a Callback implementation that should be passed to non-blocking APIs such as EndPoint.write(Callback, ByteBuffer...) when they are performed in a loop. IteratingCallback works by starting the loop with IteratingCallback.iterate(). In turn, this calls IteratingCallback.process(), an abstract method that must be implemented with the code that should be executed for each loop. Method process() must return: Action.SCHEDULED, to indicate whether the loop has performed a non-blocking, possibly asynchronous, operation Action.IDLE, to indicate that the loop should temporarily be suspended to be resumed later with another call to iterate Action.SUCCEEDED to indicate that the loop exited successfully Any exception thrown within process() exits the loops with a failure. Now that you know how IteratingCallback works, a correct implementation for the echo Connection is the following: class EchoConnection extends AbstractConnection { private final ByteBufferPool.Sized pool; private final IteratingCallback callback = new EchoIteratingCallback(); public EchoConnection(EndPoint endp, ByteBufferPool.Sized pool, Executor executor) { super(endp, executor); this.pool = pool; } @Override public void onOpen() { super.onOpen(); // Declare interest for fill events. fillInterested(); } @Override public void onFillable() { // Start the iteration loop that reads and echoes back. callback.iterate(); } class EchoIteratingCallback extends IteratingCallback { private RetainableByteBuffer buffer; @Override protected Action process() throws Throwable { // Obtain a buffer if we don't already have one. if (buffer == null) buffer = pool.acquire(); int filled = getEndPoint().fill(buffer.getByteBuffer()); if (filled > 0) { // We have filled some bytes, echo them back. getEndPoint().write(this, buffer.getByteBuffer()); // Signal that the iteration should resume // when the write() operation is completed. return Action.SCHEDULED; } else if (filled == 0) { // We don't need the buffer anymore, so // don't keep it around while we are idle. buffer = Retainable.release(buffer); // No more bytes to read, declare // again interest for fill events. fillInterested(this); // Signal that the iteration is now SCHEDULED // for a fillable callback. return Action.SCHEDULED; } else { // The other peer closed the connection, // the iteration completed successfully. return Action.SUCCEEDED; } } @Override protected void onCompleted(Throwable cause) { // The iteration completed. getEndPoint().close(cause); buffer = Retainable.release(buffer); } @Override public InvocationType getInvocationType() { return InvocationType.NON_BLOCKING; } } } When onFillable() is called, for example the first time that bytes are available from the network, the iteration is started. Starting the iteration calls process(), where a buffer is allocated and filled with bytes read from the network via EndPoint.fill(ByteBuffer); the buffer is subsequently written back via EndPoint.write(Callback, ByteBuffer...) â note that the callback passed to EndPoint.write() is this, i.e. the IteratingCallback itself; finally Action.SCHEDULED is returned, returning from the process() method. At this point, the call to EndPoint.write(Callback, ByteBuffer...) may have completed synchronously; IteratingCallback would know that and call process() again; within process(), the buffer has already been allocated so it will be reused, saving further allocations; the buffer will be filled and possibly written again; Action.SCHEDULED is returned again, returning again from the process() method. At this point, the call to EndPoint.write(Callback, ByteBuffer...) may have not completed synchronously, so IteratingCallback will not call process() again; the processing thread is free to return to the Jetty I/O system where it may be put back into the thread pool. If this was the only active network connection, the system would now be idle, with no threads blocked, waiting that the write() completes. This thread-less wait is one of the most important features that make non-blocking asynchronous servers more scalable: they use less resources. Eventually, the Jetty I/O system will notify that the write() completed; this notifies the IteratingCallback that can now resume the loop and call process() again. When process() is called, it is possible that zero bytes are read from the network; in this case, you want to deallocate the buffer since the other peer may never send more bytes for the Connection to read, or it may send them after a long pause â in both cases we do not want to retain the memory allocated by the buffer; next, you want to call fillInterested(this) to declare again interest for read events, and return Action.SCHEDULED since a callback is scheduled to occur once filling is possible. Another possibility is that during process() the read returns -1 indicating that the other peer has closed the connection; this means that there will not be more bytes to read and the loop can be exited, so you return Action.SUCCEEDED; IteratingCallback will then call onCompleteSuccess() where you can close the EndPoint. The last case is that during process() an exception is thrown, for example by EndPoint.fill(ByteBuffer) or, in more advanced implementations, by code that parses the bytes that have been read and finds them unacceptable; any exception thrown within process() will be caught by IteratingCallback that will exit the loop with a failure and call onCompleteFailure(Throwable) with the exception that has been thrown, where you can close the EndPoint, passing the exception that is the reason for closing prematurely the EndPoint. Note that some failures may occur whilst a scheduled operation is in progress. Such failures are notified immediately via the onFailure(Throwable) method, but care must be taken to not release any resources that may still be in use by the scheduled operation. The onCompleteFailure(Throwable) method is called when both a failure has occurred and any scheduled operation has completed. An example of this issue is that a buffer used for a write operation cannot be returned to a pool in onFailure(Throwable) as the write may still be progressing. Either the buffer must be removed from the pool in onFailure(Throwable) or the release of the buffer deferred until onCompleteFailure(Throwable)
1is called. Asynchronous programming is hard. Rely on the Jetty classes to implement Connection to avoid mistakes that will be difficult to diagnose and reproduce. The high-level abstraction that Jetty offers to read bytes is org.eclipse.jetty.io.Content.Source. Content.Source offers a non-blocking demand/read model where a read returns a Content.Chunk (see also this section). A Content.Chunk groups the following information: A ByteBuffer with the bytes that have been read; it may be empty. Whether the read reached end-of-file, via its last flag. A failure that might have happened during the read, via its getFailure() method. The Content.Chunk returned from Content.Source.read() can either be a normal chunk (a chunk containing a ByteBuffer and a null failure), or a failure chunk (a chunk containing an empty ByteBuffer and a non-null failure). A failure chunk also indicates (via the last flag) whether the failure is a fatal (when last=true) or transient (when last=false) failure. A transient failure is a temporary failure that happened during the read, it may be ignored, and it is recoverable: it is possible to call read() again and obtain a normal chunk (or a null chunk). Typical cases of transient failures are idle timeout failures, where the read timed out, but the application may decide to insist reading until some other event happens. The application may convert a transient failure into a fatal failure by calling Content.Source.fail(Throwable). A Content.Source must be fully consumed by reading all its content, or failed by calling Content.Source.fail(Throwable) to signal that the reader is not interested in reading anymore, otherwise it may leak underlying resources. Fully consuming a Content.Source means reading from it until it returns a Content.Chunk whose last flag is true. Reading or demanding from an already fully consumed Content.Source is always immediately serviced with the last state of the Content.Source: a Content.Chunk with the last flag set to true, either an end-of-file chunk, or a failure chunk. Once failed, a Content.Source is considered fully consumed. Further attempts to read from a failed Content.Source return a failure chunk whose getFailure() method returns the exception passed to Content.Source.fail(Throwable). When reading a normal chunk, its ByteBuffer is typically a slice of a different ByteBuffer that has been read by a lower layer. There may be multiple layers between the bottom layer (where the initial read typically happens) and the application layer that calls Content.Source.read(). By slicing the ByteBuffer (rather than copying its bytes), there is no copy of the bytes between the layers, which yields greater performance. However, this comes with the cost that the ByteBuffer, and the associated Content.Chunk, have an intrinsic lifecycle: the final consumer of a Content.Chunk at the application layer must indicate when it has consumed the chunk, so that the bottom layer may reuse/recycle the ByteBuffer. Consuming the chunk means that the bytes in the ByteBuffer are read (or ignored), and that the application will not look at or reference that ByteBuffer ever again. Content.Chunk offers a retain/release model to deal with the ByteBuffer lifecycle, with a simple rule: A Content.Chunk returned by a call to Content.Source.read() must be released, except for Content.Chunks that are failure chunks. Failure chunks may be released, but they do not need to be. The example below is the idiomatic way of reading from a Content.Source: public void read(Content.Source source) { // Read from the source in a loop. while (true) { // Read a chunk, must be eventually released. Content.Chunk chunk = source.read(); (1) // If no chunk, demand to be called back when there are more chunks. if (chunk == null) { source.demand(() -> read(source)); return; } // If there is a failure reading, handle it. if (Content.Chunk.isFailure(chunk)) { boolean fatal = chunk.isLast(); if (fatal) { // A fatal failure, such as a network failure. handleFatalFailure(chunk.getFailure()); // No recovery is possible, stop reading // by returning without demanding. return; } else { // A transient failure such as a read timeout. handleTransientFailure(chunk.getFailure()); // Recovery is possible, try to read again. continue; } } // A normal chunk of content, consume it. consume(chunk); // Release the chunk. chunk.release();
1 (2) // Stop reading if EOF was reached. if (chunk.isLast()) return; // Loop around to read another chunk. } } 1 The read() that must be paired with a release(). 2 The release() that pairs the read(). Note how the reads happen in a loop, consuming the Content.Source as soon as it has content available to be read, and therefore no backpressure is applied to the reads. Calling Content.Chunk.release() must be done only after the bytes in the ByteBuffer returned by Content.Chunk.getByteBuffer() have been consumed. When the Content.Chunk is released, the implementation may reuse the ByteBuffer and overwrite the bytes with different bytes; if the application looks at the ByteBuffer after having released the Content.Chunk is may see other, unrelated, bytes. An alternative way to read from a Content.Source, to use when the chunk is consumed asynchronously, and you donât want to read again until the Content.Chunk is consumed, is the following: public void read(Content.Source source) { // Read a chunk, must be eventually released. Content.Chunk chunk = source.read(); (1) // If no chunk, demand to be called back when there are more chunks. if (chunk == null) { source.demand(() -> read(source)); return; } // If there is a failure reading, always treat it as fatal. if (Content.Chunk.isFailure(chunk)) { // If the failure is transient, fail the source // to indicate that there will be no more reads. if (!chunk.isLast()) source.fail(chunk.getFailure()); // Handle the failure and stop reading by not demanding. handleFatalFailure(chunk.getFailure()); return; } // Consume the chunk asynchronously, and do not // read more chunks until this has been consumed. CompletableFuture<Void> consumed = consumeAsync(chunk); // Release the chunk. chunk.release(); (2) // Only when the chunk has been consumed try to read more. consumed.whenComplete((result, failure) -> { if (failure == null) { // Continue reading if EOF was not reached. if (!chunk.isLast()) source.demand(() -> read(source)); } else { // If there is a failure reading, handle it, // and stop reading by not demanding. handleFatalFailure(failure); } }); } 1 The read() that must be paired with a release(). 2 The release() that pairs the read(). Note how the reads do not happen in a loop, and therefore backpressure is applied to the reads, because there is not a next read until the chunk from the previous read has been consumed (and this may take time). Since the Chunk is consumed asynchronously, you may need to retain it to extend its lifecycle, as explained in this section. You can use Content.Source static methods to conveniently read (in a blocking way or non-blocking way), for example via static Content.Source.asStringAsync(Content.Source, Charset), or via an InputStream using static Content.Source.asInputStream(Content.Source). Refer to the Content.Source javadocs for further details. Content.Chunk offers a retain/release API to control the lifecycle of its ByteBuffer. When Content.Chunks are consumed synchronously, no additional retain/release API call is necessary, for example: public void consume(Content.Chunk chunk) throws IOException { // Consume the chunk synchronously within this method. // For example, parse the bytes into other objects, // or copy the bytes elsewhere (e.g. the file system). fileChannel.write(chunk.getByteBuffer()); if (chunk.isLast()) fileChannel.close(); } On the other hand, if the Content.Chunk is not consumed immediately, then it must be retained, and you must arrange for the Content.Chunk to be released at a later time, thus pairing the retain. For example, you may accumulate the Content.Chunks in a List to convert them to a String when all the Content.Chunks have been read. Since reading from a Content.Source is asynchronous, the String result is produced via a CompletableFuture: // CompletableTask is-a CompletableFuture. public class ChunksToString extends CompletableTask<String> { private final List<Content.Chunk> chunks = new ArrayList<>(); private final Content.Source source; public ChunksToString(Content.Source source) { this.source = source; } @Override public void run() { while (true) { // Read a chunk, must be eventually released. Content.Chunk chunk = source.read(); (1) if (chunk == null) { source.demand(this); return; } if (Content.Chunk.isFailure(chunk)) { handleFatalFailure(chunk.getFailure()); return; } // A normal chunk of content, consume it. consume(chunk); // Release the chunk. // This pairs the call to read() above. chunk.release(); (2) if (chunk.isLast()) { // Produce the result. String result = getResult(); // Complete this CompletableFuture with the result. complete(result); // The reading is complete. return; } } } public void consume(Content.Chunk chunk) { // The chunk is not consumed within this method, but // stored away for later use, so it must be retained. chunk.retain(); (3) chunks.add(chunk); } public String getResult() { Utf8StringBuilder builder = new Utf8StringBuilder();
1 // Iterate over the chunks, copying and releasing. for (Content.Chunk chunk : chunks) { // Copy the chunk bytes into the builder. builder.append(chunk.getByteBuffer()); // The chunk has been consumed, release it. // This pairs the retain() in consume(). chunk.release(); (4) } return builder.toCompleteString(); } } 1 The read() that must be paired with a release(). 2 The release() that pairs the read(). 3 The retain() that must be paired with a release(). 4 The release() that pairs the retain(). Note how method consume(Content.Chunk) retains the Content.Chunk because it does not consume it, but rather stores it away for later use. With this additional retain, the retain count is now 2: one implicitly from the read() that returned the Content.Chunk, and one explicit in consume(Content.Chunk). However, just after returning from consume(Content.Chunk) the Content.Chunk is released (pairing the implicit retain from read()), so that the retain count goes to 1, and an additional release is still necessary. Method getResult() arranges to release all the Content.Chunks that have been accumulated, pairing the retains done in consume(Content.Chunk), so that the retain count for the Content.Chunks goes finally to 0. The high-level abstraction that Jetty offers to write bytes is org.eclipse.jetty.io.Content.Sink. The primary method to use is Content.Sink.write(boolean, ByteBuffer, Callback), which performs a non-blocking write of the given ByteBuffer, with the indication of whether the write is the last. The Callback parameter is completed, successfully or with a failure, and possibly asynchronously by a different thread, when the write is complete. Your application can typically perform zero or more non-last writes, and one final last write. However, because the writes may be asynchronous, you cannot start a next write before the previous write is completed. This code is wrong: public void wrongWrite(Content.Sink sink, ByteBuffer content1, ByteBuffer content2) { // Initiate a first write. sink.write(false, content1, Callback.NOOP); // WRONG! Cannot initiate a second write before the first is complete. sink.write(true, content2, Callback.NOOP); } You must initiate a second write only when the first is finished, for example: public void manyWrites(Content.Sink sink, ByteBuffer content1, ByteBuffer content2) { // Initiate a first write. // Callback.Completable is-a CompletableFuture. Callback.Completable resultOfWrites = Callback.Completable.with(callback1 -> sink.write(false, content1, callback1)) // Chain a second write only when the first is complete. .compose(callback2 -> sink.write(true, content2, callback2)); // Use the resulting Callback.Completable as you would use a CompletableFuture. // For example: resultOfWrites.whenComplete((ignored, failure) -> { if (failure == null) System.getLogger(\"sink\").log(INFO, \"writes completed successfully\"); else System.getLogger(\"sink\").log(INFO, \"writes failed\", failure); }); } When you need to perform an unknown number of writes, you may use an IteratingCallback, explained in this section, to avoid StackOverFlowErrors. For example, to download a large content in smaller chunks, you can do this: class LargeDownload extends IteratingCallback { public void download(Content.Sink sink, Callback callback) { // Create the IteratingCallback and start the iteration. IteratingCallback writer = new LargeDownload(sink, callback, 1024 * 1024); writer.iterate(); } private static final int CHUNK_SIZE = 1024; private final Content.Sink sink; private final Callback callback; private int length; public LargeDownload(Content.Sink sink, Callback callback, int downloadLength) { this.sink = sink; // The callback to notify when the download is completed. this.callback = callback; this.length = downloadLength; } @Override protected Action process() throws Throwable { // Return when the whole download is completed. if (length == 0) return Action.SUCCEEDED; // Prepare the chunk to write. int size = Math.min(CHUNK_SIZE, length); byte[] bytes = new byte[size]; ThreadLocalRandom.current().nextBytes(bytes); ByteBuffer byteBuffer = ByteBuffer.wrap(bytes); length -= size; boolean last = length == 0; // Start the non-blocking write, passing \"this\" as the callback. sink.write(last, byteBuffer, this); return Action.SCHEDULED; } @Override protected void onCompleteSuccess() { // Download completed, notify the download callback. callback.succeeded(); } @Override protected void onCompleteFailure(Throwable failure) { // Download failed, notify the download callback. callback.failed(failure); } @Override public InvocationType getInvocationType() { return InvocationType.NON_BLOCKING; } } If you want to copy from a Content.Source to a Content.Sink you could use the convenience method Content.copy(Content.Source, Content.Sink, Callback). For illustrative purposes, below you can find a more elaborate example with an implementation of copy(Content.Source, Content.Sink, Callback) that uses IteratingCallback: class Copy extends IteratingCallback { private final Content.Source source; private final Content.Sink sink; private final Callback callback; private Content.Chunk chunk; public Copy(Content.Source source, Content.Sink sink, Callback callback) { this.source = source; this.sink = sink; // The callback to notify when the copy is completed. this.callback = callback; } @Override protected Action process() throws Throwable { // If the last write completed, succeed this IteratingCallback, // causing onCompleteSuccess() to be invoked. if (chunk != null && chunk.isLast()) return Action.SUCCEEDED; // Read a chunk. chunk = source.read(); // If no chunk, schedule a demand callback when there are more chunks. if (chunk == null) { source.demand(this::succeeded); return Action.SCHEDULED; } // The read failed, re-throw the failure // causing onCompleteFailure() to be invoked. if (Content.Chunk.isFailure(chunk)) throw chunk.getFailure(); // Copy the chunk by scheduling an asynchronous write. sink.write(chunk.isLast(), chunk.getByteBuffer(), this); return Action.SCHEDULED; } @Override protected void onSuccess() { // After every successful write, release // the chunk and reset to the next chunk. chunk = Content.Chunk.releaseAndNext(chunk); } @Override protected void onCompleteSuccess() { // The copy is complete, succeed the copy callback. callback.succeeded(); } @Override protected void onFailure(Throwable cause) { // The copy has failed, fail the copy callback. // This method is invoked before a write() has completed, so // the chunk is not released here, but in onCompleteFailure(). callback.failed(cause); } @Override protected void onCompleteFailure(Throwable failure) { // In case of a failure, this method is invoked when the write() // is completed, and it is now possible to release the chunk. chunk = Content.Chunk.releaseAndNext(chunk); } @Override public InvocationType getInvocationType() { return callback.getInvocationType(); } } Non-blocking writes can be easily turned in blocking writes. This leads to perhaps code that is simpler to read, but that also comes with a price: greater resource usage that may lead to less scalability and less performance. public void blockingWrite(Content.Sink sink, ByteBuffer content1, ByteBuffer content2) throws IOException { // First blocking write, returns only when the write is complete. Content.Sink.write(sink, false, content1); // Second blocking write, returns only when the write is complete. // It is legal to perform the writes sequentially, since they are blocking. Content.Sink.write(sink, true, content2); }","title":"Jetty I/O Architecture","component":"jetty","version":"12.1","name":"io","url":"/docs/jetty/12.1/programming-guide/arch/io.html","titles":[{"text":"Jetty I/O: SelectorManager","hash":"selector-manager","id":1},{"text":"Jetty I/O: EndPoint and Connection","hash":"endpoint-connection","id":2},{"text":"Jetty I/O: EndPoint","hash":"endpoint","id":3},{"text":"Jetty I/O: Connection","hash":"connection","id":4},{"text":"Jetty I/O: Connection.Listener","hash":"connection-listener","id":5},{"text":"Jetty I/O: TCP Network Echo","hash":"echo","id":6},{"text":"Content.Source","hash":"content-source","id":7},{"text":"Content.Chunk","hash":"content-source-chunk","id":8},{"text":"Content.Sink","hash":"content-sink","id":9}]},"47":{"id":47,"text":"Applications that use the Jetty libraries (both client and server) create objects from Jetty classes and compose them together to obtain the desired functionalities. A client application creates a ClientConnector instance, a HttpClientTrans
1port instance and an HttpClient instance and compose them to have a working HTTP client that uses to call third party services. A server application creates a ThreadPool instance, a Server instance, a ServerConnector instance, a Handler instance and compose them together to expose an HTTP service. Internally, the Jetty libraries create even more instances of other components that also are composed together with the main ones created by applications. The end result is that an application based on the Jetty libraries is a tree of components. In server application the root of the component tree is a Server instance, while in client applications the root of the component tree is an HttpClient instance. Having all the Jetty components in a tree is beneficial in a number of use cases. It makes possible to register the components in the tree as JMX MBeans so that a JMX console can look at the internal state of the components. It also makes possible to dump the component tree (and therefore each componentâs internal state) to a log file or to the console for troubleshooting purposes. Jetty components typically have a life cycle: they can be started and stopped. The Jetty components that have a life cycle implement the org.eclipse.jetty.util.component.LifeCycle interface. Jetty components that contain other components implement the org.eclipse.jetty.util.component.Container interface and typically extend the org.eclipse.jetty.util.component.ContainerLifeCycle class. ContainerLifeCycle can contain these type of components, also called beans: managed beans, LifeCycle instances whose life cycle is tied to the life cycle of their container unmanaged beans, LifeCycle instances whose life cycle is not tied to the life cycle of their container POJO (Plain Old Java Object) beans, instances that do not implement LifeCycle ContainerLifeCycle uses the following logic to determine if a bean should be managed, unmanaged or POJO: the bean implements LifeCycle the bean is not started, add it as managed the bean is started, add it as unmanaged the bean does not implement LifeCycle, add it as POJO When a ContainerLifeCycle is started, it also starts recursively all its managed beans (if they implement LifeCycle); unmanaged beans are not started during the ContainerLifeCycle start cycle. Likewise, stopping a ContainerLifeCycle stops recursively and in reverse order all its managed beans; unmanaged beans are not stopped during the ContainerLifeCycle stop cycle. Components can also be started and stopped individually, therefore activating or deactivating the functionalities that they offer. Applications should first compose components in the desired structure, and then start the root component: class Monitor extends AbstractLifeCycle { } class Root extends ContainerLifeCycle { // Monitor is an internal component. private final Monitor monitor = new Monitor(); public Root() { // The Monitor life cycle is managed by Root. addManaged(monitor); } } class Service extends ContainerLifeCycle { // An instance of the Java scheduler service. private ScheduledExecutorService scheduler; @Override protected void doStart() throws Exception { // Java's schedulers cannot be restarted, so they must // be created anew every time their container is started. scheduler = Executors.newSingleThreadScheduledExecutor(); // Even if Java scheduler does not implement // LifeCycle, make it part of the component tree. addBean(scheduler); // Start all the children beans. super.doStart(); } @Override protected void doStop() throws Exception { // Perform the opposite operations that were // performed in doStart(), in reverse order. super.doStop(); removeBean(scheduler); scheduler.shutdown(); } } // Create a Root instance. Root root = new Root(); // Create a Service instance. Service service = new Service(); // Link the components. root.addBean(service); // Start the root component to // start the whole component tree. root.start(); The component tree is the following: Root âââ Monitor (MANAGED) âââ Service (MANAGED) âââ ScheduledExecutorService (POJO) When the Root instance is created, also the Monitor instance is created and added as bean, so Monitor is the first bean of Root. Monitor is a managed bean, because it has been explicitly added to Root via ContainerLifeCycle.addManaged(â¦â). Then, the application creates a Service instance and adds it to Root via ContainerLifeCycle.addBean(â¦â), so Service is the second bean of Root. Service is a managed bean too, because it is a LifeCycle and at the time it was added to Root is was not started. The ScheduledExecutorService within Service does not implement LifeCycle so it is added as a POJO to Service. It is possible to stop and re-start any component in a tree, for example: class Root extends ContainerLifeCycle { } class Service extends ContainerLifeCycle { // An instance of the Java scheduler service. private ScheduledExecutorService scheduler; @Override protected void doStart() throws Exception { // Java's schedulers cannot be restarted, so they must // be created anew every time their container is started. scheduler = Executors.newSingleThreadScheduledExecutor(); // Even if Java scheduler does not implement // LifeCycle, make it part of the component tree. addBean(scheduler); // Start all the children beans. super.doStart(); } @Override protected void doStop() throws Exception { // Perform the opposite operations that were // performed in doStart(), in reverse order. super.doStop(); removeBean(scheduler); scheduler.shutdown(); } } Root root = new Root(); Service service = new Service(); root.addBean(service); // Start the Root component. root.start(); // Stop temporarily Service without stopping the Root. service.stop(); // Restart Service. service.start(); Service can be stopped independently of Root, and re-started. Starting and stopping a non-root component does not alter the structure of the component tree, just the state of the subtree starting from the component that has been stopped and re-started. Container provides an API to find beans in the component tree: class Root extends ContainerLifeCycle { } class Service extends ContainerLifeCycle { private ScheduledExecutorService scheduler; @Override protected void doStart() throws Exception { scheduler = Executors.newSingleThreadScheduledExecutor(); addBean(scheduler); super.doStart(); } @Override protected void doStop() throws Exception { super.doStop(); removeBean(scheduler); scheduler.shutdown(); } } Root root = new Root(); Service service = new Service(); root.addBean(service); // Start the Root component. root.start(); // Find all the direct children of root. Collection<Object> children = root.getBeans(); // children contains only service // Find all descendants of root that are instance of a particular class. Collection<ScheduledExecutorService> schedulers = root.getContainedBeans(ScheduledExecutorService.class); // schedulers contains the service scheduler. You can add your own beans to the component tree at application startup time, and later find them from your application code to access their services. The component tree should be used for long-lived or medium-lived components such as thread pools, web application contexts, etc. It is not recommended adding to, and removing from, the component tree short-lived objects such as HTTP requests or TCP connections, for performance reasons. If you need component tree features such as automatic export to JMX or dump capabilities for short-lived objects, consider having a long-lived container in the component tree instead. You can make the long-lived container efficient at adding/removing the short
1-lived components using a data structure that is not part of the component tree, and make the long-lived container handle the JMX and dump features for the short-lived components. A component that extends AbstractLifeCycle inherits the possibility to add/remove event listeners for various events emitted by components. A component that implements java.util.EventListener that is added to a ContainerLifeCycle is also registered as an event listener. The following sections describe in details the various listeners available in the Jetty component architecture. A LifeCycle.Listener emits events for life cycle events such as starting, stopping and failures: Server server = new Server(); // Add an event listener of type LifeCycle.Listener. server.addEventListener(new LifeCycle.Listener() { @Override public void lifeCycleStarted(LifeCycle lifeCycle) { System.getLogger(\"server\").log(INFO, \"Server {0} has been started\", lifeCycle); } @Override public void lifeCycleFailure(LifeCycle lifeCycle, Throwable failure) { System.getLogger(\"server\").log(INFO, \"Server {0} failed to start\", lifeCycle, failure); } @Override public void lifeCycleStopped(LifeCycle lifeCycle) { System.getLogger(\"server\").log(INFO, \"Server {0} has been stopped\", lifeCycle); } }); For example, a life cycle listener attached to a Server instance could be used to create (for the started event) and delete (for the stopped event) a file containing the process ID of the JVM that runs the Server. A component that implements Container is a container for other components and ContainerLifeCycle is the typical implementation. A Container emits events when a component (also called bean) is added to or removed from the container: Server server = new Server(); // Add an event listener of type LifeCycle.Listener. server.addEventListener(new Container.Listener() { @Override public void beanAdded(Container parent, Object child) { System.getLogger(\"server\").log(INFO, \"Added bean {1} to {0}\", parent, child); } @Override public void beanRemoved(Container parent, Object child) { System.getLogger(\"server\").log(INFO, \"Removed bean {1} from {0}\", parent, child); } }); A Container.Listener added as a bean will also be registered as a listener: class Parent extends ContainerLifeCycle { } class Child { } // The older child takes care of its siblings. class OlderChild extends Child implements Container.Listener { private Set<Object> siblings = new HashSet<>(); @Override public void beanAdded(Container parent, Object child) { siblings.add(child); } @Override public void beanRemoved(Container parent, Object child) { siblings.remove(child); } } Parent parent = new Parent(); Child older = new OlderChild(); // The older child is a child bean _and_ a listener. parent.addBean(older); Child younger = new Child(); // Adding a younger child will notify the older child. parent.addBean(younger); A Container.InheritedListener is a listener that will be added to all descendants that are also Containers. Listeners of this type may be added to the component tree root only, but will be notified of every descendant component that is added to or removed from the component tree (not only first level children). The primary use of Container.InheritedListener within the Jetty Libraries is MBeanContainer from the Jetty JMX support. MBeanContainer listens for every component added to the tree, converts it to an MBean and registers it to the MBeanServer; for every component removed from the tree, it unregisters the corresponding MBean from the MBeanServer.","title":"Jetty Component Architecture","component":"jetty","version":"12.1","name":"bean","url":"/docs/jetty/12.1/programming-guide/arch/bean.html","titles":[{"text":"Jetty Component Lifecycle","hash":"lifecycle","id":1},{"text":"Jetty Component Listeners","hash":"listener","id":2},{"text":"LifeCycle.Listener","hash":"listener-lifecycle","id":3},{"text":"Container.Listener","hash":"listener-container","id":4},{"text":"Container.InheritedListener","hash":"listener-inherited","id":5}]},"48":{"id":48,"text":"The Java Management Extensions (JMX) APIs are standard API for managing and monitoring resources such as applications, devices, services, and the Java Virtual Machine itself. The JMX API includes remote access, so a remote management console such as Java Mission Control can interact with a running application for these purposes. Jetty architecture is based on components organized in a tree. Every time a component is added to or removed from the component tree, an event is emitted, and Container.Listener implementations can listen to those events and perform additional actions. org.eclipse.jetty.jmx.MBeanContainer listens to those events and registers/unregisters the Jetty components as MBeans into the platform MBeanServer. The Jetty components are annotated with Jetty JMX annotations so that they can provide specific JMX metadata such as attributes and operations that should be exposed via JMX. Therefore, when a component is added to the component tree, MBeanContainer is notified, it creates the MBean from the component POJO and registers it to the MBeanServer. Similarly, when a component is removed from the tree, MBeanContainer is notified, and unregisters the MBean from the MBeanServer. The Maven coordinates for the Jetty JMX support are: <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-jmx</artifactId> <version>12.1.13</version> </dependency>
1 Enabling JMX support is always recommended because it provides valuable information about the system, both for monitoring purposes and for troubleshooting purposes in case of problems. To enable JMX support on the server: Server server = new Server(); // Create an MBeanContainer with the platform MBeanServer. MBeanContainer mbeanContainer = new MBeanContainer(ManagementFactory.getPlatformMBeanServer()); // Add MBeanContainer to the root component. server.addBean(mbeanContainer); Similarly on the client: HttpClient httpClient = new HttpClient(); // Create an MBeanContainer with the platform MBeanServer. MBeanContainer mbeanContainer = new MBeanContainer(ManagementFactory.getPlatformMBeanServer()); // Add MBeanContainer to the root component. httpClient.addBean(mbeanContainer); The MBeans exported to the platform MBeanServer can only be accessed locally (from the same machine), not from remote machines. This means that this configuration is enough for development, where you have easy access (with graphical user interface) to the machine where Jetty runs, but it is typically not enough when the machine where Jetty runs is remote, or only accessible via SSH or otherwise without graphical user interface support. In these cases, you have to enable JMX Remote Access. There are two ways of enabling remote connectivity so that JMC can connect to the remote JVM to visualize MBeans. Use the com.sun.management.jmxremote system property on the command line. Unfortunately, this solution does not work well with firewalls and is not flexible. Use Jettyâs ConnectorServer class. org.eclipse.jetty.jmx.ConnectorServer will use by default RMI to allow connection from remote clients, and it is a wrapper around the standard JDK class JMXConnectorServer, which is the class that provides remote access to JMX clients. Connecting to the remote JVM is a two step process: First, the client will connect to the RMI registry to download the RMI stub for the JMXConnectorServer; this RMI stub contains the IP address and port to connect to the RMI server, i.e. the remote JMXConnectorServer. Second, the client uses the RMI stub to connect to the RMI server (i.e. the remote JMXConnectorServer) typically on an address and port that may be different from the RMI registry address and port. The host and port configuration for the RMI registry and the RMI server is specified by a JMXServiceURL. The string format of an RMI JMXServiceURL is: service:jmx:rmi://<rmi_server_host>:<rmi_server_port>/jndi/rmi://<rmi_registry_host>:<rmi_registry_port>/jmxrmi Default values are: rmi_server_host = localhost rmi_server_port = 1099 rmi_registry_host = localhost rmi_registry_port = 1099 With the default configuration, only clients that are local to the server machine can connect to the RMI registry and RMI server - this is done for security reasons. With this configuration it would still be possible to access the MBeans from remote using a SSH tunnel. By specifying an appropriate JMXServiceURL, you can fine tune the network interfaces the RMI registry and the RMI server bind to, and the ports that the RMI registry and the RMI server listen to. The RMI server and RMI registry hosts and ports can be the same (as in the default configuration) because RMI is able to multiplex traffic arriving to a port to multiple RMI objects. If you need to allow JMX remote access through a firewall, you must open both the RM
1I registry and the RMI server ports. JMXServiceURL common examples: service:jmx:rmi:///jndi/rmi:///jmxrmi rmi_server_host = local host address rmi_server_port = randomly chosen rmi_registry_host = local host address rmi_registry_port = 1099 service:jmx:rmi://0.0.0.0:1099/jndi/rmi://0.0.0.0:1099/jmxrmi rmi_server_host = any address rmi_server_port = 1099 rmi_registry_host = any address rmi_registry_port = 1099 service:jmx:rmi://localhost:1100/jndi/rmi://localhost:1099/jmxrmi rmi_server_host = loopback address rmi_server_port = 1100 rmi_registry_host = loopback address rmi_registry_port = 1099 When ConnectorServer is started, its RMI stub is exported to the RMI registry. The RMI stub contains the IP address and port to connect to the RMI object, but the IP address is typically the machine host name, not the host specified in the JMXServiceURL. To control the IP address stored in the RMI stub you need to set the system property java.rmi.server.hostname with the desired value. This is especially important when binding the RMI server host to the loopback address for security reasons. See also JMX Remote Access via SSH Tunnel. To allow JMX remote access, create and configure a ConnectorServer: Server server = new Server(); // Setup Jetty JMX. MBeanContainer mbeanContainer = new MBeanContainer(ManagementFactory.getPlatformMBeanServer()); server.addBean(mbeanContainer); // Setup ConnectorServer. // Bind the RMI server to the wildcard address and port 1999. // Bind the RMI registry to the wildcard address and port 1099. JMXServiceURL jmxURL = new JMXServiceURL(\"rmi\", null, 1999, \"/jndi/rmi:///jmxrmi\"); ConnectorServer jmxServer = new ConnectorServer(jmxURL, \"org.eclipse.jetty.jmx:name=rmiconnectorserver\"); // Add ConnectorServer as a bean, so it is started // with the Server and also exported as MBean. server.addBean(jmxServer); server.start(); The standard JMXConnectorServer provides several options to authorize access, for example via JAAS or via configuration files. For a complete guide to controlling authentication and authorization in JMX, see the official JMX documentation. In the sections below we detail one way to setup JMX authentication and authorization, using configuration files for users, passwords and roles: Server server = new Server(); // Setup Jetty JMX. MBeanContainer mbeanContainer = new MBeanContainer(ManagementFactory.getPlatformMBeanServer()); server.addBean(mbeanContainer); // Setup ConnectorServer. JMXServiceURL jmxURL = new JMXServiceURL(\"rmi\", null, 1099, \"/jndi/rmi:///jmxrmi\"); Map<String, Object> env = new HashMap<>(); env.put(\"com.sun.management.jmxremote.access.file\", \"/path/to/users.access\"); env.put(\"com.sun.management.jmxremote.password.file\", \"/path/to/users.password\"); ConnectorServer jmxServer = new ConnectorServer(jmxURL, env, \"org.eclipse.jetty.jmx:name=rmiconnectorserver\"); server.addBean(jmxServer); server.start(); The users.access file format is defined in the $JAVA_HOME/conf/management/jmxremote.access file. A simplified version is the following: users.access user1 readonly user2 readwrite The users.password file format is defined in the $JAVA_HOME/conf/management/jmxremote.password.template file. A simplified version is the following: users.password user1 password1 user2 password2 The users.access and users.password files are not standard *.properties files â the user must be separated from the role or password by a space character. The JMX communication via RMI happens by default in clear-text. It is possible to configure the ConnectorServer with a SslContextFactory so that the JMX communication via RMI is encrypted: Server server = new Server(); // Setup Jetty JMX. MBeanContainer mbeanContainer = new MBeanContainer(ManagementFactory.getPlatformMBeanServer()); server.addBean(mbeanContainer); // Setup SslContextFactory. SslContextFactory.Server sslContextFactory = new SslContextFactory.Server(); sslContextFactory.setKeyStorePath(\"/path/to/keystore\"); sslContextFactory.setKeyStorePassword(\"secret\"); // Setup ConnectorServer with SslContextFactory. JMXServiceURL jmxURL = new JMXServiceURL(\"rmi\", null, 1099, \"/jndi/rmi:///jmxrmi\"); ConnectorServer jmxServer = new ConnectorServer(jmxURL, null, \"org.eclipse.jetty.jmx:name=rmiconnectorserver\", sslContextFactory); server.addBean(jmxServer); server.start(); It is possible to use the same SslContextFactory.Server used to configure the Jetty ServerConnector that supports TLS also for the JMX communication via RMI. The keystore must contain a valid certificate signed by a Certification Authority. The RMI mechanic is the usual one: the RMI client (typically a monitoring console) will connect first to the RM
1I registry (using TLS), download the RMI server stub that contains the address and port of the RMI server to connect to, then connect to the RMI server (using TLS). This also mean that if the RMI registry and the RMI server are on different hosts, the RMI client must have available the cryptographic material to validate both hosts. Having certificates signed by a Certification Authority simplifies by a lot the configuration needed to get the JMX communication over TLS working properly. If that is not the case (for example the certificate is self-signed), then you need to specify the required system properties that allow RMI (especially when acting as an RMI client) to retrieve the cryptographic material necessary to establish the TLS connection. For example, trying to connect using the JDK standard JMXConnector with both the RMI server and the RMI registry via TLS to domain.com with a self-signed certificate: // System properties necessary for an RMI client to trust a self-signed certificate. System.setProperty(\"javax.net.ssl.trustStore\", \"/path/to/trustStore\"); System.setProperty(\"javax.net.ssl.trustStorePassword\", \"secret\"); JMXServiceURL jmxURL = new JMXServiceURL(\"service:jmx:rmi:///jndi/rmi://domain.com:1100/jmxrmi\"); Map<String, Object> clientEnv = new HashMap<>(); // Required to connect to the RMI registry via TLS. clientEnv.put(ConnectorServer.RMI_REGISTRY_CLIENT_SOCKET_FACTORY_ATTRIBUTE, new SslRMIClientSocketFactory()); try (JMXConnector client = JMXConnectorFactory.connect(jmxURL, clientEnv)) { Set<ObjectName> names = client.getMBeanServerConnection().queryNames(null, null); } Similarly, to launch JMC: $ jmc -vmargs -Djavax.net.ssl.trustStore=/path/to/trustStore -Djavax.net.ssl.trustStorePassword=secret These system properties are required when launching the ConnectorServer too, on the server, because it acts as an RMI client with respect to the RMI registry. You can access JMX MBeans on a remote machine when the RMI ports are not open, for example because of firewall policies, but you have SSH access to the machine using local port forwarding via an SSH tunnel. In this case you want to configure the ConnectorServer with a JMXServiceURL that binds the RMI server and the RMI registry to the loopback interface only: service:jmx:rmi://localhost:1099/jndi/rmi://localhost:1099/jmxrmi. Then you setup the local port forwarding with the SSH tunnel: $ ssh -L 1099:localhost:1099 <user>@<machine_host> Now you can use JConsole or JMC to connect to localhost:1099 on your local computer. The traffic will be forwarded to machine_host and when there, SSH will forward the traffic to localhost:1099, which is exactly where the ConnectorServer listens. When you configure ConnectorServer in this way, you must set the system property -Djava.rmi.server.hostname=localhost, on the server. This is required because when the RMI server is exported, its address and port are stored in the RMI stub. You want the address in the RMI stub to be localhost so that when the RMI stub is downloaded to the remote client, the RMI communication will go through the SSH tunnel. The Jetty JMX support, and in particular MBeanContainer, is notified every time a bean is added to the component tree. The bean is scanned for Jetty JMX annotations to obtain JMX metadata: the JMX attributes and JMX operations. // Annotate the class with @ManagedObject and provide a description. @ManagedObject(\"Services that provide useful features\") class Services { private final Map<String, Object> services = new ConcurrentHashMap<>(); private boolean enabled = true; // A read-only attribute with description. @ManagedAttribute(value = \"The number of services\", readonly = true) public int getServiceCount() { return services.size(); } // A read-write attribute with description. // Only the getter is annotated. @ManagedAttribute(value = \"Whether the services are enabled\") public boolean isEnabled() { return enabled; } // There is no need to annotate the setter. public void setEnabled(boolean enabled) { this.enabled = enabled; } // An operation with description and impact. // The @Name annotation is used to annotate parameters // for example to display meaningful parameter names. @ManagedOperation(value = \"Retrieves the service with the given name\", impact = \"INFO\") public Object getService(@Name(value = \"serviceName\") String n) { return services.get(n); } } The JMX metadata and the bean are wrapped by an instance of org.eclipse.jetty.jmx.ObjectMBean that exposes the JMX metadata and, upon request from JMX consoles, invokes methods on the bean to get/set attribute values and perform operations. You can provide a custom subclass of ObjectMBean to further customize how the bean is exposed to JMX. The custom ObjectMBean subclass must respect the following naming convention: <package>.jmx.<class>MBean. For example, class com.acme.Foo may have a custom ObjectMBean subclass named com.acme.jmx.FooMBean. //package com.acme; @ManagedObject class Service { } //package com.acme.jmx; class ServiceMBean extends ObjectMBean { ServiceMBean(Object service) { super(service); } } The custom ObjectMBean subclass is also scanned for Jetty JMX annotations and overrides the JMX metadata obtained by scanning the bean class. This allows to annotate only the custom ObjectMBean subclass and keep the bean class free of the Jetty JMX annotations. //package com.acme; // No Jetty JMX annotations. class CountService { private int count; public int getCount() { return count; } public void addCount(int value) { count += value; } } //package com.acme.jmx; @ManagedObject(\"the count service\") class CountServiceMBean extends ObjectMBean { public CountServiceMBean(Object service) { super(service); } private CountService getCountService() { return (CountService)super.getManagedObject(); } @ManagedAttribute(\"the current service count\") public int getCount() { return getCountService().getCount(); } @ManagedOperation(value = \"adds the given value to the service count\", impact = \"ACTION\") public void addCount(@Name(\"count delta\") int value) { getCountService().addCount(value); } } The scan for Jetty JMX annotations is performed on the bean class and all the interfaces implemented by the bean class, then on the super-class and all the interfaces implemented by the super-class and so on until java.lang.Object is reached. For each type â class or interface, the corresponding *.jmx.*MBean is looked up and scanned as well with the same algorithm. For each type, the scan looks for the class-level annotation @ManagedObject. If it is found, the scan looks for method-level @ManagedAttribute and @ManagedOperation annotations; otherwise it skips the current type and moves to the next type to scan. The @ManagedObject annotation is used on a class at the top level to indicate that it should be exposed as an MBean. It has only one attribute to it which is used as the description of the MBean. The @ManagedAttribute annotation is used to indicate that a given method is exposed as a JMX attribute. This annotation is placed always on the getter method of a given attribute. Unless the readonly attribute is set to true in the annotation, a corresponding setter is looked up following normal naming conventions. For example if this annotation is on a method called String getFoo() then a method called void setFoo(String) would be looked up, and if found wired as the setter for the JMX attribute. The @ManagedOperation annotation is used to indicate that a given method is exposed as a JMX operation. A JMX operation has an impact that can be INFO if the operation returns a value without modifying the object, ACTION if the operation does not return a value but modifies the object, and \"ACTION_INFO\" if the operation both returns a value and modifies the object. If the impact is not specified, it has the default value of UNKNOWN. The @Name annotation is used to assign a name and description to parameters in method signatures so that when rendered by JMX consoles it is clearer what the parameter meaning is.","title":"Jetty JMX Support","component":"jetty","version":"12.1","name":"jmx","url":"/docs/jetty/12.1/programming-guide/arch/jmx.html","titles":[{"text":"Enabling JMX Support","hash":"enabling-jmx-support","id":1},{"text":"Enabling JMX Remote Access","hash":"remote","id":2},{"text":"JMX Remote Access Authorization","hash":"remote-authorization","id":3},{"text":"Securing JMX Remote Access with TLS","hash":"securing-jmx-remote-access-with-tls","id":4},{"text":"JMX Remote Access with Port Forwarding via SSH Tunnel","hash":"remote-ssh-tunnel","id":5},{"text":"Jetty JMX Annotations","hash":"annotation","id":6},{"text":"@ManagedObject","hash":"managedobject","id":7},{"text":"@ManagedAttribute","hash":"managedattribute","id":8},{"text":"@ManagedOperation","hash":"managedoperation","id":9}
1,{"text":"@Name","hash":"name","id":10}]},"49":{"id":49,"text":"The Jetty architecture is based on components, typically organized in a component tree. These components have an internal state that varies with the component life cycle (that is, whether the component is started or stopped), as well as with the component use at runtime. The typical example is a thread pool, whose internal state â such as the number of pooled threads or the job queue size â changes as the thread pool is used by the running client or server. In many cases, the component state change produces an event that is broadcast to listeners. Applications can register listeners to these components to be notified of the events they produce. This section lists the listeners available in the Jetty components, but the events and listener APIs are discussed in the component specific sections. Listeners common to both client and server: Component Listeners Connection Listeners TLS/SSL Listeners Listeners that are server specific: Request Processing Listeners Listeners that are client specific: Request and Response Listeners Connect Listeners","title":"Jetty Listeners","component":"jetty","version":"12.1","name":"listener","url":"/docs/jetty/12.1/programming-guide/arch/listener.html","titles":[]},"50":{"id":50,"text":"JSON is a wide-spread format for data exchange. Jetty offers a JSON library to parse JSON into objects, both synchronously and asynchronously, and to generate JSON from objects. The Maven coordinates for the Jetty JSON support are: <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-util-ajax</artifactId> <version>12.1.13</version> </dependency> JSON parsing is available in two flavors: Synchronous parsing, where the JSON document is fully available Asynchronous parsing, where the JSON document is not fully available, and it is provided in chunks to the parser. You can use asynchronous parsing also if the JSON document is fully available (there will be just one chunk representing the whole JSON document). You cannot use synchronous parsing without the full JSON document (the synchronous parser will produce an error, complaining that the JSON document is incomplete). For synchronous parsing, you can use the org.eclipse.jetty.util.ajax.JSON class: // Full JSON document. String json = \"\"\" { \"field\": \"value\", \"count\": 42, \"array\": [\"one\", \"two\"], \"object\": { \"size\": 13 } } \"\"\"; JSON parser = new JSON(); Object object = parser.parse(new JSON.StringSource(json)); // The object can be cast to a Map, given the JSON document structure. Map<String, Object> map = (Map<String, Object>)object; For asynchronous parsing, you can use org.eclipse.jetty.util.ajax.AsyncJSON: AsyncJSON parser = new AsyncJSON.Factory().newAsyncJSON(); // Simulate a read from the network of a // first, partial, sequence of JSON bytes. String jsonChunk1 = \"\"\" { \"field\": \"value\", \"cou\"\"\"; ByteBuffer byteBuffer1 = StandardCharsets.UTF_8.encode(jsonChunk1); parser.parse(byteBuffer1); // Simulate a read from the network of a second // sequence of JSON bytes that completes the first read. String jsonChunk2 = \"\"\" nt\": 42, \"array\": [\"one\", \"two\"], \"object\": { \"size\": 13 } } \"\"\"; ByteBuffer byteBuffer2 = StandardCharsets.UTF_8.encode(jsonChunk2); parser.parse(byteBuffer2); // When all the JSON chunks are parsed, complete the parser. Object object = parser.complete(); // The object can be cast to a Map, given the JSON document structure. Map<String, Object> map = (Map<String, Object>)object; By default, both parsers produce a Map<String, Object> for JSON objects. By default, the JSON parser produces Object[] for JSON arrays, while the AsyncJSON parser produces List<Object> for JSON arrays. For both JSON and AsyncJSON.Factory you can call setArrayConverter(Function<List<?>, Object>) to convert JSON arrays, provided as List<Object> by the implementation, into the preferred data structure, typically either a Java array or a Java list. By default, numbers are Long when they are integer (without a fractional part), Double when they are non-integer (with a fractional part). The Jetty JSON library supports convert
1ing JSON object into custom objects, using the class field (or the x-class field, in case class cannot be used). The Java class specified in the class or x-class field must either implement JSON.Convertible or be mapped to a JSON.Convertor in the JSON instance or the AsyncJSON.Factory instance. For example: String json = \"\"\" { \"x-class\": \"com.acme.Person\", \"firstName\": \"John\", \"lastName\": \"Doe\", \"age\": 42 \"phone\": { \"x-class\": \"com.acme.PhoneNumber\", \"number\": \"+1 800 123456\" }, \"address\": { \"x-class\": \"com.acme.Address\", \"address\": \"123 Main Street\" } } \"\"\"; // This class depends on the Jetty JSON library // by implementing JSON.Convertible. class PhoneNumber implements JSON.Convertible { private Parts parts; @Override public void fromJSON(Map<String, Object> object) { String number = (String)object.get(\"number\"); parts = parsePhoneNumber(number); } @Override public void toJSON(JSON.Output out) { out.add(\"x-class\", PhoneNumber.class.getName()); out.add(\"number\", parts.asString()); } // Split into Country Code, National Destination Code, and Subscriber Number. public record Parts(int cc, int ndc, int sn) { public String asString() { return \"+%d %d %d\".formatted(cc, ndc, sn); } } } // This class is independent of the Jetty JSON library, // and relies on a JSON.Convertor configured externally. class Address { private final String address; public Address(String address) { this.address = address; } public String getAddress() { return address; } } // This is the convertor for the Address class, // configured on the JSON or AsyncJSON.Factory instances. class AddressConvertor implements JSON.Convertor { @Override public Object fromJSON(Map<String, Object> object) { String address = (String)object.get(\"address\"); return new Address(address); } @Override public void toJSON(Object object, JSON.Output out) { Address address = (Address)object; out.add(\"x-class\", Address.class.getName()); out.add(\"address\", address.getAddress()); } } // This record is independent of the Jetty JSON library // but records do not need external configuration for // conversion to/from the JSON format. record Person(String firstName, String lastName, int age, PhoneNumber phone) { } JSON parser = new JSON(); // Configure the convertor for the Address class. parser.addConvertor(Address.class, new AddressConvertor()); Person person = (Person)parser.parse(new JSON.StringSource(json)); Unlike other popular JSON libraries, the Jetty JSON library does not use Java annotations to map Java object and fields to JSON objects and fields. The Jetty JSON library provides useful convertors out of the box: JSONCollectionConvertor that converts Collection instances as JSON objects, so that the specific Collection implementation (if it is a public class) can be restored. This is useful when the Collection is a HashSet or ArrayDeque, or when it needs to be a specific List implementation such as LinkedList. JSONDateConvertor, that converts from/to java.util.Date. JSONEnumConvertor, that converts from/to enum constants. JSONPojoConvertor, that converts from/to plain old Java objects (POJO) using reflection to invoke getters and setters. JSON generation is available via the org.eclipse.jetty.util.ajax.JSON class. Simple Map<String, Object> objects can be directly generated: JSON generator = new JSON(); Map<String, Object> object = new HashMap<>(); object.put(\"user\", \"John Doe\"); object.put(\"score\", 1234); object.put(\"friends\", List.of(\"Mary Major\", \"Richard Roe\")); String json = generator.toJSON(object); // The object above is converted to this JSON document. json = \"\"\" { \"user\": \"John Doe\", \"score\": 1234, \"friends\": [\"Mary Major\", \"Richard Roe\"] } \"\"\"; The JSON object used as the parser and as the generator is typically just one instance, used for both parsing and generation. This also centralizes the configuration of convertors. Similarly to the custom objects parsing, generation of custom objects into the JSON format relies on: The object is composed (recursively) only of simple JSON types: Map<String, Object>, String, Number (including primitive number types), Boolean (including boolean), and Collection or arrays of these simple types. The object being an instance of a Java record. The class of the object implementing JSON.Convertible. A JSON.Convertor configured in the JSON instance for the class of the object. Generic objects that do not match the requisites above are converted to strings by calling toString(), and therefore the object structure will be lost (and the object cannot be reconstructed during JSON parsing).","title":"Jetty JSON Supp
1ort","component":"jetty","version":"12.1","name":"json","url":"/docs/jetty/12.1/programming-guide/arch/json.html","titles":[{"text":"JSON Parsing","hash":"parsing","id":1},{"text":"Custom Objects Parsing","hash":"parsing-custom","id":2},{"text":"JSON Generation","hash":"generation","id":3},{"text":"Custom Objects Generation","hash":"generation-custom","id":4}]},"51":{"id":51,"text":"The Jetty HTTP client module provides easy-to-use APIs and utility classes to perform HTTP (or HTTPS) requests. Jettyâs HTTP client is non-blocking and asynchronous. It offers an asynchronous API that never blocks for I/O, making it very efficient in thread utilization and well suited for high performance scenarios such as load testing or parallel computation. However, when all you need to do is to perform a GET request to a resource, Jettyâs HTTP client offers also a synchronous API; a programming interface where the thread that issued the request blocks until the request/response conversation is complete. Jettyâs HTTP client supports different HTTP formats: HTTP/1.1, HTTP/2, HTTP/3 and FastCGI. Each format has a different HttpClientTransport implementation, that in turn use a low-level transport to communicate with the server. This means that the semantic of an HTTP request such as: \" GET the resource /index.html \" can be carried over the low-level transport in different formats. The most common and default format is HTTP/1.1. That said, Jettyâs HTTP client can carry the same request using the HTTP/2 format, the HTTP/3 format, or the FastCGI format. Furthermore, every format can be transported over different low-level transport, such as TCP, Unix-Domain sockets, QUIC or memory. Supports for Unix-Domain sockets requires Java 16 or later, since Unix-Domain sockets support has been introduced in OpenJDK with JEP 380. The FastCGI format is used in Jettyâs FastCGI support that allows Jetty to work as a reverse proxy to PHP (exactly like Apache or Nginx do) and therefore be able to serve, for example, WordPress websites, often in conjunction with Unix-Domain sockets (although it is possible to use FastCGI via network too). The HTTP/2 format allows Jettyâs HTTP client to perform requests using HTTP/2 to HTTP/2 enabled websites, see also Jettyâs HTTP/2 support. The HTTP/3 format allows Jettyâs HTTP client to perform requests using HTTP/3 to HTTP/3 enabled websites, see also Jettyâs HTTP/3 support. Out of the box features that you get with the Jetty HTTP client include: Redirect support â redirect codes such as 302 or 303 are automatically followed. Cookies support â cookies sent by servers are stored and sent back to servers in matching requests. Authentication support â HTTP \"Basic\", \"Digest\" and \"SPNEGO\" authentications are supported, others are pluggable. Forward proxy support â HTTP proxying, SOCKS4 and SOCKS5 proxying. Response content decoding â response content compressed by the server is transparently decompressed. The Jetty artifact that provides the main HTTP client implementation is jetty-client. The Maven artifact coordinates are the following: <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-client</artifactId> <version>12.1.13</version> </dependency> The main class is named org.eclipse.jetty.client.HttpClient. You can think of a HttpClient instance as a browser instance. Like a browser it can make requests to different domains, it manages redirects, cookies and authentication, you can configure it with a forward proxy, and it provides you with the responses to the requests you make. In order to use HttpClient, you must instantiate it, configure it, and then start it: // Instantiate HttpClient. HttpClient httpClient = new HttpClient(); // Configure HttpClient, for example: httpClient.setFollowRedirects(false); // Start HttpClient. httpClient.start(); You may create multiple instances of HttpClient, but typically one instance is enough for an application. There are several reasons for having multiple HttpClient instances including, but not limited to: You want to specify different c
1onfiguration parameters (for example, one instance is configured with a forward proxy while another is not). You want the two instances to behave like two different browsers and hence have different cookies, different authentication credentials, etc. You want to use different HttpClientTransports. Like browsers, HTTPS requests are supported out-of-the-box (see this section for the TLS configuration), as long as the server provides a valid certificate. In case the server does not provide a valid certificate (or in case it is self-signed) you want to customize HttpClient's TLS configuration as described in this section. It is recommended that when your application stops, you also stop the HttpClient instance (or instances) that you are using. // Stop HttpClient. httpClient.stop(); Stopping HttpClient makes sure that the memory it holds (for example, ByteBuffer pools, authentication credentials, cookies, etc.) is released, and that the thread pool and scheduler are properly stopped allowing all threads used by HttpClient to exit. You cannot call HttpClient.stop() from one of its own threads, as it would cause a deadlock. It is recommended that you stop HttpClient from an unrelated thread, or from a newly allocated thread, for example: // Stop HttpClient from a new thread. // Use LifeCycle.stop(...) to rethrow checked exceptions as unchecked. new Thread(() -> LifeCycle.stop(httpClient)).start(); A HttpClient instance can be thought as a browser instance, and it manages the following components: A CookieStore (see this section). A AuthenticationStore (see this section). A ProxyConfiguration (see this section). A set of ContentDecoder.Factorys (see this section). A set of Destinations, where each Destination manages a pool of connections. A Destination is the client-side component that represents an origin server, and manages a queue of requests for that origin, and a pool of connections to that origin. An origin may be simply thought as the tuple (scheme, host, port) and it is where the client connects to in order to communicate with the server. However, this is not enough. If you use HttpClient to write a proxy you may have different clients that want to contact the same server. In this case, you may not want to use the same proxy-to-server connection to proxy requests for both clients, for example for authentication reasons: the server may associate the connection with authentication credentials, and you do not want to use the same connection for two different users that have different credentials. Instead, you want to use different connections for different clients and this can be achieved by \"tagging\" a destination with a tag object that represents the remote client (for example, it could be the remote client IP address). Two origins with the same (scheme, host, port) but different tag create two different destinations and therefore two different connection pools. However, also this is not enough. It is possible for a server to speak different protocols on the same port. A connection may start by speaking one protocol, for example HTTP/1.1, but then be upgraded to speak a different protocol, for example HTTP/2. After a connection has been upgraded to a second protocol, it cannot speak the first protocol anymore, so it can only be used to communicate using the second protocol. Two origins with the same (scheme, host, port, tag) but different protocol create two different destinations and therefore two different connection pools. Finally, it is possible for a server to speak the same protocol over different low-level transports (represented by Transport), for example TCP and Unix-Domain. Two origins with the same (scheme, host, port, tag, protocol) but different low-level transports create two different destinations and therefore two different connection pools. Therefore, an origin is identified by the tuple (scheme, host, port, tag, protocol, transport). A Destination manages a org.eclipse.jetty.client.ConnectionPool, where connections to a particular origin are pooled for performance reasons: opening a connection is a costly operation, and itâs better to reuse them for multiple requests. Remember that to select a specific Destination you must select a specific origin, and that an origin is identified by the tuple (scheme, host, port, tag, protocol, transport), so you can have multiple Destinations for the same host and port, and therefore multiple ConnectionPools You can access the ConnectionPool in this way: HttpClient httpClient = new HttpClient(); httpClient.start(); ConnectionPool connectionPool = httpClient.getDestinations().stream() // Find the destination by filtering on the Origin. .filter(destination -> destination.getOrigin().getAddress().getHost().equals(\"domain.com\")) .findAny() // Get the ConnectionPool. .map(Destination::getConnectionPool) .orElse(null); Jettyâs client library provides the following ConnectionPool implementations: DuplexConnectionPool, historically the first implementation, only used by the HTTP/1.1 transport. MultiplexConnectionPool, the generic implementation valid for any transport where connections are reused with a most recently used algorithm (that is, the connections most recently returned to the connection pool are the more likely to be used again). RoundRobinConnectionPool, similar to MultiplexConnectionPool but where connections are reused with a round-robin algorithm. RandomConnectionPool, similar to MultiplexConnectionPool but where connections are reused with an algorithm that chooses them randomly. The ConnectionPool implementation can be customized for each destination in by setting a ConnectionPool.Factory on the HttpClientTrans
1port: HttpClient httpClient = new HttpClient(); httpClient.start(); // The max number of connections in the pool. int maxConnectionsPerDestination = httpClient.getMaxConnectionsPerDestination(); // The max number of requests per connection (multiplexing). // Start with 1, since this value is dynamically set to larger values if // the transport supports multiplexing requests on the same connection. int maxRequestsPerConnection = 1; // Set the ConnectionPool.Factory using a lambda. httpClient.getHttpClientTransport().setConnectionPoolFactory(destination -> new RoundRobinConnectionPool(destination, maxConnectionsPerDestination, maxRequestsPerConnection)); ConnectionPool offers the ability to pre-create connections by calling ConnectionPool.preCreateConnections(int). Pre-creating the connections saves the time and processing spent to establish the TCP connection, performing the TLS handshake (if necessary) and, for HTTP/2 and HTTP/3, perform the initial protocol setup. This is particularly important for HTTP/2 because in the initial protocol setup the server informs the client of the maximum number of concurrent requests per connection (otherwise assumed to be just 1 by the client). The scenarios where pre-creating connections is useful are, for example: Load testing, where you want to prepare the system with connections already created to avoid paying of cost of connection setup. Proxying scenarios, often in conjunction with the use of RoundRobinConnectionPool or RandomConnectionPool, where the proxy creates early the connections to the backend servers. This is an example of how to pre-create connections: HttpClient httpClient = new HttpClient(); httpClient.start(); // For HTTP/1.1, you need to explicitly configure to initialize connections. if (httpClient.getHttpClientTransport() instanceof HttpClientTransportOverHTTP http1) http1.setInitializeConnections(true); // Create a dummy request to the server you want to pre-create connections to. Request request = httpClient.newRequest(\"https://host/\"); // Resolve the destination for that request. Destination destination = httpClient.resolveDestination(request); // Pre-create, for example, half of the connections. int preCreate = httpClient.getMaxConnectionsPerDestination() / 2; CompletableFuture<Void> completable = destination.getConnectionPool().preCreateConnections(preCreate); // Wait for the connections to be created. completable.get(5, TimeUnit.SECONDS); Pre-creating connections for secure HTTP/1.1 requires you to call HttpClientTransportOverHTTP.setInitializeConnections(true), otherwise only the TCP connection is established, but the TLS handshake is not initiated. To initialize connections for secure HTTP/1.1, the client sends an initial OPTIONS * HTTP/1.1 request to the server. The server must be able to handle this request without closing the connection (in particular it must not add the Connection: close header in the response). When a request is sent, an origin is computed from the request; HttpClient uses that origin to find (or create if it does not exist) the correspondent destination. The request is then queued onto the destination, and this causes the destination to ask its connection pool for a free connection. If a connection is available, it is returned, otherwise a new connection is created. Once the destination has obtained the connection, it dequeues the request and sends it over the connection. The first request to a destination triggers the opening of the first connection. A second request with the same origin sent after the first request/response cycle is completed may reuse the same connection, depending on the connection pool implementation. A second request with the same origin sent concurrently with the first request will likely cause the opening of a second connection, depending on the connection pool implementation. The configuration parameter HttpClient.maxConnectionsPerDestination (see also the configuration section) controls the max number of connections that can be opened for a destination. If opening connections to a given origin takes a long time, then requests for that origin will queue up in the corresponding destination until the connections are established. To save the time spent opening connections, you can pre-create connections. Each connection can handle a limited number of concurrent requests. For HTTP/1.1, this number is always 1: there can only be one outstanding request for each connection. For HTTP/2 this number is determined by the server max_concurrent_stream setting (typically around 100, i.e. there can be up to 100 outstanding requests for every connection). When a destination has maxed out its number of connections, and all connections have maxed out their number of outstanding requests, more requests sent to that destination will be queued. When the request queue is full, the request will be failed. The configuration parameter HttpClient.maxRequestsQueuedPerDestination (see also the configuration section) controls the max number of requests that can be queued for a destination. HttpClient provides two types of APIs: a blocking API and a non-blocking API. The simpler way to perform a HTTP request is the following: HttpClient httpClient = new HttpClient(); httpClient.start(); // Perform a simple GET and wait for the response. ContentResponse response = httpClient.GET(\"http://domain.com/path?query\"); The method HttpClient.GET(...) performs a HTTP GET request to the given URI and returns a ContentResponse when the request/response conversation completes successfully. The ContentResponse object c
1ontains the HTTP response information: status code, headers and possibly content. The content length is limited by default to 2 MiB; for larger content see the section on response content handling. If you want to customize the request, for example by issuing a HEAD request instead of a GET, and simulating a browser user agent, you can do it in this way: ContentResponse response = httpClient.newRequest(\"http://domain.com/path?query\") .method(HttpMethod.HEAD) .agent(\"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:17.0) Gecko/20100101 Firefox/17.0\") .send(); This is a shorthand for: Request request = httpClient.newRequest(\"http://domain.com/path?query\"); request.method(HttpMethod.HEAD); request.agent(\"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:17.0) Gecko/20100101 Firefox/17.0\"); ContentResponse response = request.send(); You first create a request object using httpClient.newRequest(...), and then you customize it using the fluent API style (that is, a chained invocation of methods on the request object). When the request object is customized, you call request.send() that produces the ContentResponse when the request/response conversation is complete. The Request object, despite being mutable, cannot be reused for other requests. This is true also when trying to send two or more identical requests: you have to create two or more Request objects. Simple POST requests also have a shortcut method: ContentResponse response = httpClient.POST(\"http://domain.com/entity/1\") .param(\"p\", \"value\") .send(); The POST parameter values added via the param() method are automatically URL-encoded. Jettyâs HttpClient automatically follows redirects, so it handles the typical web pattern POST/Redirect/GET, and the response object contains the content of the response of the GET request. Following redirects is a feature that you can enable/disable on a per-request basis or globally. File uploads also require one line, and make use of java.nio.file classes: ContentResponse response = httpClient.POST(\"http://domain.com/upload\") .file(Paths.get(\"file_to_upload.txt\"), \"text/plain\") .send(); It is possible to impose a total timeout for the request/response conversation using the Request.timeout(...) method as follows: ContentResponse response = httpClient.newRequest(\"http://domain.com/path?query\") .timeout(5, TimeUnit.SECONDS) .send(); In the example above, when the 5 seconds expire, the request/response cycle is aborted and a java.util.concurrent.TimeoutException is thrown. So far we have shown how to use Jetty HTTP client in a blocking style â that is, the thread that issues the request blocks until the request/response conversation is complete. This section will look at Jettyâs HttpClient non-blocking, asynchronous APIs that are perfectly suited for large content downloads, for parallel processing of requests/responses and in cases where performance and efficient thread and resource utilization is a key factor. The asynchronous APIs rely heavily on listeners that are invoked at various stages of request and response processing. These listeners are implemented by applications and may perform any kind of logic. The implementation invokes these listeners in the same thread that is used to process the request or response. Therefore, if the application code in these listeners takes a long time to execute, the request or response processing is delayed until the listener returns. If you need to execute application code that takes long time inside a listener, it is typically better to spawn your own thread to execute the code that takes long time. In this way you return from the listener as soon as possible and allow the implementation to resume the processing of the request or response (or of other requests/responses). Request and response processing are executed by two different threads and therefore may happen concurrently. A typical example of this concurrent processing is an echo server, where a large upload may be concurrent with the large download echoed back. Remember that responses may be processed and completed before requests; a typical example is a large upload that triggers a quick response, for example an error, by the server: the response may arrive and be completed while the request content is still being uploaded. The application thread that calls Request.send(Response.CompleteListener) performs the processing of the request until either the request is fully sent over the network or until it would block on I/O, then it returns (and therefore never blocks). If it would block on I/O, the thread asks the I/O system to emit an event when the I/O will be ready to continue, then returns. When such an event is fired, a thread taken from the HttpClient thread pool will resume the processing of the request. Response are processed from the I/O thread taken from the HttpClient thread pool that processes the event that bytes are ready to be read. Response processing continues until either the response is fully processed or until it would block for I/O. If it would block for I/O, the thread asks the I/O system to emit an event when the I/O will be ready to continue, then returns. When such an event is fired, a (possibly different) thread taken from the HttpClient thread pool will resume the processing of the response. When the request and the response are both fully processed, the thread that finished the last processing (usually the thread that processes the response, but may also be the thread that processes the request â if the request takes more time than the response to be processed) is used to dequeue the next request for the same destination and to process it. A simple non-blocking GET request that discards the response content can be written in this way: httpClient.newRequest(\"http://domain.com/path\") .send(result -> { // Your logic here }); Method Request.send(Response.CompleteListener) returns void and does not block; the Response.CompleteListener lambda provided as a parameter is notified when the request/response conversation is complete, and the Result parameter allows you to access the request and response objects as well as failures, if any. You can impose a total timeout for the request/response conversation in the same way used by the synchronous API: httpClient.newRequest(\"http://domain.com/path\") .timeout(3, TimeUnit.SECONDS) .send(result -> { /* Your logic here */ }); The example above will impose a total timeout of 3 seconds on the request/response conversation. The HTTP client APIs use listeners extensively to provide hooks for all possible request and response events: httpClient.newRequest(\"http://domain.com/path\") // Add request hooks. .onRequestQueued(request -> { /* ... */ }) .onRequestBegin(request -> { /* ... */ }) .onRequestHeaders(request -> { /* ... */ }) .onRequestCommit(request -> { /* ... */ }) .onRequestContent((request, content) -> { /* ... */ }) .onRequestFailure((request, failure) -> { /* ... */ }) .onRequestSuccess(request -> { /* ... */ }) .onRequestListener(new Request.Listener() {}) // For all request events. // Add response hooks. .onResponseBegin(response -> { /* ... */ }) .onResponseHeader((response, field) -> true) .onResponseHeaders(response -> { /* ... */ }) .onResponseContentAsync((response, chunk, demander) -> demander.run()) .onResponseFailure((response, failure) -> { /* ... */ }) .onResponseSuccess(response -> { /* ... */ }) .onResponseListener(new Response.Listener() {}) // For all response events. // Result hook. .send(result -> { /* ... */ }); This makes Jetty HTTP client suitable for HTTP load testing because, for example, you can accurately time every step of the request/response conversation (thus knowing where the request/response time is really spent). The code in request and response listeners should not block. It is allowed to call other blocking APIs, such as the Java file-system APIs. You should not call blocking APIs that: Wait for other request or response events, such as receiving other request or response content chunks. Use wait/notify primitives such as those available in java.lang.Object or java.util.concurrent.locks.Condition. If the listener co
1de blocks, the implementation also will be blocked and will not be able to advance the processing of the request or response that the listener code is likely waiting for, causing a deadlock. Have a look at the Request.Listener class to know about request events, and to the Response.Listener class to know about response events. Jettyâs HttpClient provides a number of utility classes off the shelf to handle request content. You can provide request content as String, byte[], ByteBuffer, java.nio.file.Path, InputStream, and provide your own implementation of org.eclipse.jetty.client.Request.Content. Hereâs an example that provides the request content using java.nio.file.Paths: ContentResponse response = httpClient.POST(\"http://domain.com/upload\") .body(new PathRequestContent(\"text/plain\", Paths.get(\"file_to_upload.txt\"))) .send(); Alternatively, you can use FileInputStream via the InputStreamRequestContent utility class: ContentResponse response = httpClient.POST(\"http://domain.com/upload\") .body(new InputStreamRequestContent(\"text/plain\", new FileInputStream(\"file_to_upload.txt\"))) .send(); Since InputStream is blocking, then also the send of the request will block if the input stream blocks, even in case of usage of the non-blocking HttpClient APIs. If you have already read the content in memory, you can pass it as a byte[] (or a String) using the BytesRequestContent (or StringRequestContent) utility class: ContentResponse bytesResponse = httpClient.POST(\"http://domain.com/upload\") .body(new BytesRequestContent(\"text/plain\", bytes)) .send(); ContentResponse stringResponse = httpClient.POST(\"http://domain.com/upload\") .body(new StringRequestContent(\"text/plain\", string)) .send(); If the request content is not immediately available, but your application will be notified of the content to send, you can use AsyncRequestContent in this way: AsyncRequestContent content = new AsyncRequestContent(); httpClient.POST(\"http://domain.com/upload\") .body(content) .send(result -> { // Your logic here }); // Content not available yet here. // An event happens in some other class, in some other thread. class ContentPublisher { void publish(byte[] bytes, boolean lastContent) { // Wrap the bytes into a new ByteBuffer. ByteBuffer buffer = ByteBuffer.wrap(bytes); // Write the content. content.write(buffer, Callback.NOOP); // Close AsyncRequestContent when all the content is arrived. if (lastContent) content.close(); } } While the request content is awaited and consequently uploaded by the client application, the server may be able to respond (at least with the response headers) completely asynchronously. In this case, Response.Listener callbacks will be invoked before the request is fully sent. This allows fine-grained control of the request/response conversation: for example the server may reject contents that are too big, send a response to the client, which in turn may stop the content upload. Another way to provide request content is by using an OutputStreamRequestContent, which allows applications to write request content when it is available to the OutputStream provided by OutputStreamRequestContent: OutputStreamRequestContent content = new OutputStreamRequestContent(); // Use try-with-resources to close the OutputStream when all content is written. try (OutputStream output = content.getOutputStream()) { httpClient.POST(\"http://localhost:8080/\") .body(content) .send(result -> { // Your logic here }); // Content not available yet here. // Content is now available. byte[] bytes = new byte[]{'h', 'e', 'l', 'l', 'o'}; output.write(bytes); } // End of try-with-resource, output.close() called automatically to signal end of content. Response content may be encoded by the server, and this is signaled by the presence of the Content-Encoding response header. Typically, encoding the response content means that it is compressed by the server, to save bytes transmitted over the network. The most common encodings are: gzip, using the gzip algorithm. br, using the brotli algorithm. zstd, using the zstdandard algorithm. Jettyâs HttpClient supports by default the gzip encoding, but the support is pluggable and discovered via Javaâs ServiceLoader mechanism. In order to add support for gzip, brotli and zstandard, it is enough to add to your classpath the correspondent Jetty artifacts with the implementation, respectively: jetty-compression-gzip jetty-compression-brotli jetty-compression-zstandard The Maven artifact coordinates are the following: <dependencies> <dependency> <groupId>org.eclipse.jetty.compression</groupId> <artifactId>jetty-compression-gzip</artifactId> <version>12.1.13</version> </dependency> <dependency> <groupId>org.eclipse.jetty.compression</groupId> <artifactId>jetty-compression-brotli</artifactId> <version>12.1.13</version> </dependency> <dependency> <groupId>org.eclipse.jetty.compression</groupId> <artifactId>jetty-compression-zstandard</artifactId> <version>12.1.13</version> </dependency> </dependencies> The Jetty artifacts jetty-compression-brotli and jetty-compression-zstandard access respectively the Brotli and Zstandard implementations, that are written in native code. Since Java 22, the JVM emits a warning message when Java code tries to access code in native libraries. For example with Java 25: WARNING: A restricted method in java.lang.System has been called WARNING: java.lang.System::loadLibrary has been called by com.aayushatharva.brotli4j.Brotli4jLoader in an unnamed module (file:/home/simon/.m2/repository/com/aayushatharva/brotli4j/brotli4j/1.17.0/brotli4j-1.17.0.jar) WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module WARNING: Restricted methods will be blocked in a future release unless native access is enabled To avoid the warning, you can start the JVM as
1suggested by the warning message above, by adding --enable-native-access=ALL-UNNAMED on the command line. This grants any code in the class-path access to any native library. If you are running in JPMS mode, you can explicitly grant access just to the JPMS module(s) that require it. In the case above, you need --enable-native-access=com.aayushatharva.brotli4j. If you want to remove support for automatic response content decoding (for example in proxies), use the following code: HttpClient httpClient = new HttpClient(); // Starting HttpClient will discover response content decoders // implementations from the module-path or class-path via ServiceLoader. httpClient.start(); // Remove all response content decoders. httpClient.getContentDecoderFactories().clear(); You can also provide your own implementation by implementing ContentDecoder.Factory. If you want to customize the implementations mentioned previously, you can do it in this way, using the utility class CompressionContentDecoderFactory from the org.eclipse.jetty.compression:jetty-compression-client Maven artifact: HttpClient httpClient = new HttpClient(); httpClient.start(); // Remove all the default response content decoders. httpClient.getContentDecoderFactories().clear(); // Only support GZIP, customized. GzipCompression gzip = new GzipCompression(); GzipDecoderConfig gzipDecoderConfig = new GzipDecoderConfig(); // Customize the decoder buffer size. gzipDecoderConfig.setBufferSize(4096); gzip.setDefaultDecoderConfig(gzipDecoderConfig); httpClient.getContentDecoderFactories().put(new CompressionContentDecoderFactory(gzip)); Jettyâs HttpClient allows applications to handle response content in different ways. You can buffer the response content in memory; this is done when using the blocking APIs and the content is buffered within a ContentResponse up to 2 MiB. If you want to control the length of the response content (for example limiting to values smaller than the default of 2 MiB), then you can use a org.eclipse.jetty.client.CompletableResponseListener in this way: Request request = httpClient.newRequest(\"http://domain.com/path\"); // Limit response content buffer to 512 KiB. CompletableFuture<ContentResponse> completable = new CompletableResponseListener(request, 512 * 1024) .send(); // You can attach actions to the CompletableFuture, // to be performed when the request+response completes. // Wait at most 5 seconds for request+response to complete. ContentResponse response = completable.get(5, TimeUnit.SECONDS); If the response content length is exceeded, the response will be aborted, and an exception will be thrown by method get(...). You can accumulate the response content in memory also using the non-blocking APIs, via the RetainingResponseListener utility class: httpClient.newRequest(\"http://domain.com/path\") // Accumulate response content up to 8 MiB. .send(new RetainingResponseListener(8 * 1024 * 1024) { @Override public void onComplete(Result result) { if (!result.isFailed()) { // The Content.Source must be fully consumed. Content.Source source = takeContentAsContentSource(); // Your logic here. } } }); If you want to avoid accumulation, you can wait for the response and then stream the content using the InputStreamResponseListener utility class: // Use try-with-resources to make sure that resources // are released even if the InputStream is not used. try (InputStreamResponseListener listener = new InputStreamResponseListener()) { httpClient.newRequest(\"http://domain.com/path\") .send(listener); // Wait for the response headers to arrive. Response response = listener.get(5, TimeUnit.SECONDS); // Look at the response before streaming the content. if (response.getStatus() == HttpStatus.OK_200) { // Use try-with-resources to close input stream. try (InputStream responseContent = listener.getInputStream()) { // Your logic here } } else { response.abort(new IOException(\"Unexpected HTTP response\")); } } If you want to save the response content to a file, you can use the PathResponseListener utility class: Path savePath = Path.of(\"/path/to/save/file.bin\"); // Typical usage as a response listener. PathResponseListener listener = new PathResponseListener(savePath, true); httpClient.newRequest(\"http://domain.com/path\") .send(listener); // Wait for the response content to be saved. var result = listener.get(5, TimeUnit.SECONDS); // Alternative usage with CompletableFuture. var completable = PathResponseListener.write(httpClient.newRequest(\"http://domain.com/path\"), savePath, true); completable.whenComplete((pathResponse, failure) -> { // Your logic here. }); Finally, letâs look at the advanced usage of the response content handling. The response content is provided by the HttpClient implementation to application listeners following the read/demand model of org.eclipse.jetty.io.Content.Source. The listener that follows this model is Response.ContentSourceListener. After the response headers have been processed by the HttpClient implementation, Response.ContentSourceListener.onContentSource(response, contentSource) is invoked once and only once. This allows the application to control precisely the read/demand loop: when to read a chunk, how to process it and when to demand the next one. You must provide a ContentSourceListener whose implementation reads a Content.Chunk from the provided Content.Source, as explained in this section. The invocation of onContentSource(Request, Content.Source) and of the demand callback passed to contentSource.demand(Runnable) are serialized with respect to asynchronous events such as timeouts or an asynchronous call to Request.abort(Throwable). This means that these asynchronous events are not processed until the invocation of onContentSource(Request, Content.Source) returns, or until the invocation of the demand callback returns. With this model, applications should not worry too much about concurrent asynchronous events happening during response content handling, because they will eventually see the events as failures while reading the response content. Demanding for content and consuming the content are orthogonal activities. An application can read, store aside the Content.Chunk objects without releasing them (to consume them later), and demand for more chunks, but it must call Chunk.retain() on the stored chunks, and arrange to release them after they have been consumed later. If not done carefully, this may lead to excessive memory consumption, since the ByteBuffer bytes are not consumed. Releasing the Content.Chunks will result in the ByteBuffers to be disposed/recycled and may be performed at any time. An application can also read one chunk of content, consume it, release it, and then not demand for more content until a later time. Subclass Response.AsyncContentListener overrides the behavior of Response.ContentSourceListener; when an application implements AsyncContentListener.onContent(response, chunk, demander), it can control the disposing/recycling of the ByteBuffer by releasing the chunk and it can control when to demand one more chunk by calling demander.run(). Subclass Response.ContentListener overrides the behavior of Response.AsyncContentListener; when an application implementing its onContent(response, buffer) returns from the method itself, it will both the effect of disposing/recycling the buffer and the effect of demanding one more chunk of content. An application that implements a forwarder between two servers can be implemented efficie
1ntly by handling the response content without copying the ByteBuffer bytes as in the following example: // Prepare a request to server1, the source. Request request1 = httpClient.newRequest(host1, port1) .path(\"/source\"); // Prepare a request to server2, the sink. AsyncRequestContent content2 = new AsyncRequestContent(); Request request2 = httpClient.newRequest(host2, port2) .path(\"/sink\") .body(content2); request1.onResponseContentSource(new Response.ContentSourceListener() { @Override public void onContentSource(Response response, Content.Source contentSource) { // Only execute this method the very first time // to initialize the request to server2. request2.onRequestCommit(request -> { // Only when the request to server2 has been sent, // then demand response content from server1. contentSource.demand(() -> forwardContent(response, contentSource)); }); // Send the request to server2. request2.send(result -> System.getLogger(\"forwarder\").log(INFO, \"Forwarding to server2 complete\")); } private void forwardContent(Response response, Content.Source contentSource) { // Read one chunk of content. Content.Chunk chunk = contentSource.read(); if (chunk == null) { // The read chunk is null, demand to be called back // when the next one is ready to be read. contentSource.demand(() -> forwardContent(response, contentSource)); // Once a demand is in progress, the content source must not be read // nor demanded again until the demand callback is invoked. return; } // Check if the chunk is last and empty, in which case the // read/demand loop is done. Demanding again when the terminal // chunk has been read will invoke the demand callback with // the same terminal chunk, so this check must be present to // avoid infinitely demanding and reading the terminal chunk. if (chunk.isLast() && !chunk.hasRemaining()) { chunk.release(); return; } // When a response chunk is received from server1, forward it to server2. content2.write(chunk.getByteBuffer(), Callback.from(() -> { // When the request chunk is successfully sent to server2, // release the chunk to recycle the buffer. chunk.release(); // Then demand more response content from server1. contentSource.demand(() -> forwardContent(response, contentSource)); }, x -> { chunk.release(); response.abort(x); })); } }); // When the response content from server1 is complete, // complete also the request content to server2. request1.onResponseSuccess(response -> content2.close()); // Send the request to server1. request1.send(result -> System.getLogger(\"forwarder\").log(INFO, \"Sourcing from server1 complete\")); The communication between client and server happens over a low-level transport, and applications can specify the low-level transport to use for each request. This gives client applications great flexibility, because they can use the same HttpClient instance to communicate, for example, with an external third party web application via TCP, to a different process via Unix-Domain sockets, and efficiently to the same process via memory. Client application can also choose more esoteric configurations such as using QUIC, typically used to transport HTTP/3, to transport HTTP/1.1 or HTTP/2, because QUIC provides reliable and ordered communication like TCP does. Provided you have configured a UnixDomainServerConnector on the server, this is how you can configure a request to use Unix-Domain sockets: // This is the path where the server \"listens\" on. Path unixDomainPath = Path.of(\"/path/to/server.sock\"); // Creates a ClientConnector. ClientConnector clientConnector = new ClientConnector(); // You can use Unix-Domain for HTTP/1.1. HttpClientTransportOverHTTP http1Transport = new HttpClientTransportOverHTTP(clientConnector); // You can use Unix-Domain also for HTTP/2. HTTP2Client http2Client = new HTTP2Client(clientConnector); HttpClientTransportOverHTTP2 http2Transport = new HttpClientTransportOverHTTP2(http2Client); // You can use Unix-Domain also for the dynamic transport. ClientConnectionFactory.Info http1 = HttpClientConnectionFactory.HTTP11; ClientConnectionFactoryOverHTTP2.HTTP2 http2 = new ClientConnectionFactoryOverHTTP2.HTTP2(http2Client);
1 HttpClientTransportDynamic dynamicTransport = new HttpClientTransportDynamic(clientConnector, http1, http2); // Choose the transport you prefer for HttpClient, for example the dynamic transport. HttpClient httpClient = new HttpClient(dynamicTransport); httpClient.start(); ContentResponse response = httpClient.newRequest(\"jetty.org\", 80) // Specify that the request must be sent over Unix-Domain. .transport(new Transport.TCPUnix(unixDomainPath)) .send(); In the same way, if you have configured a MemoryConnector on the server, this is how you can configure a request to use memory for communication: // The server-side MemoryConnector speaking HTTP/1.1. Server server = new Server(); MemoryConnector memoryConnector = new MemoryConnector(server, new HttpConnectionFactory()); server.addConnector(memoryConnector); // ... // The code above is the server-side. // ---- // The code below is the client-side. HttpClient httpClient = new HttpClient(); httpClient.start(); // Use the MemoryTransport to communicate with the server-side. Transport transport = new MemoryTransport(memoryConnector); httpClient.newRequest(\"http://localhost/\") // Specify the Transport to use. .transport(transport) .send(); This is a fancy example of how to mix HTTP versions and low-level transports: HttpClient httpClient = new HttpClient(new HttpClientTransportDynamic(clientConnector, http2, http1, http3)); httpClient.start(); // Make a TCP request to a 3rd party web application. ContentResponse thirdPartyResponse = httpClient.newRequest(\"https://third-party.com/api\") // No need to specify the Transport, TCP will be used by default. .send(); // Upload the third party response content to a validation process. ContentResponse validatedResponse = httpClient.newRequest(\"http://localhost/validate\") // The validation process is available via Unix-Domain. .transport(new Transport.TCPUnix(unixDomainPath)) .method(HttpMethod.POST) .body(new BytesRequestContent(thirdPartyResponse.getContent())) .send(); // Process the validated response intra-process by sending // it to another web application in the same Jetty server. ContentResponse response = httpClient.newRequest(\"http://localhost/process\") // The processing is in-memory. .transport(new MemoryTransport(memoryConnector)) .method(HttpMethod.POST) .body(new BytesRequestContent(validatedResponse.getContent())) .send(); In order to send a request, it is necessary to obtain a connection, as explained in the request processing section. The HTTP/1.1 protocol may send only one request at a time on a single connection, while multiplexed protocols such as HTTP/2 may send many requests at a time on a single connection. You can access the connection information, for example the local and remote SocketAddress, or the SslSessionData if the connection is secured, in the following way: HttpClient httpClient = new HttpClient(); httpClient.start(); ContentResponse response = httpClient.newRequest(\"http://domain.com/path\") // The connection information is only available starting from the request begin event. .onRequestBegin(request -> { Connection connection = request.getConnection(); // Obtain the address of the server. SocketAddress remoteAddress = connection.getRemoteSocketAddress(); System.getLogger(\"connection\").log(INFO, \"Server address: %s\", remoteAddress); // Obtain the SslSessionData. EndPoint.SslSessionData sslSessionData = connection.getSslSessionData(); if (sslSessionData != null) System.getLogger(\"connection\").log(INFO, \"SslSessionData: %s\", sslSessionData); }) .send(); The connection information is only available when the request is associated with a connection. This means that the connection is not available in the request queued event, but only starting from the request begin event. For more information about request events, see this section. In order to send HTTP requests, a connection is necessary, as explained in the request processing section. HTTP/1.1 and HTTP/2 use SocketChannel.connect(SocketAddress) to establish a connection with the server, either via the TCP transport or via the Unix-Domain transport. You can listen to these connect events using a ClientConnector.ConnectListener, for example to record connection establishment times: ClientConnector clientConnector = new ClientConnector(); clientConnector.addEventListener(new ClientConnector.ConnectListener() { private final ConcurrentMap<SocketChannel, Long> times = new ConcurrentHashMap<>(); @Override public void onConnectBegin(SocketChannel socketChannel, SocketAddress socketAddress) { times.put(socketChannel, System.nanoTime()); } @Override public void onConnectSuccess(SocketChannel socketChannel) { Long begin = times.remove(socketChannel); System.getLogger(\"connection\").log(INFO, \"established in %d ns\", System.nanoTime() - begin); } @Override public void onConnectFailure(SocketChannel socketChannel, SocketAddress socketAddress, Throwable failure) { Long begin = times.remove(socketChannel); System.getLogger(\"connection\").log(INFO, \"failed in %d ns\", System.nanoTime() - begin); } });
1 HttpClient httpClient = new HttpClient(new HttpClientTransportOverHTTP(clientConnector)); httpClient.start(); This could be particularly useful when you notice that your client application seem \"slow\" to send requests. The connect begin and connect success events, along with the request queued and request begin event (detailed here), allow you to understand whether it is the server being slow at accepting connections, or it is the client being slow at processing queued requests. Once the low-level connection has been established, you can be notified of connection events using a Connection.Listener, or more concretely ConnectionStatistics, as described in this section. HttpClient has a quite large number of configuration parameters. Please refer to the HttpClient javadocs for the complete list of configurable parameters. The most common parameters are: HttpClient.idleTimeout: same as ClientConnector.idleTimeout described in this section. HttpClient.connectBlocking: same as ClientConnector.connectBlocking described in this section. HttpClient.connectTimeout: same as ClientConnector.connectTimeout described in this section. HttpClient.maxConnectionsPerDestination: the max number of TCP connections that are opened for a particular destination (defaults to 64). HttpClient.maxRequestsQueuedPerDestination: the max number of requests queued (defaults to 1024). HttpClient supports HTTPS requests out-of-the-box like a browser does. The support for HTTPS request is provided by a SslContextFactory.Client instance, typically configured in the ClientConnector. If not explicitly configured, the ClientConnector will allocate a default one when started. SslContextFactory.Client sslContextFactory = new SslContextFactory.Client(); ClientConnector clientConnector = new ClientConnector(); clientConnector.setSslContextFactory(sslContextFactory); HttpClient httpClient = new HttpClient(new HttpClientTransportDynamic(clientConnector)); httpClient.start(); The default SslContextFactory.Client verifies the certificate sent by the server by verifying the validity of the certificate with respect to the certificate chain, the expiration date, the server host name, etc. This means that requests to public websites that have a valid certificate (such as https://google.com) will work out-of-the-box, without the need to specify a KeyStore or a TrustStore. However, requests made to sites that return an invalid or a self-signed certificate will fail (like they will in a browser). An invalid certificate may be expired or have the wrong server host name; a self-signed certificate has a certificate chain that cannot be verified. The validation of the server host name present in the certificate is important, to guarantee that the client is connected indeed with the intended server. The validation of the server host name is performed at two levels: at the TLS level (in the JDK) and, optionally, at the application level. By default, the validation of the server host name at the TLS level is enabled, while it is disabled at the application level. You can configure the SslContextFactory.Client to skip the validation of the server host name at the TLS level: SslContextFactory.Client sslContextFactory = new SslContextFactory.Client(); // Disable the validation of the server host name at the TLS level. sslContextFactory.setEndpointIdentificationAlgorithm(null); When you disable the validation of the server host name at the TLS level, you are strongly recommended to enable it at the application level. Failing to do so puts you at risk of connecting to a server different from the one you intend to connect to: SslContextFactory.Client sslContextFactory = new SslContextFactory.Client(); // Only allow to connect to subdomains of domain.com. sslContextFactory.setHostnameVerifier((hostName, session) -> hostName.endsWith(\".domain.com\")); Enabling server host name validation at both the TLS level and application level allow you to further restrict the set of server hosts the client can connect to, among those allowed in the certificate sent by the server. Entirely disabling server host name validation is not recommended, but may be done in controlled environments. Even with server host name validation disabled, the validation of the certificate chain, by validating cryptographic signatures and validity dates is still performed. Please refer to the SslContextFactory.Client javadocs for the complete list of configurable parameters. Applications may register a org.eclipse.jetty.io.ssl.SslHandshakeListener to be notified of TLS handshakes success or failure, by adding the SslHandshakeListener as a bean to HttpClient: // Create a SslHandshakeListener. SslHandshakeListener listener = new SslHandshakeListener() { @Override public void handshakeSucceeded(Event event) throws SSLException { SSLEngine sslEngine = event.getSSLEngine(); System.getLogger(\"tls\").log(INFO, \"TLS handshake successful to %s\", sslEngine.getPeerHost()); } @Override public void handshakeFailed(Event event, Throwable failure) { SSLEngine sslEngine = event.getSSLEngine(); System.getLogger(\"tls\").log(ERROR, \"TLS handshake failure to %s\", sslEngine.getPeerHost(), failure); } }; HttpClient httpClient = new HttpClient(); // Add the SslHandshakeListener as bean to HttpClient. // The listener will be notified of TLS handshakes success and failure. httpClient.addBean(listener); TODO TODO Jettyâs HttpClient supports cookies out of the box. The HttpClient instance receives cookies from HTTP responses and stores them in a java.net.CookieStore, a class that is part of the JDK. When new requests are made, the cookie store is consulted and if there are matching cookies (that is, cookies that are not expired and that match domain and path of the request) then they are added to the requests. Applications can programmatically access the cookie store to find the cookies that have been set: HttpCookieStore cookieStore = httpClient.getHttpCookieStore(); List<HttpCookie>
1 cookies = cookieStore.match(URI.create(\"http://domain.com/path\")); Applications can also programmatically set cookies as if they were returned from a HTTP response: HttpCookieStore cookieStore = httpClient.getHttpCookieStore(); HttpCookie cookie = HttpCookie.build(\"foo\", \"bar\") .domain(\"domain.com\") .path(\"/\") .maxAge(TimeUnit.DAYS.toSeconds(1)) .build(); cookieStore.add(URI.create(\"http://domain.com\"), cookie); Cookies may be added explicitly only for a particular request: ContentResponse response = httpClient.newRequest(\"http://domain.com/path\") .cookie(HttpCookie.from(\"foo\", \"bar\")) .send(); You can remove cookies that you do not want to be sent in future HTTP requests: HttpCookieStore cookieStore = httpClient.getHttpCookieStore(); URI uri = URI.create(\"http://domain.com\"); List<HttpCookie> cookies = cookieStore.match(uri); for (HttpCookie cookie : cookies) { cookieStore.remove(uri, cookie); } If you want to totally disable cookie handling, you can install a HttpCookieStore.Empty. This must be done when HttpClient is used in a proxy application, in this way: httpClient.setHttpCookieStore(new HttpCookieStore.Empty()); You can enable cookie filtering by installing a cookie store that performs the filtering logic in this way: class GoogleOnlyCookieStore extends HttpCookieStore.Default { @Override public boolean add(URI uri, HttpCookie cookie) { if (uri.getHost().endsWith(\"google.com\")) return super.add(uri, cookie); return false; } } httpClient.setHttpCookieStore(new GoogleOnlyCookieStore()); The example above will retain only cookies that come from the google.com domain or sub-domains. Jettyâs HttpClient validates cookie name prefixes as defined in RFC 6265bis. Cookies with the __Secure- prefix are only accepted if: The cookie has the Secure attribute set. The cookie was received over a secure (HTTPS) connection. Cookies with the __Host- prefix are only accepted if: The cookie has the Secure attribute set. The cookie was received over a secure (HTTPS) connection. The cookie does not have a Domain attribute (making it a host-only cookie). The cookie has Path=/ explicitly set. The
1se prefixes allow servers to \"lock down\" cookies with additional security guarantees. Cookies that violate these requirements are silently discarded by the HttpCookieStore. Jetty is compliant with RFC6265, and as such care must be taken when setting a cookie value that includes special characters such as ;. Previously, Version=1 cookies defined in RFC2109 (and continued in RFC2965) allowed for special/reserved characters to be enclosed within double quotes when declared in a Set-Cookie response header: Set-Cookie: foo=\"bar;baz\";Version=1;Path=\"/secure\" This was added to the HTTP Response as follows: protected void service(HttpServletRequest request, HttpServletResponse response) { jakarta.servlet.http.Cookie cookie = new Cookie(\"foo\", \"bar;baz\"); cookie.setPath(\"/secure\"); response.addCookie(cookie); } The introduction of RFC6265 has rendered this approach no longer possible; users are now required to encode cookie values that use these special characters. This can be done utilizing jakarta.servlet.http.Cookie as follows: jakarta.servlet.http.Cookie cookie = new Cookie(\"foo\", URLEncoder.encode(\"bar;baz\", \"UTF-8\")); Jetty validates all cookie names and values being added to the HttpServletResponse via the addCookie(Cookie) method. If an illegal value is discovered Jetty will throw an IllegalArgumentException with the details. By default, HttpClient follows redirects but does not cache them. This means that repeated requests to a URL that returns a redirect will each incur the redirect round-trip. You can enable redirect caching to avoid the redirect round-trip: HttpClient httpClient = new HttpClient(); // Enable caching of permanent redirects with max 100 entries. httpClient.setRedirectCache(new RedirectCache.Default(100)); httpClient.start(); // First request to http://example.com/old -> 301 -> http://example.com/new // makes 2 round-trips and caches the redirect. httpClient.newRequest(\"http://example.com/old\").send(); // Second request to http://example.com/old goes directly to /new // making only 1 round-trip. httpClient.newRequest(\"http://example.com/old\").send(); RedirectCache.Default caches permanent redirects (status codes 301 and 308). Subsequent requests with the same HTTP method and the same URI result in requests using the redirect HTTP method and the redirect HTTP URI. POST requests replied with 301 will have the redirect method changed to GET. Requests replied with 308 preserve the original HTTP method. The RedirectCache.Default implementation accepts a maximum size parameter to limit memory usage. When the limit is reached, least recently used entries are evicted. Jettyâs HttpClient supports the BASIC and DIGEST authentication mechanisms defined by RFC 7235, as well as the SPNEGO authentication mechanism defined in RFC 4559. The HTTP conversation, the sequence of related HTTP requests, for a request that needs authentication is the following: Upon receiving a HTTP 401 response code, HttpClient looks at the WWW-Authenticate response header (the server challenge) and then tries to match configured authentication credentials to produce an Authentication header that contains the authentication credentials to access the resource. You can configure authentication credentials in the HttpClient instance as follows: // Add authentication credentials. AuthenticationStore auth = httpClient.getAuthenticationStore(); URI uri1 = new URI(\"http://mydomain.com/secure\"); auth.addAuthentication(new BasicAuthentication(uri1, \"MyRealm\", \"userName1\", \"password1\")); URI uri2 = new URI(\"http://otherdomain.com/admin\"); auth.addAuthentication(new BasicAuthentication(uri1, \"AdminRealm\", \"admin\", \"password\")); Authentications are matched against the server challenge first by mechanism (e.g. BASIC or DIGEST), then by realm and then by URI. If an Authentication match is found, the application does not receive events related to the HTTP 401 response. These events are handled internally by HttpClient which produces another (internal) request similar to the original request but with an additional Authorization header. If the authentication is successful, the server responds with a HTTP 200 and HttpClient caches the Authentication.Result so that subsequent requests for a matching URI will not incur in the additional rountrip caused by the HTTP 401 response. It is possible to clear Authentication.Results in order to force authentication again: httpClient.getAuthenticationStore().clearAuthenticationResults(); Authentication results may be preempted to avoid the additional roundtrip due to the server challenge in this way: AuthenticationStore auth = httpClient.getAuthenticationStore(); URI uri = URI.create(\"http://domain.com/secure\"); auth.addAuthenticationResult(new BasicAuthentication.BasicResult(uri, \"username\", \"password\")); In this way, requests for the given URI are enriched immediately with the Authorization header, and the server should respond with HTTP 200 (and the resource content) rather than with the 401 and the challenge. It is also possible to preempt the authentication for a single request only, in this way: URI uri = URI.create(\"http://domain.com/secure\"); Authentication.Result authn = new BasicAuthentication.BasicResult(uri, \"username\", \"password\"); Request request = httpClient.newRequest(uri); authn.apply(request); request.send(); See also the proxy authentication section for further information about how authentication works with HTTP proxies. TODO Jettyâs HttpClient can be configured to use proxies to connect to destinations. These types of proxies are available out of the box: HTTP proxy (provided by class org.eclipse.jetty.client.HttpProxy) SOCKS 4 proxy (provided by class org.eclipse.jetty.client.Socks4Proxy) SOCKS 5 proxy (provided by class org.eclipse.jetty.client.Socks5Proxy) Other implementations may be written by subclassing ProxyConfiguration.Proxy. The following is a typical configuration: HttpProxy proxy = new HttpProxy(\"proxyHost\", 8888);
1 // Do not proxy requests for localhost:8080. proxy.getExcludedAddresses().add(\"localhost:8080\"); // Add the new proxy to the list of proxies already registered. ProxyConfiguration proxyConfig = httpClient.getProxyConfiguration(); proxyConfig.addProxy(proxy); ContentResponse response = httpClient.GET(\"http://domain.com/path\"); You specify the proxy host and proxy port, and optionally also the addresses that you do not want to be proxied, and then add the proxy configuration on the ProxyConfiguration instance. Configured in this way, HttpClient makes requests to the HTTP proxy (for plain-text HTTP requests) or establishes a tunnel via HTTP CONNECT (for encrypted HTTPS requests). Proxying is supported for any version of the HTTP protocol. The communication between the client and the proxy may be encrypted, so that it would not be possible for another party on the same network as the client to know what servers the client connects to. SOCKS 5 (defined in RFC 1928) offers choices for authentication methods and supports IPv6 (things that SOCKS 4 does not support). A typical SOCKS 5 proxy configuration with the username/password authentication method is the following: Socks5Proxy proxy = new Socks5Proxy(\"proxyHost\", 8888); String socks5User = \"jetty\"; String socks5Pass = \"secret\"; var socks5AuthenticationFactory = new Socks5.UsernamePasswordAuthenticationFactory(socks5User, socks5Pass); // Add the authentication method to the proxy. proxy.putAuthenticationFactory(socks5AuthenticationFactory); // Do not proxy requests for localhost:8080. proxy.getExcludedAddresses().add(\"localhost:8080\"); // Add the new proxy to the list of proxies already registered. ProxyConfiguration proxyConfig = httpClient.getProxyConfiguration(); proxyConfig.addProxy(proxy); ContentResponse response = httpClient.GET(\"http://domain.com/path\"); Jettyâs HttpClient supports HTTP proxy authentication in the same way it supports server authentication. In the example below, the HTTP proxy requires BASIC authentication, but the server requires DIGEST authentication, and therefore: AuthenticationStore auth = httpClient.getAuthenticationStore(); // Proxy credentials. URI proxyURI = new URI(\"http://proxy.net:8080\"); auth.addAuthentication(new BasicAuthentication(proxyURI, \"ProxyRealm\", \"proxyUser\", \"proxyPass\")); // Server credentials. URI serverURI = new URI(\"http://domain.com/secure\"); auth.addAuthentication(new DigestAuthentication(serverURI, \"ServerRealm\", \"serverUser\", \"serverPass\")); // Proxy configuration. ProxyConfiguration proxyConfig = httpClient.getProxyConfiguration(); HttpProxy proxy = new HttpProxy(\"proxy.net\", 8080); proxyConfig.addProxy(proxy); ContentResponse response = httpClient.newRequest(serverURI).send(); The HTTP conversation for successful authentications on both the proxy and the server is the following: The application does not receive events related to the responses with code 407 and 401 since they are handled internally by HttpClient. Similarly to the authentication section, the proxy authentication result and the server authentication result can be preempted to avoid, respectively, the 407 and 401 roundtrips. Jettyâs HttpClient can be configured to use different HTTP formats to carry the semantic of HTTP requests and responses, by specifying different HttpClientTransport implementations. This means that the intention of a client to request resource /index.html using the GET method can be carried over a low-level transport in different formats. An HttpClientTransport is the component that is in charge of converting a high-level, semantic, HTTP requests such as \" GET resource /index.html \" into the specific format understood by the server (for example, HTTP/2 or HTTP/3), and to convert the server response from the specific format (HTTP/2 or HTTP/3) into high-level, semantic objects that can be used by applications. The most common protocol format is HTTP/1.1, a textual protocol with lines separated by \\r\\n: GET /index.html HTTP/1.1\\r\\n Host: domain.com\\r\\n ... \\r\\n However, the same request can be made using FastCGI, a binary protocol: x01 x01 x00 x01 x00 x08 x00 x00 x00 x01 x01 x00 x00 x00 x00 x00 x01 x04 x00 x01 xLL xLL x00 x00 x0C x0B D O C U M E N T _ U R I / i n d e x . h t m l ... Similarly, HTTP/2 is a binary protocol that transports the same information in a yet different format via TCP, while HTTP/3 is a binary protocol that transports the same information in yet another format via QUIC. The HTTP protocol version may be negotiated between client and server. A request for a resource may be sent using one protocol (for example, HTTP/1.1), but the response may arrive in a different protocol (for example, HTTP/2). HttpClient supports these HttpClientTrans
1port implementations, each speaking only one protocol: HttpClientTransportOverHTTP, for HTTP/1.1 (both clear-text and TLS encrypted) HttpClientTransportOverHTTP2, for HTTP/2 (both clear-text and TLS encrypted) HttpClientTransportOverHTTP3, for HTTP/3 (only encrypted via QUIC) HttpClientTransportOverFCGI, for FastCGI (both clear-text and TLS encrypted) HttpClient also supports HttpClientTransportDynamic, a dynamic transport that can speak different HTTP formats and can select the right protocol by negotiating it with the server or by explicit indication from applications. Furthermore, every HTTP format can be sent over different low-level transports such as TCP, Unix-Domain, QUIC or memory. Supports for Unix-Domain sockets requires Java 16 or later, since Unix-Domain sockets support has been introduced in OpenJDK with JEP 380. Applications are typically not aware of the actual HTTP format or low-level transport being used. This allows them to write their logic against a high-level API that hides the details of the specific HTTP format and low-level transport being used. HTTP/1.1 is the default transport. // No transport specified, using default. HttpClient httpClient = new HttpClient(); httpClient.start(); If you want to customize the HTTP/1.1 transport, you can explicitly configure it in this way: // Configure HTTP/1.1 transport. HttpClientTransportOverHTTP transport = new HttpClientTransportOverHTTP(); transport.setHeaderCacheSize(16384); HttpClient client = new HttpClient(transport); client.start(); The HTTP/2 transport can be configured in this way: // The HTTP2Client powers the HTTP/2 transport. HTTP2Client http2Client = new HTTP2Client(); http2Client.setInitialSessionRecvWindow(64 * 1024 * 1024); // Create and configure the HTTP/2 transport. HttpClientTransportOverHTTP2 transport = new HttpClientTransportOverHTTP2(http2Client); http2Client.setUseALPN(true); HttpClient client = new HttpClient(transport); client.start(); HTTP2Client is the lower-level client that provides an API based on HTTP/2 concepts such as sessions, streams and frames that are specific to HTTP/2. See the HTTP/2 client section for more information. HttpClientTransportOverHTTP2 uses HTTP2Client to format high-level semantic HTTP requests into the HTTP/2 specific format. When the HTTP/2 server closes the connection (see this section), RetryableStreamExceptions are converted into RetryableRequestExceptions, so that the high-level APIs do not depend on the transport. See also this section to be able to interact with the low-level HTTP/2 APIs while using the high-level APIs. The HTTP/3 transport can be configured in this way: // HTTP/3 requires secure communication. ClientConnector clientConnector = new ClientConnector(); clientConnector.setSslContextFactory(new SslContextFactory.Client()); // The HTTP3Client powers the HTTP/3 transport. QuicheClientQuicConfiguration clientQuicConfig = HTTP3ClientQuicConfiguration.configure(new QuicheClientQuicConfiguration()); HTTP3Client http3Client = new HTTP3Client(clientQuicConfig, clientConnector); // Create and configure the HTTP/3 transport. QuicheTransport transport = new QuicheTransport(clientQuicConfig); HttpClientTransportOverHTTP3 httpClientTransport = new HttpClientTransportOverHTTP3(http3Client, transport); HttpClient client = new HttpClient(httpClientTransport); client.start(); HTTP3Client is the lower-level client that provides an API based on HTTP/3 concepts such as sessions, streams and frames that are specific to HTTP/3. See the HTTP/3 client section for more information. HttpClientTransportOverHTTP3 uses HTTP3Client to format high-level semantic HTTP requests into the HTTP/3 specific format. When the HTTP/3 server closes the connection (see this section), RetryableStreamExceptions are converted into RetryableRequestExceptions, so that the high-level APIs do not depend on the transport. The FastCGI transport can be configured in this way: String scriptRoot = \"/var/www/wordpress\"; HttpClientTransportOverFCGI transport = new HttpClientTransportOverFCGI(scriptRoot); HttpClient client = new HttpClient(transport); client.start(); In order to make requests using the FastCGI transport, you need to have a FastCGI server such as PHP-FPM (see also link:http://php.net/manual/en/install.fpm.php). The FastCGI transport is primarily used by Jettyâs FastCGI support to serve PHP pages (WordPress for example). The static HttpClientTrans
1port implementations work well if you know in advance the protocol you want to speak with the server, or if the server only supports one protocol (such as FastCGI). With the advent of HTTP/2 and HTTP/3, however, servers are now able to support multiple protocols. The HTTP/2 protocol is typically negotiated between client and server. This negotiation can happen via ALPN, a TLS extension that allows the client to tell the server the list of protocol that the client supports, so that the server can pick one of the client supported protocols that also the server supports; or via HTTP/1.1 upgrade by means of the Upgrade header. Applications can configure the dynamic transport with one or more HTTP versions such as HTTP/1.1, HTTP/2 or HTTP/3. The implementation will take care of using TLS for HTTPS URIs, using ALPN if necessary, negotiating protocols, upgrading from one protocol to another, etc. By default, the dynamic transport only speaks HTTP/1.1: // Dynamic transport speaks HTTP/1.1 by default. HttpClientTransportDynamic transport = new HttpClientTransportDynamic(); HttpClient client = new HttpClient(transport); client.start(); The dynamic transport can be configured with just one protocol, making it equivalent to the corresponding static transport: ClientConnector connector = new ClientConnector(); // Equivalent to HttpClientTransportOverHTTP. HttpClientTransportDynamic http11Transport = new HttpClientTransportDynamic(connector, HttpClientConnectionFactory.HTTP11); // Equivalent to HttpClientTransportOverHTTP2. HTTP2Client http2Client = new HTTP2Client(connector); HttpClientTransportDynamic http2Transport = new HttpClientTransportDynamic(connector, new ClientConnectionFactoryOverHTTP2.HTTP2(http2Client)); The dynamic transport, however, has been implemented to support multiple transports, in particular HTTP/1.1, HTTP/2 and HTTP/3: SslContextFactory.Client sslContextFactory = new SslContextFactory.Client(); ClientConnector connector = new ClientConnector(); connector.setSslContextFactory(sslContextFactory); ClientConnectionFactory.Info http1 = HttpClientConnectionFactory.HTTP11; HTTP2Client http2Client = new HTTP2Client(connector); ClientConnectionFactoryOverHTTP2.HTTP2 http2 = new ClientConnectionFactoryOverHTTP2.HTTP2(http2Client); QuicheClientQuicConfiguration clientQuicConfig = HTTP3ClientQuicConfiguration.configure(new QuicheClientQuicConfiguration()); HTTP3Client http3Client = new HTTP3Client(clientQuicConfig, connector); QuicheTransport transport = new QuicheTransport(clientQuicConfig); ClientConnectionFactoryOverHTTP3.HTTP3 http3 = new ClientConnectionFactoryOverHTTP3.HTTP3(http3Client, transport); // The order of the protocols indicates the client's preference. // The first is the most preferred, the last is the least preferred, but // the protocol version to use can be explicitly specified in the request. HttpClientTransportDynamic httpClientTransport = new HttpClientTransportDynamic(connector, http1, http2, http3); HttpClient client = new HttpClient(httpClientTransport); client.start(); The order in which the protocols are specified to HttpClientTransportDynamic indicates what is the client preference (first the most preferred). When clear-text communication is used (i.e. URIs with the http scheme) there is no HTTP protocol version negotiation, and therefore the application must know a priori whether the server supports the HTTP version or not. For example, if the server only supports clear-text HTTP/2, and HttpClientTransportDynamic is configured as in the example above, where HTTP/1.1 has precedence over HTTP/2, the client will send, by default, a clear-text HTTP/1.1 request to a clear-text HTTP/2 only server, which will result in a communication failure. When using TLS (i.e. URIs with the https scheme), the HTTP protocol version is negotiated between client and server via ALPN, and it is the server that decides what is the application protocol to use for the communication, regardless of the client preference. HTTP/1.1 and HTTP/2 are compatible because they both use TCP, while HTTP/3 is incompatible with previous HTTP versions because it uses QUIC. Only compatible HTTP versions can negotiate the HTTP protocol version to use via ALPN, and only compatible HTTP versions can be upgraded from an older version to a newer version. Provided that the server supports HTTP/1.1, HTTP/2 and HTTP/3, client applications can explicitly hint the version they want to use: HttpClient client = new HttpClient(new HttpClientTrans
1portDynamic(connector, http1, http2, http3)); client.start(); // The server supports HTTP/1.1, HTTP/2 and HTTP/3. ContentResponse http1Response = client.newRequest(\"https://host/\") // Specify the version explicitly. .version(HttpVersion.HTTP_1_1) .send(); ContentResponse http2Response = client.newRequest(\"https://host/\") // Specify the version explicitly. .version(HttpVersion.HTTP_2) .send(); ContentResponse http3Response = client.newRequest(\"https://host/\") // Specify the version explicitly. .version(HttpVersion.HTTP_3) .send(); // Make a clear-text upgrade request from HTTP/1.1 to HTTP/2. // The request will start as HTTP/1.1, but the response will be HTTP/2. ContentResponse upgradedResponse = client.newRequest(\"https://host/\") .headers(headers -> headers .put(HttpHeader.UPGRADE, \"h2c\") .put(HttpHeader.HTTP2_SETTINGS, \"\") .put(HttpHeader.CONNECTION, \"Upgrade, HTTP2-Settings\")) .send(); If the client application explicitly specifies the HTTP version, then ALPN is not used by the client. By specifying the HTTP version explicitly, the client application has prior-knowledge of what HTTP version the server supports, and therefore ALPN is not needed. If the server does not support the HTTP version chosen by the client, then the communication will fail. If the client application does not explicitly specify the HTTP version, then ALPN will be used by the client, but only for compatible protocols. If the server also supports ALPN, then the protocol will be negotiated via ALPN and the server will choose the protocol to use. If the server does not support ALPN, the client will try to use the first protocol configured in HttpClientTransportDynamic, and the communication may succeed or fail depending on whether the server supports the protocol chosen by the client. For example, HTTP/3 is not compatible with previous HTTP version; if HttpClientTransportDynamic is configured to prefer HTTP/3, it will be the only protocol attempted by the client: // Client prefers HTTP/3. HttpClient client = new HttpClient(new HttpClientTransportDynamic(connector, http3, http2, http1)); client.start(); // No explicit HTTP version specified. // Either HTTP/3 succeeds, or communication failure. ContentResponse httpResponse = client.newRequest(\"https://host/\") .send(); When the client application configures HttpClientTransportDynamic to prefer HTTP/2, there could be ALPN negotiation between HTTP/2 and HTTP/1.1 (but not HTTP/3 because it is incompatible); HTTP/3 will only be possible by specifying the HTTP version explicitly: // Client prefers HTTP/2. HttpClient client = new HttpClient(new HttpClientTransportDynamic(connector, http2, http1, http3)); client.start(); // No explicit HTTP version specified. // Either HTTP/1.1 or HTTP/2 will be negotiated via ALPN. // HTTP/3 only possible by specifying the version explicitly. ContentResponse httpResponse = client.newRequest(\"https://host/\") .send();","title":"HTTP Client","component":"jetty","version":"12.1","name":"http","url":"/docs/jetty/12.1/programming-guide/client/http.html","titles":[{"text":"HttpClient Introduction","hash":"intro","id":1},{"text":"Starting HttpClient","hash":"start","id":2},{"text":"Stopping HttpClient","hash":"stop","id":3},{"text":"HttpClient Architecture","hash":"arch","id":4},{"text":"HttpClient Connection Pooling","hash":"connection-pool","id":5},{"text":"Pre-Creating Connections","hash":"connection-pool-precreate-connections","id":6},{"text":"HttpClient Request Processing","hash":"request-processing","id":7},{"text":"HttpClient API Usage","hash":"api","id":8},{"text":"HttpClient Blocking APIs","hash":"blocking","id":9},{"text":"HttpClient Non-Blocking APIs","hash":"non-blocking","id":10},{"text":"Request and Response Listeners","hash":"listeners","id":11},{"text":"Request Content Handling","hash":"content-request","id":12},{"text":"Response Content Handling","hash":"content-response","id":13},{"text":"Request Transport","hash":"api-transport","id":14},{"text":"Connection Information","hash":"connection-information","id":15},{"text":"Connection Events","hash":"connection-events","id":16},{"text":"HttpClient Configuration","hash":"configuration","id":17},{"text":"HttpClient TLS Configuration","hash":"configuration-tls","id":18},{"text":"HttpClient SslHandshakeListener","hash":"configuration-tls-listener","id":19},{"text":"HttpClient TLS TrustStore Configuration","hash":"configuration-tls-truststore","id":20},{"text":"HttpClient TLS Client Certificates Configuration","hash":"configuration-tls-client-certs","id":21},{"text":"HttpClient Cookie Support","hash":"cookie","id":22},{"text":"Cookie Name Prefixes","hash":"cookie-name-prefixes","id":23},{"text":"Special Characters in Cookies","hash":"special-characters-in-cookies","id":24},{"text":"Redirect Caching","hash":"redirect-cache","id":25},{"text":"HttpClient Authentication Support","hash":"authentication","id":26},{"text":"HttpClient SPNEGO Authentication Support","hash":"authentication-spnego","id":27},{"text":"HttpClient Proxy Support","hash":"proxy","id":28},{"text":"SOCKS5 Proxy Support","hash":"proxy-socks5","id":29},{"text":"HTTP Proxy Authentication Support","hash":"proxy-authentication","id":30},{"text":"HttpClient Pluggable Transports","hash":"transport","id":31},{"text":"HTTP/1.1 Transport","hash":"transport-http11","id":32},{"text":"HTTP/2 Transport","hash":"transport-http2","id":33},{"text":"HTTP/3 Transport","hash":"transport-http3","id":34},{"text":"FastCGI Transport","hash":"transport-fcgi","id":35},{"text":"Dynamic Transport","hash":"transport-dynamic","id":36}]},"52":{"id":52,"text":"Writing a performant client or server is difficult, because it should: Scale well with the number of processors. Be efficient at using processor caches to avoid parallel slowdown. Support multiple network protocols that may have very different requirements. For example, multiplexed protocols such as HTTP/2 introduce new challenges that are not present in non-multiplexed protocols such as HTTP/1.1. Support different application threading models. For example, when a Jetty server invokes application code that calls blocking APIs, the Jetty server should not be affected by how long the blocking API calls take, and must process other connections or other requests in a timely fashion. The Jetty threading architecture can be modeled with a producer/consumer pattern, where produced tasks needs to be consumed efficie
1ntly. For example, Jetty produces (among others) these tasks: A task that wraps a NIO selection event, see the Jetty I/O architecture. A task that wraps the invocation of application code that may block (for example, the invocation of a Servlet to handle an HTTP request). A task is typically a Runnable object that may implement org.eclipse.jetty.util.thread.Invocable. The Invocable interface contains a single method that returns the Invocable.InvocationType of the task, that indicates the behavior of the task (in particular, whether the task may block or not). Applications can influence the behavior of the tasks by properly configuring Jetty components, as explained in this section for the server-side and in this section for the client-side. Once a task has been produced, it may be consumed using these modes: Produce-Consume Produce-Execute-Consume Execute-Produce-Consume Adaptive Execution Strategy In the diagrams below, the green color refers to task production, and the blue color refers to task consumption. In the diagrams below, Pn represents production of task n and Cn represents consuming task 'n' by running it. In the Produce-Consume mode, the Producer Thread loops producing tasks (T1, T2, â¦â, Tn) and directly consumes those tasks itself by running them. If the task is a NIO selection event, then this mode is the thread-per-selector mode which is very CPU core cache efficient, but suffers from the head-of-line blocking: if one of the tasks blocks or runs slowly, then subsequent tasks cannot be produced (and therefore cannot be consumed either) and will pay in latency the cost of consuming previous, possibly unrelated, tasks. This mode should only be used if the produced task is known to never block, or if the system tolerates well (or does not care about) head-of-line blocking. This mode is equivalent to the \"selector loop\" or \"event loop\" models typical of non-blocking I/O frameworks such as NodeJS, Netty and others. In the Produce-Execute-Consume mode, the Producer Thread loops producing tasks (T1, T2, â¦â, Tn) that are submitted to a java.util.concurrent.Executor to be consumed by a Worker Thread different from the Producer Thread. The Executor implementation typically adds the task to a queue, and dequeues the task when there is a worker thread available to consume it. This mode solves the head-of-line blocking discussed in the Produce-Consume section, but suffers from other issues: It is not CPU cache efficient, because the data available to the producer thread will likely be consumed by another thread running on a different CPU core, which wonât already have that data in its cache. The Executor queue may grow indefinitely, if there are fewer threads than tasks, and the tasks take time to run. A small latency is added to the processing of every task: the time it waits in the Executor queue. In the Execute-Produce-Consume mode, there is no dedicated producer thread. Rather, a thread that is acting as the producer will consume the tasks that it produces whilst it submits an internal task to an Executor so that a different thread can take over production. This mode may operate similar to Produce-Consume because after a thread consumes a task it may become the producer again, as Thread B does above. Differently from Produce-Execute-Consume, a task is consumed by the same thread that produced it (which is CPU core cache efficient). A different thread will be used to continue production. However, if the executor does not have an idle thread immediately available to continue production, then the production of tasks may be delayed or even hang. The modes of task consumption discussed above are captured by the org.eclipse.jetty.util.thread.ExecutionStrategy interface and its implementations: org.eclipse.jetty.util.thread.strategy.ProduceConsume for the Produce-Consume mode. org.eclipse.jetty.util.thread.strategy.ProduceExecuteConsume for the Produce-Execute-Consume mode. org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume for the Execute-Produce-Consume mode. There is an additional implementation of ExecutionStrategy, namely org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy, that heuristically chooses between the other strategies. AdaptiveExecutionStrategy chooses one of the previous strategies taking into account both the immediate availability of another thread, and the InvocationType of the task when the task implements the Invocable interface. For example, a task that declares itself with InvocationType NON_BLOCKING can be consumed using the Produce-Consume mode, since there is no risk to stop production because the task will not block (although there is the risk of head-of-line blocking). Conversely, a task that declares itself with InvocationType BLOCKING (or a task that does not implement Invocable) may block and therefore stop production, and must be consumed using either the Produce-Execute-Consume mode or the Execute-Produce-Consume mode. Deciding between these two modes depen
1ds on whether there is an idle thread immediately available to take over production, and this is captured by the org.eclipse.jetty.util.thread.TryExecutor interface. The immediate availability of another thread is determined by an implementation of TryExecutor that can be asked whether a thread can be immediately assigned to run a task, as opposed to a normal Executor that can only queue the task in the expectation that there will be a thread available in the near future to run the task. The concept of task consumption modes, coupled with Invocable tasks that expose their own InvocationType, coupled with a TryExecutor that guarantees whether production can be immediately taken over, are all captured by AdaptiveExecutionStrategy, which is the default Jetty execution strategy. AdaptiveExecutionStrategy can seamlessly switch among consumption modes on a per-task basis. When all tasks are NON_BLOCKING, AdaptiveExecutionStrategy functions in Produce-Consume mode, resembling \"selector loop\" or \"event loop\" frameworks. When tasks are BLOCKING and no reserved threads are available, AdaptiveExecutionStrategy functions in Produce-Execute-Consume mode, resembling the classic model of a dedicated \"selector thread\" that always queues tasks to an Executor, to be executed by worker threads. When tasks are BLOCKING and reserved threads are available, it functions in Execute-Produce-Consume mode, so that tasks are processed more efficiently. In the diagram above, Thread C produces task T3, and because there is not an immediately available thread, it uses Produce-Execute-Consume, queueing task T3 for later execution. It then continues production by producing T4, but now Thread B has become immediately available to take over production, so Thread C uses Execute-Produce-Consume to consume T4 directly. AdaptiveExecutionStrategy was previously named EatWhatYouKill, named after a hunting proverb in the sense that one should produce (kill) only what it consumes (eats). Jettyâs threading architecture requires a more sophisticated thread pool than what offered by Javaâs java.util.concurrent.ExecutorService. Jettyâs default thread pool implementation is QueuedThreadPool. QueuedThreadPool integrates with the Jetty component model, implements Executor, provides a TryExecutor implementation (discussed in the adaptive execution strategy section), and supports virtual threads (introduced as a preview feature in Java 19 and Java 20, and as an official feature since Java 21). QueuedThreadPool uses a BlockingQueue to store tasks that will be executed as soon as a thread is available. It is common, but too simplistic, to think that an upper bound to the thread pool queue is a good way to limit the number of concurrent HTTP requests. In case of asynchronous servers like Jetty, applications may have more than one thread handling a single request. Furthermore, the server implementation may produce a number of tasks that must be run by the thread pool, otherwise the server stops working properly. Therefore, the \"one-thread-per-request\" model is too simplistic, and the real model that predicts the number of threads that are necessary is too complicated to produce an accurate value. For example, a sudden large spike of requests arriving to the server may find the thread pool in an idle state where the number of threads is shrunk to the minimum. This will cause many tasks to be queued up, way before an HTTP request is even read from the network. Add to this that there could be I/O failures processing requests, which may be submitted as a new task to the thread pool. Furthermore, multiplexed protocols like HTTP/2 have a much more complex model (due to data flow control). For multiplexed protocols, the implementation must be able to write in order to progress reads (and must be able to read in order to progress writes), possibly causing more tasks to be submitted to the thread pool. If any of the submitted tasks is rejected because the queue is bounded the server may grind to a halt, because the task must be executed, sometimes necessarily in a different thread. For these reasons: The thread pool queue must be unbounded. There are better strategies to limit the number of concurrent requests, discussed in this section. QueuedThreadPool can be configured with a maxThreads value. However, some of the Jetty components (such as the selectors) steal threads for their internal use, or rather QueuedThreadPool leases some threads to these components. These threads are reported by QueuedThreadPool.leasedThreads and are not available to run application code. QueuedThreadPool can be configured with a reservedThreads value. This value represents the maximum number of threads that can be reserved and used by the TryExecutor implementation. A negative value for QueuedThreadPool.reservedThreads means that the actual value will be heuristically derived from the number of CPU cores and QueuedThreadPool.maxThreads. A value of zero for QueuedThreadPool.reservedThreads means that reserved threads are disabled, and therefore the Execute-Produce-Consume mode is never used â the Produce-Execute-Consume mode is always used instead. QueuedThreadPool leases threads to the following Jetty components: The Connectors; for each connector a thread is leased for each acceptor and each selector. The TryExecutor implementation; for the default implementation ReservedThreadExecutor, QueuedThreadPool.reservedThreads are leased. To carefully control the minimum number of threads in QueuedThreadPool, you must explicitly specify the number of selectors and the number of acceptors for each Connector, and the number of reserved threads. For example: QueuedThreadPool threadPool = new QueuedThreadPool(); // Configure the number of reserved threads. int reservedThreads = 2; threadPool.setReservedThreads(reservedThreads); Server server = new Server(threadPool); int acceptors = 1; int selectors = 3; ServerConnector connector = new ServerConnector(server, acceptors, selectors); server.addConnector(connector); In the example above, 6 threads will be leased: 2 reserved threads, 1 acceptor thread and 3 selector threads. To reduce the number of leased threads, you can configure the acceptors to 0, the selectors to 1 and the reserved threads to 0. Setting the acceptors to 0 results in TCP connections being accepted in non-blocking mode, which may increase the load on the selector, and possibly in increased latency. Setting the reserved threads to 0 results in the Produce-Execute-Consume mode to be used instead of the Execute-Produce-Consume mode. You have to try and benchmark what is the best configuration for your use case. QueuedThreadPool always maintains the number of threads between QueuedThreadPool.minThreads and QueuedThreadPool.maxThreads; during load spikes the number of thread grows to meet the load demand, and when the load on the system diminishes or the system goes idle, the number of threads shrinks. The number of leased threads must be taken into account to configure QueuedThreadPool.maxThreads. During Server startup, QueuedThreadPool leases threads to the Jetty components, and there must be enough threads for these components, and at least 1 more thread to handle requests. In the example above, QueuedThreadPool.maxThreads must be set to 7 or more. An alternative to explicitly setting the configuration of the Jetty components to which threads are leased, you can leave their configuration at default so that it is calculated by internal Jetty heuristics, and then adjust QueuedThreadPool.maxThreads afterwards: // Use the default thread pool configuration. QueuedThreadPool threadPool = new QueuedThreadPool(); Server server = new Server(threadPool); // Use the default ServerConnector configuration. ServerConnector connector = new ServerConnector(server); server.addConnector(connector); // Start the server, so threads are leased to components // following the heuristics based on configuration and hardware. server.start(); // Calculate a new maxThreads for the thread pool. // Retrieve the number of leased threads. int maxLeasedThreads = threadPool.getMaxLeasedThreads(); // Choose the number of threads available to run application code. int availableThreads = 42; // The new value for maxThreads. int maxThreads = maxLeasedThreads + availableThreads; threadPool.setMaxThreads(maxThreads); Do not try to reduce the value of QueuedThreadPool.maxThreads to the minimum possible. Jetty may require threads to run internal tasks, and if no threads are available, because they are leased or busy handling requests, the server performance may degrade. QueuedThreadPool can shrink the number of threads when they are not used, as explained below, so it is typically safe to leave QueuedThreadPool.maxThreads to its default, or to a value calculated using the max number of leased threads L, plus the number of concurrent threads to handle requests H, so that QueuedThreadPool.maxThreads=L+H. Consider to choose a generous value for H, for example one that takes into account load spikes, since QueuedThreadPool shrinking will eventually remove threads that are unused. Shrinking QueuedThreadPool is important in particular in containerized environments, where typically you want to return the memory occupied by the threads to the operative system. The shrinking of the QueuedThreadPool is controlled by two parameters: QueuedThreadPool.idleTimeout and QueuedThreadPool.maxEvictCount. QueuedThreadPool.idleTimeout indicates how long a thread should stay around when it is idle, waiting for tasks to execute. The longer the threads stay around, the more ready they are in case of new load spikes on the system; however, they consume resources: a Java platform thread typically allocates 1 MiB of native memory. QueuedThreadPool.maxEvictCount controls how many idle threads are evicted for one QueuedThreadPool.idleTimeout peri
1od. The larger this value is, the quicker the threads are evicted when the QueuedThreadPool is idle or has less load, and their resources returned to the operative system; however, large values may result in too much thread thrashing: the QueuedThreadPool shrinks too fast and must re-create a lot of threads in case of a new load spike on the system. A good balance between QueuedThreadPool.idleTimeout and QueuedThreadPool.maxEvictCount depends on the load profile of your system, and it is often tuned via trial and error. Virtual threads have been introduced in Java 19 and Java 20 as a preview feature, and have become an official feature since Java 21. In Java versions where virtual threads are a preview feature, remember to add --enable-preview to the JVM command line options to use virtual threads. QueuedThreadPool can be configured to use virtual threads by specifying the virtual threads Executor: QueuedThreadPool threadPool = new QueuedThreadPool(); // Simple, unlimited, virtual thread Executor. threadPool.setVirtualThreadsExecutor(Executors.newVirtualThreadPerTaskExecutor()); // Configurable, bounded, virtual thread executor (preferred). VirtualThreadPool virtualExecutor = new VirtualThreadPool(); virtualExecutor.setMaxConcurrentTasks(128); threadPool.setVirtualThreadsExecutor(virtualExecutor); // For server-side usage. Server server = new Server(threadPool); // Simple client-side usage. HttpClient client = new HttpClient(); client.setExecutor(threadPool); // Client-side usage with explicit HttpClientTransport. ClientConnector clientConnector = new ClientConnector(); clientConnector.setExecutor(threadPool); HttpClient httpClient = new HttpClient(new HttpClientTransportOverHTTP(clientConnector)); Jetty cannot enforce that the Executor passed to setVirtualThreadsExecutor(Executor) uses virtual threads, so make sure to specify a virtual threads Executor and not a normal Executor that uses platform threads. AdaptiveExecutionStrategy makes use of this setting when it determines that a task should be run with the Produce-Execute-Consume mode: rather than submitting the task to QueuedThreadPool to be run in a platform thread, it submits the task to the virtual threads Executor. Enabling virtual threads in QueuedThreadPool will default the number of reserved threads to zero, unless the number of reserved threads is explicitly configured to a positive value. Defaulting the number of reserved threads to zero ensures that the Produce-Execute-Consume mode is always used, which means that virtual threads will always be used for blocking tasks. VirtualThreadPool is an alternative to QueuedThreadPool that creates only virtual threads (no platform threads). VirtualThreadPool threadPool = new VirtualThreadPool(); // Limit the max number of concurrent tasks run by virtual threads. threadPool.setMaxConcurrentTasks(200); // Track, with details, virtual threads usage. threadPool.setTracking(true); threadPool.setDetailedDump(true); // For server-side usage. Server server = new Server(threadPool); // Simple client-side usage. HttpClient client = new HttpClient(); client.setExecutor(threadPool); // Client-side usage with explicit HttpClientTransport. ClientConnector clientConnector = new ClientConnector(); clientConnector.setExecutor(threadPool); HttpClient httpClient = new HttpClient(new HttpClientTransportOverHTTP(clientConnector)); Despite the name, VirtualThreadPool does not pool virtual threads, but allows you to impose a limit on the maximum number of concurrent tasks run by virtual threads, using a Semaphore. Limiting the number of concurrent tasks run by virtual threads helps to limit resource usage in applications, especially in the case of load spikes. When an unlimited number of tasks run by virtual threads is allowed, the server might be brought down due to resource (typically memory) exhaustion. Furthermore, you can configure VirtualThreadPool to track virtual threads so that a Jetty component dump will show all virtual threads currently in use, including those that are unmounted. VirtualThreadPool does not queue the tasks submitted to it but rather spawns a virtual thread to run the task. When the virtual thread runs, it attempts to acquire a permit from the Semaphore, and only if it succeeds to acquire the permit then the task is run. This means that there may be more virtual threads than permits, but it is guaranteed that the number of concurrent tasks run by virtual threads is limited by the Semaphore. Even when using virtual threads, Jetty uses non-blocking I/O, and dedicates a thread to each java.nio.channels.Selector to perform the Selector.select() operation. Up to Java 23, calling Selector.select() from a virtual thread pins the carrier thread. Since Java 24, calling Selector.select() from a virtual thread does not pin the carrier thread. If you configure a server-side Connector, or Jettyâs HttpClient with N selectors, then N carrier threads will be pinned by the virtual threads calling Selector.select(). If you have less than N CPU cores in your system, then by default all carriers will be pinned in the Selector.select() call, leaving no carrier to execute virtual threads, and therefore completely locking up your system, which will become completely unresponsive. If you have more than N CPU cores in your system, then by default your system may be less efficie
1nt, since the carrier threads may be pinned in the Selector.select() call, and therefore not available to run virtual threads. The number of CPU cores of your system determines, by default, the number of carrier threads. The number of carrier threads may be explicitly configured by setting the system property -Djdk.virtualThreadScheduler.parallelism=N, where N is your desired number of carrier threads. Selector threads used by Jetty pin carrier threads. Choose the number of selectors wisely when using virtual threads: the number of selectors must always be less than the number of carrier threads, to leave some of the carrier threads free to run virtual threads. As an extreme example, if your system only has 1 CPU core, then 1 selector is enough to pin the only carrier thread, and your system will eventually lock up. In this case, you must explicitly configure the number of carrier threads by setting the system property -Djdk.virtualThreadScheduler.parallelism=2 (or to a larger value).","title":"Jetty Threading Architecture","component":"jetty","version":"12.1","name":"threads","url":"/docs/jetty/12.1/programming-guide/arch/threads.html","titles":[{"text":"Execution Strategies","hash":"execution-strategy","id":1},{"text":"Produce-Consume","hash":"execution-strategy-pc","id":2},{"text":"Produce-Execute-Consume","hash":"execution-strategy-pec","id":3},{"text":"Execute-Produce-Consume","hash":"execution-strategy-epc","id":4},{"text":"Adaptive Execution Strategy","hash":"execution-strategy-adaptive","id":5},{"text":"Thread Pool","hash":"thread-pool","id":6},{"text":"Thread Pool Queue","hash":"thread-pool-queue","id":7},{"text":"QueuedThreadPool configuration","hash":"thread-pool-configuration","id":8},{"text":"Virtual Threads","hash":"thread-pool-virtual-threads","id":9},{"text":"Virtual Threads Support with QueuedThreadPool","hash":"thread-pool-virtual-threads-queued","id":10},{"text":"Virtual Threads Support with VirtualThreadPool","hash":"thread-pool-virtual-threads-virtual","id":11},{"text":"Virtual Threads Pinning","hash":"thread-pool-virtual-threads-pinning","id":12},{"text":"Virtual Threads Pinning with Java 19 to 23","hash":"thread-pool-virtual-threads-pinning-java23","id":13}]},"53":{"id":53,"text":"In the vast majority of cases, client applications should use the generic, high-level, HTTP client library that also provides HTTP/2 support via the pluggable HTTP/2 transport or the dynamic transport. The high-level HTTP library supports cookies, authentication, redirection, connection pooling and a number of other features that are absent in the low-level HTTP/2 library. The HTTP/2 client library has been designed for those applications that need low-level access to HTTP/2 features such as sessions, streams and frames, and this is quite a rare use case. See also the correspondent HTTP/2 server library. The Maven artifact coordinates for the HTTP/2 client library are the following: <dependency> <groupId>org.eclipse.jetty.http2</groupId> <artifactId>jetty-http2-client</artifactId> <version>12.1.13</version> </dependency> The main class is named org.eclipse.jetty.http2.client.HTTP2Client, and must be created, configured and started before use: // Instantiate HTTP2Client. HTTP2Client http2Client = new HTTP2Client(); // Configure HTTP2Client, for example: http2Client.setStreamIdleTimeout(15000); // Start HTTP2Client. http2Client.start(); When your application stops, or otherwise does not need HTTP2Client anymore, it should stop the HTTP2Client instance (or instances) that were started: // Stop HTTP2Client. http2Client.stop(); HTTP2Client allows client applications to connect to an HTTP/2 server. A session represents a single TCP connection to an HTTP/2 server and is defined by class org.eclipse.jetty.http2.api.Session. A session typically has a long life â once the TCP connection is established, it remains open until it is not used anymore (and therefore it is closed by the idle timeout mechanism), until a fatal error occurs (for example, a network failure), or if one of the peers decides unilaterally to close the TCP connection. HTTP/2 is a multiplexed protocol: it allows multiple HTTP/2 requests to be sent on the same TCP connection, or session. Each request/response cycle is represented by a stream. Therefore, a single session manages multiple concurrent streams. A stream has typically a very short life compared to the session: a stream only exists for the duration of the request/response cycle and then disappears. The HTTP/2 protocol is flow controlled (see the specification). This means that a sender and a receiver maintain a flow control window that tracks the number of data bytes sent and received, respectively. When a sender sends data bytes, it reduces its flow control window. When a receiver receives data bytes, it also reduces its flow control window, and then passes the received data bytes to the application. The application consumes the data bytes and tells back the receiver that it has consumed the data bytes. The receiver then enlarges the flow control window, and the implementation arranges to send a message to the sender with the number of bytes consumed, so that the sender can enlarge its flow control window. A sender can send data bytes up to its whole flow control window, then it must stop sending. The sender may resume sending data bytes when it receives a message from the receiver that the data bytes sent previously have been consumed. This message enlarges the sender flow control window, which allows the sender to send more data bytes. HTTP/2 defines two flow control windows: one for each session, and one for each stream. Letâs see with an example how they interact, assuming that in this example the session flow control window is 120 bytes and the stream flow control window is 100 bytes. The sender opens a session, and then opens stream_1 on that session, and sends 80 data bytes. At this point the session flow control window is 40 bytes (120 - 80), and stream_1's flow control window is 20 bytes (100 - 80). The sender now opens stream_2 on the same session and sends 40 data bytes. At this point, the session flow control window is 0 bytes (40 - 40), while stream_2's flow control window is 60 (100 - 40). Since now the session flow control window is 0, the sender cannot send more data bytes, neither on stream_1 nor on stream_2, nor on other streams, despite all the streams having their stream flow control windows greater than 0. The receiver consumes stream_2's 40 data bytes and sends a message to the sender with this information. At this point, the session flow control window is 40 (0 + 40), stream_1's flow control window is still 20 and stream_2's flow control window is 100 (60 + 40). If the sender opens stream_3 and would like to send 50 data bytes, it would only be able to send 40 because that is the maximum allowed by the session flow control window at this point. It is therefore very important that applications notify the fact that they have consumed data bytes as soon as possible, so that the implementation (the receiver) can send a message to the sender (in the form of a WINDOW_UPDATE frame) with the information to enlarge the flow control window, therefore reducing the possibility that sender stalls due to the flow control windows being reduced to 0. How a client application should handle HTTP/2 flow control is discussed in details in this section. The first thing an application should do is to connect to the server and obtain a Session. The following example connects to the server on a clear-text port: // Address of the server's clear-text port. SocketAddress serverAddress = new InetSocketAddress(\"localhost\", 8080); // Connect to the server, the CompletableFuture will be // notified when the connection is succeeded (or failed). CompletableFuture<Session> sessionCF = http2Client.connect(serverAddress, new Session.Listener() {}); // Block to obtain the Session. // Alternatively you can use the CompletableFuture APIs to avoid blocking. Session session = sessionCF.get(); The following example connects to the server on an encrypted port: HTTP2Client http2Client = new HTTP2Client(); http2Client.start(); ClientConnector connector = http2Client.getClientConnector(); // Address of the server's encrypted port. SocketAddress serverAddress = new InetSocketAddress(\"localhost\", 8443); // Connect to the server, the CompletableFuture will be // notified when the connection is succeeded (or failed). CompletableFuture<Session> sessionCF = http2Client.connect(connector.getSslContextFactory(), serverAddress, new Session.Listener() {}); // Block to obtain the Session. // Alternatively you can use the CompletableFuture APIs to avoid blocking. Session session = sessionCF.get(); Applications must know in advance whether they want to connect to a clear-text or encrypted port, and pass the SslContextFactory parameter accordingly to the connect(...) method. The connect(...) method takes a Session.Listener parameter. This listenerâs onPreface(...) method is invoked just before establishing the connection to the server to gather the client configuration to send to the server. Client applications can override this method to change the default configuration: SocketAddress serverAddress = new InetSocketAddress(\"localhost\", 8080); http2Client.connect(serverAddress, new Session.Listener() { @Override public Map<Integer, Integer> onPreface(Session session) { Map<Integer, Integer> configuration = new HashMap<>(); // Disable push from the server. configuration.put(SettingsFrame.ENABLE_PUSH, 0); // Override HTTP2Client.initialStreamRecvWindow for this session. configuration.put(SettingsFrame.INITIAL_WINDOW_SIZE, 1024 * 1024); return configuration; } }); The Session.Listener is notified of session events originated by the server such as receiving a SETTINGS frame from the server, or the server closing the connection, or the client timing out the connection due to idleness. Please refer to the Session.Listener javadocs for the complete list of events. Once a Session has been established, the communication with the server happens by exchanging frames, as specified in the HTTP/2 specification. Sending an HTTP request to the server, and receiving a response, creates a stream that encapsulates the exchange of HTTP/2 frames that compose the request and the response. In order to send an HTTP request to the server, the client must send a HEADERS frame. HEADERS frames carry the request method, the request URI and the request headers. Sending the HEADERS frame opens the Stream: SocketAddress serverAddress = new InetSocketAddress(\"localhost\", 8080); CompletableFuture<Session> sessionCF = http2Client.connect(serverAddress, new Session.Listener() {}); Session session = sessionCF.get(); // Configure the request headers. HttpFields requestHeaders = HttpFields.build() .put(HttpHeader.USER_AGENT, \"Jetty HTTP2Client 12.1.13\"); // The request metadata with method, URI and headers. MetaData.Request request = new MetaData.Request(\"GET\", HttpURI.from(\"http://localhost:8080/path\"), HttpVersion.HTTP_2, requestHeaders); // The HTTP/2 HEADERS frame, with endStream=true // to signal that this request has no content. HeadersFrame headersFrame = new HeadersFrame(request, null, true); // Open a Stream by sending the HEADERS frame. session.newStream(headersFrame, null); Note how Session.newStream(...) takes a Stream.Listener parameter. This listener is notified of stream events originated by the server such as receiving HEADERS or DATA frames that are part of the response, discussed in more details in the section below. Please refer to the Stream.Listener javadocs for the complete list of events. HTTP requests may have content, which is sent using the Stream APIs: SocketAddress serverAddress = new InetSocketAddress(\"localhost\", 8080); CompletableFuture<Session> sessionCF = http2Client.connect(serverAddress, new Session.Listener() {}); Session session = sessionCF.get(); // Configure the request headers. HttpFields requestHeaders = HttpFields.build() .put(HttpHeader.CONTENT_TYPE, \"application/json\"); // The request metadata with method, URI and headers. MetaData.Request request = new MetaData.Request(\"POST\", HttpURI.from(\"http://localhost:8080/path\"), HttpVersion.HTTP_2, requestHeaders); // The HTTP/2 HEADERS frame, with endStream=false to // signal that there will be more frames in this stream. HeadersFrame headersFrame = new HeadersFrame(request, null, false); // Open a Stream by sending the HEADERS frame. CompletableFuture<Stream> streamCF = session.newStream(headersFrame, null); // Block to obtain the Stream. // Alternatively you can use the CompletableFuture APIs to avoid blocking. Stream stream = streamCF.get(); // The request content, in two chunks. String content1 = \"{\\\"greet\\\": \\\"hello world\\\"}\"; ByteBuffer buffer1 = StandardCharsets.UTF_8.encode(content1); String content2 = \"{\\\"user\\\": \\\"jetty\\\"}\"; ByteBuffer buffer2 = StandardCharsets.UTF_8.encode(content2); // Send the first DATA frame on the stream, with endStream=false // to signal that there are more frames in this stream. CompletableFuture<Stream> dataCF1 = stream.data(new DataFrame(stream.getId(), buffer1, false)); // Only when the first chunk has been sent we can send the second, // with endStream=true to signal that there are no more frames. dataCF1.thenCompose(s -> s.data(new DataFrame(s.getId(), buffer2, true))); When sending two DATA frames consecutively, the second call to Stream.data(...) must be done only when the first is completed, or a WritePendingException will be thrown. Use the Callback APIs or CompletableFuture APIs to ensure that the second Stream.data(...) call is performed when the first completed successfully. Response events are delivered to the Stream.Listener passed to Session.newStream(...). An HTTP response is typically composed of a HEADERS frame containing the HTTP status code and the response headers, and optionally one or more DATA frames containing the response content bytes. The HTTP/2 protocol also supports response trailers (that is, headers that are sent after the response content) that also are sent using a HEADERS frame. A client application can therefore receive the HTTP/2 frames sent by the server by implementing the relevant methods in Stream.Listener: // Open a Stream by sending the HEADERS frame. session.newStream(headersFrame, new Stream.Listener() { @Override public void onHeaders(Stream stream, HeadersFrame frame) { MetaData metaData = frame.getMetaData(); // Is this HEADERS frame the response or the trailers? if (metaData.isResponse()) { MetaData.Response response = (MetaData.Response)metaData; System.getLogger(\"http2\").log(INFO, \"Received response {0}\", response); if (!frame.isEndStream()) { // Demand for DATA frames, so that onDataAvailable() // below will be called when they are available. stream.demand(); } } else { System.getLogger(\"http2\").log(INFO, \"Received trailers {0}\", metaData.getHttpFields()); } } @Override public void onDataAvailable(Stream stream) { // Read a Data object. Stream.Data data = stream.readData(); if (data == null) { // Demand more DATA frames. stream.demand(); return; } // Get the content buffer. ByteBuffer buffer = data.frame().getByteBuffer(); // Consume the buffer, here - as an example - just log it. System.getLogger(\"http2\").log(INFO, \"Consuming buffer {0}\", buffer); // Tell the implementation that the buffer has been consumed. data.release(); if (!data.frame().isEndStream()) { // Demand more DATA frames when they are available. stream.demand(); } } }); When onDataAvailable(Stream stream) is invoked, the demand is implicitly cancelled. Just returning from the onDataAvailable(Stream stream) method does not implicitly demand for more DATA frames. Applications must call Stream.demand() to explicitly require that onDataAvailable(Stream stream) is invoked again when more DATA frames are available. Applications that consume the content buffer within onDataAvailable(Stream stream) (for example, writing it to a file, or copying the bytes to another storage) should call Data.release() as soon as they have consumed the content buffer. This allows the implementation to reuse the buffer, reducing the memory requirements needed to handle the content buffers. Alternatively, an application may store away the Data object to consu
1me the buffer bytes later, or pass the Data object to another asynchronous API (this is typical in proxy applications). The call to Stream.readData() tells the implementation to enlarge the stream and session flow control windows so that the sender will be able to send more DATA frames without stalling. Applications can unwrap the Data object into some other object that may be used later, provided that the release semantic is maintained: record Chunk(ByteBuffer byteBuffer, Callback callback) { } // A queue that consumers poll to consume content asynchronously. Queue<Chunk> dataQueue = new ConcurrentLinkedQueue<>(); // Implementation of Stream.Listener.onDataAvailable(Stream stream) // in case of unwrapping of the Data object for asynchronous content // consumption and demand. Stream.Listener listener = new Stream.Listener() { @Override public void onDataAvailable(Stream stream) { Stream.Data data = stream.readData(); if (data == null) { stream.demand(); return; } // Get the content buffer. ByteBuffer byteBuffer = data.frame().getByteBuffer(); // Unwrap the Data object, converting it to a Chunk. // The Data.release() semantic is maintained in the completion of the Callback. dataQueue.offer(new Chunk(byteBuffer, Callback.from(() -> { // When the buffer has been consumed, then: // A) release the Data object. data.release(); // B) possibly demand more DATA frames. if (!data.frame().isEndStream()) stream.demand(); }))); // Do not demand more data here, to avoid to overflow the queue. } }; Applications that implement onDataAvailable(Stream stream) must remember to call Stream.demand() eventually. If they do not call Stream.demand(), the implementation will not invoke onDataAvailable(Stream stream) to deliver more DATA frames and the application will stall threadlessly until an idle timeout fires to close the stream or the session. In HTTP/2, clients and servers have the ability to tell to the other peer that they are not interested anymore in either the request or the response, using a RST_STREAM frame. The HTTP2Client APIs allow client applications to send and receive this \"reset\" frame: // Open a Stream by sending the HEADERS frame. CompletableFuture<Stream> streamCF = session.newStream(headersFrame, new Stream.Listener() { @Override public void onReset(Stream stream, ResetFrame frame, Callback callback) { // The server reset this stream. // Succeed the callback to signal that the reset event has been handled. callback.succeeded(); } }); Stream stream = streamCF.get(); // Reset this stream (for example, the user closed the application). stream.reset(new ResetFrame(stream.getId(), ErrorCode.CANCEL_STREAM_ERROR.code), Callback.NOOP); HTTP/2 servers have the ability to push resources related to a primary resource. When an HTTP/2 server pushes a resource, it sends to the client a PUSH_PROMISE frame that contains the request URI and headers that a client would use to request explicitly that resource. Client applications can be configured to tell the server to never push resources, see this section. Client applications can listen to the push events, and act accordingly: // Open a Stream by sending the HEADERS frame. CompletableFuture<Stream> streamCF = session.newStream(headersFrame, new Stream.Listener() { @Override public Stream.Listener onPush(Stream pushedStream, PushPromiseFrame frame) { // The \"request\" the client would make for the pushed resource. MetaData.Request pushedRequest = frame.getMetaData(); // The pushed \"request\" URI. HttpURI pushedURI = pushedRequest.getHttpURI(); // The pushed \"request\" headers. HttpFields pushedRequestHeaders = pushedRequest.getHttpFields(); // If needed, retrieve the primary stream that triggered the push. Stream primaryStream = pushedStream.getSession().getStream(frame.getStreamId()); // Return a Stream.Listener to listen for the pushed \"response\" events. return new Stream.Listener() { @Override public void onHeaders(Stream stream, HeadersFrame frame) { // Handle the pushed stream \"response\". MetaData metaData = frame.getMetaData(); if (metaData.isResponse()) { // The pushed \"response\" headers. HttpFields pushedResponseHeaders = metaData.getHttpFields(); // Typically a pushed stream has data, so demand for data. stream.demand(); } } @Override public void onDataAvailable(Stream stream) { // Handle the pushed stream \"response\" content. Stream.Data data = stream.readData(); if (data == null) { stream.demand(); return; } // The pushed stream \"response\" content bytes. ByteBuffer buffer = data.frame().getByteBuffer(); // Consume the buffer and release the Data object. data.release(); if (!data.frame().isEndStream()) { // Demand more DATA frames when they are available. stream.demand(); } } }; } }); If a client application does not want to handle a particular HTTP/2 push, it can just reset the pushed stream to tell the server to stop sending bytes for the pushed stream
1: // Open a Stream by sending the HEADERS frame. CompletableFuture<Stream> streamCF = session.newStream(headersFrame, new Stream.Listener() { @Override public Stream.Listener onPush(Stream pushedStream, PushPromiseFrame frame) { // Reset the pushed stream to tell the server you are not interested. pushedStream.reset(new ResetFrame(pushedStream.getId(), ErrorCode.CANCEL_STREAM_ERROR.code), Callback.NOOP); // Not interested in listening to pushed response events. return null; } }); Once a Session has been established (see here), it may be closed in the following way, providing an error code and a short textual reason: session.close(ErrorCode.NO_ERROR.code, \"close\", Callback.NOOP); Closing a Session will send a GOAWAY frame to the server. When the server closes the Session, the GOAWAY frame received by the client carries the identifier of the last stream that was processed by the server. Streams that have an identifier higher than the one specified in the GOAWAY frame are not processed by the server. A client application may be sending requests while the server is closing the Session, so it is possible that the client opens a stream that will not be processed by the server, because it has an identifier that is greater than the one specified in the GOAWAY frame sent by the server. In this case the stream is failed on the client with a RetryableStreamException, and client applications may decide whether to retry the request (if the request can be retried): CompletableFuture<Stream> streamCF = session.newStream(headersFrame, new Stream.Listener() { @Override public void onFailure(Stream stream, int error, String reason, Throwable failure, Callback callback) { if (failure instanceof RetryableStreamException) { // The request may be retried. } else { // The request failed. } } }); The HTTP/2 low-level APIs allow you to listen and react to semantic events such as HTTP requests and HTTP responses. You can use HTTP2Session.LifeCycleListener to be notified of lifecycle events of a Session (when it is opened and when it is closed), and HTTP2Session.FrameListener to be notified of what HTTP/2 frames have been sent and received. These listeners are useful to implement cross-cutting concerns that are not related to the handling of HTTP requests and responses. For example, you can use a HTTP2Session.LifeCycleListener to record and log how long sessions remain open: class SessionLifeTime implements HTTP2Session.LifeCycleListener { private final Map<Session, SessionNanoTime> opens = new ConcurrentHashMap<>(); private final Set<SessionNanoTime> closes = ConcurrentHashMap.newKeySet(); @Override public void onOpen(Session session) { opens.put(session, new SessionNanoTime(session.getRemoteSocketAddress(), NanoTime.now())); } @Override public void onClose(Session session) { SessionNanoTime openNanoTime = opens.remove(session); closes.add(new SessionNanoTime(openNanoTime.address(), NanoTime.since(openNanoTime.nanoTime()))); } record SessionNanoTime(SocketAddress address, long nanoTime) { } } HTTP2Client http2Client = new HTTP2Client(); http2Client.addBean(new SessionLifeTime()); Another example is to use a HTTP2Session.FrameListener to log HTTP/2 frames for HTTP/2 protocol troubleshooting: class LoggingFrameListener implements HTTP2Session.FrameListener { @Override public void onIncomingFrame(Session session, Frame frame) { System.getLogger(\"http2\").log(INFO, \"incoming %s on %s\", frame, session); } @Override public void onOutgoingFrame(Session session, Frame frame) { System.getLogger(\"http2\").log(INFO, \"outgoing %s on %s\", frame, session); } } HTTP2Client http2Client = new HTTP2Client(); http2Client.addBean(new LoggingFrameListener()); In limited cases, you can use these listeners to access the low-level HTTP/2 APIs even if your application uses the high-level APIs with the HTTP/2 transport.","title":"HTTP/2 Client Library","component":"jetty","version":"12.1","name":"http2","url":"/docs/jetty/12.1/programming-guide/client/http2.html","titles":[{"text":"Introducing HTTP2Client","hash":"intro","id":1},{"text":"HTTP/2 Flow Control","hash":"flow-control","id":2},{"text":"Connecting to the Server","hash":"connect","id":3},{"text":"Configuring the Session","hash":"configure","id":4},{"text":"Sending a Request","hash":"request","id":5},{"text":"Receiving a Response","hash":"response","id":6},{"text":"Resetting a Request or Response","hash":"reset","id":7},{"text":"Receiving HTTP/2 Pushes","hash":"push","id":8},{"text":"Session Closing","hash":"goaway","id":9},{"text":"Listening to HTTP/2 Events","hash":"listeners","id":10}]},"54":{"id":54,"text":"The Eclipse Jetty Project provides client-side libraries that allow you to embed an HTTP or WebSocket client in your applications. A typical example is a client application that needs to contact a third party service via HTTP (for example a REST service). Another example is a proxy application that receives HTTP requests and forwards them as FCGI requests to a PHP application such as WordPress, or receives HTTP/1.1 requests and converts them to HTTP/2 or HTTP/3. Yet another example is a client application that needs to receive events from a WebSocket server. The client libraries are designed to be non-blocking and offer both
1synchronous and asynchronous APIs and come with many configuration options. These are the available client libraries: The High-Level HTTP Client Library for HTTP/1.1, HTTP/2, HTTP/3 and FastCGI The Low-Level HTTP/2 Client Library for low-level HTTP/2 The Low-Level HTTP/3 Client Library for low-level HTTP/3 The WebSocket client library If you are interested in the low-level details of how the Jetty client libraries work, or are interested in writing a custom protocol, look at the Client I/O Architecture and the client threading architecture.","title":"Client Libraries","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/programming-guide/client/index.html","titles":[]},"55":{"id":55,"text":"In the vast majority of cases, client applications should use the generic, high-level, HTTP client library that also provides HTTP/3 support via the pluggable HTTP/3 transport or the dynamic transport. The high-level HTTP library supports cookies, authentication, redirection, connection pooling and a number of other features that are absent in the low-level HTTP/3 library. The low-level HTTP/3 client library has been designed for those applications that need low-level access to HTTP/3 features such as sessions, streams and frames, and this is quite a rare use case. See also the correspondent HTTP/3 server library. The Maven artifact coordinates for the HTTP/3 client library are the following: <dependency> <groupId>org.eclipse.jetty.http3</groupId> <artifactId>jetty-http3-client</artifactId> <version>12.1.13</version> </dependency> The HTTP/3 protocol is layered on top of the underlying QUIC protocol. The QUIC protocol implementation underlying HTTP/3 is provided by Jetty classes that wrap the Quiche native library, so you need also the following artifact: <dependency> <groupId>org.eclipse.jetty.quic</groupId> <artifactId>jetty-quic-quiche-client</artifactId> <version>12.1.13</version> </dependency> Furthermore, the binding to the Quiche native library has two implementations: one based on JNA that works with Java 17 or later, and one based on JDKâs Foreign Function & Memory (FFM) APIs that works with Java 22 or later. You must choose the binding you want to use (depending on the Java version you are using), with either of the following artifacts: <dependency> <groupId>org.eclipse.jetty.quic</groupId> <artifactId>jetty-quic-quiche-jna</artifactId> <version>12.1.13</version> </dependency> <dependency> <groupId>org.eclipse.jetty.quic</groupId> <artifactId>jetty-quic-quiche-foreign</artifactId> <version>12.1.13</version> </dependency> Since Java 22, the JVM emits a warning message when Java code tries to access code in native libraries. For example with Java 25: WARNING: A restricted method in java.lang.foreign.AddressLayout has been called WARNING: java.lang.foreign.AddressLayout::withTargetLayout has been called by org.eclipse.jetty.quic.quiche.foreign.NativeHelper in an unnamed module (file:/home/simon/opensource/jetty/12.1.x/jetty-core/jetty-quic/jetty-quic-quiche/jetty-quic-quiche-foreign/target/classes/) WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module WARNING: Restricted methods will be blocked in a future release unless native access is enabled To avoid the warning, you can start the JVM as suggested by the warning message above, by adding --enable-native-access=ALL-UNNAMED on the command line. This grants any code in the class-path access to any native library. If you are running in JPMS mode, you can explicitly grant access just to the JPMS module(s) that require it. To grant Jetty access to the Quiche native library, use --enable-native-access=org.eclipse.jetty.quic.quiche.foreign. This grants only to the Jetty JPMS module org.eclipse.jetty.quic.quiche.foreign in the module-path access to any native library. The main class is named org.eclipse.jetty.http3.client.HTTP3Client, and must be created, configured and started before use: // Create a QUIC configuration suitable for HTTP/3. ClientQuicConfiguration clientQuicConfig = HTTP3ClientQuicConfiguration.configure(new QuicheClientQuicConfiguration()); // Instantiate HTTP3Client. HTTP3Client http3Client = new HTTP3Client(clientQuicConfig); // Configure HTTP/3 features, for example: http3Client.getHTTP3Configuration().setStreamIdleTimeout(15000); // Start HTTP3Client. http3Client.start(); When your application stops, or otherwise does not need HTTP3Client anymore, it should stop the HTTP3Client instance (or instances) that were started: // Stop HTTP3Client. http3Client.stop(); HTTP3Client allows client applications to connect to an HTTP/3 server. When a client wants to establish a connection with a server, the QUIC protocol establishes the connection with the server, represented by a QUIC session. A QUIC session typically has a long life â once the connection is established, it remains active until it is not used anymore (and therefore it is closed by the idle timeout mechanism), until a fatal error occurs (for example, a network failure), or if one of the peers decides unilaterally to close the connection. There is a 1-to-1 relationship between a QUIC session and an HTTP/3 session, defined by class org.eclipse.jetty.http3.api.Session.Client. The QUIC protocol is multiplexed, that is it allows multiple, independent, QUIC streams to exchange data to and from the server, over a single connection. Therefore, a single QUIC session manages multiple concurrent QUIC streams. There is a 1-to-1 relationship between a QUIC stream and an HTTP/3 stream, defined by class org.eclipse.jetty.http3.api.Stream.Client. Eac
1h HTTP/3 request/response cycle is carried by an HTTP/3 stream, and has typically a very short life compared to the session: a stream only exists for the duration of the request/response cycle and then disappears. The first thing an application should do is to connect to the server and obtain a Session. The following example connects to the server: // Address of the server's port. SocketAddress serverAddress = new InetSocketAddress(\"localhost\", 8444); // Connect to the server, the Promise will be // notified when the connection is succeeded (or failed). http3Client.connect(new QuicheTransport(clientQuicConfig), serverAddress, new Session.Client.Listener() {}, new Promise.Invocable.NonBlocking<>() { @Override public void succeeded(Session.Client result) { // Connected successfully. } @Override public void failed(Throwable x) { // Failed to connect. } }); The connect(...) method takes a Session.Client.Listener parameter. This listenerâs onPreface(...) method is invoked just before establishing the connection to the server to gather the client configuration to send to the server. Client applications can override this method to change the default configuration: SocketAddress serverAddress = new InetSocketAddress(\"localhost\", 8444); http3Client.connect(new QuicheTransport(clientQuicConfig), serverAddress, new Session.Client.Listener() { @Override public Map<Long, Long> onPreface(Session session) { Map<Long, Long> configuration = new HashMap<>(); // Add here configuration settings. return configuration; } }, Promise.Invocable.noop()); The Session.Client.Listener is notified of session events originated by the server such as receiving a SETTINGS frame from the server, or the server closing the connection, or the client timing out the connection due to idleness. Please refer to the Session.Client.Listener javadocs for the complete list of events. Once a Session has been established, the communication with the server happens by exchanging HTTP/3 frames over QUIC streams. Sending an HTTP request to the server, and receiving a response, creates a stream that encapsulates the exchange of HTTP/3 frames that compose the request and the response. In order to send an HTTP request to the server, the client must send a HEADERS frame. HEADERS frames carry the request method, the request URI and the request headers. Sending the HEADERS frame opens the Stream: SocketAddress serverAddress = new InetSocketAddress(\"localhost\", 8444); Session.Client session = Blocker.blockWithPromise(p -> http3Client.connect(new QuicheTransport(clientQuicConfig), serverAddress, new Session.Client.Listener() {}, p)); // Configure the request headers. HttpFields requestHeaders = HttpFields.build() .put(HttpHeader.USER_AGENT, \"Jetty HTTP3Client 12.1.13\"); // The request metadata with method, URI and headers. MetaData.Request request = new MetaData.Request(\"GET\", HttpURI.from(\"http://localhost:8444/path\"), HttpVersion.HTTP_3, requestHeaders); // The HTTP/3 HEADERS frame, with last=true to signal // that there will be no more frames in this stream. HeadersFrame headersFrame = new HeadersFrame(request, true); // Open a stream by sending the HEADERS frame. session.newRequest(headersFrame, new Stream.Client.Listener() {}, Promise.Invocable.noop()); Note how Session.newRequest(...) takes a Stream.Client.Listener parameter. This listener is notified of stream events originated by the server such as receiving HEADERS or DATA frames that are part of the response, discussed in more details in the section below. Please refer to the Stream.Client.Listener javadocs for the complete list of events. HTTP requests may have content, which is sent using the Stream APIs: SocketAddress serverAddress = new InetSocketAddress(\"localhost\", 8444); Session.Client session = Blocker.blockWithPromise(p -> http3Client.connect(new QuicheTransport(clientQuicConfig), serverAddress, new Session.Client.Listener() {}, p)); // Configure the request headers. HttpFields requestHeaders = HttpFields.build() .put(HttpHeader.CONTENT_TYPE, \"application/json\"); // The request metadata with method, URI and headers. MetaData.Request request = new MetaData.Request(\"POST\", HttpURI.from(\"http://localhost:8444/path\"), HttpVersion.HTTP_3, requestHeaders); // The HTTP/3 HEADERS frame, with last=false to // signal that there will be more frames in this stream. HeadersFrame headersFrame = new HeadersFrame(request, false); // Open a Stream by sending the HEADERS frame. // Block to obtain the Stream (or use a Promise). Stream stream = Blocker.blockWithProm
1ise(p -> session.newRequest(headersFrame, new Stream.Client.Listener() {}, p)); // The request content, in two chunks. String content1 = \"{\\\"greet\\\": \\\"hello world\\\"}\"; ByteBuffer buffer1 = StandardCharsets.UTF_8.encode(content1); String content2 = \"{\\\"user\\\": \\\"jetty\\\"}\"; ByteBuffer buffer2 = StandardCharsets.UTF_8.encode(content2); // Send the first DATA frame on the stream, with last=false // to signal that there are more frames in this stream. stream.data(new DataFrame(buffer1, false), new Promise.Invocable.NonBlocking<>() { @Override public void succeeded(Stream result) { // Only when the first chunk has been sent we can send the second, // with last=true to signal that there will be no more frames. result.data(new DataFrame(buffer2, true), Promise.Invocable.noop()); } }); When sending two DATA frames consecutively, the second call to Stream.data(...) must be done only when the first is completed, or a WritePendingException will be thrown. Use the Promise APIs to ensure that the second Stream.data(...) call is performed when the first completed successfully. Response events are delivered to the Stream.Client.Listener passed to Session.newRequest(...). An HTTP response is typically composed of a HEADERS frame containing the HTTP status code and the response headers, and optionally one or more DATA frames containing the response content bytes. The HTTP/3 protocol also supports response trailers (that is, headers that are sent after the response content) that also are sent using a HEADERS frame. A client application can therefore receive the HTTP/3 frames sent by the server by implementing the relevant methods in Stream.Client.Listener: // Open a Stream by sending the HEADERS frame. session.newRequest(headersFrame, new Stream.Client.Listener() { @Override public void onResponse(Stream.Client stream, HeadersFrame frame) { // Process the response status code and headers, if necessary. MetaData.Response response = (MetaData.Response)frame.getMetaData(); System.getLogger(\"http3\").log(INFO, \"Received response {0}\", response); if (!frame.isLast()) { // There will be content, so call demand() to have // onDataAvailable() be called when the content is available. stream.demand(); } } @Override public void onDataAvailable(Stream.Client stream) { // Read a chunk of the content. Content.Chunk chunk = stream.read(); if (chunk == null) { // No data available now, demand to be called back. stream.demand(); } else { // Process the content. process(chunk.getByteBuffer()); // Notify the implementation that the content has been consumed. chunk.release(); if (!chunk.isLast()) { // Demand to be called back. stream.demand(); } } } }, Promise.Invocable.noop()); In HTTP/3, clients and servers have the ability to tell to the other peer that they are not interested anymore in either the request or the response, by terminating the stream. The HTTP3Client APIs allow client applications to send and receive this event: // Open a Stream by sending the HEADERS frame. Stream stream = Blocker.blockWithPromise(p -> session.newRequest(headersFrame, new Stream.Client.Listener() { @Override public void onFailure(Stream.Client stream, long error, Throwable failure) { // The server terminated this stream. } }, p)); // The client terminates this stream (for example, the user closed the application). stream.disconnect(HTTP3ErrorCode.REQUEST_CANCELLED_ERROR.code(), new ClosedChannelException(), Promise.Invocable.noop()); Once a Session has been established (see here), it may be closed in the following way: session.goAway(false, Promise.Invocable.noop()); Closing a Session will send a GOAWAY frame to the server. When the server closes the Session, the GOAWAY frame received by the client carries the identifier of the last stream that was processed by the server. Streams that have an identifier higher than the one specified in the GOAWAY frame are not processed by the server. A client application may be sending requests while the server is closing the Session, so it is possible that the client opens a stream that will not be processed by the server, because it has an identifier that is greater than the one specified in the GOAWAY frame sent by the server. In this case the stream is failed on the client with a RetryableStreamException, and client applications may decide whether to retry the request (if the request can be retried): session.newRequest(headersFrame, new Stream.Client.Listener() { @Override public void onFailure(Stream.Client stream, long error, Throwable failure) { if (failure instanceof RetryableStreamException) { // The request may be retried. } else { // The request failed. } } }, Promise.Invocable.noop());","title":"HTTP/3 Client Library","component":"jetty","version":"12.1","name":"http3","url":"/docs/jetty/12.1/programming-guide/client/http3.html","titles":[{"text":"Introducing HTTP3Client","hash":"intro","id":1},{"text":"Connecting to the Server","hash":"connect","id":2},{"text":"Configuring the Session","hash":"configure","id":3},{"text":"Sending a Request","hash":"request","id":4},{"text":"Receiving a Response","hash":"response","id":5},{"text":"Terminating a Request or Response","hash":"terminate","id":6},{"text":"Session Closing","hash":"goaway","id":7}]},"56":{"id":56,"text":"The Jetty HTTP client libraries are non-blocking and event-based. Client applications provide listeners that are notified of request and response events, and the listeners implement the client application logic. In general, the thread that sends the Request is the thread that emits the request events. Writing blocking code in a request listener blocks the sending of the Request. The processing of Responses, on the other hand, follows the general Jetty I/O architecture and Jetty threading architecture, and it is detailed in this section. In order to send a request, a connection needs to be established, and this involves a query to the DNS to convert the host name to an IP address (this is necessary only for network transports, see here). The Java platform only offers blocking APIs to query the DNS, via InetAddress.getAllByName(String). While DNS queries are typically fast (few milliseconds), in unfortunate cases they may last several seconds, blocking the thread that sends the request. To avoid blocking the request sender thread, HttpClient is configured by default with SocketAddressResolver.Async, that executes the DNS query in a different thread. If you want to avoid this thread hand-off, especially when the request host is localhost or resolved locally (for example configured in /etc/hosts), you can configure HttpClient with SocketAddressResolver.Sync that will perform the DNS query in the request sender thread. As explained in the general Jetty threading architecture, client applications can specify the InvocationType of the Jetty implementation tasks that invoke client application code in Response listeners. There are two main Jetty implementation tasks that invoke client application code in Response listeners: The task that invokes the Response listeners, detailed here. The task that invokes the responseâs Content.Source demand callback, detailed here. The InvocationType of the task that invokes the Response listeners is configured in the HttpClientTrans
1port passed to HttpClient: HttpClient httpClient = new HttpClient(); // Configure the InvocationType for the response listeners. httpClient.getHttpClientTransport().setInvocationType(Invocable.InvocationType.NON_BLOCKING); httpClient.start(); The default InvocationType for all HttpClientTransports is BLOCKING. The InvocationType of the task that invokes the Response Content.Source demand callback is determined from the demand callback object passed to Content.Source.demand(Runnable), and defines the InvocationType with which the demand callback is invoked. Rather than passing a simple Runnable or a lambda expression (for which the InvocationType is assumed to be BLOCKING), you can pass an Invocable.Task, that implements both Invocable (to specify the InvocationType) and Runnable (to specify the demand callback). For example: HttpClient httpClient = new HttpClient(); httpClient.getHttpClientTransport().setInvocationType(Invocable.InvocationType.NON_BLOCKING); (1) httpClient.start(); httpClient.newRequest(\"http://domain.com/path\") .onResponseContentSource((response, contentSource) -> { contentSource.demand(new Invocable.Task.Abstract(Invocable.InvocationType.NON_BLOCKING) (2) { @Override public void run() { while (true) { Content.Chunk chunk = contentSource.read(); if (chunk == null) { contentSource.demand(this); (2) return; } if (Content.Chunk.isFailure(chunk)) { response.abort(chunk.getFailure()); return; } // Process the Chunk in non-blocking way. processNonBlocking(chunk); chunk.release(); if (chunk.isLast()) return; } } }); }).send(null); 1 Specifies the InvocationType for response listener processing. 2 Specifies the demand callback to be an Invocable.Task with InvocationType NON_BLOCKING.","title":"Client Threading Architecture","component":"jetty","version":"12.1","name":"threads","url":"/docs/jetty/12.1/programming-guide/client/threads.html","titles":[{"text":"DNS Lookup Threading","hash":"dns-lookup-threading","id":1},{"text":"Response Processing Threading","hash":"response-threading","id":2},{"text":"Response Listener InvocationType","hash":"invocation-type-listeners","id":3},{"text":"Response Demand InvocationType","hash":"invocation-type-demand","id":4}]},"57":{"id":57,"text":"The Jetty client libraries provide the basic components and APIs to implement a client application. They build on the common Jetty I/O Architecture and provide client specific concepts (such as establishing a connection to a server). There are conceptually two layers that compose the Jetty client libraries: The transport layer, that handles the low-level communication with the server, and deals with buffers, threads, etc. The protocol layer, that handles the high-level protocol by parsing the bytes read from the transport layer and by generating the bytes to write to the transport layer. The transport layer is the low-level layer that communicates with the server. Protocols such as HTTP/1.1 and HTTP/2 are typically transported over TCP, while the newer HTTP/3 is transported over QUIC, which is itself transported over UDP. However, there are other means of communication supported by the Jetty client libraries, in particular over Unix-Domain sockets (for inter-process communication), and over memory (for intra-process communication). The same high-level protocol can be carried by different low-level transports. For example, the high-level HTTP/1.1 protocol can be transported over either TCP (the default), or QUIC, or Unix-Domain sockets, or memory, because all these low-level transport provide reliable and ordered communication between client and server. Similarly, the high-level HTTP/3 protocol can be transported over either QUIC (the default) or memory. It would be possible to transport HTTP/3 also over Unix-Domain sockets, but the current version of Java only supports Unix-Domain sockets for SocketChannels and not for DatagramChannels. The Jetty client libraries use the common I/O design described in this section. The common I/O components and concepts are used for all low-level transports. The only partial exception is the memory transport, which is not based on network components; as such it does not need a SelectorManager, but it exposes EndPoint so that high-level protocols have a common interface to interact with the low-level transport. The client-side abstraction for the low-level transport is org.eclipse.jetty.io.Transport. Trans
1port represents how high-level protocols can be transported; there is Transport.TCP_IP that represents communication over TCP, but also Transport.TCPUnix for Unix-Domain sockets, QuicheTransport for QUIC and MemoryTransport for memory. Applications can specify the Transport to use for each request as described in this section. When the Transport implementation uses the network, it delegates to org.eclipse.jetty.io.ClientConnector. ClientConnector primarily wraps org.eclipse.jetty.io.SelectorManager to provide network functionalities, and aggregates other four components: a thread pool (in form of an java.util.concurrent.Executor) a scheduler (in form of org.eclipse.jetty.util.thread.Scheduler) a byte buffer pool (in form of org.eclipse.jetty.io.ByteBufferPool) a TLS factory (in form of org.eclipse.jetty.util.ssl.SslContextFactory.Client) The ClientConnector is where you want to set those components after you have configured them. If you donât explicitly set those components on the ClientConnector, then appropriate defaults will be chosen when the ClientConnector starts. ClientConnector manages all network-related components, and therefore it is used for TCP, UDP, QUIC and Unix-Domain sockets. The simplest example that creates and starts a ClientConnector is the following: ClientConnector clientConnector = new ClientConnector(); clientConnector.start(); A more typical example: // Create and configure the SslContextFactory. SslContextFactory.Client sslContextFactory = new SslContextFactory.Client(); sslContextFactory.addExcludeProtocols(\"TLSv1\", \"TLSv1.1\"); // Create and configure the thread pool. QueuedThreadPool threadPool = new QueuedThreadPool(); threadPool.setName(\"client\"); // Create and configure the ClientConnector. ClientConnector clientConnector = new ClientConnector(); clientConnector.setSslContextFactory(sslContextFactory); clientConnector.setExecutor(threadPool); clientConnector.start(); A more advanced example that customizes the ClientConnector by overriding some of its methods: class CustomClientConnector extends ClientConnector { @Override protected SelectorManager newSelectorManager() { return new ClientSelectorManager(getExecutor(), getScheduler(), getSelectors()) { @Override protected void endPointOpened(EndPoint endpoint) { System.getLogger(\"endpoint\").log(INFO, \"opened %s\", endpoint); } @Override protected void endPointClosed(EndPoint endpoint) { System.getLogger(\"endpoint\").log(INFO, \"closed %s\", endpoint); } }; } } // Create and configure the thread pool. QueuedThreadPool threadPool = new QueuedThreadPool(); threadPool.setName(\"client\"); // Create and configure the scheduler. Scheduler scheduler = new ScheduledExecutorScheduler(\"scheduler-client\", false); // Create and configure the custom ClientConnector. CustomClientConnector clientConnector = new CustomClientConnector(); clientConnector.setExecutor(threadPool); clientConnector.setScheduler(scheduler); clientConnector.start(); Since ClientConnector is the component that handles the low-level network transport, it is also the component where you want to configure the low-level network configuration. The most common parameters are: ClientConnector.selectors: the number of java.nio.Selectors components (defaults to 1) that are present to handle the SocketChannels and DatagramChannels opened by the ClientConnector. You typically want to increase the number of selectors only for those use cases where each selector should handle more than few hundreds concurrent socket events. For example, one selector typically runs well for 250 concurrent socket events; as a rule of thumb, you can multiply that number by 10 to obtain the number of opened sockets a selector can handle (2500), based on the assumption that not all the 2500 sockets will be active at the same time. ClientConnector.idleTimeout: the duration of time after which ClientConnector closes a socket due to inactivity (defaults to 30 seconds). This is an important parameter to configure, and you typically want the client idle timeout to be shorter than the server idle timeout, to avoid race conditions where the client attempts to use a socket just before the client-side idle timeout expires, but the server-side idle timeout has already expired and the is already closing the socket. ClientConnector.connectBlocking: whether the operation of connecting a socket to the server (i.e. SocketChannel.connect(SocketAddress)) must be a blocking or a non-blocking operation (defaults to false). For localhost or same datacenter hosts you want to set this parameter to true because DNS resolution will be immediate (and likely never fail). For generic Internet hosts (e.g. when you are implementing a web spider) you want to set this parameter to false. ClientConnector.connectTimeout: the duration of time after which ClientConnector aborts a connection attempt to the server (defaults to 5 seconds). This time includes the DNS lookup time and the TCP connect time. Please refer to the ClientConnector javadocs for the complete list of configurable parameters. JEP 380 introduced Unix-Domain sockets support in Java 16, on all operative systems, but only for SocketChannels (not for DatagramChannels). ClientConnector handles Unix-Domain sockets exactly like it handles regular T
1CP sockets, so there is no additional configuration necessary â Unix-Domain sockets are supported out-of-the-box. Applications can specify the Transport to use for each request as described in this section. In addition to support communication between client and server via network or Unix-Domain, the Jetty client libraries also support communication between client and server via memory for intra-process communication. This means that the client and server must be in the same JVM process. This functionality is provided by org.eclipse.jetty.server.MemoryTransport, which does not delegate to ClientConnector, but instead delegates to the server-side MemoryConnector and its related classes. Applications can specify the Transport to use for each request as described in this section. The protocol layer builds on top of the transport layer to generate the bytes to be written to the low-level transport and to parse the bytes read from the low-level transport. Recall from this section that Jetty uses the Connection abstraction to produce and interpret the low-level transport bytes. On the client side, a ClientConnectionFactory implementation is the component that creates Connection instances based on the protocol that the client wants to \"speak\" with the server. Applications may use ClientConnector.connect(SocketAddress, Map<String, Object>) to establish a TCP connection to the server, and must provide ClientConnector with the following information in the context map: A Transport instance that specifies the low-level transport to use. A ClientConnectionFactory that creates Connection instances for the high-level protocol. A Promise that is notified when the connection creation succeeds or fails. For example: class CustomConnection extends AbstractConnection { public CustomConnection(EndPoint endPoint, Executor executor) { super(endPoint, executor); } @Override public void onOpen() { super.onOpen(); System.getLogger(\"connection\").log(INFO, \"Opened connection {0}\", this); } @Override public void onFillable() { } } ClientConnector clientConnector = new ClientConnector(); clientConnector.start(); String host = \"serverHost\"; int port = 8080; SocketAddress address = new InetSocketAddress(host, port); // The Transport instance. Transport transport = Transport.TCP_IP; // The ClientConnectionFactory that creates CustomConnection instances. ClientConnectionFactory connectionFactory = (endPoint, context) -> { System.getLogger(\"connection\").log(INFO, \"Creating connection for {0}\", endPoint); return new CustomConnection(endPoint, clientConnector.getExecutor()); }; // The Promise to notify of connection creation success or failure. CompletableFuture<CustomConnection> connectionPromise = new Promise.Completable<>(); // Populate the context with the mandatory keys to create and obtain connections. Map<String, Object> context = new ConcurrentHashMap<>(); context.put(Transport.CONTEXT_KEY, transport); context.put(ClientConnectionFactory.CONTEXT_KEY, connectionFactory); context.put(ClientConnector.CONNECTION_PROMISE_CONTEXT_KEY, connectionPromise); clientConnector.connect(address, context); // Use the Connection when it's available. // Use it in a non-blocking way via CompletableFuture APIs. connectionPromise.whenComplete((connection, failure) -> { System.getLogger(\"connection\").log(INFO, \"Created connection for {0}\", connection); }); // Alternatively, you can block waiting for the connection (or a failure). // CustomConnection connection = connectionPromise.get(); When a Connection is created successfully, its onOpen() method is invoked, and then the promise is completed successfully. It is now possible to write a super-simple telnet client that reads and writes string lines: class TelnetConnection extends AbstractConnection { private final ByteArrayOutputStream bytes = new ByteArrayOutputStream(); private Consumer<String> consumer; public TelnetConnection(EndPoint endPoint, Executor executor) { super(endPoint, executor); } @Override public void onOpen() { super.onOpen(); // Declare interest for fill events. fillInterested(); } @Override public void onFillable() { try { ByteBuffer buffer = BufferUtil.allocate(1024); while (true) { int filled = getEndPoint().fill(buffer); if (filled > 0) { while (buffer.hasRemaining()) { // Search for newline. byte read = buffer.get(); if (read == '\\n') { // Notify the consumer of the line. consumer.accept(bytes.toString(StandardCharsets.UTF_8)); bytes.reset(); } else { bytes.write(read); } } } else if (filled == 0) { // No more bytes to fill, declare // again interest for fill events. fillInterested(); return; } else { // The other peer closed the // connection, close it back. getEndPoint().close(); return; } } } catch (Exception x) { getEndPoint().close(x); } } public void onLine(Consumer<String> consumer) { this.consumer = consumer; } public void writeLine(String line, Callback callback) { line = line + \"\\r\\n\"; getEndPoint().write(callback, ByteBuffer.wrap(line.getBytes(StandardCharsets.UTF_8))); } } ClientConnector clientConnector = new ClientConnector(); clientConnector.start(); String host = \"example.org\"; int port = 80; SocketAddress address = new InetSocketAddress(host, port); ClientConnectionFactory connectionFactory = (endPoint, context) -> new TelnetConnection(endPoint, clientConnector.getExecutor()); CompletableFuture<TelnetConnection> connectionPromise = new Promise.Completable<>(); Map<String, Object> context = new HashMap<>();
1 context.put(Transport.CONTEXT_KEY, Transport.TCP_IP); context.put(ClientConnectionFactory.CONTEXT_KEY, connectionFactory); context.put(ClientConnector.CONNECTION_PROMISE_CONTEXT_KEY, connectionPromise); clientConnector.connect(address, context); connectionPromise.whenComplete((connection, failure) -> { if (failure == null) { // Register a listener that receives string lines. connection.onLine(line -> System.getLogger(\"app\").log(INFO, \"line: {0}\", line)); // Write a line. connection.writeLine(\"GET / HTTP/1.0\\r\\n\", Callback.NOOP); } else { failure.printStackTrace(); } }); Note how a very basic \"telnet\" API that applications could use is implemented in the form of the onLine(Consumer<String>) for the non-blocking receiving side and writeLine(String, Callback) for the non-blocking sending side. Note also how the onFillable() method implements some basic \"parsing\" by looking up the \\n character in the buffer. The \"telnet\" client above looks like a super-simple HTTP client because HTTP/1.0 can be seen as a line-based protocol. HTTP/1.0 was used just as an example, but we could have used any other line-based protocol such as SMTP, provided that the server was able to understand it. This is very similar to what the Jetty client implementation does for real network protocols. Real network protocols are of course more complicated and so is the implementation code that handles them, but the general ideas are similar. The Jetty client implementation provides a number of ClientConnectionFactory implementations that can be composed to produce and interpret the network bytes. For example, it is simple to modify the above example to use the TLS protocol so that you will be able to connect to the server on port 443, typically reserved for the secure HTTP protocol. The differences between the clear-text version and the TLS encrypted version are minimal: class TelnetConnection extends AbstractConnection { private final ByteArrayOutputStream bytes = new ByteArrayOutputStream(); private Consumer<String> consumer; public TelnetConnection(EndPoint endPoint, Executor executor) { super(endPoint, executor); } @Override public void onOpen() { super.onOpen(); // Declare interest for fill events. fillInterested(); } @Override public void onFillable() { try { ByteBuffer buffer = BufferUtil.allocate(1024); while (true) { int filled = getEndPoint().fill(buffer); if (filled > 0) { while (buffer.hasRemaining()) { // Search for newline. byte read = buffer.get(); if (read == '\\n') { // Notify the consumer of the line. consumer.accept(bytes.toString(StandardCharsets.UTF_8)); bytes.reset(); } else { bytes.write(read); } } } else if (filled == 0) { // No more bytes to fill, declare // again interest for fill events. fillInterested(); return; } else { // The other peer closed the // connection, close it back. getEndPoint().close(); return; } } } catch (Exception x) { getEndPoint().close(x); } } public void onLine(Consumer<String> consumer) { this.consumer = consumer; } public void writeLine(String line, Callback callback) { line = line + \"\\r\\n\"; getEndPoint().write(callback, ByteBuffer.wrap(line.getBytes(StandardCharsets.UTF_8))); } } ClientConnector clientConnector = new ClientConnector(); clientConnector.start(); // Use port 443 to contact the server using encrypted HTTP. String host = \"example.org\"; int port = 443; SocketAddress address = new InetSocketAddress(host, port); ClientConnectionFactory connectionFactory = (endPoint, context) -> new TelnetConnection(endPoint, clientConnector.getExecutor()); // Wrap the \"telnet\" ClientConnectionFactory with the SslClientConnectionFactory. connectionFactory = clientConnector.newSslClientConnectionFactory(null, connectionFactory); // We will obtain a SslConnection now. CompletableFuture<SslConnection> connectionPromise = new Promise.Completable<>(); Map<String, Object> context = new ConcurrentHashMap<>(); context.put(Transport.CONTEXT_KEY, Transport.TCP_IP); context.put(ClientConnectionFactory.CONTEXT_KEY, connectionFactory); context.put(ClientConnector.CONNECTION_PROMISE_CONTEXT_KEY, connectionPromise); clientConnector.connect(address, context); connectionPromise.whenComplete((sslConnection, failure) -> { if (failure == null) { // Unwrap the SslConnection to access the \"line\" APIs in TelnetConnection. TelnetConnection connection = (TelnetConnection)sslConnection.getSslEndPoint().getConnection(); // Register a listener that receives string lines. connection.onLine(line -> System.getLogger(\"app\").log(INFO, \"line: {0}\", line)); // Write a line. connection.writeLine(\"GET / HTTP/1.0\\r\\n\", Callback.NOOP); } else { failure.printStackTrace(); } }); The differences with the clear-text version are only: Change the port from 80 to 443. Wrap the ClientConnectionFactory with SslClientConnectionFactory. Unwrap the SslConnection to access TelnetConnection.","title":"Client I/O Architecture","component":"jetty","version":"12.1","name":"io-arch","url":"/docs/jetty/12.1/programming-guide/client/io-arch.html","titles":[{"text":"Transport Layer","hash":"transport","id":1},{"text":"Unix-Domain Support","hash":"unix-domain","id":2},{"text":"Memory Support","hash":"memory","id":3},{"text":"Protocol Layer","hash":"protocol","id":4}]},"58":{"id":58,"text":"Jettyâs WebSocketClient is a more powerful alternative to the WebSocket client provided by the standard JSR 356 javax.websocket APIs. Similarly to Jettyâs HttpClient, the WebSocketClient is non-blocking and asynchronous, making it very efficie
1nt in resource utilization. A synchronous, blocking, API is also offered for simpler cases. Since the first step of establishing a WebSocket communication is an HTTP request, WebSocketClient makes use of HttpClient and therefore depends on it. The Maven artifact coordinates are the following: <dependency> <groupId>org.eclipse.jetty.websocket</groupId> <artifactId>jetty-websocket-jetty-client</artifactId> <version>12.1.13</version> </dependency> The main class is org.eclipse.jetty.websocket.client.WebSocketClient; you instantiate it, configure it, and then start it like many other Jetty components. This is a minimal example: // Instantiate WebSocketClient. WebSocketClient webSocketClient = new WebSocketClient(); // Configure WebSocketClient, for example: webSocketClient.setMaxTextMessageSize(8 * 1024); // Start WebSocketClient. webSocketClient.start(); However, it is recommended that you explicitly pass an HttpClient instance to WebSocketClient so that you can have control over the HTTP configuration as well: // Instantiate and configure HttpClient. HttpClient httpClient = new HttpClient(); // For example, configure a proxy. httpClient.getProxyConfiguration().addProxy(new HttpProxy(\"localhost\", 8888)); // Instantiate WebSocketClient, passing HttpClient to the constructor. WebSocketClient webSocketClient = new WebSocketClient(httpClient); // Configure WebSocketClient, for example: webSocketClient.setMaxTextMessageSize(8 * 1024); // Start WebSocketClient; this implicitly starts also HttpClient. webSocketClient.start(); You may create multiple instances of WebSocketClient, but typically one instance is enough for most applications. Creating multiple instances may be necessary for example when you need to specify different configuration parameters for different instances. For example, you may need different instances when you need to configure the HttpClient differently: different transports, different proxies, different cookie stores, different authentications, etc. The configuration that is not WebSocket specific (such as idle timeout, etc.) should be directly configured on the associated HttpClient instance. The WebSocket specific configuration can be configured directly on the WebSocketClient instance. Configuring the WebSocketClient allows to give default values to various parameters, whose values may be overridden more specifically, as described in this section. Refer to the WebSocketClient javadocs for the setter methods available to customize the WebSocket specific configuration. It is recommended that when your application stops, you also stop the WebSocketClient instance (or instances) that you are using. Similarly to stopping HttpClient, you want to stop WebSocketClient from a thread that is not owned by WebSocketClient itself, for example: // Stop WebSocketClient. // Use LifeCycle.stop(...) to rethrow checked exceptions as unchecked. new Thread(() -> LifeCycle.stop(webSocketClient)).start(); A WebSocket client may initiate the communication with the server either using HTTP/1.1 or using HTTP/2. The two mechanism are quite different and detailed in the following sections. Initiating a WebSocket communication with a server using HTTP/1.1 is detailed in RFC 6455. A WebSocket client first establishes a TCP connection to the server, then sends an HTTP/1.1 upgrade request. If the server supports upgrading to WebSocket, it responds with HTTP status code 101, and then switches the communication over that connection, either incoming or outgoing, to happen using the WebSocket protocol. When the client receives the HTTP status code 101, it switches the communication over that connection, either incoming or outgoing, to happen using the WebSocket protocol. In code: // Use a standard, HTTP/1.1, HttpClient. HttpClient httpClient = new HttpClient(); // Create and start WebSocketClient. WebSocketClient webSocketClient = new WebSocketClient(httpClient); webSocketClient.start(); // The client-side WebSocket EndPoint that // receives WebSocket messages from the server. ClientEndPoint clientEndPoint = new ClientEndPoint(); // The server URI to connect to. URI serverURI = URI.create(\"ws://domain.com/path\"); // Connect the client EndPoint to the server. CompletableFuture<Session> clientSessionPromise = webSocketClient.connect(clientEndPoint, serverURI); WebSocketClient.connect() links the client-side WebSocket endpoint to a specific server URI, and returns a CompletableFuture of an org.eclipse.jetty.websocket.api.Session. The endpoint offers APIs to receive WebSocket data (or errors) from the server, while the session offers APIs to send WebSocket data to the server. Initiating a WebSocket communication with a server using HTTP/1.1 is detailed in RFC 8441. A WebSocket client establishes a TCP connection to the server or reuses an existing one currently used for HTTP/2, then sends an HTTP/2 CONNECT request over an HTTP/2 stream. If the server supports upgrading to WebSocket, it responds with HTTP status code 200, then switches the communication over that stream, either incoming or outgoing, to happen using HTTP/2 DATA frames wrapping WebSocket frames. When the client receives the HTTP status code 200, it switches the communication over that stream, either incoming or outgoing, to happen using HTTP/2 DATA frames wrapping WebSocket frames. From an external point of view, it will look like client is sending chunks of an infinite HTTP/2 request upload, and the server is sending chunks of an infinite HTTP/2 response download, as they will exch
1ange HTTP/2 DATA frames; but the HTTP/2 DATA frames will contain each one or more WebSocket frames that both client and server know how to deliver to the respective WebSocket endpoints. When either WebSocket endpoint decides to terminate the communication, the HTTP/2 stream will be closed as well. In code: // Use the HTTP/2 transport for HttpClient. HTTP2Client http2Client = new HTTP2Client(); HttpClient httpClient = new HttpClient(new HttpClientTransportOverHTTP2(http2Client)); // Create and start WebSocketClient. WebSocketClient webSocketClient = new WebSocketClient(httpClient); webSocketClient.start(); // The client-side WebSocket EndPoint that // receives WebSocket messages from the server. ClientEndPoint clientEndPoint = new ClientEndPoint(); // The server URI to connect to. URI serverURI = URI.create(\"wss://domain.com/path\"); // Connect the client EndPoint to the server. CompletableFuture<Session> clientSessionPromise = webSocketClient.connect(clientEndPoint, serverURI); Alternatively, you can use the dynamic HttpClient transport: // Use the dynamic HTTP/2 transport for HttpClient. ClientConnector clientConnector = new ClientConnector(); HTTP2Client http2Client = new HTTP2Client(clientConnector); HttpClient httpClient = new HttpClient(new HttpClientTransportDynamic(clientConnector, new ClientConnectionFactoryOverHTTP2.HTTP2(http2Client))); // Create and start WebSocketClient. WebSocketClient webSocketClient = new WebSocketClient(httpClient); webSocketClient.start(); ClientEndPoint clientEndPoint = new ClientEndPoint(); URI serverURI = URI.create(\"wss://domain.com/path\"); // Connect the client EndPoint to the server. CompletableFuture<Session> clientSessionPromise = webSocketClient.connect(clientEndPoint, serverURI); Sometimes you need to add custom cookies, or other HTTP headers, or specify a WebSocket sub-protocol to the HTTP request that initiates the WebSocket communication. You can do this by using overloaded versions of the WebSocketClient.connect(â¦â) method: ClientEndPoint clientEndPoint = new ClientEndPoint(); URI serverURI = URI.create(\"ws://domain.com/path\"); // Create a custom HTTP request. ClientUpgradeRequest customRequest = new ClientUpgradeRequest(serverURI); // Specify a cookie. customRequest.getCookies().add(new HttpCookie(\"name\", \"value\")); // Specify a custom header. customRequest.setHeader(\"X-Token\", \"0123456789ABCDEF\"); // Specify a custom sub-protocol. customRequest.setSubProtocols(\"chat\"); // Connect the client EndPoint to the server with a custom HTTP request. CompletableFuture<Session> clientSessionPromise = webSocketClient.connect(clientEndPoint, customRequest); If you want to inspect the HTTP response returned by the server as a reply to the HTTP request that initiates the WebSocket communication, you may provide a JettyUpgradeListener: ClientEndPoint clientEndPoint = new ClientEndPoint(); URI serverURI = URI.create(\"ws://domain.com/path\"); // The listener to inspect the HTTP response. JettyUpgradeListener listener = new JettyUpgradeListener() { @Override public void onHandshakeResponse(Request request, Response response) { // Inspect the HTTP response here. } }; // Connect the client EndPoint to the server with a custom HTTP request. CompletableFuture<Session> clientSessionPromise = webSocketClient.connect(clientEndPoint, serverURI, listener); The Jetty WebSocket architecture is organized around the concept of a logical connection between the client and the server. The connection may be physical, when connecting to the server using HTTP/1.1, as the WebSocket bytes are carried directly by the TCP connection. The connection may be virtual, when connecting to the server using HTTP/2, as the WebSocket bytes are wrapped into HTTP/2 DATA frames of an HTTP/2 stream. In this case, a single TCP connection may carry several WebSocket virtual connections, each wrapped in its own HTTP/2 stream. Each side of a WebSocket connection, either client or server, is made of two entities: A WebSocket endpoint, the entity that receives WebSocket events. A WebSocket session, the entity that offers an API to send WebSocket data (and to close the WebSocket connection), as well as to configure WebSocket connection parameters. A WebSocket endpoint is the entity that receives WebSocket events. The WebSocket events are the following: The open event. This event is emitted when the WebSocket communication has been successfully established. Applications interested in the open event receive the WebSocket session so that they can use it to send data to the remote peer. The close event. This event is emitted when the WebSocket communication has been closed. Applications interested in the close event receive a WebSocket status code and an optional close reason message. The error event. This event is emitted when the WebSocket communication encounters a fatal error, such as an I/O error (for example, the network connection has been broken), or a protocol error (for example, the remote peer sends an invali
1d WebSocket frame). Applications interested in the error event receive a Throwable that represent the error. The frame events. The frame events are emitted when a WebSocket frame is received, either a control frame such as PING, PONG or CLOSE, or a data frame such as BINARY or TEXT. One or more data frames of the same type define a message. The message events. The message event are emitted when a WebSocket message is received. The message event can be of two types: TEXT. Applications interested in this type of messages receive a String representing the UTF-8 bytes received. BINARY. Applications interested in this type of messages receive a ByteBuffer representing the raw bytes received. Listener endpoints are notified of events by invoking the correspondent method defined by the org.eclipse.jetty.websocket.api.Session.Listener interface. Annotated endpoints are notified of events by invoking the correspondent method annotated with the correspondent annotation from the org.eclipse.jetty.websocket.api.annotations.* package. Jetty uses MethodHandles to instantiate WebSocket endpoints and invoke WebSocket event methods, so WebSocket endpoint classes and WebSocket event methods must be public. When using JPMS, your classes must be public and must be exported using the exports directive in your module-info.java. It is not recommended to use the opens directive in your module-info.java for your classes, as it would expose your classes to deep reflection, which is unnecessary, as the exports directive is sufficient. This guarantees that WebSocket endpoints can be accessed by the Jetty implementation without additional configuration, no matter whether you are using only the class-path, or the module-path. For both types of WebSocket endpoints, only one thread at a time will be delivering frame or message events to the corresponding methods; the next frame or message event will not be delivered until the previous call to the corresponding method has exited, and if there is demand for it. Endpoints will always be notified of message events in the same order they were received over the network. In order to receive WebSocket events, you must demand for them; the only exception is the open event, because it is the initial event that applications can interact with. When a WebSocket event is received by an endpoint, the demand for WebSocket events (for that endpoint) is reset, so that no more WebSocket events will be received by the endpoint. It is responsibility of the endpoint to demand to receive more WebSocket events. For simple cases, you can just annotate your WebSocket endpoint with @WebSocket(autoDemand = true), or implement Session.Listener.AutoDemanding. In these two cases, when a method that receives a WebSocket event returns, the Jetty implementation automatically demands for another WebSocket event. For example: // Attribute autoDemand is true by default. @WebSocket(autoDemand = true) public class AutoDemandAnnotatedEndPoint { @OnWebSocketOpen public void onOpen(Session session) { // No need to demand here, because this endpoint is auto-demanding. } @OnWebSocketMessage public void onText(String message) { System.getLogger(\"ws.message\").log(INFO, message); // No need to demand here, because this endpoint is auto-demanding. } } public class AutoDemandListenerEndPoint implements Session.Listener.AutoDemanding { private Session session; @Override public void onWebSocketOpen(Session session) { this.session = session; // No need to demand here, because this endpoint is auto-demanding. } @Override public void onWebSocketText(String message) { System.getLogger(\"ws.message\").log(INFO, message); // No need to demand here, because this endpoint is auto-demanding. } } While auto-demand works for simple cases, it may not work in all cases, especially those where the method that receives the WebSocket event performs asynchronous operations. The following example shows the problem: public class WrongAutoDemandListenerEndPoint implements Session.Listener.AutoDemanding { private Session session; @Override public void onWebSocketOpen(Session session) { this.session = session; // No need to demand here, because this endpoint is auto-demanding. } @Override public void onWebSocketText(String message) { // Perform an asynchronous operation, such as invoking // a third party service or just echoing the message back. session.sendText(message, Callback.NOOP); // Returning from this method will automatically demand, // so this method may be entered again before sendText() // has been completed, causing a WritePendingException. } } Note how, in the example above, auto-demanding has the problem that receiving WebSocket text messages may happen faster than echoing them back, because the call to sendText(...) may return almost immediately but be slow to complete because it is asynchronous. In the example above, if another WebSocket text message arrives, and the sendText(...) operation is not complete, a WritePendingException will be thrown. In other cases, this may lead to infinite buffering of data, eventually causing OutOfMemoryErrors, and in general excessive resource consumption that may be difficult to diagnose and troubleshoot. For more information, see also the section about sending data. Always be careful when using auto-demand. Analyze the operations that your endpoint performs and make sure they complete synchronously within the method. To solve the problem outlined above, you must explicitly demand for the next WebSocket event, only when the processing of the previous events is complete. For example: public class ExplicitDemandListenerEndPoint implements Session.Listener { private Session session; @Override public void onWebSocketOpen(Session session) { this.session = session; // Explicitly demand here, otherwise no other event is received. session.demand(); } @Override public void onWebSocketText(String message) { // Perform an asynchronous operation, such as invoking // a third party service or just echoing the message back. // We want to demand only when sendText() has completed, // which is notified to the callback passed to sendText(). session.sendText(message, Callback.from(session::demand, failure -> { // Handle the failure, in this case just closing the session. session.close(StatusCode.SERVER_ERROR, \"failure\", Callback.NOOP); })); // Return from the method without demanding yet, // waiting for the completion of sendText() to demand. } } Note how it is necessary to invoke Session.demand() from the open event, in order to receive message events. Furthermore, note how every time a text message is received, a possibly slow asynchronous operation is initiated (which returns almost immediately, although it may not be completed yet) and then the method returns. Because there is no demand when the method returns (because the asynchronous operation is not completed yet), the implementation will not notify any other WebSocket event (not even frame, close or error events). When the asynchronous operation completes successfully the callback is notified; this, in turn, invokes Session.demand(), and the implementation may notify another WebSocket event (if any) to the WebSocket endpoint. A WebSocket endpoint may implement the org.eclipse.jetty.websocket.api.Session.Listener interface to receive WebSocket events: public class ListenerEndPoint implements Session.Listener { private Session session; @Override public void onWebSocketOpen(Session session) { // The WebSocket endpoint has been opened. // Store the session to be able to send data to the remote peer. this.session = session; // You may configure the session. session.setMaxTextMessageSize(16 * 1024); // You may immediately send a message to the remote peer. session.sendText(\"connected\", Callback.from(session::demand, Throwable::printStackTrace)); } @Override public void onWebSocketText(String message) { // A WebSocket text message is received. // You may echo it back if it matches certain criteria. if (message.startsWith(\"echo:\")) { // Only demand for more events when sendText() is completed successfully. session.sendText(message.substring(\"echo:\".length()), Callback.from(session::demand, Throwable::printStackTrace)); } else { // Discard the message, and demand for more events. session.demand(); } } @Override public void onWebSocketBinary(ByteBuffer payload, Callback callback) { // A WebSocket binary message is received. // Save only PNG images. boolean isPNG = true; byte[] pngBytes = new byte[]{(byte)0x89, 'P', 'N', 'G'}; for (int i = 0; i < pngBytes.length; ++i) { if (pngBytes[i] != payload.get(i)) { // Not a PNG image. isPNG = false; break; } } if (isPNG) savePNGImage(payload); // Complete the callback to release the payload ByteBuffer. callback.succeed(); // Demand for more events. session.demand(); } @Override public void onWebSocketError(Throwable cause) { // The WebSocket endpoint failed. // You may log the error. cause.printStackTrace(); // You may dispose resources. disposeResources(); } @Override public void onWebSocketClose(int statusCode, String reason) { // The WebSocket endpoint has been closed. // You may dispose resources. disposeResources(); } } If you need to deal with large WebSocket messages, you may reduce the memory usage by streaming the message content. For large WebSocket messages, the memory usage may be large due to the fact that the text or the bytes must be accumulated until the message is complete before delivering the message event. To stream textual or binary messages, you override either org.eclipse.jetty.websocket.api.Session.Listener.onWebSocketPartialText(...) or org.eclipse.jetty.websocket.api.Session.Listener.onWebSocketPartialBinary(...). These methods receive chunks of, respectively, text and bytes that form the whole WebSocket message. You may accumulate the chunks yourself, or process each chunk as it arrives, or stream the chunks elsewhere, for example: public class StreamingListenerEndpoint implements Session.Listener { private Session session; @Override public void onWebSocketOpen(Session session) { this.session = session; session.demand(); } @Override public void onWebSocketPartialText(String payload, boolean fin) { // Forward chunks to external REST service, asynchronously. // Only demand when the forwarding completed successfully. CompletableFuture<Void> result = forwardToREST(payload, fin); result.whenComplete((ignored, failure) -> { if (failure == null) session.demand(); else failure.printStackTrace(); }); } @Override public void onWebSocketPartialBinary(ByteBuffer payload, boolean fin, Callback callback) { // Save chunks to file. appendToFile(payload, fin); // Complete the callback to release the payload ByteBuffer. callback.succeed(); // Demand for more events. session.demand(); } } A WebSocket endpoint may annotate methods with org.eclipse.jetty.websocket.api.annotations.* annotations to receive WebSocket events. Each annotated event method may take an optional Session argument as its first parameter: @WebSocket(autoDemand = false) (1) public class AnnotatedEndPoint { @OnWebSocketOpen (2) public void onOpen(Session session) { // The WebSocket endpoint has been opened. // You may configure the session. session.setMaxTextMessageSize(16 * 1024); // You may immediately send a message to the remote peer. session.sendText(\"connected\", Callback.from(session::demand, Throwable::printStackTrace)); } @OnWebSocketMessage (3) public void onTextMessage(Session session, String message) { // A WebSocket textual message is received. // You may echo it back if it matches certain criteria. if (message.startsWith(\"echo:\")) { // Only demand for more events when sendText() is completed successfully. session.sendText(message.substring(\"echo:\".length()), Callback.from(session::demand, Throwable::printStackTrace)); } else { // Discard the message, and demand for more events. session.demand(); } } @OnWebSocketMessage (3) public void onBinaryMessage(Session session, ByteBuffer payload, Callback callback) { // A WebSocket binary message is received. // Save only PNG images. boolean isPNG = true; byte[] pngBytes = new byte[]{(byte)0x89, 'P', 'N', 'G'}; for (int i = 0; i < pngBytes.length; ++i) { if (pngBytes[i] != payload.get(i)) { // Not a PNG image. isPNG = false; break; } } if (isPNG) savePNGImage(payload); // Complete the callback to release the payload ByteBuffer. callback.succeed(); // Demand for more events. session.demand(); } @OnWebSocketError (4) public void onError(Throwable cause) { // The WebSocket endpoint failed. // You may log the error. cause.printStackTrace(); // You may dispose resources. disposeResources(); } @OnWebSocketClose (5) public void onClose(int statusCode, String reason) { // The WebSocket endpoint has been closed. // You may dispose resources. disposeResources(); } } 1 Use the @WebSocket annotation at the class level to make it a WebSocket endpoint, and disable auto-demand. 2 Use the @OnWebSocketOpen annotation for the open event. As this is the first event notified to the endpoint, you can configure the Session object. 3 Use the @OnWebSocketMessage annotation for the message event, both for textual and binary messages. 4 Use the @OnWebSocketError annotation for the error event. 5 Use the @OnWebSocketClose annotation for the close event. If you need to deal with large WebSocket messages, you may reduce the memory usage by streaming the message content. To stream textual or binary messages, you still use the @OnWebSocketMessage annotation, but you change the signature of the method to take an additional boolean parameter: @WebSocket(autoDemand = false) public class PartialAnnotatedEndpoint { @OnWebSocketMessage public void onTextMessage(Session session, String partialText, boolean fin) { // Forward the partial text. // Demand only when the forward completed. CompletableFuture<Void> result = forwardToREST(partialText, fin); result.whenComplete((ignored, failure) -> { if (failure == null) session.demand(); else failure.printStackTrace(); }); } @OnWebSocketMessage public void onBinaryMessage(Session session, ByteBuffer partialPayload, boolean fin, Callback callback) { // Save partial payloads to file. appendToFile(partialPayload, fin); // Complete the callback to release the payload ByteBuffer. callback.succeed(); // Demand for more events. session.demand(); } }
1 Alternatively, but less efficiently, you can use the @OnWebSocketMessage annotation, but you change the signature of the method to take, respectively, a Reader and an InputStream: @WebSocket public class StreamingAnnotatedEndpoint { @OnWebSocketMessage public void onTextMessage(Reader reader) { // Read from the Reader and forward. // Caution: blocking APIs. forwardToREST(reader); } @OnWebSocketMessage public void onBinaryMessage(InputStream stream) { // Read from the InputStream and save to file. // Caution: blocking APIs. appendToFile(stream); } } Reader or InputStream only offer blocking APIs, so if the remote peers are slow in sending the large WebSocket messages, reading threads may be blocked in Reader.read(char[]) or InputStream.read(byte[]), possibly exhausting the thread pool. Note that when you use blocking APIs, the invocations to Session.demand() are now performed by the Reader or InputStream implementations (as well as the ByteBuffer lifecycle management). You indirectly control the demand by deciding when to read from Reader or InputStream. A WebSocket session is the entity that offers an API to send data to the remote peer, to close the WebSocket connection, and to configure WebSocket connection parameters. You may configure the WebSocket session behavior using the org.eclipse.jetty.websocket.api.Session APIs. You want to do this as soon as you have access to the Session object, typically from the open event handler: public class ConfigureEndpoint implements Session.Listener { @Override public void onWebSocketOpen(Session session) { // Configure the max length of incoming messages. session.setMaxTextMessageSize(16 * 1024); // Configure the idle timeout. session.setIdleTimeout(Duration.ofSeconds(30)); // Demand for more events. session.demand(); } } The settings that can be configured include: maxBinaryMessageSize the maximum size in bytes of a binary message (which may be composed of multiple frames) that can be received. maxTextMessageSize the maximum size in bytes of a text message (which may be composed of multiple frames) that can be received. maxFrameSize the maximum payload size in bytes of any WebSocket frame that can be received. inputBufferSize the input (read from network/transport layer) buffer size in bytes; it has no relationship with the WebSocket frame size or message size. outputBufferSize the output (write to network/transport layer) buffer size in bytes; it has no relationship to the WebSocket frame size or message size. autoFragment whether WebSocket frames are automatically fragmented to respect the maximum frame size. idleTimeout the duration that a WebSocket connection may remain idle (that is, there is no network traffic, neither in read nor in write) before being closed by the implementation. Please refer to the Session javadocs for the complete list of configuration APIs. To send data to the remote peer, you can use the non-blocking APIs offered by Session. @WebSocket public class NonBlockingSendEndpoint { @OnWebSocketMessage public void onText(Session session, String text) { // Send textual data to the remote peer. session.sendText(\"data\", new Callback() (1) { @Override public void succeed() { // Send binary data to the remote peer. ByteBuffer bytes = readImageFromFile(); session.sendBinary(bytes, new Callback() (2) { @Override public void succeed() { // Both sends succeeded. } @Override public void fail(Throwable x) { System.getLogger(\"websocket\").log(System.Logger.Level.WARNING, \"could not send binary data\", x); } }); } @Override public void fail(Throwable x) { // No need to rethrow or close the session. System.getLogger(\"websocket\").log(System.Logger.Level.WARNING, \"could not send textual data\", x); } }); // remote.sendString(\"wrong\", Callback.NOOP); // May throw WritePendingException! (3) } } 1 Non-blocking APIs require a Callback parameter. 2 Note how the second send must be performed from inside the callback. 3 Sequential sends may throw WritePendingException. Non-blocking APIs are more difficult to use since you are required to meet the following condition: You cannot initiate another send of any kind until the previous send is completed. For example, if you have initiated a text send, you cannot initiate another text or binary send, until the previous send has completed. This requirement is necessary to avoid unbounded buffering that could lead to OutOfMemoryErrors. We strongly recommend that you follow the condition above. However, there may be cases where you want to explicitly control the number of outgoing buffered messages using RemoteEndpoint.setMaxOutgoingFrames(int). Remember that trying to control the number of outgoing frames is very difficult and tricky; you may set maxOutgoingFrames=4 and have a situation where 6 threads try to concurrently send messages: threads 1 to 4 will be able to successfully buffer their messages, thread 5 may fail, but thread 6 may
1succeed because one of the previous threads completed its send. At this point you have an out-of-order message delivery that could be unexpected and very difficult to troubleshoot because it will happen non-deterministically. While non-blocking APIs are more difficult to use, they donât block the sender thread and therefore use less resources, which in turn typically allows for greater scalability under load: with respect to blocking APIs, non-blocking APIs need less resources to cope with the same load. If you need to send large WebSocket messages, you may reduce the memory usage by streaming the message content. The Jetty WebSocket APIs offer sendPartial*(...) methods that allow you to send a chunk of the whole message at a time, therefore reducing the memory usage since it is not necessary to have the whole message String or ByteBuffer in memory to send it. The Jetty WebSocket APIs for streaming the message content are non-blocking and therefore you should wait (without blocking!) for the callbacks to complete. Fortunately, Jetty provides the IteratingCallback utility class (described in more details in this section) which greatly simplify the use of non-blocking APIs: @WebSocket(autoDemand = false) public class StreamSendNonBlockingEndpoint { @OnWebSocketMessage public void onText(Session session, String text) { new Sender(session).iterate(); } private class Sender extends IteratingCallback implements Callback (1) { private final ByteBuffer byteBuffer = ByteBuffer.allocateDirect(1024); private final Session session; private boolean finished; private Sender(Session session) { this.session = session; } @Override protected Action process() throws Throwable (2) { if (finished) return Action.SUCCEEDED; (4) int read = readChunkToSendInto(byteBuffer); if (read < 0) { // No more bytes to send, finish the WebSocket message. session.sendPartialBinary(byteBuffer, true, this); (3) finished = true; return Action.SCHEDULED; } else { // Send the chunk. session.sendPartialBinary(byteBuffer, false, this); (3) return Action.SCHEDULED; } } @Override public void succeed() { // Map the o.e.j.websocket.api.Callback to o.e.j.util.Callback. // When the send() succeeds, succeed this IteratingCallback. succeeded(); } @Override public void fail(Throwable x) { // Map the o.e.j.websocket.api.Callback to o.e.j.util.Callback. // When the send() fails, fail this IteratingCallback. failed(x); } @Override protected void onCompleteSuccess() { session.demand(); (5) } @Override protected void onCompleteFailure(Throwable x) { x.printStackTrace(); } } } 1 Implementing Callback allows to pass this to sendPartialBinary(...). 2 The process() method is called iteratively when each sendPartialBinary(...) is completed. 3 Sends the message chunks. 4 When the last chunk as been sent, complete successfully the IteratingCallback. 5 Only when the IteratingCallback is completed successfully, demand for more WebSocket events. The WebSocket protocol defines two special frame, named PING and PONG that may be interesting to applications for these use cases: Calculate the round-trip time with the remote peer. Keep the connection from being closed due to idle timeout â a heartbeat-like mechanism. To handle PING/PONG events, you may implement methods Session.Listener.onWebSocketPing(ByteBuffer) and/or Session.Listener.onWebSocketPong(ByteBuffer). PING/PONG events are also supported when using annotations via the OnWebSocketFrame annotation. PING frames may contain opaque application bytes, and the WebSocket implementation replies to them with a PONG frame containing the same bytes: public class RoundTripListenerEndpoint implements Session.Listener { private Session session; @Override public void onWebSocketOpen(Session session) { this.session = session; // Send to the remote peer the local nanoTime. ByteBuffer buffer = ByteBuffer.allocate(8).putLong(NanoTime.now()).flip(); session.sendPing(buffer, Callback.NOOP); // Demand for more events. session.demand(); } @Override public void onWebSocketPong(ByteBuffer payload) { // The remote peer echoed back the local nanoTime. long start = payload.getLong(); // Calculate the round-trip time. long roundTrip = NanoTime.since(start); // Demand for more events. session.demand(); } } When you want to terminate the communication with the remote peer, you close the Session: @WebSocket public class CloseEndpoint { @OnWebSocketMessage public void onText(Session session, String text) { if (\"close\".equalsIgnoreCase(text)) session.close(StatusCode.NORMAL, \"bye\", Callback.NOOP); } } Closing a WebSocket Session carries a status code and a reason message that the remote peer can inspect in the close event handler (see this section). The reason message is optional, and may be truncated to fit into the WebSocket frame sent to the client. It is best to use short tokens such as \"shutdown\", or \"idle_timeout\", etc. or even application specific codes such as \"0001\" or \"00AF\" that can be converted by the application into more meaningful messages.","title":"WebSocket Client","component":"jetty","version":"12.1","name":"websocket","url":"/docs/jetty/12.1/programming-guide/client/websocket.html","titles":[{"text":"Starting WebSocketClient","hash":"start","id":1},{"text":"Stopping WebSocketClient","hash":"stop","id":2},{"text":"Connecting to a Remote Host","hash":"connect","id":3},{"text":"Using HTTP/1.1","hash":"connect-http11","id":4},{"text":"Using HTTP/2","hash":"connect-http2","id":5},{"text":"Customizing the Initial HTTP Request","hash":"connect-custom-http-request","id":6},{"text":"Inspecting the Initial HTTP Response","hash":"connect-inspect-http-response","id":7},{"text":"Jetty WebSocket Architecture","hash":"architecture","id":8},{"text":"WebSocket Endpoints","hash":"endpoints","id":9},{"text":"WebSocket Events Demand","hash":"endpoints-demand","id":10},{"text":"Listener Endpoints","hash":"endpoints-listener","id":11},{"text":"Message Streaming Reads","hash":"message-streaming-reads","id":12},{"text":"Annotated Endpoints","hash":"endpoints-annotated","id":13},{"text":"Message Streaming Reads","hash":"endpoints-annotated-streaming","id":14},{"text":"WebSocket Session","hash":"session","id":15},{"text":"Configuring the Session","hash":"session-configure","id":16},{"text":"Sending Data","hash":"session-send","id":17},{"text":"Streaming Send APIs","hash":"session-send-stream","id":18},{"text":"Sending Ping/Pong","hash":"session-ping","id":19},{"text":"Closing the Session","hash":"session-close","id":20}]},"59":{"id":59,"text":"Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a projectâs build, reporting and documentation from a central piece of information. It is an ideal tool to build a web application project, and such projects can use the jetty-maven-plugin to easily run the web application and save time in development. You can also use Maven to build, test and run a project which embeds Jetty. Use of Maven and the jetty-maven-plugin is not required. Using Maven for Jetty implementations is a popular choice, but users encouraged to manage their projects in whatever way suits their needs. Other popular tools include Ant and Gradle. Maven uses convention over configuration, so it is best to use the project structure Maven recommends. You can use archetypes to quickly setup Maven projects, but we will set up the structure manually for this simple tutorial example: > mkdir JettyMavenHelloWorld > cd JettyMavenHelloWorld > mkdir -p src/main/java/org/example Use an editor to create the file src/main/java/org/example/HelloWorld.java with the following contents: package org.example; import org.eclipse.jetty.http.HttpHeader; import org.eclipse.jetty.io.Content; import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Response; import org.eclipse.jetty.util.Callback; class HelloWorldHandler extends Handler.Abstract.NonBlocking { @Override public boolean handle(Request request, Response response, Callback callback) { response.setStatus(200); response.getHeaders().put(HttpHeader.CONTENT_TYPE, \"text/html; charset=UTF-8\"); // Write a Hello World response. Content.Sink.write(response, true, \"\"\" <!DOCTYPE html> <html> <head> <title>Jetty Hello World Handler</title> </head> <body> <p>Hello World</p> </body> </html> \"\"\", callback); return true; } } Server server = new Server(); Connector connector = new ServerConnector(server); server.addConnector(connector); // Set the Hello World Handler. server.setHandler(new HelloWorldHandler()); server.start(); } The pom.xml file declares the project name and its dependencies. Use an editor to create the file pom.xml in the JettyMavenHelloWorld directory with the following contents: <project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd\"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>hello-world</artifactId> <version>0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>Jetty HelloWorld</name> <properties> <jettyVersion>12.1.13</jettyVersion> </properties> <dependencies> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-server</artifactId> <version>${jettyVersion}</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <executions> <execution><goals><goal>java</goal></goals></execution> </executions> <configuration> <mainClass>org.example.HelloWorld</mainClass> </configuration> </plugin> </plugins> </build> </project> You can now compile and execute the HelloWorld class by using these commands: > mvn clean compile exec:java Point your browser to http://localhost:8080 to see the Hello World page. The previous section demonstrated how to use Maven with an application that embeds Jetty. We can instead develop a Jakarta EE web application using Maven and Jetty. First create the Maven structure (you can use the Maven Webapp Archetype instead if you prefer): > mkdir JettyMavenHelloWarApp > cd JettyMavenHelloWebApp > mkdir -p src/main/java/org/example >
1 mkdir -p src/main/webapp/WEB-INF Use an editor to create the file src/main/java/org/example/HelloServlet.java with the following contents: package org.example; import java.io.IOException; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; public class HelloServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(\"text/html\"); response.setStatus(HttpServletResponse.SC_OK); response.getWriter().println(\"<h1>Hello Servlet</h1>\"); response.getWriter().println(\"session=\" + request.getSession(true).getId()); } } This servlet must be declared in the web deployment descriptor, so create the file src/main/webapp/WEB-INF/web.xml and add the following contents: <?xml version=\"1.0\" encoding=\"UTF-8\"?> <web-app xmlns=\"https://jakarta.ee/xml/ns/jakartaee\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_1.xsd\" metadata-complete=\"false\" version=\"6.1\"> <servlet> <servlet-name>Hello</servlet-name> <servlet-class>org.example.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Hello</servlet-name> <url-pattern>/hello/*</url-pattern> </servlet-mapping> </web-app> The pom.xml file declares the project name and its dependencies. Use an editor to create the file pom.xml with the following contents in the JettyMavenHelloWarApp directory, noting particularly the declaration of the jetty-maven-plugin for the Jakarta EE 11 environment: <project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd\"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>hello-world</artifactId> <version>0.1-SNAPSHOT</version> <packaging>war</packaging> <name>Jetty HelloWorld WebApp</name> <properties> <jettyVersion>12.1.13</jettyVersion> </properties> <dependencies> <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>6.0.0</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.eclipse.jetty.ee11</groupId> <artifactId>jetty-ee11-maven-plugin</artifactId> <version>${jettyVersion}</version> </plugin> </plugins> </build> </project> The web application can now be built and run without first needing to assemble it into a war by using the jetty-maven-plugin via the command: > mvn jetty:run You can see the static and dynamic content at http://localhost:8080/hello There are a great deal of configuration options available for the jetty-maven-plugin to help you build and run your webapp. The full reference is at Configuring the Jetty Maven Plugin. A Web Application Archive (WAR) file can be produced from the project with the command: > mvn package The resulting war file is in the target directory and may be deployed on any standard servlet server, including Jetty.","title":"Using Maven","component":"jetty","version":"12.1","name":"jetty-maven-helloworld","url":"/docs/jetty/12.1/programming-guide/maven-jetty/jetty-maven-helloworld.html","titles":[{"text":"Using Embedded Jetty with Maven","hash":"configuring-embedded-jetty-with-maven","id":1},{"text":"Creating the HelloWorld Class","hash":"creating-helloworld-class","id":2},{"text":"Creating the POM Descriptor","hash":"creating-embedded-pom-descriptor","id":3},{"text":"Building and Running Embedded HelloWorld","hash":"buildng-and-running-embedded-helloworld","id":4},{"text":"Developing a Jakarta EE Web Application with Jetty and Maven","hash":"developing-standard-webapp-with-jetty-and-maven","id":5},{"text":"Creating a Servlet","hash":"creating-servlet","id":6},{"text":"Creating the POM Descriptor","hash":"creating-plugin-pom-descriptor","id":7},{"text":"Building and Running the Web Application","hash":"building-and-running-web-application","id":8}
1,{"text":"Building a WAR file","hash":"building-war-file","id":9}]},"60":{"id":60,"text":"This plugin will pre-compile your JSP and works in conjunction with the Maven war plugin to put them inside an assembled war. Hereâs the basic setup required to put the JSPC plugin into your build for the Jakarta EE ee11 environment: <plugin> <groupId>org.eclipse.jetty.ee11</groupId> <artifactId>jetty-ee11-jspc-maven-plugin</artifactId> <version>12.1.13</version> <executions> <execution> <id>jspc</id> <goals> <goal>jspc</goal> </goals> <configuration> </configuration> </execution> </executions> </plugin> The configurable parameters are as follows: webXmlFragment Default value: ${project.basedir}/target/webfrag.xml File into which to generate the servlet declarations. Will be merged with an existing web.xml. webAppSourceDirectory Default value: ${project.basedir}/src/main/webapp Root of resources directory where jsps, tags etc are located. webXml Default value: ${project.basedir}/src/main/webapp/WEB-INF/web.xml The web.xml file to use to merge with the generated fragments. includes Default value: **/*.jsp, **/*.jspx The comma separated list of patterns for file extensions to be processed. excludes Default value: **/.svn/** The comma separated list of patterns for file extensions to be skipped. classesDirectory Default value: ${project.build.outputDirectory} Location of classes for the webapp. generatedClasses Default value: ${project.build.outputDirectory} Location to put the generated classes for the jsps. insertionMarker Default value: none A marker string in the src web.xml file which indicates where to merge in the generated web.xml fragment. Note that the marker string will NOT be preserved during the insertion. Can be left blank, in which case the generated fragment is inserted just before the line containing </web-app>. useProvidedScope Default value: false If true, jars of dependencies marked with <scope>provided</scope> will be placed on the compilation classpath. mergeFragment Default value: true Whether or not to merge the generated fragment file with the source web.xml. The merged file will go into the same directory as the webXmlFragment. keepSources Default value: false If true, the generated .java files are not deleted at the end of processing. scanAllDirectories Default value: true Determines if dirs on the classpath should be scanned as well as jars. If true, this allows scanning for tlds of dependent projects that are in the reactor as unassembled jars. scanManifest Default value: true Determines if the manifest of JAR files found on the classpath should be scanned. sourceVersion Java version of jsp source files. The default value depends on the version of the jetty-ee11-jspc-maven-plugin. targetVersion Java version of class files generated from jsps. The default value depends on the version of the jetty-ee11-jspc-maven-plugin. tldJarNamePatterns Default value: .*taglibs[^/]*\\.jar|.*jstl[^/]*\\.jar$ Patterns of jars on the 'system' (ie container) path that contain tlds. Use | to separate each pattern. jspc Default value: the org.apache.jasper.JspC instance being configured. The JspC class actually performs the pre-compilation. All setters on the JspC class are available. Taking all the default settings, hereâs how to configure the war plugin to use the generated web.xml that includes all of the jsp servlet declarations: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <webXml>${project.basedir}/target/web.xml</webXml> </configuration> </plugin> As compiling jsps is usually done during preparation for a production release and not usually done during development, it is more convenient to put the plugin setup inside a <profile> which which can be deliberately invoked during prep for production. For example, the following profile will only be invoked if the flag -Dprod is present on the run line: <profiles> <profile> <id>prod</id> <activation> <property><name>prod</name></property> </activation> <build> <plugins> <plugin> <groupId>org.eclipse.jetty.ee11</groupId> <artifactId>jetty-ee11-jspc-maven-plugin</artifactId> <version>12.1.13</version> <!-- put your configuration in here --> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <!-- put your configuration in here --> </plugin> </plugins> </build> </profile> </profiles>
1 The following invocation would cause your code to be compiled, the JSPs to be compiled, the <servlet> and <servlet-mapping>s inserted in the web.xml and your web application assembled into a *.war file: $ mvn -Dprod package Precompiling jsps with an overlaid war requires a bit more configuration. This is because you need to separate the steps of unpacking the overlaid war and then repacking the final target war so the jetty-ee11-jspc-maven-plugin has the opportunity to access the overlaid resources. In the following example the overlaid war will provide the web.xml file but the jsps will be in src/main/webapp (i.e. part of the project that uses the overlay). The overlaid war file will be unpacked, the jsps compiled and their servlet definitions merged into the extracted web.xml, and everything packed into a war. An example configuration of the war plugin that separates those phases into an unpack phase, and then a packing phase: <plugin> <artifactId>maven-war-plugin</artifactId> <executions> <execution> <id>unpack</id> <goals><goal>exploded</goal></goals> <phase>generate-resources</phase> <configuration> <webappDirectory>target/foo</webappDirectory> <overlays> <overlay /> <overlay> <groupId>org.eclipse.jetty.{ee-current}.demos</groupId> <artifactId>jetty-{ee-current}-demo-jetty-webapp</artifactId> </overlay> </overlays> </configuration> </execution> <execution> <id>pack</id> <goals><goal>war</goal></goals> <phase>package</phase> <configuration> <warSourceDirectory>target/foo</warSourceDirectory> <webXml>target/web.xml</webXml> </configuration> </execution> </executions> </plugin> Now you also need to configure the jetty-ee11-jspc-maven-plugin so that it can use the web.xml that was extracted by the war unpacking and merge in the generated definitions of the servlets. This is in target/foo/WEB-INF/web.xml. Using the default settings, the web.xml merged with the jsp servlet definitions will be put into target/web.xml. <plugin> <groupId>org.eclipse.jetty.ee11</groupId> <artifactId>jetty-ee11-jspc-maven-plugin</artifactId> <version>12.1.13</version> <executions> <execution> <id>jspc</id> <goals> <goal>jspc</goal> </goals> <configuration> <webXml>target/foo/WEB-INF/web.xml</webXml> <includes>**/*.foo</includes> <excludes>**/*.fff</excludes> </configuration> </execution> </executions> </plugin>","title":"Jetty Jspc Maven Plugin","component":"jetty","version":"12.1","name":"jetty-jspc-maven-plugin","url":"/docs/jetty/12.1/programming-guide/maven-jetty/jetty-jspc-maven-plugin.html","titles":[{"text":"Configuration","hash":"jspc-config","id":1},{"text":"Precompiling only for Production Build","hash":"jspc-production-precompile","id":2},{"text":"Precompiling JSPs with Overlaid Wars","hash":"jspc-overlay-precompile","id":3}]},"61":{"id":61,"text":"Form content sent to the server is processed by Jetty into a map of parameters to be used by the web application. Forms can be a vector for denial-of-service attacks, since significant memory and CPU can be consumed if a malicious client sends very large form content or a large number of form keys. Thus, Jetty limits the amount of data and keys that can be in a form posted to Jetty. The default maximum size Jetty permits is 200000 bytes and 1000 keys. You can change this default for a particular web application or for all web applications on a particular Server instance. To configure the form limits for a single web application, the ServletContextHandler (or WebAppContext) instance can be configured using the following methods: int maxFormKeys = 100; int maxFormSizeInBytes = 1024; servletContextHandler.setMaxFormContentSize(maxFormSizeInBytes); servletContextHandler.setMaxFormKeys(maxFormKeys); These settings can also be set via the following ServletContext attributes. org.eclipse.jetty.server.Request.maxFormKeys org.eclipse.jetty.server.Request.maxFormContentSize The following system properties can be used to configure form limits for the entire server, including all contexts without explicit configuration: org.eclipse.jetty.server.Request.maxFormKeys org.eclipse.jetty.server.Request.maxFormContentSize. If not configured for either the server or a specific context, then the default maxFormKeys is 1000 and the default maxFormContentSize is 200000. The class FormFields is used to parse forms with the Jetty Core API, which provides onFields and getFields static methods to provide both async & blocking ways to parse a form. These methods can take parameters for maxFields and maxLength which can be used to limit the form content. int maxFormKeys = 100; int maxFormSizeInBytes = 1024; Fields fields; // Explicit set the form limits. fields = FormFields.getFields(request, maxFormKeys, maxFormSizeInBytes); // Rely on default form limits. fields = FormFields.getFields(request);","title":"Limiting Form Content","component":"jetty","version":"12.1","name":"configuring-form-size","url":"/docs/jetty/12.1/programming-guide/security/configuring-form-size.html","titles":[{"text":"Configuring Form Limits for a Web Application","hash":"configuring-form-limits-for-a-web-application","id":1},{"text":"Configuring Default Form Limits for the Server","hash":"configuring-default-form-limits-for-the-server","id":2},{"text":"Limiting Form Content with Jetty Core API","hash":"limiting-form-content-with-jetty-core-api","id":3}]},"62":{"id":62,"text":"The Jetty Maven plugin is useful for rapid development and testing. It can optionally periodically scan a project for changes and automatically redeploys the web applications if any are found. This makes the development cycle more productive by eliminating the build and deploy steps: use an IDE to make changes to the project, and the running web container automatically picks them up, allowing them to be tested straight away. There are 4 goals to run a web application in Jetty: jetty:run jetty:run-war jetty:start jetty:start-war Plus two utility goals: jetty:stop jetty:effective-web-xml jetty:run and jetty:start are al
1ike in that they both run an unassembled web application in Jetty, however jetty:run is designed to be used at the command line, whereas jetty:start is specifically designed to be bound to execution phases in the build lifecycle. jetty:run will pause Maven while jetty is running, echoing all output to the console, and then stop Maven when jetty exits. jetty:start will not pause Maven, will write all its output to a file, and will not stop Maven when jetty exits. jetty:run-war and jetty:start-war are similar in that they both run an assembled war file in Jetty. However, jetty:run-war is designed to be run at the command line, whereas jetty:start-war is specifically designed to be bound to execution phases in the build lifecycle. jetty:run-war will pause Maven while Jetty is running, echoing all output to the console, and then stop Maven when Jetty exits. jetty:start-war will not pause Maven, will write all its output to a file, and will not stop Maven when Jetty exits. While the Jetty Maven Plugin can be very useful for development we do not recommend its use in a production capacity. In order for the plugin to work it needs to leverage many internal Maven APIs and Maven itself it not a production deployment tool. We recommend either the traditional xrefr:og-deploy[distribution] deployment approach or using embedded Jetty. Since Jetty 12, Jetty Maven plugin is repackaged for the corresponding Jakarta EE version with an eeX classifier in the groupId and artifactId. First, add jetty-ee{8,9,10,11}-maven-plugin to your pom.xml definition. Hereâs an example of how to do that for Jakarta EE 11: <plugin> <groupId>org.eclipse.jetty.ee11</groupId> <artifactId>jetty-ee11-maven-plugin</artifactId> <version>12.1.13</version> </plugin> Then, from the same directory as the projectâs root pom.xml, type: mvn jetty:run This starts Jetty and serves up the project on http://localhost:8080/. Jetty will continue to run until you stop it. By default, it will not automatically restart your webapp. Set a non-zero <scan>
1 value to have Jetty scan your web application for changes and automatically redeploy, or set <scan> to 0 to cause manual redeployment by hitting the Enter key. Terminate the plugin with a Ctrl+c in the terminal window where it is running. The classpath of the running Jetty instance and its deployed web application are managed by Maven, and may not be exactly what you expect. For example: a web applicationâs dependent jars might be referenced via the local repository, or other projects in the reactor, not the WEB-INF/lib directory. The goals prefixed with \"run-\" are designed to be used at the command line. They first run a Maven build on your project to ensure at least the classes are all built. They then start Jetty and pause the Maven build process until Jetty is manually terminated, at which time the build will also be terminated. Jetty can scan various files in your project for changes and redeploy the web application as necessary, or you can choose to manually trigger a redeploy if you prefer. All output from Jetty is echoed to the console. The goals prefixed with \"start-\" are designed to be used with build lifecycle bindings in the pom, and not at the command line. No part of your project will be rebuilt by invoking these goals - you should ensure that your bind the execution to a build phase where all necessary parts of your project have been built. Maven will start and terminate Jetty at the appropriate points in the build lifecycle, continuing with the build. Jetty will not scan any files in your project for changes, and your web application will not be redeployed either automatically or manually. Output from Jetty is directed to a file in the target directory. To see a list of all goals supported by the Jetty Maven plugin, do: mvn jetty:help To see the detailed list of parameters that can be configured for a particular goal, in addition to its description, do: mvn jetty:help -Ddetail=true -Dgoal=<goalName> All of the \"run-\" and \"start-\" goals can deploy your web application either into the running maven process, or forked into a new child process, or forked into a Jetty distribution on disk. This is controlled by setting the deployMode configuration parameter in the pom, but can also be set by defining the Maven property 'jetty.deployMode'. deployMode of EMBED. This is the \"classic\" Jetty Maven plugin deployment mode, running in-process with Maven. This is the default mode. These extra configuration parameters are available: httpConnector Optional. Note that to configure a https connector, you will need to use xml configuration files instead, setting the jettyXmls parameter. This parameter can only be used to configure a standard http connector. If not specified, Jetty will create a ServerConnector instance listening on port 8080. You can change this default port number by using the system property jetty.http.port on the command line, for example, mvn -Djetty.http.port=9999 jetty:run. Alternatively, you can use this configuration element to set up the information for the ServerConnector. The following are the valid configuration sub-elements: port The port number for the connector to listen on. By default it is 8080. host The particular interface for the connector to listen on. By default, all interfaces. name The name of the connector, which is useful for configuring contexts to respond only on particular connectors. idleTimeout Maximum idle time for a connection. You could instead configure the connectors in a standard jetty xml config file and put its location into the jettyXml parameter. Note that since Jetty 9.0 it is no longer possible to configure a https connector directly in the pom.xml: you need to use jetty xml config files to do it. loginServices Optional. A list of org.eclipse.jetty.security.LoginService implementations. Note that there is no default realm. If you use a realm in your web.xml you can specify a corresponding realm here. You could instead configure the login services in a jetty xml file and add its location to the jettyXml parameter. See Configuring Security. requestLog Optional. An implementation of the org.eclipse.jetty.server.RequestLog request log interface. There are three other ways to configure the RequestLog: In a Jetty xml config file, as specified in the jettyXml parameter. In a context xml config file, as specified in the contextXml parameter. In the webApp element. See Configuring Request Logs for more information. server Optional as of Jetty 9.3.1. This would configure an instance of org.eclipse.jetty.server.Server for the plugin to use, however it is usually not necessary to configure this, as the plugin will automatically configure one for you. In particular, if you use the jettyXmls element, then you generally donât want to define this element, as you are probably using the jettyXmls f
1ile/s to configure up a Server with a special constructor argument, such as a custom threadpool. If you define both a server element and use a jettyXmls element which points to a config file that has a line like <Configure id=\"Server\" class=\"org.eclipse.jetty.server.Server\"> then the the xml configuration will override what you configure for the server in the pom.xml. useProvidedScope Default value is false. If true, the dependencies with <scope>provided</scope> are placed onto the container classpath. Be aware that this is not the web application class-path, as provided indicates that these dependencies would normally be expected to be provided by the container. You should very rarely ever need to use this. See Container Classpath vs Web Application Classpath. deployMode of FORK. This is similar to the old \"jetty:run-forked\" goal - a separate process is forked to run your web application embedded into jetty. These extra configuration parameters are available: env Optional. Map of key/value pairs to pass as environment to the forked JVM. jvmArgs Optional. A space separated string representing arbitrary arguments to pass to the forked JVM. forkWebXml Optional. Defaults to target/fork-web.xml. This is the location of a quickstart web xml file that will be generated during the forking of the jetty process. You should not need to set this parameter, but it is available if you wish to control the name and location of that file. useProvidedScope Default value is false. If true, the dependencies with <scope>provided</scope> are placed onto the container classpath. Be aware that this is NOT the web application class-path, as \"provided\" indicates that these dependencies would normally be expected to be provided by the container. You should very rarely ever need to use this. See Container Classpath vs Web Application Classpath. deployMode of EXTERNAL. This is similar to the old \"jetty:run-distro\" goal - your web application is deployed into a dynamically downloaded, unpacked and configured Jetty distribution. A separate process is forked to run it. These extra configuration parameters are available: jettyBase Optional. The location of an existing Jetty base directory to use to deploy the web application. The existing base will be copied to the target/ directory before the web application is deployed. If there is no existing jetty base, a fresh one will be made in target/jetty-base. jettyHome Optional. The location of an existing unpacked Jetty distribution. If one does not exist, a fresh Jetty distribution will be downloaded from Maven and installed to the target directory. jettyOptions Optional. A space separated string representing extra arguments to the synthesized Jetty command line. Values for these arguments can be found in the section titled \"Options\" in the output of java -jar $jetty.home/start.jar --help. jvmArgs Optional. A space separated string representing arguments that should be passed to the jvm of the child process running the distro. modules Optional. An array of names of additional Jetty modules that the Jetty child process will activate. Use this to change the container classpath instead of useProvidedScope. These modules are enabled by default: http,ee11-webapp,ee11-deploy. The following configuration parameters are common to all of the \"run-\" and \"start-\" goals: deployMode One of EMBED, FORK or EXTERNAL. Default EMBED. Can also be c
1onfigured by setting the Maven property jetty.deployMode. This parameter determines whether the web application will run in Jetty in-process with Maven, forked into a new process, or deployed into a Jetty distribution. See Deployment Modes. jettyXmls Optional. A comma separated list of locations of Jetty xml files to apply in addition to any plugin configuration parameters. You might use it if you have other web applications, handlers, specific types of connectors etc., to deploy, or if you have other Jetty objects that you cannot configure from the plugin. skip Default is false. If true, the execution of the plugin exits. Same as setting the SystemProperty -Djetty.skip on the command line. This is most useful when configuring Jetty for execution during integration testing and you want to skip the tests. excludedGoals Optional. A list of Jetty plugin goal names that will cause the plugin to print an informative message and exit. Useful if you want to prevent users from executing goals that you know cannot work with your project. supportedPackagings Optional. Defaults to war. This is a list of maven <packaging> types that can work with the jetty plugin. Usually, only war projects are suitable, however, you may configure other types. The plugin will refuse to start if the <packaging> type in the pom is not in list of supportedPackagings. systemProperties Optional. Allows you to configure System properties for the execution of the plugin. For more information, see Setting System Properties. systemPropertiesFile Optional. A file containing System properties to set for the execution of the plugin. By default, settings that you make here do not override any system properties already set on the command line, by the JVM, or in the POM via systemProperties. Read Setting System Properties for how to force overrides. jettyProperties Optional. A map of property name, value pairs. Allows you to configure standard jetty properties. The Servlet Specification makes a strong distinction between the class-path for a web application, and the classpath of the container. When running in Maven, the pluginâs class-path is equivalent to the container class-path. It will make a class-path for the web application to be deployed comprised of <dependencies> specified in the pom. If your production environment places specific jars onto the containerâs classpath, the equivalent way to do this with Maven is to define these as <dependencies> for the plugin itself, not the project. See configuring maven plugins. This is suitable if you are using either EMBED or FORK mode. If you are using EXTERNAL mode, then you should configure the modules parameter with the names of the Jetty modules that place these jars onto the container classpath. Note that in EMBED or FORK mode, you could also influence the container classpath by setting the useProvidedScope parameter to true: this will place any dependencies with <scope>provided<scope> onto the pluginâs classpath. Use this very cautiously: as the plugin already automatically places most Jetty jars onto the classpath, you could wind up with duplicate jars. The run goal deploys a web application that is not first built into a WAR. A virtual web application is constructed from the projectâs sources and its dependencies. It looks for the constituent parts of a web application in the Maven default project locations, although you can override these in the plugin configuration. For example, by default it looks for: resources in ${project.basedir}/src/main/webapp classes in ${project.build.outputDirectory} web.xml in ${project.basedir}/src/main/webapp/WEB-INF/ The plugin first runs a Maven parallel build to ensure that the classes are built and up-to-date before deployment. If you change the source of a class and your IDE automatically compiles it in the background, the plugin picks up the changed class (note you need to configure a non-zero scan interval for automatic redeployment). If the plugin is invoked in a multi-module build, any dependencies that are also in the Maven reactor are used from their compiled classes. Once invoked, you can configure the plugin to run continuously, scanning for changes in the project and automatically performing a hot redeploy when necessary. Any changes you make are immediately reflected in the running instance of Jetty, letting you quickly jump from coding to testing, rather than going through the cycle of: code, compile, reassemble, redeploy, test. The Maven build will be paused until Jetty exits, at which time Maven will also exit. Stopping Jetty is accomplished by typing cntrl-c at the command line. Output from Jetty will be logged to the console. Here is an example, which turns on scanning for changes every ten seconds, and sets the web application context path to /test: <plugin> <groupId>org.eclipse.jetty.ee11</groupId> <artifactId>jetty-ee11-maven-plugin</artifactId> <version>12.1.13</version> <configuration> <scan>10</scan> <webApp> <contextPath>/test</contextPath> </webApp> </configuration> </plugin> webApp This is an instance of org.eclipse.jetty.ee11.maven.plugin.MavenWebAppContext, which is an extension to the class org.eclipse.jetty.ee11.webapp.WebAppContext. You can use any of the setter methods on this object to configure your web application. Here are a few of the most useful ones: contextPath The context path for your web application. By default, this is set to /. If using a custom value for this parameter, you should include the leading /, example /mycontext. descriptor The path to the web.xml file for your web application. By default, the plugin will look in src/main/webapp/WEB-INF/web.xml. defaultsDescriptor The path to a webdefault.xml file that will be applied to your web application before the web.xml. If you donât supply one, Jetty uses a default file baked into the jetty-ee11-webapp-12.1.13.jar. overrideDescriptor The path to a web.xml file that Jetty applies after reading your web.xml. You can use this to replace or add configuration. jettyEnvXml Optional. Location of a jetty-ee11-env.xml file, which allows you to make JNDI bindings that satisfy env-entry, resource-env-ref, and resource-ref linkages in the web.xml that are scoped only to the web application and not shared with other web applications that you might be deploying at the same time (for example, by using a jettyXml file). tempDirectory The path to a dir that Jetty can use to expand or copy jars and jsp compiles when your web application is running. The default is ${project.build.outputDirectory}/tmp. baseResource The path from which Jetty serves static resources. Defaults to src/main/webapp. If this location does not exist (because, for example, your project does not use static content), then the plugin will synthesize a virtual static resource location of target/webapp-synth. resourceBases Use instead of baseResource if you have multiple directories from which you want to serve static content. This is an array of directory locations, either as urls or file paths. baseAppFirst Defaults to \"true\". Controls whether any overlaid wars are added before or after the original base resource(s) of the web application. See the section on overlaid wars for more information. containerIncludeJarPattern Defaults to ./jetty-jakarta-servlet-api-[/]\\.jar$|.jakarta.servlet.jsp.jstl-[/]\\.jar|.taglibs-standard-impl-.\\.jar. This is a pattern that is applied to the names of the jars on the containerâs classpath (ie the classpath of the plugin, not that of the web application) that should be scanned for fragments, tlds, annotations etc. This is analogous to the context attribute org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern that is documented here. You can define extra patterns of jars that will be included in the scan. webInfIncludeJarPattern Defaults to matching all the dependency jars for the web application (ie the equivalent of WEB-INF/lib). You can make this pattern more restrictive to only match certain
1jars by using this setter. This is analogous to the context attribute org.eclipse.jetty.server.webapp.WebInfIncludeJarPattern that is documented here. contextXml The path to a context xml file that is applied to your web application AFTER the webApp element. classesDirectory Location of your compiled classes for the web application. You should rarely need to set this parameter. Instead, you should set <build><outputDirectory> in your pom.xml. testClassesDirectory Location of the compiled test classes for your web application. By default this is ${project.build.testOutputDirectory}. useTestScope If true, the classes from testClassesDirectory and dependencies of scope \"test\" are placed first on the classpath. By default this is false. scan The pause in seconds between sweeps of the web application to check for changes and automatically hot redeploy if any are detected. By default this is -1, which disables hot redeployment scanning. A value of 0 means no hot redeployment is done, and that you must use the Enter key to manually force a redeploy. Any positive integer will enable hot redeployment, using the number as the sweep interval in seconds. scanTargetPatterns Optional. List of extra directories with glob-style include/excludes patterns (see javadoc for FileSystem.getPathMatcher) to specify other files to periodically scan for changes. scanClassesPattern Optional. Include and exclude patterns that can be applied to the classesDirectory for the purposes of scanning, it does not affect the classpath. If a file or directory is excluded by the patterns then a change in that file (or subtree in the case of a directory) is ignored and will not cause the web application to redeploy. Patterns are specified as a relative path using a glob-like syntax as described in the javadoc for FileSystem.getPathMatcher. scanTestClassesPattern Optional. Include and exclude patterns that can be applied to the testClassesDirectory for the purposes of scanning, it does not affect the classpath. If a file or directory is excluded by the patterns then a change in that file (or subtree in the case of a directory) is ignored and will not cause the web application to redeploy. Patterns are specified as a relative path using a glob-like syntax as described in the javadoc for FileSystem.getPathMatcher. See Deployment Modes for other configuration parameters available when using the run goal in EMBED, FORK or EXTERNAL modes. Here is an example of a pom configuration for the plugin with the run goal: <project> ... <plugins> ... <plugin> <groupId>org.eclipse.jetty.ee11</groupId> <artifactId>jetty-ee11-maven-plugin</artifactId> <version>12.1.13</version> <configuration> <webApp> <contextPath>/</contextPath> <descriptor>${project.basedir}/src/over/here/web.xml</descriptor> <jettyEnvXml>${project.basedir}/src/over/here/jetty-env.xml</jettyEnvXml> <baseResource>${project.basedir}/src/staticfiles</baseResource> </webApp> <classesDirectory>${project.basedir}/somewhere/else</classesDirectory> <scanClassesPattern> <excludes> <exclude>**/Foo.class</exclude> </excludes> </scanClassesPattern> <scanTargetPatterns> <scanTargetPattern> <directory>src/other-resources</directory> <includes> <include>**/*.xml</include> <include>**/*.properties</include> </includes> <excludes> <exclude>**/myspecial.xml</exclude> <exclude>**/myspecial.properties</exclude> </excludes> </scanTargetPattern> </scanTargetPatterns> </configuration> </plugin> </plugins> ... </project> If, for whatever reason, you cannot run on an unassembled web application, the goal run-war works on assembled web applications. When invoked at the command line this goal first executes a maven build of your project to the package phase. By default it then deploys the resultant war to Jetty, but you can use this goal instead to deploy any war file by simply setting the <webApp><war> configuration parameter to its location. If you set a non-zero scan, Jetty watches your pom.xml and the WAR file; if either changes, it redeploys the war. The maven build is held up until Jetty exits, which is achieved by typing cntrl-c at the command line. All Jetty output is directed to the console. Configuration parameters are: webApp war The location of the built WAR file. This defaults to ${project.build.directory}/${project.build.finalName}.war. You can set it to the location of any pre-built war file. contextPath The context path for your web application. By default, this is set to /. If using a custom value for this parameter, you should include the leading /, example /mycontext. defaultsDescriptor The path to a webdefault.xml file that will be applied to your web application before the web.xml. If you donât supply one, Jetty uses a default file baked into the jetty-ee11-webapp-12.1.13.jar. overrideDescriptor The path to a web.xml file that Jetty applies after reading your web.xml. You can use this to replace or add configuration. containerIncludeJarPattern Defaults to ./jetty-jakarta-servlet-api-[/]\\.jar$|.jakarta.servlet.jsp.jstl-[/]\\.jar|.taglibs-standard-impl-.\\.jar. This is a pattern that is applied to the names of the jars on the containerâs classpath (ie the classpath of the plugin, not that of the web application) that should be scanned for fragments, tlds, annotations etc. This is analogous to the context attribute org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern that is documented here. You can define extra patterns of jars that will be included in the scan. webInfIncludeJarPattern Defaults to matching all of the dependency jars for the web application (ie the equivalent of WEB-INF/lib). You can make this pattern more restrictive to only match certain
1jars by using this setter. This is analogous to the context attribute org.eclipse.jetty.server.webapp.WebInfIncludeJarPattern that is documented here. tempDirectory The path to a dir that Jetty can use to expand or copy jars and jsp compiles when your web application is running. The default is ${project.build.outputDirectory}/tmp. contextXml The path to a context xml file that is applied to your web application AFTER the webApp element. scan The pause in seconds between sweeps of the web application to check for changes and automatically hot redeploy if any are detected. By default this is -1, which disables hot redeployment scanning. A value of 0 means no hot redeployment is done, and that you must use the Enter key to manually force a redeploy. Any positive integer will enable hot redeployment, using the number as the sweep interval in seconds. scanTargetPatterns Optional. List of directories with ant-style include/excludes patterns to specify other files to periodically scan for changes. See Deployment Modes for other configuration parameters available when using the run-war goal in EMBED, FORK or EXTERNAL modes. This is similar to the jetty:run goal, however it is not designed to be run from the command line and does not first execute the build up until the test-compile phase to ensure that all necessary classes and files of the web application have been generated. It will not scan your project for changes and restart your web application. It does not pause maven until Jetty is stopped. Instead, it is designed to be used with build phase bindings in your pom. For example to you can have Maven start your web application at the beginning of your tests and stop at the end. If the plugin is invoked as part of a multi-module build, any dependencies that are also in the maven reactor are used from their compiled classes. Hereâs an example of using the pre-integration-test and post-integration-test Maven build phases to trigger the execution and termination of Jetty: <plugin> <groupId>org.eclipse.jetty.ee11</groupId> <artifactId>jetty-ee11-maven-plugin</artifactId> <version>12.1.13</version> <configuration> <stopKey>foo</stopKey> <stopPort>9999</stopPort> </configuration> <executions> <execution> <id>start-jetty</id> <phase>pre-integration-test</phase> <goals> <goal>start</goal> </goals> </execution> <execution> <id>stop-jetty</id> <phase>post-integration-test</phase> <goals> <goal>stop</goal> </goals> </execution> </executions> </plugin> This goal will generate output from jetty into the target/jetty-start.out file. These
1configuration parameters are available: webApp This is an instance of org.eclipse.jetty.ee11.maven.plugin.MavenWebAppContext, which is an extension to the class org.eclipse.jetty.ee9.webapp.WebAppContext. You can use any of the setter methods on this object to configure your web application. Here are a few of the most useful ones: contextPath The context path for your web application. By default, this is set to /. If using a custom value for this parameter, you should include the leading /, example /mycontext. descriptor The path to the web.xml file for your web application. The default is src/main/webapp/WEB-INF/web.xml. defaultsDescriptor The path to a webdefault.xml file that will be applied to your web application before the web.xml. If you donât supply one, Jetty uses a default file baked into the jetty-ee11-webapp-12.1.13.jar. overrideDescriptor The path to a web.xml file that Jetty applies after reading your web.xml. You can use this to replace or add configuration. jettyEnvXml Optional. Location of a jetty-env.xml file, which allows you to make JNDI bindings that satisfy env-entry, resource-env-ref, and resource-ref linkages in the web.xml that are scoped only to the web application and not shared with other web applications that you might be deploying at the same time (for example, by using a jettyXml file). tempDirectory The path to a dir that Jetty can use to expand or copy jars and jsp compiles when your web application is running. The default is ${project.build.outputDirectory}/tmp. baseResource The path from which Jetty serves static resources. Defaults to src/main/webapp. resourceBases Use instead of baseResource if you have multiple directories from which you want to serve static content. This is an array of directory names. baseAppFirst Defaults to \"true\". Controls whether any overlaid wars are added before or after the original base resource(s) of the web application. See the section on overlaid wars for more information. containerIncludeJarPattern Defaults to ./jetty-jakarta-servlet-api-[/]\\.jar$|.jakarta.servlet.jsp.jstl-[/]\\.jar|.taglibs-standard-impl-.\\.jar. This is a pattern that is applied to the names of the jars on the containerâs classpath (ie the classpath of the plugin, not that of the web application) that should be scanned for fragments, tlds, annotations etc. This is analogous to the context attribute org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern that is documented here. You can define extra patterns of jars that will be included in the scan. webInfIncludeJarPattern Defaults to matching all of the dependency jars for the web application (ie the equivalent of WEB-INF/lib). You can make this pattern more restrictive to only match certain jars by using this setter. This is analogous to the context attribute org.eclipse.jetty.server.webapp.WebInfIncludeJarPattern that is documented here. contextXml The path to a context xml file that is applied to your web application AFTER the webApp element. classesDirectory Location of your compiled classes for the web application. You should rarely need to set this parameter. Instead, you should set build outputDirectory in your pom.xml. testClassesDirectory Location of the compiled test classes for your web application. By default this is ${project.build.testOutputDirectory}. useTestScope If true, the classes from testClassesDirectory and dependencies of scope \"test\" are placed first on the classpath. By default this is false. stopPort Optional. Port to listen on for stop commands. Useful to use in conjunction with the stop and start goals. stopKey Optional. Used in conjunction with stopPort for stopping jetty. Useful to use in conjunction with the stop and start goals. These additional configuration parameters are available when running in FORK or EXTERNAL mode: maxChildStartChecks Default is 10. This is maximum number of times the parent process checks to see if the forked jetty process has started correctly maxChildStartCheckMs Default is 200. This is the time in milliseconds between checks on the startup of the forked jetty process. Similarly to the jetty:start goal, jetty:start-war is designed to be bound to build lifecycle phases in your pom. It will not scan your project for changes and restart your web application. It does not pause maven until Jetty is stopped. By default, if your pom is for a web application project, it will deploy the war file for the project to jetty. However, like the jetty:run-war project, you can nominate any war file to deploy by defining its location in the <webApp><war> parameter. If the plugin is invoked as part of a multi-module build, any dependencies that are also in the Maven reactor are used from their compiled classes. This goal will generate output from jetty into the target/jetty-start-war.out file. These
1configuration parameters are available: webApp war The location of the built WAR file. This defaults to ${project.build.directory}/${project.build.finalName}.war. You can set it to the location of any pre-built war file. contextPath The context path for your web application. By default, this is set to /. If using a custom value for this parameter, you should include the leading /, example /mycontext. defaultsDescriptor The path to a webdefault.xml file that will be applied to your web application before the web.xml. If you donât supply one, Jetty uses a default file baked into the jetty-ee11-webapp-12.1.13.jar. overrideDescriptor The path to a web.xml file that Jetty applies after reading your web.xml. You can use this to replace or add configuration. containerIncludeJarPattern Defaults to ./jetty-jakarta-servlet-api-[/]\\.jar$|.jakarta.servlet.jsp.jstl-[/]\\.jar|.taglibs-standard-impl-.\\.jar. This is a pattern that is applied to the names of the jars on the containerâs classpath (ie the classpath of the plugin, not that of the web application) that should be scanned for fragments, tlds, annotations etc. This is analogous to the context attribute org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern that is documented here. You can define extra patterns of jars that will be included in the scan. webInfIncludeJarPattern Defaults to matching all of the dependency jars for the web application (ie the equivalent of WEB-INF/lib). You can make this pattern more restrictive to only match certain jars by using this setter. This is analogous to the context attribute org.eclipse.jetty.server.webapp.WebInfIncludeJarPattern that is documented here. tempDirectory The path to a dir that Jetty can use to expand or copy jars and jsp compiles when your web application is running. The default is ${project.build.outputDirectory}/tmp. contextXml The path to a context xml file that is applied to your web application AFTER the webApp element. stopPort Optional. Port to listen on for stop commands. Useful to use in conjunction with the stop. stopKey Optional. Used in conjunction with stopPort for stopping jetty. Useful to use in conjunction with the stop. These additional configuration parameters are available when running in FORK or EXTERNAL mode: maxChildStartChecks Default is 10. This is maximum number of times the parent process checks to see if the forked Jetty process has started correctly maxChildStartCheckMs Default is 200. This is the time in milliseconds between checks on the startup of the forked Jetty process. The stop goal stops a FORK or EXTERNAL mode running instance of Jetty. To use it, you need to configure the plugin with a special port number and key. That same port number and key will also be used by the other goals that start Jetty. stopPort A port number for Jetty to listen on to receive a stop command to cause it to shutdown. stopKey A string value sent to the stopPort to validate the stop command. stopWait The maximum time in seconds that the plugin will wait for confirmation that Jetty has stopped. If false or not specified, the plugin does not wait for confirmation but exits after issuing the stop command. Hereâs a configuration example: <plugin> <groupId>org.eclipse.jetty.ee11</groupId> <artifactId>jetty-ee11-maven-plugin</artifactId> <version>12.1.13</version> <configuration> <stopPort>9966</stopPort> <stopKey>foo</stopKey> <stopWait>10</stopWait> </configuration> </plugin> Then, while Jetty is running (in another window), type: mvn jetty:stop The stopPort must be free on the machine you are running on. If this is not the case, you will get an \"Address already in use\" error message after the \"Started ServerConnector â¦â\" message. This goal calculates a synthetic web.xml (the \"effective web.xml\") according to the rules of the Servlet Specification taking into account all sources of discoverable configuration of web components in your application: descriptors (webdefault.xml, web.xml, web-fragment.xml`s, `web-override.xml) and discovered annotations (@WebServlet, @WebFilter, @WebListener). No programmatic declarations of servlets, filters and listeners can be taken into account. You can calculate the effective web.xml for any pre-built war file by setting the <webApp><war> parameter, or you can calculate it for the unassembled web application by setting all the usual <webApp> parameters as for jetty:run. Other useful information about your web application that is produced as part of the analysis is also stored as context parameters in the effective-web.xml. The effective-web.xml can be used in conjunction with the Quickstart feature to quickly start your web application (note that Quickstart is not appropriate for the mvn jetty goals). The effective web.xml from these combined sources is generated into a file, which by default is target/effective-web.xml, but can be changed by setting the effectiveWebXml configuration parameter. effectiveWebXml The full path name of a file into which you would like the effective web xml generated. webApp war The location of the built WAR file. This defaults to ${project.build.directory}/${project.build.finalName}.war. You can set it to the location of any pre-built war file. Or you can leave it blank and set up the other webApp parameters as per jetty:run, as well as the webAppSourceDirectory, classes and testClasses parameters. contextPath The context path for your web application. By default, this is set to /. If using a custom value for this parameter, you should include the leading /, example /mycontext. defaultsDescriptor The path to a webdefault.xml file that will be applied to your web application before the web.xml. If you donât supply one, Jetty uses a default file baked into the jetty-ee11-webapp-12.1.13.jar. overrideDescriptor The path to a web.xml file that Jetty applies after reading your web.xml. You can use this to replace or add configuration. containerIncludeJarPattern Defaults to ./jetty-jakarta-servlet-api-[/]\\.jar$|.jakarta.servlet.jsp.jstl-[/]\\.jar|.taglibs-standard-impl-.\\.jar. This is a pattern that is applied to the names of the jars on the containerâs classpath (ie the classpath of the plugin, not that of the web application) that should be scanned for fragments, tlds, annotations etc. This is analogous to the context attribute org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern that is documented here. You can define extra patterns of jars that will be included in the scan. webInfIncludeJarPattern Defaults to matching all the dependency jars for the web application (ie the equivalent of WEB-INF/lib). You can make this pattern more restrictive to only match certain
1jars by using this setter. This is analogous to the context attribute org.eclipse.jetty.server.webapp.WebInfIncludeJarPattern that is documented here. tempDirectory The path to a dir that Jetty can use to expand or copy jars and jsp compiles when your web application is running. The default is ${project.build.outputDirectory}/tmp. contextXml The path to a context xml file that is applied to your web application AFTER the webApp element. You can also generate the origin of each element into the effective web.xml file. The origin is either a descriptor eg web.xml,web-fragment.xml,override-web.xml file, or an annotation eg @WebServlet. Some examples of elements with origin attribute information are: <listener origin=\"DefaultsDescriptor(file:///path/to/distro/etc/webdefault.xml):21\"> <listener origin=\"WebDescriptor(file:///path/to/base/webapps/test-spec/WEB-INF/web.xml):22\"> <servlet-class origin=\"FragmentDescriptor(jar:file:///path/to/base/webapps/test-spec/WEB-INF/lib/test-web-fragment.jar!/META-INF/web-fragment.xml):23\"> <servlet-class origin=\"@WebServlet(com.acme.test.TestServlet):24\"> To generate origin information, use the following configuration parameters on the webApp element: originAttribute The name of the attribute that will contain the origin. By default it is origin. generateOrigin False by default. If true, will force the generation of the originAttribute onto each element. If your web application depends on other war files, the jetty:run and jetty:start goals are able to merge resources from all of them. It can do so based on the settings of the maven-war-plugin, or if your project does not use the maven-war-plugin to handle the overlays, it can fall back to a simple algorithm to determine the ordering of resources. The maven-war-plugin has a rich set of capabilities for merging resources. The jetty:run and jetty:start goals are able to interpret most of them and apply them during execution of your unassembled web application. This is probably best seen by looking at a concrete example. Suppose your web application depends on the following wars: <dependency> <groupId>com.acme</groupId> <artifactId>X</artifactId> <type>war</type> </dependency> <dependency> <groupId>com.acme</groupId> <artifactId>Y</artifactId> <type>war</type> </dependency> Containing: WebAppX: /foo.jsp /bar.jsp /WEB-INF/web.xml WebAppY: /bar.jsp /baz.jsp /WEB-INF/web.xml /WEB-INF/special.xml They are configured for the maven-war-plugin: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>12.1.13</version> <configuration> <overlays> <overlay> <groupId>com.acme</groupId> <artifactId>X</artifactId> <excludes> <exclude>bar.jsp</exclude> </excludes> </overlay> <overlay> <groupId>com.acme</groupId> <artifactId>Y</artifactId> <excludes> <exclude>baz.jsp</exclude> </excludes> </overlay> <overlay> </overlay> </overlays> </configuration> </plugin> Then executing jetty:run would yield the following ordering of resources: com.acme.X.war : com.acme.Y.war: ${project.basedir}/src/main/webapp. Note that the current projectâs resources are placed last in the ordering due to the empty <overlay/> element in the maven-war-plugin. You can either use that, or specify the <baseAppFirst>false</baseAppFirst> parameter to the jetty-ee11-maven-plugin. Moreover, due to the exclusions specified above, a request for the resource ` bar.jsp` would only be satisfied from com.acme.Y.war. Similarly as baz.jsp is excluded, a request for it would result in a 404 error. The algorithm is fairly simple, is based on the ordering of declaration of the dependent wars, and does not support exclusions. The configuration parameter <baseAppFirst> (see for example jetty:run for more information) can be used to control whether your web applicationâs resources are placed first or last on the resource path at runtime. For example, suppose our web application depends on these two wars: <dependency> <groupId>com.acme</groupId> <artifactId>X</artifactId> <type>war</type> </dependency> <dependency> <groupId>com.acme</groupId> <artifactId>Y</artifactId> <type>war</type> </dependency> Suppose the web applications contain: WebAppX: /foo.jsp /bar.jsp /WEB-INF/web.xml WebAppY: /bar.jsp /baz.jsp /WEB-INF/web.xml /WEB-INF/special.xml Then our web application has available these additional resources: /foo.jsp (X) /bar.jsp (X) /baz.jsp (Y) /WEB-INF/web.xml (X) /WEB-INF/special.xml (Y) You can configure LoginServices in the plugin. Hereâs an example of setting up the HashLoginService for a web application: <plugin> <groupId>org.eclipse.jetty.ee11</groupId> <artifactId>jetty-ee11-maven-plugin</artifactId> <version>12.1.13</version> <configuration> <scan>10</scan> <webApp> <contextPath>/test</contextPath> </webApp> <loginServices> <loginService implementation=\"org.eclipse.jetty.security.HashLoginService\"> <name>Test Realm</name> <config implementation=\"org.eclipse.jetty.maven.MavenResource\"> <resourceAsString>${project.basedir}/src/etc/realm.properties</resourceAsString> </config> </loginService> </loginServices> </configuration> </plugin> If you have external resources that you want to incorporate in the execution of a web application, but which are not assembled
1into war files, you canât use the overlaid wars method described above, but you can tell Jetty the directories in which these external resources are located. At runtime, when Jetty receives a request for a resource, it searches all the locations to retrieve the resource. Itâs a lot like the overlaid war situation, but without the war. Here is a configuration example: <configuration> <webApp> <contextPath>/${build.finalName}</contextPath> <resourceBases> <resourceBase>src/main/webapp</resourceBase> <resourceBase>/home/johndoe/path/to/my/other/source</resourceBase> <resourceBase>/yet/another/folder</resourceBase> </resourceBases> </webApp> </configuration> You can use either a jetty.xml file to configure extra (pre-compiled) web applications that you want to deploy, or you can use the <contextHandlers> configuration element to do so. If you want to deploy web application A, and web applications B and C in the same Jetty instance: Putting the configuration in web application Aâs pom.xml: <plugin> <groupId>org.eclipse.jetty.ee11</groupId> <artifactId>jetty-ee11-maven-plugin</artifactId> <version>12.1.13</version> <configuration> <scan>10</scan> <webApp> <contextPath>/test</contextPath> </webApp> <contextHandlers> <contextHandler implementation=\"org.eclipse.jetty.ee11.maven.plugin.MavenWebAppContext\"> <war>${project.basedir}../../B.war</war> <contextPath>/B</contextPath> </contextHandler> <contextHandler implementation=\"org.eclipse.jetty.ee11.maven.plugin.MavenWebAppContext\"> <war>${project.basedir}../../C.war</war> <contextPath>/C</contextPath> </contextHandler> </contextHandlers> </configuration> </plugin> If the ContextHandler you are deploying is a Jakarta EE web application, it is essential that you use an org.eclipse.jetty.ee11.maven.plugin.MavenWebAppContext instance rather than a standard org.eclipse.jetty.ee11.webapp.WebAppContext instance. Only the former will allow the web application to function correctly in the Maven environment. Alternatively, add a jetty.xml file to web application A. Copy the jetty.xml file from the Jetty distribution, and then add WebAppContexts for the other 2 web applications: <Ref refid=\"Contexts\"> <Call name=\"addHandler\"> <Arg> <New class=\"org.eclipse.jetty.{ee-current}.maven.plugin.MavenWebAppContext\"> <Set name=\"contextPath\">/B</Set> <Set name=\"war\">../../B.war</Set> </New> </Arg> </Call> <Call> <Arg> <New class=\"org.eclipse.jetty.{ee-current}.maven.plugin.MavenWebAppContext\"> <Set name=\"contextPath\">/C</Set> <Set name=\"war\">../../C.war</Set> </New> </Arg> </Call> </Ref> Then configure the location of this jetty.xml file into web application Aâs Jetty plugin: <plugin> <groupId>org.eclipse.jetty.ee11</groupId> <artifactId>jetty-ee11-maven-plugin</artifactId> <version>12.1.13</version> <configuration> <scan>10</scan> <webApp> <contextPath>/test</contextPath> </webApp> <jettyXml>src/main/etc/jetty.xml</jettyXml> </configuration> </plugin> For either of these solutions, the other web applications must already have been built, and they are not automatically monitored for changes. You can refer either to the packed WAR file of the pre-built web applications or to their expanded equivalents. You can specify property name/value pairs that Jetty sets as System properties for the execution of the plugin. This feature is useful to tidy up the command line and save a lot of typing. However, sometimes it is not possible to use this feature to set System properties - sometimes the software component using the System property is already initialized by the time that maven runs (in which case you will need to provide the System property on the command line), or by the time that Jetty runs. In the latter case, you can use the maven properties plugin to define the system properties instead. Hereâs an example that configures the logback logging system as the Jetty logger: <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>properties-maven-plugin</artifactId> <executions> <execution> <goals> <goal>set-system-properties</goal> </goals> <configuration> <properties> <property> <name>logback.configurationFile</name> <value>${project.baseUri}/resources/logback.xml</value> </property> </properties> </configuration> </execution> </executions> </plugin>
1 If a System property is already set (for example, from the command line or by the JVM itself), then by default these configured properties DO NOT override them. However, they can override system properties set from a file instead, see specifying system properties in a file. Hereâs an example of how to specify System properties in the POM: <plugin> <groupId>org.eclipse.jetty.{ee-current}</groupId> <artifactId>jetty-{ee-current}-maven-plugin</artifactId> <configuration> <systemProperties> <fooprop>222</fooprop> </systemProperties> <webApp> <contextPath>/test</contextPath> </webApp> </configuration> </plugin> You can also specify your System properties in a file. System properties you specify in this way do not override System properties that set on the command line, by the JVM, or directly in the POM via systemProperties. Suppose we have a file called mysys.props which contains the following: fooprop=222 This can be configured on the plugin like so: <plugin> <groupId>org.eclipse.jetty.{ee-current}</groupId> <artifactId>jetty-{ee-current}-maven-plugin</artifactId> <configuration> <systemPropertiesFile>${project.basedir}/mysys.props</systemPropertiesFile> <webApp> <contextPath>/test</contextPath> </webApp> </configuration> </plugin> You can instead specify the file by setting the System property jetty.systemPropertiesFile on the command line.","title":"Using the Jetty Maven Plugin","component":"jetty","version":"12.1","name":"jetty-maven-plugin","url":"/docs/jetty/12.1/programming-guide/maven-jetty/jetty-maven-plugin.html","titles":[{"text":"Get Up and Running","hash":"get-up-and-running","id":1},{"text":"Supported Goals","hash":"supported-goals","id":2},{"text":"Deployment Modes","hash":"deployment-modes","id":3},{"text":"Embedded","hash":"embedded","id":4},{"text":"Forked","hash":"forked","id":5},{"text":"In a jetty distribution","hash":"in-a-jetty-distribution","id":6},{"text":"Common Configuration","hash":"common-configuration","id":7},{"text":"Container Classpath vs Web Application Classpath","hash":"container-classpath","id":8},{"text":"jetty:run","hash":"jetty-run-goal","id":9},{"text":"Configuration","hash":"configuration","id":10},{"text":"jetty:run-war","hash":"jetty-run-war-goal","id":11},{"text":"Configuration","hash":"configuration-2","id":12},{"text":"jetty:start","hash":"jetty-start-goal","id":13},{"text":"Configuration","hash":"configuration-3","id":14},{"text":"jetty:start-war","hash":"jetty-start-war-goal","id":15},{"text":"Configuration","hash":"configuration-4","id":16},{"text":"jetty:stop","hash":"jetty-stop-goal","id":17},{"text":"Configuration","hash":"configuration-5","id":18},{"text":"jetty:effective-web-xml","hash":"jetty-effective-web-xml-goal","id":19},{"text":"Configuration","hash":"configuration-6","id":20},{"text":"Using Overlaid wars","hash":"using-overlaid-wars","id":21},{"text":"With maven-war-plugin","hash":"with-maven-war-plugin","id":22},{"text":"Without maven-war-plugin","hash":"without-maven-war-plugin","id":23},{"text":"Configuring Security Settings","hash":"configuring-security-settings","id":24},{"text":"Using Multiple Web Application Root Directories","hash":"using-multiple-webapp-root-directories","id":25},{"text":"Running More than One Web Application","hash":"running-more-than-one-webapp","id":26},{"text":"With jetty:run","hash":"with-jettyrun","id":27},{"text":"Setting System Properties","hash":"setting-system-properties","id":28},{"text":"Specifying System Properties in the POM","hash":"specifying-properties-in-pom","id":29},{"text":"Specifying System Properties in a File","hash":"specifying-properties-in-file","id":30}]},"63":{"id":63,"text":"Web application security restricts access to resources within the web application, or imposes security requirements on the transport with which these resources are delivered to clients. The processing of the request may be: forbidden; the request is immediately responded with a 403 status code. allowed; the request processing is allowed to continue to the application, which produces a response. challenged; the request may be allowed, but the credentials are missing (or wrong), so the request is responded either with a 401 status code, or with a response indicating that credentials are required (for example, a login page or a redirect to a login page. Jetty implements web application security with 3 components: A subclass of org.eclipse.jetty.security.SecurityHandler, see this section for the implementations available out-of-the-box. An implementation of org.eclipse.jetty.security.Authenticator, see this section for the implementations available out-of-the-box. An implementation of org.eclipse.jetty.security.LoginService, see this section for the implementations available out-of-the-box. These components interact in this way: The SecurityHandler subclass returns a Constraint based on the subclass-specific logic, for example based on the request path, the request method, etc. The Constraint is used to check if the request is trivially allowed, or trivially forbidden, or whether it requires a secure transport, and if so immediately handled by SecurityHandler with no further actions. Otherwise, the Constraint declares what requirements about authorization, transport and roles are necessary for the request to be allowed. The SecurityHandler calls Authenticator.validateRequest(...) that performs implementation-specific logic to retrieve the authentication credentials, for example from HTTP request headers such as Authorization. The Authenticator calls LoginService.login(...) to verify the credentials and, if the verification is successful, obtain information about the roles associated with these credentials. The Authenticator builds an AuthenticationState with the results of the call to LoginService.login(...), and returns it to the SecurityHandler. The SecurityHandler, based on the received AuthenticationState, either allows the request to be processed by its child Handler, or sends an appropriate response to the client, for example a 401 challenge response or a 403 forbidden response. This section is about configuring security for Jetty Core web applications. To configure security for Jakarta EE web applications, see this section. SecurityHandler is typically configured as a child of the ContextHandler that represents the web application. A simple example uses SecurityHandler.PathMapped along with BasicAuthenticator and HashLoginService: class AppHandler extends Handler.Abstract { @Override public boolean handle(Request request, Response response, Callback callback) { // Retrieve the authenticated user for this request. Principal principal = Request.getAuthenticationState(request).getUserPrincipal(); System.getLogger(\"app\").log(INFO, \"Current user is: {0}\", principal); callback.succeeded(); return true; } } Server server = new Server(); // The ContextHandler for the application. ContextHandler contextHandler = new ContextHandler(\"/app\"); // HashLoginService maps users, passwords and roles // from the realm.properties file in the class-path. HashLoginService loginService = new HashLoginService(); loginService.setConfig(ResourceFactory.of(contextHandler).newClassLoaderResource(\"realm.properties\")); // Use Basic authentication, which requires a secure transport. BasicAuthenticator authenticator = new BasicAuthenticator(); authenticator.setLoginService(loginService); // The SecurityHandler.PathMapped maps URI paths to constraints. SecurityHandler.PathMapped securityHandler = new SecurityHandler.PathMapped(); securityHandler.setAuthenticator(authenticator); securityHandler.setLoginService(loginService); // Configure constraints. // Require that all requests use a secure transport. securityHandler.put(\"/*\", Constraint.SECURE_TRANSPORT); // URI paths that start with /admin/ can only be accessed by users with the \"admin\" role. securityHandler.put(\"/admin/*\", Constraint.from(\"admin\")); // Link the Handlers. server.setHandler(contextHandler); contextHandler.setHandler(securityHandler); securityHandler.setHandler(new AppHandler()); server.start(); The Handler tree structure looks like the following: Server âââ ContextHandler /app âââ SecurityHandler âââ AppHandler The realm.properties file used by HashLoginService is the following: realm.properties # Format: <user>:<password>,<roles> carol:password david:password,admin The behavior of the example above is the following: For any request, all the request path matches are collected and processed in order from the least significant to the most significant, combining their constraint. A non-secure request using the http scheme is replied with a 403 response, since secure transport is required. A request for /app/foo matches the constraint mapped to /*, and is replied with a 200 response; AppHandler would see a null request principal. A request for /app/admin/bar without Authorization header matches both the constraints mapped to /* and /admin/*, and is replied with a 401 response, since authentication is required. A request for /app/admin/bar with an Authorization header containing invalid or unknown credentials is replied with a 401 response, since authentication is required. A request for /app/admin/bar with an Authorization header containing valid credentials with a role that is not admin is replied with a 401 response, since authentication is required. A request for /app/admin/bar with an Authorization header containing valid credentials for user david, that has admin role, is replied with a 200 response, and AppHandler would see a request principal for user david. It is good practice to have a default constraint for all paths (that is, for path /*), even if it is Constraint.ALLOWED. In this way it is clear what is the intended behavior for paths that do not match more specific constraint configurations. The more complex example below uses SecurityHandler.PathMethodMapped to allow users with the read role to read resources, and users with the write role to write resources: class AppHandler extends Handler.Abstract { @Override public boolean handle(Request request, Response response, Callback callback) { // Retrieve the authenticated user for this request. Principal principal = Request.getAuthenticationState(request).getUserPrincipal(); System.getLogger(\"app\").log(INFO, \"Current user is: {0}\", principal); callback.succeeded(); return true; } } Server server = new Server(); // The ContextHandler for the application. ContextHandler contextHandler = new ContextHandler(\"/app\"); // HashLoginService maps users, passwords and roles // from the realm.properties file in the class-path. HashLoginService loginService = new HashLoginService(); loginService.setConfig(ResourceFactory.of(contextHandler).newClassLoaderResource(\"realm.properties\")); // Use Basic authentication, which requires a secure transport. BasicAuthenticator authenticator = new BasicAuthenticator(); authenticator.setLoginService(loginService); // The SecurityHandler.PathMapped maps URI paths to constraints. SecurityHandler.PathMethodMapped securityHandler = new SecurityHandler.PathMethodMapped(); securityHandler.setAuthenticator(authenticator); securityHandler.setLoginService(loginService); // Configure constraints. // Unless otherwise specified, access to resources is forbidden and requires secure transport. securityHandler.put(\"/*\", \"*\", Constraint.combine(Constraint.FORBIDDEN, Constraint.SECURE_TRANSPORT)); // GET /data/* is allowed only to users with the \"read\" role. securityHandler.put(\"/data/*\", \"GET\", Constraint.from(\"read\")); // PUT /data/* is allowed only to users with the \"write\" role. securityHandler.put(\"/data/*\", \"PUT\", Constraint.from(\"write\")); // Link the Handlers. server.setHandler(contextHandler); contextHandler.setHandler(securityHandler); securityHandler.setHandler(new AppHandler()); server.start(); realm.properties # Format: <user>:<password>,<roles> bob:password,read alice:password,read,write In the example above, access to any resource is by default forbidden, and requires secure transport. However, access to /data/* resources using the HTTP method GET is granted but only to users with read role. Both bob and alice are granted access to these resources, but only if they use the GET method. Similarly, access to /data/* resources using the HTTP method PUT is granted but only to users with write role. Only alice is granted access to these resources, but only if she uses the PUT method. It is good practice to have a default constraint for all paths (that is, for path /*), and for all HTTP methods (that is, for method *), even if it is Constraint.ALLOWED. In this way it is clear what is the intended behavior for paths and HTTP methods that do not match more specific constraint configurations. The behavior of SecurityHandler implementations for the Jetty Core API is to combine all the constraints that match. This is different from the behavior of the SecurityHandler implementations for the Jakarta EE APIs, that only use the constraint of the most specific match. This section is about configuring security for Jakarta EE web applications. To configure security for Jetty Core web applications, see this section. To configure Jakarta EE web application security you must use the SecurityHandler subclass org.eclipse.jetty.ee11.servlet.security.ConstraintSecurityHandler. Below you can find a simple example that sets up a ConstraintSecurityHandler to secure your Jakarta EE web application: Server server = new Server(); WebAppContext webApp = new WebAppContext(); webApp.setContextPath(\"/app\"); webApp.setWar(\"/path/to/app.war\"); // HashLoginService maps users, passwords and roles // from the realm.properties file in the server class-path. HashLoginService loginService = new HashLoginService(); loginService.setConfig(ResourceFactory.of(webApp).newClassLoaderResource(\"realm.properties\")); // Use Basic authentication, which requires a secure transport. BasicAuthenticator authenticator = new BasicAuthenticator(); authenticator.setLoginService(loginService); ConstraintSecurityHandler securityHandler = new ConstraintSecurityHandler(); securityHandler.setAuthenticator(authenticator); securityHandler.setLoginService(loginService); // Configure constraints. ConstraintMapping constraintMapping = new ConstraintMapping(); constraintMapping.setPathSpec(\"/*\"); constraintMapping.setConstraint(Constraint.SECURE_TRANSPORT); securityHandler.addConstraintMapping(constraintMapping); constraintMapping = new ConstraintMapping(); constraintMapping.setPathSpec(\"/admin/*\"); constraintMapping.setConstraint(Constraint.from(\"admin\")); securityHandler.addConstraintMapping(constraintMapping); // Link the Handlers. server.setHandler(webApp); // Note the specific call to setSecurityHandler(). webApp.setSecurityHandler(securityHandler); server.start(); The Handler tree structure looks like the following: Server âââ WebAppContext /app âââ ConstraintSecurityHandler âââ ServletHandler âââ AppServlet (defined in app.war) The realm.properties file used by HashLoginService is the following: realm.properties # Format: <user>:<password>,<roles> carol:password david:password,admin Note how the constraints are configured using org.eclipse.jetty.ee11.servlet.security.ConstraintMapping, that allows to configure the path, the HTTP method and the Constraint. The more complex example below uses ConstraintSecurityHandler to allow users with the read role to read resources, and users with the write role to write resources: Server server = new Server(); WebAppContext webApp = new WebAppContext(); webApp.setContextPath(\"/app\"); webApp.setWar(\"/path/to/app.war\"); // HashLoginService maps users, passwords and roles // from the realm.properties file in the server class-path. HashLoginService loginService = new HashLoginService(); loginService.setConfig(ResourceFactory.of(webApp).newClassLoaderResource(\"realm.properties\")); // Use Basic authentication, which requires a secure transport. BasicAuthenticator authenticator = new BasicAuthenticator(); authenticator.setLoginService(loginService); ConstraintSecurityHandler securityHandler = new ConstraintSecurityHandler(); securityHandler.setAuthenticator(authenticator); securityHandler.setLoginService(loginService); // Configure constraints. // Forbid access for uncovered HTTP methods. securityHa
1ndler.setDenyUncoveredHttpMethods(true); // No HTTP method specified, therefore applies to all methods. ConstraintMapping constraintMapping = new ConstraintMapping(); constraintMapping.setPathSpec(\"/*\"); constraintMapping.setConstraint(Constraint.combine(Constraint.FORBIDDEN, Constraint.SECURE_TRANSPORT)); securityHandler.addConstraintMapping(constraintMapping); // GET /data/* is allowed only to users with the \"read\" role. constraintMapping = new ConstraintMapping(); constraintMapping.setPathSpec(\"/data/*\"); constraintMapping.setMethod(\"GET\"); constraintMapping.setConstraint(Constraint.combine(Constraint.SECURE_TRANSPORT, Constraint.from(\"read\"))); // PUT /data/* is allowed only to users with the \"write\" role. constraintMapping = new ConstraintMapping(); constraintMapping.setPathSpec(\"/data/*\"); constraintMapping.setMethod(\"PUT\"); constraintMapping.setConstraint(Constraint.combine(Constraint.SECURE_TRANSPORT, Constraint.from(\"write\"))); // Link the Handlers. server.setHandler(webApp); // Note the specific call to setSecurityHandler(). webApp.setSecurityHandler(securityHandler); server.start(); realm.properties # Format: <user>:<password>,<roles> bob:password,read alice:password,read,write In the example above, access to any resource is by default forbidden, and requires secure transport. However, access to /data/* resources using the HTTP method GET is granted but only to users with read role. Both bob and alice are granted access to these resources, but only if they use the GET method. Similarly, access to /data/* resources using the HTTP method PUT is granted but only to users with write role. Only alice is granted access to these resources, but only if she uses the PUT method. Note also that ConstraintSecurityHandler.denyUncoveredHttpMethods=true to make sure that requests that match /data/* but are neither GET nor PUT are denied. The behavior of SecurityHandler implementations for the Jakarta EE API is to only use the constraint of the most specific match. This is different from the behavior of the SecurityHandler implementations for the Jetty Core APIs, that combine all the constraints that match. Jetty provides the following SecurityHandler implementations: SecurityHandler.PathMapped, that allows you to configure constraints based on the request path. SecurityHandler.PathMethodMapped, that allows you to configure constraints based on the request path and the request HTTP method. ConstraintSecurityHandler, that implements the Jakarta EE web application security constraints. Jetty provides the following Authenticator implementations: BasicAuthenticator, that implements Basic authentication. DigestAuthentication, that implements Digest authentication. FormAuthenticator, that implements HTML form authentication using the j_security_check mechanism. SslClientCertAuthenticator, that implements authentication based on client certificates. SPNEGOAuthenticator, that implements SPNEGO authentication. EthereumAuthenticator, that implements Sign-In with Ethereum authentication (see also this dedicated section). OpenIdAuthenticator, that implements OpenID Connect Core 1.0 authentication (see also this dedicated section). MultiAuthenticator, that supports multiple authentication mechanisms for the same web application. JaspiAuthenticator, for the Jakarta Authentication API. Jetty provides the following LoginService implementations: HashLoginService, that verifies credentials retrieved from a *.properties file. JDBCLoginService, that verifies credentials retrieved from a RDBMS using the JDBC APIs. DataSourceLoginService, that verifies credentials retrieved from a RDBMS using the DataSource APIs. JAASLoginService, that verifies credentials retrieved using the JAAS APIs. AnyUserLoginService, that does not verify credentials, but can delegate to another LoginService to provide roles for authenticated users. Some Authenticator implementation require a specific LoginService, so the following implementation are also available: SPNEGOLoginService, used in conjunction with SPNEGOAuthenticator. OpenIdLoginService, used in conjunction with OpenIdAuthenticator.","title":"Jetty Security","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/programming-guide/security/index.html","titles":[{"text":"Configuring Jetty Core Security","hash":"security-core-configuration","id":1},{"text":"Configuring Jakarta EE Security","hash":"security-jakarta-configuration","id":2},{"text":"SecurityHandler Implementations","hash":"security-handler","id":3},{"text":"Authenticator Implementations","hash":"security-authenticator","
1id":4},{"text":"LoginService Implementations","hash":"security-login-service","id":5}]},"64":{"id":64,"text":"Sign-In with Ethereum (SIWE) is a decentralized authentication protocol that allows users to authenticate using their Ethereum account. This enables users to retain more control over their identity and provides an alternative to protocols such as OpenID Connect, which rely on a centralized identity provider. Sign-In with Ethereum works by using off-chain services to sign a standard message format defined by EIP-4361 (https://eips.ethereum.org/EIPS/eip-4361). The user signs the SIWE message to prove ownership of the Ethereum address. This is verified by the server by extracting the Ethereum address from the signature and comparing it to the address supplied in the SIWE message. Typically, you would rely on a browser extension such as MetaMask to provide a user-friendly way for users to sign the message with their Ethereum account. Currently Jetty only provides support SIWE in Jetty 12.1+ and only for jetty-core, and ee11+ environments. It is enabled by adding the EtheremAuthenticator to the SecurityHandler of your web application. The Sign-In with Ethereum module can be enabled when using Standalone Jetty with. $ java -jar $JETTY_HOME/start.jar --add-modules=siwe If using embedded Jetty you must add the EthereumAuthenticator to your SecurityHandler. Configuration of the EthereumAuthenticator is done through init params on the ServletContext or SecurityHandler. The loginPath is the only mandatory configuration and the others have defaults that you may wish to configure. Login Path Init param: org.eclipse.jetty.security.siwe.login_path Description: Unauthenticated requests are redirected to a login page where they must sign a SIWE message and send it to the server. This path represents a page in the application that contains the SIWE login page. Nonce Path Init param: org.eclipse.jetty.security.siwe.nonce_path Description: Requests to this path will generate a random nonce string which is associated with the session. The nonce is used in the SIWE Message to avoid replay attacks. The path at which this nonce is served can be configured through the init parameter. The application does not need to implement their own nonce endpoint, they just configure this path and the Authenticator handles it. The default value for this is /auth/nonce if left un-configured. Authentication Path Init param: org.eclipse.jetty.security.siwe.authentication_path Description: The authentication path is where requests containing a signed SIWE message are sent in order to authenticate the user. The default value for this is /auth/login. Max Message Size Init Param: org.eclipse.jetty.security.siwe.max_message_size Description: This is the max size of the authentication message which can be read by the implementation. This limit defaults to 4 * 1024. This is necessary because the complete request content is read into a string and then parsed. Logout Redirect Path Init Param: org.eclipse.jetty.security.siwe.logout_redirect_path Description: Where the request is redirected to after logout. If left un-configured no redirect will be done upon logout. Error Path Init Param: org.eclipse.jetty.security.siwe.error_path Description: Path where Authentication errors are sent, this may contain an optional query string. An error description is available on the error page through the request parameter error_description_jetty. If this configuration is not set Jetty will send a 403 Forbidden response upon authentication errors. Dispatch Init Param: org.eclipse.jetty.security.siwe.dispatch Description: If set to true a dispatch will be done instead of a redirect to the login page in the case of an unauthenticated request. This defaults to false. Authenticate New Users Init Param: org.eclipse.jetty.security.siwe.authenticate_new_users Description: This can be set to false if you have a nested LoginService and only want to authenticate users known by the LoginService. This defaults to true meaning that any user will be authenticated regardless if they are known by the nested LoginService. Domains Init Param: org.eclipse.jetty.security.siwe.domains Description: The list of allowed domains to be declared in the domain field of the SIWE Message. If left unconfigured, the domain field must match the authority (host[:port]) of the request being authenticated. Chain IDs Init Param: org.eclipse.jetty.security.siwe.chainIds Description: This list of allowed Chain IDs to be declared in the chain-id field of the SIWE Message. If left blank this will allow all Chain IDs. A nested LoginService may be used to assign roles to users of a known Ethereum Address. Or the nested LoginService may be combined with the setting authenticateNewUsers == false to only allow authentication of known users. For example a HashLoginService may be configured through the jetty-ee11-web.xml file: <Configure id=\"wac\" class=\"org.eclipse.jetty.ee11.webapp.WebAppContext\"> <Call id=\"ResourceFactory\" class=\"org.eclipse.jetty.util.resource.ResourceFactory\" name=\"of\"> <Arg><Ref refid=\"Server\"/></Arg> <Call id=\"realmResource\" name=\"newResource\"> <Arg><SystemProperty name=\"jetty.base\" default=\".\"/>/etc/realm.properties</Arg> </Call> </Call> <Call name=\"getSecurityHandler\"> <Set name=\"loginService\"> <New class=\"org.eclipse.jetty.security.HashLoginService\"> <Set name=\"name\">myRealm</Set> <Set name=\"config\"><Ref refid=\"realmResource\"/></Set> </New> </Set> </Call> </Configure>
1 EIP-4361 specifies the format of a SIWE Message, the overview of the Sign-In with Ethereum process, and message validation. However, it does not specify certain things like how the SIWE Message and signature are sent to the server for validation, and it does not specify the process the client acquires the nonce from the server. For this reason the EthereumAuthenticator has been made extensible to allow different implementations. Currently Jetty supports authentication requests of type application/x-www-form-urlencoded or multipart/form-data, which contains the fields message and signature. Where message contains the full SIWE message, and signature is the ERC-1271 signature of the SIWE message. The nonce endpoint provided by the EthereumAuthenticator returns a response with application/json format, with a single key of nonce. // This uses jetty-core, but you can configure a ConstraintSecurityHandler for use with EE11. SecurityHandler.PathMapped securityHandler = new SecurityHandler.PathMapped(); securityHandler.setHandler(handler); securityHandler.put(\"/*\", Constraint.ANY_USER); // Add the EthereumAuthenticator to the securityHandler. EthereumAuthenticator authenticator = new EthereumAuthenticator(); securityHandler.setAuthenticator(authenticator); // In embedded you can configure via EthereumAuthenticator APIs. authenticator.setLoginPath(\"/login.html\"); // Or you can configure with parameters on the SecurityHandler. securityHandler.setParameter(EthereumAuthenticator.LOGIN_PATH_PARAM, \"/login.html\"); Include the Web3.js library to interact with the users Ethereum wallet. <script src=\"https://cdn.jsdelivr.net/npm/[email protected]/dist/web3.min.js\"></script> HTML form to submit the sign in request. <button id=\"siwe\">Sign-In with Ethereum</button> <form id=\"loginForm\" action=\"/auth/login\" method=\"POST\" style=\"display: none;\"> <input type=\"hidden\" id=\"signatureField\" name=\"signature\"> <input type=\"hidden\" id=\"messageField\" name=\"message\"> </form> <p class=\"alert\" style=\"display: none;\">Result: <span id=\"siweResult\"></span></p> Add script to generate and sign the SIWE message when the sign-in button is pressed. <script> let provider = window.ethereum; let accounts; if (!provider) { document.getElementById('siweResult').innerText = 'MetaMask is not installed. Please install MetaMask to use this feature.'; } else { document.getElementById('siwe').addEventListener('click', async () => { try { accounts = await provider.request({ method: 'eth_requestAccounts' }); const domain = window.location.host; const from = accounts[0]; // Fetch nonce from the server. const nonceResponse = await fetch('/auth/nonce'); const nonceData = await nonceResponse.json(); const nonce = nonceData.nonce; const siweMessage = `${domain} wants you to sign in with your Ethereum account:\\n${from}\\n\\nI accept the MetaMask Terms of Service: https://community.metamask.io/tos\\n\\nURI: https://${domain}\\nVersion: 1\\nChain ID: 1\\nNonce: ${nonce}\\nIssued At: ${new Date().toISOString()}`; document.getElementById('signatureField').value = await provider.request({ method: 'personal_sign', params: [siweMessage, from] }); document.getElementById('messageField').value = siweMessage; document.getElementById('loginForm').submit(); } catch (error) { console.error('Error during login:', error); document.getElementById('siweResult').innerText = `Error: ${error.message}`; document.getElementById('siweResult').parentElement.style.display = 'block'; } }); } </script>","title":"SIWE Support","component":"jetty","version":"12.1","name":"siwe-support","url":"/docs/jetty/12.1/programming-guide/security/siwe-support.html","titles":[{"text":"Introduction","hash":"introduction","id":1},{"text":"Support","hash":"support","id":2},{"text":"Usage","hash":"usage","id":3},{"text":"Enabling SIWE","hash":"enabling-siwe","id":4},{"text":"Configuration","hash":"configuration","id":5},{"text":"Nested LoginService","hash":"nested-loginservice","id":6},{"text":"Application Implementation","hash":"application-implementation","id":7},{"text":"Configuring Security Handler","hash":"configuring-security-handler","id":8},{"text":"Login Page Example","hash":"login-page-example","id":9}]},"65":{"id":65,"text":"Jetty supports authentication using the OpenID Connect protocol (see OpenID Connect Core 1.0). This allows users to authenticate with third party OpenID Providers, making possible to integrate features like \"Sign in with Google\" or \"Sign in with Microsoft\", among others. With OpenID Connect, Jetty applications can offload the responsibility of managing user credentials while enabling features like single sign-on (SSO). To use OpenID Connect authentication with Jetty you are required to set up an external OpenID Provider for your web application; some examples of OpenID Providers are Google and Amazon. Once you have set up your OpenID Provider you will have access to a Client ID and Client Secret which you can use to configure Jetty. You must also configure your OpenID Provider to recognize the redirect URIs that your web application will use to handle authentication responses. By default, the redirect path is /j_security_check, but this can be customized through the OpenIdAuthenticator configuration if needed. For example, you may wish to register the following URIs: For a deployed application, https://example.com/j_security_check. For local development, http://localhost:8080/j_security_check. Ensure that all relevant environments where your web application is deployed have their corresponding URIs registered with the OpenID Provider to avoid authentication errors. This is an example of how you can configure OpenID Connect authentication with an embedded Jetty environment with the Jetty Core API. // To create an OpenIdConfiguration you can rely on discovery of the OIDC metadata. OpenIdConfiguration openIdConfig = new OpenIdConfiguration( \"https://example.com/issuer\", // ISSUER \"my-client-id\", // CLIENT_ID \"my-client-secret\" // CLIENT_SECRET ); // Or you can specify the full OpenID configuration manually. openIdConfig = new OpenIdConfiguration( \"https://example.com/issuer\", // ISSUER \"https://example.com/token\", // TOKEN_ENDPOINT \"https://example.com/auth\", // AUTH_ENDPOINT \"https://example.com/logout\", // END_SESSION_ENDPOINT \"my-client-id\", // CLIENT_ID \"my-client-secret\", // CLIENT_SECRET \"client_secret_post\", // AUTH_METHOD (e.g., client_secret_post, client_secret_basic) new HttpClient() // HttpClient instance ); // The specific security handler implementation will change depending on whether you are using EE8/EE9/EE10/EE11 or Jetty Core API. SecurityHandler.PathMapped securityHandler = new SecurityHandler.PathMapped(); server.insertHandler(securityHandler); securityHandler.put(\"/auth/*\", Constraint.ANY_USER); // A nested LoginService is optional and used to specify known users with defined roles. // This can be any instance of LoginService and is not restricted to be a HashLoginService. HashLoginService nestedLoginService = new HashLoginService(); UserStore userStore = new UserStore(); userStore.addUser(\"<admin-user-subject-identifier>\", null, new String[]{\"admin\"}); nestedLoginService.setUserStore(userStore); // Optional configuration to allow new users not listed in the nested LoginService to be authenticated. openIdConfig.setAuthenticateNewUsers(true); // An OpenIdLoginService should be used which can optionally wrap the nestedLoginService to supp
1ort roles. LoginService loginService = new OpenIdLoginService(openIdConfig, nestedLoginService); securityHandler.setLoginService(loginService); // Configure an OpenIdAuthenticator. securityHandler.setAuthenticator(new OpenIdAuthenticator(openIdConfig, \"/j_security_check\", // The path where the OIDC provider redirects back to Jetty. \"/error\", // Optional page where authentication errors are redirected. \"/logoutRedirect\" // Optional page where the user is redirected to this page after logout. )); // Session handler is required for OpenID authentication. server.insertHandler(new SessionHandler()); Here is an example of a Jetty Core Handler which handles authenticated requests by accessing the OpenID claims, and also handles authentication errors at /error. class OpenIdExampleHandler extends Handler.Abstract { @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { PrintStream writer = new PrintStream(Content.Sink.asOutputStream(response)); String pathInContext = Request.getPathInContext(request); if (pathInContext.startsWith(\"/error\")) { // Handle requests to the error page which may have an error description parameter. Fields parameters = Request.getParameters(request); writer.println(\"error_description: \" + parameters.get(\"error_description_jetty\") + \"<br>\"); } else { Principal userPrincipal = AuthenticationState.getUserPrincipal(request); writer.println(\"userPrincipal: \" + userPrincipal); if (userPrincipal != null) { // You can access the full openid claims for an authenticated session. Session session = request.getSession(false); @SuppressWarnings(\"unchecked\") Map<String, String> claims = (Map<String, String>)session.getAttribute(\"org.eclipse.jetty.security.openid.claims\"); writer.println(\"claims: \" + claims); writer.println(\"name: \" + claims.get(\"name\")); writer.println(\"sub: \" + claims.get(\"sub\")); } } writer.close(); callback.succeeded(); return true; } } Claims about the user can be found using attributes in the HTTP session attribute org.eclipse.jetty.security.openid.claims, and the full response containing the OAuth 2.0 Access Token can be found in the HTTP session attribute org.eclipse.jetty.security.openid.response. If security roles are required, they can be configured through a wrapped LoginService which is deferred to for role information by the OpenIdLoginService. The wrapped LoginService be configured through the constructor arguments of OpenIdLoginService, or left null if no user roles are required. When using authorization roles, the property authenticateNewUsers, which can be configured through the OpenIdConfiguration or directly on the OpenIdLoginService, becomes significant. When authenticateNewUsers is set to true, users not found by the wrapped LoginService will still be authenticated but will have no roles. When authenticateNewUsers is set to false, users not found by the wrapped LoginService will be not be allowed to authenticate and are redirected to the error page.","title":"OpenID Support","component":"jetty","version":"12.1","name":"openid-support","url":"/docs/jetty/12.1/programming-guide/security/openid-support.html","titles":[{"text":"External Configuration","hash":"external-configuration","id":1},{"text":"Jetty Configuration","hash":"jetty-configuration","id":2},{"text":"Code Example","hash":"code-example","id":3},{"text":"Application Usage","hash":"application-usage","id":4},{"text":"Claims and Access Token","hash":"claims-and-access-token","id":5},{"text":"Authorization with Security Roles","hash":"authorization-with-security-roles","id":6}]},"66":{"id":66,"text":"The main theme of Jetty 12.1.x is the implementation of the Jakarta EE 11 specifications, so that now Jetty 12.1.x supports Java EE 8, Jakarta EE 9, Jakarta EE 10 and Jakarta EE 11. Jetty 12.1.x now implements the following Jakarta EE 11 specifications: Jakarta Servlet 6.1 Jakarta Pages 4.0 Jakarta WebSocket 2.2 With the implementation of Jakarta EE 11, all the Jetty modules that before were available for Jakarta EE 10, such as ee10-servlet, ee10-jsp, etc. are now available for Jakarta EE 11 as ee11-servlet, ee11-jsp, etc. The deployer is the Jetty component that deploys web applications from the $JETTY_BASE/webapps directory, and it has been completely rewritten in Jetty 12.1.x. The rewrite allowed to use only one scanner (Jetty 12.0.x had one for each Jakarta EE environment), and allowed to define the deployment of Jetty core web applications and static web applications. The server-side authentication mechanisms now have these additional implementations: EthereumAuthenticator, that implements ERC-4361: Sign-In with Ethereum, to allow users to authenticate with their blockchain wallets (see this section for further details). MultiAuthenticator to allow multiple authentications for the same web application. Jetty 12.0.x only supported GZIP compression, for both the client (GZIPContentDecoder) and the server (GzipHandler). Jetty 12.1.x now supports pluggable compression mechanisms and provides implementations for GZIP, Brotli and Zstandard, in both the client (see here) and the server (see here). Brotli and Zstandard use native libraries for the compression implementation. On the client, ContentDecoder has been changed to accommodate the new compression mechanisms, see this section for further details. On the server, GzipHandler has been deprecated, in favor of CompressionH
1andler, see this section for further details. Also on the server, the Jetty module gzip.mod has been deprecated, replaced by the Jetty module compression-gzip. New compression-* Jetty modules have been added for all compression mechanisms, see this section for further details. Components that implement Invocable return an InvocationType that defines the blocking or non-blocking behavior of the component, for example whether a server-side Handler or a demand task passed to Content.Source.demand(Runnable) is blocking or non-blocking. The InvocationType is then used by Jettyâs adaptive execution strategy to efficiently process these components. Jetty 12.1.x strengthens the processing of Invocable components for both the client (refer to this section) and the server (refer to this section). Client-side and server-side applications can now explicitly set the InvocationType of specific components, and Jetty will process them accordingly. The support for the QUIC protocol underlying HTTP/3 has been completely rewritten. The rewrite introduced a QUIC API that abstracts away the QUIC implementation. In Jetty 12.1.x the QUIC implementation is still based on the Quiche native library, but thanks to the QUIC API abstraction in the future it will be possible to plug in a different QUIC implementation without changing the HTTP/3 layer. The Jetty JSON library now supports Java 16 records. In Jetty 12.0.x, applications could configure response content decoding through HttpClient.getContentDecoderFactories(), and implement their own by implementing org.eclipse.jetty.client.ContentDecoder. In Jetty 12.1.x, applications can still configure response content decoding through HttpClient.getContentDecoderFactories(). However, the decoding is based on the org.eclipse.jetty.compression.Compression classes. Applications can implement their own response content decoding by implementing a Compression subclass and the corresponding DecoderSource, based on the Content.Source and Content.Chunk APIs. Class IteratingCallback underwent refinements that changed the behavior of the onCompleteFailure(Throwable) method. In Jetty 12.0.x, IteratingCallback.onCompleteFailure(Throwable) was called as soon as a failure was reported, without waiting the completion of the asynchronous operation (despite its name containing the word \"complete\"). For example, if a write operation performed with IteratingCallback was pending due to TCP congestion, and a timeout happened, onCompleteFailure(Throwable) was called as soon as the timeout happened, without waiting for the TCP congestion to resolve. In Jetty 12.1.x, the same behavior is achieved by IteratingCallback.onFailure(Throwable), so applications should review their usage of IteratingCallback and change the overrides of onCompleteFailure(Throwable) to override onFailure(Throwable) instead. In Jetty 12.1.x, onCompleteFailure(Throwable) will be called when the asynchronous operation is complete; in the example above, it will be called when the TCP congestion is resolved. In Jetty 12.0.x, RetainableByteBuffer was primarily used internally, and exposed to users only through ByteBufferPool.acquire(...). In Jetty 12.1.x, RetainableByteBuffer has broader usage within the Jetty Core APIs: RetainableByteBuffer is now a base interface of Content.Chunk, the key class to read content (see this section). RetainableByteBuffer.FixedCapacity provides an implementation for fixed capacity buffers, such as those returned by ByteBufferPool. RetainableByteBuffer.DynamicCapacity provides an implementation for dynamic capacity buffers. This class is useful to retain or copy other buffers such as Content.Chunks. Dynamic capacity buffers are particularly effective to read and accumulate data efficiently (for example for later processing), when processing server-side request content, client-side response content, or WebSocket binary messages. In Jetty 12.0.x, HttpConfiguration.maxResponseHeaderSize defaulted to -1, which means that HttpConfiguration.responseHeaderSize (defaulting to 8192) is used instead to limit the length of the server response headers. In Jetty 12.1.x, HttpConfiguration.maxResponseHeaderSize defaults to 16384; if it is explicitly configured to -1 Jetty 12.1.x will behave exactly like Jetty 12.0.x. In Jetty 12.1.x and HTTP/1.1, this means that server responses are first generated using the smaller HttpConfiguration.responseHeaderSize, to use less resources. If the generation of the server response overflows HttpConfiguration.responseHeaderSize, then HttpConfiguration.maxResponseHeaderSize is used. If the generation overflows also HttpConfiguration.maxResponseHeaderSize, a 500 error response is generated. In Jetty 12.1.x and HTTP/2 HttpConfiguration.maxResponseHeaderSize is used for the MAX_HEADER_LIST_SIZE setting, while in HTTP/3 is used for the MAX_FIELD_SECTION_SIZE setting. In Jetty 12.0.x, it was possible to use the Jetty WebSocket annotations to have, in the same WebSocket EndPoint, a method annotated with @OnWebSocketFrame and one annotated with @OnWebSocketMessage, @OnWebSocketPing or @OnWebSocketPong. However, this was causing issues, discussed in #12342. In Jetty 12.1.x if the annotation @OnWebSocketFrame is present, then there cannot be methods annotated with @OnWebSocketMessage, @OnWebSocketPing or @OnWebSocketPong. Furthermore, in Jetty 12.1.x the signature of methods annotated with @OnWebSocketFrame now requires a Callback parameter.","title":"Migrating from Jetty 12.0.x to Jetty 12.1.x","component":"jetty","version":"12.1","name":"12.0-to-12.1","url":"/docs/jetty/12.1/programming-guide/migration/12.0-to-12.1.html","titles":[{"text":"Component Changes","hash":"component-changes","id":1},{"text":"Deployer","hash":"component-changes-deployer","id":2},{"text":"Authentication","hash":"component-changes-authentication","id":3},{"text":"Compression","hash":"component-changes-compression","id":4},{"text":"InvocationType","hash":"component-changes-invocation-type","id":5},{"text":"QUIC","hash":"component-changes-quic","id":6},{"text":"JSON","hash":"component-changes-json","id":7},{"text":"APIs Changes","hash":"api-changes","id":8}
1,{"text":"HttpClient","hash":"api-changes-httpclient","id":9},{"text":"IteratingCallback","hash":"api-changes-iterating-callback","id":10},{"text":"RetainableByteBuffer","hash":"api-changes-retainable-bytebuffer","id":11},{"text":"HttpConfiguration.maxResponseHeaderSize","hash":"api-changes-httpconfig-maxresponseheadersize","id":12},{"text":"WebSocket","hash":"api-changes-websocket","id":13}]},"67":{"id":67,"text":"Jetty 11.0.x Jetty 12.0.x Java 11 Java 17 Jetty 11.0.x Jetty 12.0.x org.eclipse.jetty.fcgi:fcgi-client org.eclipse.jetty.fcgi:jetty-fcgi-client org.eclipse.jetty.fcgi:fcgi-server org.eclipse.jetty.fcgi:jetty-fcgi-server org.eclipse.jetty.http2:http2-client org.eclipse.jetty.http2:jetty-http2-client org.eclipse.jetty.http2:http2-common org.eclipse.jetty.http2:jetty-http2-common org.eclipse.jetty.http2:http2-hpack org.eclipse.jetty.http2:jetty-http2-hpack org.eclipse.jetty.http2:http2-http-client-transport org.eclipse.jetty.http2:jetty-http2-client-transport org.eclipse.jetty.http2:http2-server org.eclipse.jetty.http2:jetty-http2-server org.eclipse.jetty.http3:http3-client org.eclipse.jetty.http3:jetty-http3-client org.eclipse.jetty.http3:http3-common org.eclipse.jetty.http3:jetty-http3-common org.eclipse.jetty.http3:http3-http-client-transport org.eclipse.jetty.http3:jetty-http3-client-transport org.eclipse.jetty.http3:http3-qpack org.eclipse.jetty.http3:jetty-http3-qpack org.eclipse.jetty.http3:http3-server org.eclipse.jetty.http3:jetty-http3-server org.eclipse.jetty:jetty-osgi.* org.eclipse.jetty:jetty-osgi org.eclipse.jetty.ee{8,9,10,11}:jetty-ee{8,9,10,11}-osgi-* org.eclipse.jetty:jetty-proxy org.eclipse.jetty:jetty-proxy org.eclipse.jetty.ee{8,9,10,11}:jetty-ee{8,9,10,11}-proxy org.eclipse.jetty.quic:quic-client org.eclipse.jetty.quic:jetty-quic-client org.eclipse.jetty.quic:quic-common org.eclipse.jetty.quic:jetty-quic-common org.eclipse.jetty.quic:quic-quiche org.eclipse.jetty.quic:jetty-quic-quiche org.eclipse.jetty.quic:quic-server org.eclipse.jetty.quic:jetty-quic-server org.eclipse.jetty:jetty-unixsocket.* Removed â Use org.eclipse.jetty:jetty-unixdomain-server org.eclipse.jetty.websocket:websocket-core-client org.eclipse.jetty.websocket:jetty-websocket-core-client org.eclipse.jetty.websocket:websocket-core-common org.eclipse.jetty.websocket:jetty-websocket-core-common org.eclipse.jetty.websocket:websocket-core-server org.eclipse.jetty.websocket:jetty-websocket-core-server org.eclipse.jetty.websocket:websocket-jetty-api org.eclipse.jetty.websocket:jetty-websocket-jetty-api org.eclipse.jetty.websocket:websocket-jetty-client org.eclipse.jetty.websocket:jetty-websocket-jetty-client org.eclipse.jetty.ee{8,9,10,11}.websocket:jetty-ee{8,9,10,11}-websocket-jetty-client org.eclipse.jetty.websocket:websocket-jetty-common org.eclipse.jetty.websocket:jetty-websocket-jetty-common org.eclipse.jetty.ee{8,9,10,11}.websocket:jetty-ee{8,9,10,11}-websocket-jetty-common org.eclipse.jetty.websocket:websocket-jetty-server org.eclipse.jetty.websocket:jetty-websocket-jetty-server org.eclipse.jetty.ee{8,9,10,11}.websocket:jetty-ee{8,9,10,11}-websocket-jetty-server org.eclipse.jetty.websocket:websocket-jakarta-client org.eclipse.jetty.ee{8,9,10,11}.websocket:jetty-ee{8,9,10,11}-websocket-jakarta-client org.eclipse.jetty.websocket:websocket-jakarta-common org.eclipse.jetty.ee{8,9,10,11}.websocket:jetty-ee{8,9,10,11}-websocket-jakarta-common org.eclipse.jetty.websocket:websocket-jakarta-server org.eclipse.jetty.ee{8,9,10,11}.websocket:jetty-ee{8,9,10,11}-websocket-jakarta-server org.eclipse.jetty.websocket:websocket-servlet org.eclipse.jetty.ee{8,9,10,11}.websocket:jetty-ee{8,9,10,11}-websocket-servlet org.eclipse.jetty:apache-jsp org.eclipse.jetty.ee{8,9,10,11}:jetty-ee{8,9,10,11}-apache-jsp org.eclipse.jetty:jetty-annotations org.eclipse.jetty.ee{8,9,10,11}:jetty-ee{8,9,10,11}-annotations org.eclipse.jetty:jetty-ant Removed â No Replacement org.eclipse.jetty:jetty-cdi org.eclipse.jetty.ee{8,9,10,11}:jetty-ee{8,9,10,11}-cdi org.eclipse.jetty:glassfish-jstl org.eclipse.jetty.ee{8,9,10,11}:jetty-ee{8,9,10,11}-glassfish-jstl org.eclipse.jetty:jetty-jaspi org.eclipse.jetty.ee{8,9,10,11}:jetty-ee{8,9,10,11}-jaspi org.eclipse.jetty:jetty-jndi org.eclipse.jetty.ee{8,9,10,11}:jetty-ee{8,9,10,11}-jndi org.eclipse.jetty:jetty-jspc-maven-plugin org.eclipse.jetty.ee{8,9,10,11}:jetty-ee{8,9,10,11}-jspc-maven-plugin org.eclipse.jetty:jetty-maven-plugin org.eclipse.jetty.ee{8,9,10,11}:jetty-ee{8,9,10,11}-maven-plugin org.eclipse.jetty:jetty-plus org.eclipse.jetty.ee{8,9,10,11}:jetty-ee{8,9,10,11}-plus org.eclipse.jetty:jetty-quickstart org.eclipse.jetty.ee{8,9,10,11}:jetty-ee{8,9,10,11}-quickstart org.eclipse.jetty:jetty-servlet org.eclipse.jetty.ee{8,9,10,11}:jetty-ee{8,9,10,11}-servlet org.eclipse.jetty:jetty-servlets org.eclipse.jetty.ee{8,9,10,11}:jetty-ee{8,9,10,11}-servlets org.eclipse.jetty:jetty-webapp org.eclipse.jetty.ee{8,9,10,11}:jetty-ee{8,9,10,11}-webapp Jetty 11.0.x Jetty 12.0.x org.eclipse.jetty.client.api.* org.eclipse.jetty.client.* org.eclipse.jetty.client.util.* org.eclipse.jetty.client.* org.eclipse.jetty.client.util.* org.eclipse.jetty.client.* org.eclipse.jetty.client.http.* org.eclipse.jetty.client.transport.* org.eclipse.jetty.http2.client.http.* org.eclipse.jetty.http2.client.transport.* org.eclipse.jetty.websocket.api.annotation.OnWebSocketConnect org.eclipse.jetty.websocket.api.annotation.OnWebSocketOpen org.eclipse.jetty.websocket.api.WriteCallback org.eclipse.jetty.websocket.api.Callback org.eclipse.jetty.websocket.api.WebSocket*Listener org.eclipse.jetty.websocket.api.Session.Listener.AutoDemanding org.eclipse.jetty.websocket.api.RemoteEndpoint org.eclipse.jetty.websocket.api.Session org.eclipse.jetty.websocket.api.WebSocketPolicy org.eclipse.jetty.websocket.api.Configurable Jetty 11.0.x Jetty 12.0.x annotations.mod ee{8,9,10,11}-annotations.mod apache-jsp.mod ee{8,9,10,11}-apache-jsp.mod bytebufferpool-logarithmic.mod bytebufferpool-quadratic.mod cdi.mod cdi-*.mod ee{8,9,10,11}-cdi.mod ee{8,9,10,11}-cdi-*.mod deploy.mod core-deploy.mod ee{8,9,10,11}-deploy.mod fcgi.mod ee{8,9,10,11}-fcgi-proxy.mod glassfish-jstl.mod ee{8,9,10,11}-glassfish-jstl.mod jaspi.mod jaspi-*.mod ee{8,9,10,11}-jaspi.mod ee{8,9,10,11}-jaspi-*.mod jsp.mod ee{8,9,10,11}-jsp.mod jstl.mod ee{8,9,10,11}-jstl.mod openid.mod openid.mod ee{8,9,10,11}-openid.mod plus.mod plus.mod ee{8,9,10,11}-plus.mod proxy.mod proxy.mod ee{8,9,10,11}-proxy.mod security.mod security.mod ee{8,9,10,11}-security.mod servlet.mod ee{8,9,10,11}-servlet.mod servlets.mod ee{8,9,10,11}-servlets.mod stats.mod statistics.mod webapp.mod ee{8,9,10,11}-webapp.mod websocket.mod N/A websocket-jakarta.mod ee{8,9,10,11}-websocket-jakarta.mod websocket-jetty.mod websocket-jetty.mod ee{8,9,10,11}-websocket-jetty.mod With the introduction of the Jetty Core APIs, modules that in Jetty 11 were implicitly based on the Servlet APIs, in Jetty 12 have been renamed to ee{8,9,10,11}-<name>.mod. Modules that retain the same name, such as openid.mod, security.mod, etc., in Jetty 12 enable the same functionality using the Jetty Core APIs, not the Servlet APIs. For the correspondent module that uses the Servlet API, use ee{8,9,10,11}-openid.mod, ee{8,9,10,11}-security.mod, etc. This is particularly important for the Jetty 11 deploy.mod, that in Jetty 12 must be explicitly changed to one of the ee{8,9,10,11}-deploy.mod, otherwise web applications will not be deployed. Refer to web application deployment section for more information. Jetty 12 introduced redesigned server-side APIs for web applications. In Jetty 11, these APIs were based on a mix of Jakarta Servlet APIs and Jetty Handler APIs, while in Jetty 12 they are solely based on Jetty Handler APIs. In Jetty 12 you can now write web applications independently of the Servlet APIs, so you can migrate Jakarta Servlets to Jetty Handlers as explained in this section. If you were already using the Jetty 11 Handler APIs, you can migrate them to the Jetty 12 Handler APIs as explained in this section. Web applications written using the Servlet APIs may be re-written using the Jetty Handler APIs. The sections below outline the Jetty Handler APIs that correspond to the Servlet APIs. For more information about why using the Jetty Handler APIs instead of the Servlet APIs, refer to this section. For more information about replacing HttpServlets or Servlet Filters with Jetty Handlers, refer to this section. public class RequestAPIs extends Handler.Abstract { @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { // Gets the request method. // Replaces: // - servletRequest.getMethod(); String method = request.getMethod(); // Gets the request protocol name and version. // Replaces: // - servletRequest.getProtocol(); String protocol = request.getConnectionMetaData().getProtocol(); // Gets the request URL. // Replaces: // - servletRequest.getRequestURL(); HttpURI httpURI = HttpURI.build(request.getHttpURI()).query(null); StringBuffer requestURL = new StringBuffer(httpURI.asString()); // Gets the request context. // Replaces: // - servletRequest.getServletContext() Context context = request.getContext(); // Gets the context path. // Replaces: // - servletRequest.getContextPath() String contextPath = context.getContextPath(); // Gets the request path. // Replaces: // - servletRequest.getRequestURI(); String requestPath = request.getHttpURI().getPath(); // Gets the request path after the context path. // Replaces: // - servletRequest.getServletPath() + servletRequest.getPathInfo() String pathInContext = Request.getPathInContext(request); // Gets the request query. // Replaces: // - servletRequest.getQueryString() String queryString = request.getHttpURI().getQuery(); // Gets request parameters. // Replaces: // - servletRequest.getParameterNames(); // - servletRequest.getParameter(name); // - servletRequest.getParameterValues(name); // - servletRequest.getParameterMap(); Fields queryParameters = Request.extractQueryParameters(request, UTF_8); Fields allParameters = Request.getParameters(request); // Gets cookies. // Replaces: // - servletRequest.getCookies(); List<HttpCookie> cookies = Request.getCookies(request); // Gets request HTTP headers. // Replaces: // - servletRequest.getHeaderNames() // - servletRequest.getHeader(name) // - servletRequest.getHeaders(name) // - servletRequest.getDateHeader(name) // - servletRequest.getIntHeader(name) HttpFields requestHeaders = request.getHeaders(); // Gets the request Content-Type. // Replaces: // - servletRequest.getContentType() HttpField contentTypeField = request.getHeaders().getField(HttpHeader.CONTENT_TYPE); String contentType = contentTypeField.getValue(); MimeTypes.Type knownType = MimeTypes.getMimeTypeFromContentType(contentTypeField); // Gets the request Character Encoding. // Replaces: // - servletRequest.getCharacterEncoding() Charset charset = knownType == null ? MimeTypes.getCharsetFromContentType(contentTypeField) : knownType.getCharset(); // Gets the request Content-Length. // Replaces: // - servletRequest.getContentLength() // - servletRequest.getContentLengthLong(
1) long contentLength = request.getLength(); // Gets the request locales. // Replaces: // - servletRequest.getLocale() // - servletRequest.getLocales() List<Locale> locales = Request.getLocales(request); // Gets the request scheme. // Replaces: // - servletRequest.getScheme() String scheme = request.getHttpURI().getScheme(); // Gets the server name. // Replaces: // - servletRequest.getServerName() String serverName = Request.getServerName(request); // Gets the server port. // Replaces: // - servletRequest.getServerPort() int serverPort = Request.getServerPort(request); // Gets the remote host/address. // Replaces: // - servletRequest.getRemoteAddr() // - servletRequest.getRemoteHost() String remoteAddress = Request.getRemoteAddr(request); // Gets the remote port. // Replaces: // - servletRequest.getRemotePort() int remotePort = Request.getRemotePort(request); // Gets the local host/address. // Replaces: // - servletRequest.getLocalAddr() // - servletRequest.getLocalHost() String localAddress = Request.getLocalAddr(request); // Gets the local port. // Replaces: // - servletRequest.getLocalPort() int localPort = Request.getLocalPort(request); // Gets the request attributes. // Replaces: // - servletRequest.getAttributeNames() // - servletRequest.getAttribute(name) // - servletRequest.setAttribute(name, value) // - servletRequest.removeAttribute(name) String name = \"name\"; Object value = \"value\"; Set<String> names = request.getAttributeNameSet(); Object attribute = request.getAttribute(name); Object oldValue = request.setAttribute(name, value); Object removedValue = request.removeAttribute(name); request.clearAttributes(); Map<String, Object> map = request.asAttributeMap(); // Gets the request trailers. // Replaces: // - servletRequest.getTrailerFields() HttpFields trailers = request.getTrailers(); // Gets the HTTP session. // Replaces: // - servletRequest.getSession() // - servletRequest.getSession(create) boolean create = true; Session session = request.getSession(create); callback.succeeded(); return true; } } @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { // Non-blocking read the request content as a String. // Use with caution as the request content may be large. Content.Source.asString(request, UTF_8, new Promise<>() { @Override public void succeeded(String result) { // Process the request content here. // Implicitly respond with status code 200 and no content. callback.succeeded(); } @Override public void failed(Throwable failure) { // Implicitly respond with status code 500. callback.failed(failure); } }); return true; } @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { // Non-blocking read the request content as a ByteBuffer. // Use with caution as the request content may be large. Content.Source.asByteBuffer(request, new Promise<>() { @Override public void succeeded(ByteBuffer result) { // Process the request content here. // Implicitly respond with status code 200 and no content. callback.succeeded(); } @Override public void failed(Throwable failure) { // Implicitly respond with status code 500. callback.failed(failure); } }); return true; } @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { // Read the request content as an InputStream. // Note that InputStream.read() may block. try (InputStream inputStream = Content.Source.asInputStream(request)) { while (true) { int read = inputStream.read(); // EOF was reached, stop reading. if (read < 0) break; // Process the read byte here. } } // Implicitly respond with status code 200 and no content. callback.succeeded(); return true; } @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { // When the read is complete, complete the Handler callback. Promise.Task<Void> reader = new Promise.Task<>(callback::succeeded, callback::failed) { @Override public void run() { // Read in a loop. while (true) { // Read a chunk of content. Content.Chunk chunk = request.read(); // If there is no content, demand to be // called back when more content is available. if (chunk == null) { request.demand(this); return; } // If a failure is read, complete with a failure. if (Content.Chunk.isFailure(chunk)) { Throwable failure = chunk.getFailure(); failed(failure); return; } if (chunk instanceof Trailers trailers) { // Possibly process the request trailers here. // Trailers have an empty ByteBuffer and are a last chunk. } // Process the request content chunk here. // After the processing, the chunk MUST be released. chunk.release(); // If the last chunk is read, complete normally. if (chunk.isLast()) { succeeded(null); return; } // Not the last chunk of content, loop around to read more. } } }; // Initiate the read of the request content. reader.run(); return true; } @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { FormFields.onFields(request, new Promise.Invocable<>() { @Override public void succeeded(Fields fields) { // Process the form fields here. // Implicitly respond with status code 200 and no content. callback.succeeded(); } @Override public void failed(Throwable failure) { // Implicitly respond with status code 500. callback.failed(failure); } }); return true; } @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { String contentType = request.getHeaders().get(HttpHeader.CONTENT_TYPE); MultiPartConfig multiPartConfig = new MultiPartConfig.Builder() // The directory where the parts content are saved. .location(Path.of(\"/tmp\")) .build(); MultiPartFormData.onParts(request, request, contentType, multiPartConfig, new Promise.Invocable<>() { @Override public void succeeded(MultiPartFormData.Parts parts) { // Process the parts here. // Implicitly respond with status code 200 and no content. callback.succeeded(); } @Override public void failed(Throwable failure) { // Implicitly respond with status code 500. callback.failed(failure); } }); return true; } Refer also to the Content.Source APIs detailed in this section. public class ResponseAPIs extends Handler.Abstract { @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { // Sets/Gets the response HTTP status. // Replaces: // - servletResponse.setStatus(code); // - servletResponse.getStatus(); response.setStatus(HttpStatus.OK_200); int status = response.getStatus(); // Gets the response HTTP headers. // Replaces: // - servletResponse.setHeader(name, value); // - servletResponse.addHeader(name, value); // - servletResponse.setDateHeader(name, date); // - servletResponse.addDateHeader(name, date); // - servletResponse.setIntHeader(name, value); // - servletResponse.addIntHeader(name, value); // - servletResponse.getHeaderNames() // - servletResponse.getHeader(name) // - servletResponse.getHeaders(name) // - servletResponse.containsHeader(name) HttpFields.Mutable responseHeaders = response.getHeaders(); // Sets an HTTP cookie. // Replaces: // - Cookie cookie = new Cookie(\"name\", \"value\"); // - cookie.setDomain(\"example.org\"); // - cookie.setPath(\"/path\"); // - cookie.setMaxAge(24 * 3600); // - cookie.setAttribute(\"SameSite\", \"Lax\"); // - servletResponse.addCookie(cookie); HttpCookie cookie = HttpCookie.build(\"name\", \"value\") .domain(\"example.org\") .path(\"/path\") .maxAge(Duration.ofDays(1).toSeconds()) .sameSite(HttpCookie.SameSite.LAX) .build(); Response.addCookie(response, cookie); // Sets the response Content-Type. // Replaces: // - servletResponse.setContentType(type) responseHeaders.put(HttpHeader.CONTENT_TYPE, \"text/plain; charset=UTF-8\"); // Sets the response Content-Length. // Replaces: // - servletResponse.setContentLength(length) // - servletResponse.setContentLengthLong(length) responseHeaders.put(HttpHeader.CONTENT_LENGTH, 1024L); // Sets/Gets the response trailers. // Replaces: // - servletResponse.setTrailerFields(() -> trailers) // - servletResponse.getTrailerFields() HttpFields trailers = HttpFields.build().put(\"checksum\", 0xCAFE); response.setTrailersSupplier(trailers); Supplier<HttpFields> trailersSupplier = response.getTrailersSupplier(); // Gets whether the response is committed. // Replaces: // - servletResponse.isCommitted() boolean committed = response.isCommitted(); // Resets the response. // Replaces: // - servletResponse.reset(); response.reset(); // Sends a redirect response. // Replaces: // - servletResponse.encodeRedirectURL(location) // - servletResponse.sendRedirect(location) String location = Response.toRedirectURI(request, \"/redirect\"); Response.sendRedirect(request, response, callback, location); // Sends an error response. // Replaces: // - servletResponse.sendError(code); // - servletResponse.sendError(code, message); Response.writeError(request, response, callback, HttpStatus.SERVICE_UNAVAILABLE_503, \"Request Cannot be Processed\"); callback.succeeded(); return true; } } @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { // Produces an implicit response with status code 200 // with no content when returning from this method. // The Handler callback must be completed when returning true. callback.succeeded(); return true; } @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { // Produces an implicit response with status 204 // with no content when returning from this method. response.setStatus(HttpStatus.NO_CONTENT_204); // The Handler callback must be completed when returning true. callback.succeeded(); return true; } @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { // Produces an explicit response with status 204 with no content. response.setStatus(HttpStatus.NO_CONTENT_204); // This explicit first write() writes the response status code and headers. // It is also the last write (as specified by the first parameter) // and writes an empty content (the second parameter, a null ByteBuffer). // When this write completes, the Handler callback is completed. response.write(true, null, callback); return true; } @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { response.setStatus(HttpStatus.OK_200); ByteBuffer content = UTF_8.encode(\"Hello World\"); // Explicit first write that writes the response status code, headers and content. // When this write completes, the Handler callback is completed. response.write(true, content, callback); return true; } @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { response.setStatus(HttpStatus.OK_200); ByteBuffer content = UTF_8.encode(\"Hello World\"); response.getHeaders().put(HttpHeader.CONTENT_LENGTH, content.remaining()); // Flush the response status code and the headers (no content). // This is the fist but non-last write. Callback.Completable completable = new Callback.Completable(); response.write(false, null, completable); // When the first write completes, perform the second (and last) write. completable.whenComplete((ignored, failure) -> { if (failure == null) { // Now explicitly write the content as the last write. // When this write completes, the Handler callback is completed. response.write(true, content, callback); } else { // Implicitly respond with status code 500. callback.failed(failure); } }); return true; } @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { response.setStatus(HttpStatus.OK_200); // Utility method to write UTF-8 string content. // When this write completes, the Handler callback is completed. Content.Sink.write(response, true, \"Hello World\", callback); return true; } @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { response.setStatus(HttpStatus.OK_200); // Utility method to echo the content from the request to the response. // When the echo completes, the Handler callback is completed. Content.copy(request, response, callback); return true; } @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { response.setStatus(HttpStatus.OK_200); // The trailers must be set on the response before the first write. HttpFields.Mutable trailers = HttpFields.build(); response.setTrailersSupplier(trailers); // Explicit first write that writes the response status code, headers and content. // The trailers have not been written yet; they will be written with the last write. ByteBuffer content = UTF_8.encode(\"Hello World\"); Callback.Completable completable = new Callback.Completable(); response.write(false, content, completable); completable.whenComplete((ignored, failure) -> { if (failure == null) { // Update the trailers trailers.put(\"Content-Checksum\", 0xCAFE); // Explicit last write to write the trailers // and complete the Handler callback. response.write(true, null, callback); } else { // Implicitly respond with status code 500. callback.failed(failure); } }); return true; } Refer also to the Content.Sink APIs detailed in this section. The server-side Handler class, and the APIs to use for request/response processing, have been redesigned in Jetty 12. The Jetty 11 Handler method: Handler.handle(String target, Request jettyRequest, HttpServletRequest request, HttpServletResponse response) has been changed in Jetty 12 to: Handler.handle(Request request, Response response, Callback callback) The Jetty 11 target parameter has been removed, and in Jetty 12 it has been replaced by the information present in Request.getHttpURI(). In Jetty 11, Handlers would mark the fact that they handled the request, and therefore are producing a response, by calling Request.setHandled(true). In Jetty 12, this is performed by returning true from the Handler.handle(...) method, which also requires that the Callback parameter must be completed, either by succeeding it or failing it. In Jetty 11, the Handler.handle(...) method has a blocking semantic, while in Jetty 12 the Handler.handle(...) method has an asynchronous semantic, thanks to the Callback parameter. This means that you can return from the Handler.handle(...) method before the response has been sent, similarly to what you can do with the Servlet APIs when you call HttpServletRequest.startAsync(). Similarly, in Jetty 11 after a call to startAsync() you must call AsyncContext.complete(), while in Jetty 12 you must complete the Callback parameter, either by succeeding it or failing it. In Jetty 11, AbstractHandler provides a utility class to implement Handler. In Jetty 12, use Handler.Abstract. In Jetty 11, the APIs to deal with request or response HTTP headers are based on either Jettyâs HttpFields, or the Servlet APIs. In Jetty 12, the HTTP headers API are only based on HttpFields. Please refer to the HttpFields javadocs for details. In Jetty 11, the request content is accessed via Request.getIn
1putStream() or HttpServletRequest.getInputStream(). In Jetty 12, the Request object itself is-a Content.Source that can be read as explained in this section. In Jetty 12, you can use Content.Source.asInputStream(request) to obtain an InputStream and minimize the changes to your code, but remember that InputStream only provides blocking APIs, while Content.Source provides non-blocking APIs. In Jetty 11, the response content is accessed via Response.getOutputStream() or HttpServletResponse.getOutputStream(). In Jetty 12, the Response object itself is-a Content.Sink that can be written as explained in this section. In Jetty 12, you can use Content.Sink.asOutputStream(response) to obtain an OutputStream and minimize the changes to your code, but remember that OutputStream only provides blocking APIs, while Content.Sink provides non-blocking APIs. Jetty 11âs org.eclipse.jetty.server.handler.HandlerCollection and org.eclipse.jetty.server.handler.HandlerList have been replaced by Jetty 12âs org.eclipse.jetty.server.Handler.Sequence. Note that when used in configuration properties, XML files, or via reflection, you must use the fully qualified class name org.eclipse.jetty.server.Handler$Sequence (note the $ symbol). Note that class org.eclipse.jetty.server.handler.ContextHandlerCollection has been retained (with the updates introduced by Handler as described here), and it is typically a better choice: where Handler.Sequence just iterates all its children Handlers until one return true from the handle(Request, Response, Callback) method, ContextHandlerCollection more efficiently selects the child ContextHandler based on context path and virtual hosts. Jetty 11âs org.eclipse.jetty.server.handler.RequestLogHandler has been removed with no replacement. In Jetty 12, request logging is achieved by calling Server.setRequestLog(RequestLog requestLog), as described in this section. The Jetty 11 Request.onResponseContentDemanded(Response.DemandedContentListener) API has been replaced by Request.onResponseContentSource(Response.ContentSourceListener) in Jetty 12. However, also look at Request.onResponseContentAsync(Response.AsyncContentListener) and Request.onResponseContent(Response.ContentListener) for simpler usages. The Jetty 11 model was a \"demand+push\" model: the application was demanding content; when the content was available, the implementation was pushing content to the application by calling DemandedContentListener.onContent(Response, LongConsumer, ByteBuffer, Callback) for every content chunk. The Jetty 12 model is a \"demand+pull\" model: when the content is available, the implementation calls once Response.ContentSourceListener.onContentSource(Content.Source); the application can then pull the content chunks from the Content.Source. For more information about the new model, see this section. Jetty 12 introduced the concept of low-level transport for high-level protocols, described in this section. The Jetty WebSocket APIs have been vastly simplified, and brought in line with the style of other APIs. The Jetty 12 WebSocket APIs are now fully asynchronous, so the Jetty 11 SuspendToken class has been removed in favor of an explicit (or automatic) demand mechanism in Jetty 12 (for more information, refer to this section). The various Jetty 11 WebSocket*Listener interfaces have been replaced by a single interface in Jetty 12, Session.Listener.AutoDemanding (for more information, refer to this section). The Jetty 11 RemoteEndpoint APIs have been merged into the Session APIs in Jetty 12. The Jetty 11 WriteCallback class has been renamed to just Callback in Jetty 12, because it is now also used when receiving binary data. Note that this Callback interface is a different interface from the org.eclipse.jetty.util.Callback interface, which cannot be used in the Jetty WebSocket APIs due to class loader visibility issues. On the server-side, the Jetty WebSocket APIs have been made independent of the Servlet APIs. Jetty 11 JettyWebSocketServerContainer has been replaced by ServerWebSocketContainer in Jetty 12, with similar APIs (for more information, refer to this section). On the client-side the WebSocketClient APIs are practically unchanged, as most of the changes come from the HttpClient changes described above.","title":"Migrating from Jetty 11.0.x to Jetty 12.0.x","component":"jetty","version":"12.1","name":"11-to-12","url":"/docs/jetty/12.1/programming-guide/migration/11-to-12.html","titles":[{"text":"Required Java Version Changes","hash":"java-version","id":1},{"text":"Maven Artifacts Changes","hash":"maven-artifacts","id":2},{"text":"Class Packages/Names Changes","hash":"class-packages-names","id":3},{"text":"Jetty Module Changes","hash":"jetty-module-names","id":4},{"text":"Server-Side Web Application APIs Changes","hash":"jetty-core-apis","id":5},{"text":"Migrate Servlets to Jetty Handlers","hash":"servlet-to-handler","id":6},{"text":"Handler Request APIs","hash":"handler-request-apis","id":7},{"text":"Handler Request Content APIs","hash":"handler-request-content-apis","id":8},{"text":"Handler Response APIs","hash":"handler-response-apis","id":9},{"text":"Handler Response Content APIs","hash":"handler-response-content-apis","id":10},{"text":"APIs Changes","hash":"api-changes","id":11},{"text":"Handler","hash":"api-changes-handler","id":12},{"text":"HandlerCollection and HandlerList","hash":"api-changes-handler-sequence","id":13},{"text":"RequestLogHandler","hash":"api-changes-handler-requestlog","id":14}
1,{"text":"HttpClient","hash":"httpclient","id":15},{"text":"WebSocket","hash":"websocket","id":16}]},"68":{"id":68,"text":"Jetty 9.4.x Jetty 10.0.x Java 8 Java 11 Migrating from Jetty 9.4.x to Jetty 10.0.x requires changes in the coordinates of the Maven artifact dependencies for WebSocket. Some of these classes have also changed name and package. This is not a comprehensive list of changes but should cover the most common changes encountered during migration. Jetty 9.4.x Jetty 10.0.x org.eclipse.jetty.websocket:websocket-api org.eclipse.jetty.websocket:websocket-jetty-api org.eclipse.jetty.websocket:websocket-server org.eclipse.jetty.websocket:websocket-jetty-server org.eclipse.jetty.websocket:websocket-client org.eclipse.jetty.websocket:websocket-jetty-client org.eclipse.jetty.websocket:javax-websocket-server-impl org.eclipse.jetty.websocket:websocket-javax-server org.eclipse.jetty.websocket:javax-websocket-client-impl org.eclipse.jetty.websocket:websocket-javax-client Jetty 9.4.x Jetty 10.0.x org.eclipse.jetty.websocket.server.NativeWebSocketServletContainerInitializer org.eclipse.jetty.websocket.server.config.JettyWebSocketServletContainerInitializer org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer org.eclipse.jetty.websocket.javax.server.config.JavaxWebSocketServletContainerInitializer org.eclipse.jetty.websocket.servlet.WebSocketCreator org.eclipse.jetty.websocket.server.JettyWebSocketCreator org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest org.eclipse.jetty.websocket.server.JettyServerUpgradeRequest org.eclipse.jetty.websocket.servlet.ServletUpgradeResponse org.eclipse.jetty.websocket.server.JettyServerUpgradeResponse org.eclipse.jetty.websocket.servlet.WebSocketServlet org.eclipse.jetty.websocket.server.JettyWebSocketServlet org.eclipse.jetty.websocket.servlet.WebSocketServletFactory org.eclipse.jetty.websocket.server.JettyWebSocketServletFactory Jetty 9.4.x Jetty 10.0.x public class ExampleWebSocketServlet extends WebSocketServlet { @Override public void configure(WebSocketServletFactory factory) { factory.setCreator(new WebSocketCreator() { @Override public Object createWebSocket(ServletUpgradeRequest req, ServletUpgradeResponse resp) { return new ExampleEndpoint(); } }); } } public class ExampleWebSocketServlet extends JettyWebSocketServlet { @Override public void configure(JettyWebSocketServletFactory factory) { factory.setCreator(new JettyWebSocketCreator() { @Override public Object createWebSocket(JettyServerUpgradeRequest req, JettyServerUpgradeResponse resp) { return new ExampleEndpoint(); } }); } }","title":"Migrating from Jetty 9.4.x to Jetty 10.0.x","component":"jetty","version":"12.1","name":"94-to-10","url":"/docs/jetty/12.1/programming-guide/migration/94-to-10.html","titles":[{"text":"Required Java Version Changes","hash":"java-version","id":1},{"text":"WebSocket Migration Guide","hash":"websocket","id":2},{"text":"Maven Artifacts Changes","hash":"websocket-maven-artifact-changes","id":3},{"text":"Class Names Changes","hash":"websocket-class-name-changes","id":4},{"text":"Example Code","hash":"websocket-example-code","id":5}]},"69":{"id":69,"text":"When using the Jetty server libraries in your code, web applications are typically assembled by composing the required Handlers, as explained in this section. When the Server instance is started, web applications are also started; there typically is no deployer component that can deploy web applications after the Server instance is started. The deployer component is the key component to deploy web applications when using Jetty as a standalone server, and it is detailed here. However, it is possible to use the Jetty server libraries in your code with the deployer component, so that you can deploy web applications after the Server instance is started. The Maven artifact coordinates are: <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-deploy</artifactId> <version>12.1.13</version> </dependency> The main components to set up are: A Deployer, by default org.eclipse.jetty.deploy.StandardDeployer. The deployer component is responsible for adding and removing a ContextHandler (or subclass) instance, that represents a web application, from the Handler tree, and is responsible for the lifecycle (starting and stopping) the ContextHandler. A DeploymentScanner, that scans directories for files or directories that represent web applications. Typical web application files are *.war, *.properties and *.xml files. When a web application file or directory is added/updated/removed, DeploymentScanner creates or retrieves (depending on the event) the corresponding ContextHandler and calls the Deployer to deploy/redeploy/undeploy the web application. Each web application is deployed to a specific environment. The environment allows you to specify environmental properties that will be available to all web applications, as well as a ClassLoader that loads classes that are specific to the environment. Furthermore, the environment determines how the web application file should be interpreted: if it is a directory, whether it should be interpreted as a Jetty Static web application, or as a Jetty Core web application, or as a Jakarta EE exploded *.war. By default, there are no environments; you must always create at least one, depending on the type of deployment you want for your web applications. The simplest deployer setup is when you deploy a web application via Jetty context XML file: Server server = new Server(); // ContextHandlerCollection is required by the deployer. ContextHandlerCollection contexts = new ContextHandlerCollection(); server.setHandler(contexts); // Optional, shows the contexts deployed on the Server. server.setDefaultHandler(new DefaultHandler()); // Create the deployer. Deployer deployer = new StandardDeployer(contexts); // Create the DeploymentScanner to monitor the webapps directory. DeploymentScanner scanner = new DeploymentScanner(server, deployer); scanner.setWebappsDirectories(List.of(Path.of(\"/path/to/webapps\"))); // Link the lifecycle of the DeploymentScanner to the Server. server.addBean(scanner); // Create an environment, with the name of your choice, // and no extra class-path or module-path. EnvironmentBuilder envBuilder = new EnvironmentBuilder(\"simple\"); Environment environment = envBuilder.build(); // Tell the DeploymentScanner about the environment // it should use to deploy web applications. scanner.configureEnvironment(environment.getName()); server.start(); With this simple setup, you can only deploy Jetty context XML files. In the Jetty context XML files, you can only reference classes that you have in the class-path or module-path, for example: acme-webapp.xml <!DOCTYPE Configure PUBLIC \"-//Jetty//Configure//EN\" \"https://jetty.org/configure_10_0.dtd\"> <Configure class=\"org.eclipse.jetty.server.handler.ContextHandler\"> <Set name=\"contextPath\">/acme</Set> <Set name=\"handler\"> <New class=\"com.acme.WebAppHandler\" /> (1) </Set> </Configure> 1 This class must be in the class-path or module-path. Do not be tempted to use this simple setup to deploy Jetty Core web applications, Jetty Static web applications, or Jakarta web applications; their setup is described their respective sections below. For Jetty Static web applications, the setup is the following: Server server = new Server(); // ContextHandlerCollection is required by the deployer. ContextHandlerCollection contexts = new ContextHandlerCollection(); server.setHandler(contexts); // Optional, shows the contexts deployed on the Server. server.setDefaultHandler(new DefaultHandler()); // Create the deployer. Deployer deployer = new StandardDeployer(contexts); // Create the DeploymentScanner to monitor the webapps directory. DeploymentScanner scanner = new DeploymentScanner(server, deployer); scanner.setWebappsDirectories(List.of(Path.of(\"/path/to/webapps\"))); // Link the lifecycle of the DeploymentScanner to the Server. server.addBean(scanner); // Create the static environment. EnvironmentBuilder envBuilder = new EnvironmentBuilder(\"static\"); envBuilder.addClassPath(\"/path/to/jetty-staticapp-12.1.13.jar\"); (1) Environment environment = envBuilder.build(); // Tell the DeploymentScanner about the environment, and configure it for deployment. DeploymentScanner.EnvironmentConfig envConfig = scanner.configureEnvironment(environment.getName()); (2) envConfig.setDefaultContextHandlerClassName(\"org.eclipse.jetty.staticapp.StaticAppContext\"); server.start(); 1 The environment is configured with its own class-path. 2 Jetty Static web applications use StaticAppContext as their ContextHandler, so web application directories are interpreted as having the Jetty Static web application format. Your Jetty Static web application is a directory, for example acme-asset/, under /path/to/webapps/: /path/to/webapps/ âââ acme-assets/ âââ css/ â âââ styles.css âââ index.html For Jetty Core web applications, the setup is the following: Server server = new Server(); // ContextHandlerCollection is required by the deployer. ContextHandlerCollection contexts = new ContextHandlerCollection(); server.setHandler(contexts); // Optional, shows the contexts deployed on the Server. server.setDefaultHandler(new DefaultHandler()); // Create the deployer. Deployer deployer = new StandardDeployer(contexts); // Create the DeploymentScanner to monitor the webapps directory. DeploymentScanner scanner = new DeploymentScanner(server, deployer); scanner.setWebappsDirectories(List.of(Path.of(\"/path/to/webapps\"))); // Link the lifecycle of the DeploymentScanner to the Server. server.addBean(scanner); // Create the core environment. EnvironmentBuilder envBuilder = new EnvironmentBuilder(\"core\"); envBuilder.addClassPath(\"/path/to/jetty-coreapp-12.1.13.jar\"); (1) Environment environment = envBuilder.build(); // Tell the DeploymentScanner about the environment, and configure it for deployment. DeploymentScanner.EnvironmentConfig envConfig = scanner.configureEnvironment(environment.getName()); (2) envConfig.setDefaultContextHandlerClassName(\"org.eclipse.jetty.coreapp.CoreAppContext\"); server.start(); 1 The environment is configured with its own class-path. 2 Jetty Core web applications use CoreAppContext as their ContextHandler, so web application directories are interpreted as having the Jetty Core web application format. Your Jetty Core web application is a directory, for example acme-core-app/ under /path/to/webapps/: /path/to/webapps/ âââ acme-core-app/ âââ static # Static files are served from this directory. â âââ favicon.ico âââ classes # Where web application Java classes reside. â âââ com â âââ acme â âââ AcmeHandler.class âââ lib # Where web application Java libraries reside. â âââ acme-util.jar âââ jetty-web.xml # Web application specific configuration. With this setup you have the following class loader hierarchy, with the standard parent first model for class loading:
1System ClassLoader # jetty-server-12.1.13.jar, etc. âââ Environment ClassLoader # jetty-coreapp-12.1.13.jar âââ Jetty Core App ClassLoader # acme-core-app/classes/:acme-core-app/lib/acme-util.jar For Jakarta web applications, the setup is the following: Server server = new Server(); // ContextHandlerCollection is required by the deployer. ContextHandlerCollection contexts = new ContextHandlerCollection(); server.setHandler(contexts); // Optional, shows the contexts deployed on the Server. server.setDefaultHandler(new DefaultHandler()); // Create the deployer. Deployer deployer = new StandardDeployer(contexts); // Create the DeploymentScanner to monitor the webapps directory. DeploymentScanner scanner = new DeploymentScanner(server, deployer); scanner.setWebappsDirectories(List.of(Path.of(\"/path/to/webapps\"))); // Link the lifecycle of the DeploymentScanner to the Server. server.addBean(scanner); // Create the ee11 environment. EnvironmentBuilder envBuilder = new EnvironmentBuilder(\"ee11\"); envBuilder.addClassPath(\"/path/to/jakarta.servlet-api-6.1.0.jar\"); (1) envBuilder.addClassPath(\"/path/to/jetty-ee11-servlet-12.1.13.jar\"); envBuilder.addClassPath(\"/path/to/jetty-ee11-webapp-12.1.13.jar\"); Environment environment = envBuilder.build(); // Tell the DeploymentScanner about the environment, and configure it for deployment. DeploymentScanner.EnvironmentConfig envConfig = scanner.configureEnvironment(environment.getName()); envConfig.setDefaultContextHandlerClassName(\"org.eclipse.jetty.ee11.webapp.WebAppContext\"); (2) envConfig.setDefaultsDescriptor(\"/path/to/ee11-default-web.xml\"); (3) // Other relevant Jakarta environment configurations. server.start(); 1 The environment is configured with its own class-path, that includes the Servlet API *.jar and the Jetty implementation `*.jar`s of the Servlet APIs. 2 Jakarta web applications use WebAppContext as their ContextHandler, so web application *.war files or directories are interpreted as having the Jakarta web application format. Your Jakarta web application is a *.war file, for example acme.war under /path/to/webapps/: /path/to/webapps/ âââ acme.war With this setup you have the following class loader hierarchy, with the standard Jakarta web application first model for class loading: System ClassLoader # jetty-server-12.1.13.jar: etc. âââ Environment ClassLoader # jakarta.servlet-api-6.1.0.jar: etc. âââ Jakarta Web App ClassLoader # acme.war!/WEB-INF/classes/:acme.war!/WEB-INF/lib/*.jar If you need to deploy web applications to different environments, for example core and ee11, the setup is the following: Server server = new Server(); // ContextHandlerCollection is required by the deployer. ContextHandlerCollection contexts = new ContextHandlerCollection(); server.setHandler(contexts); // Optional, shows the contexts deployed on the Server. server.setDefaultHandler(new DefaultHandler()); // Create the deployer. Deployer deployer = new StandardDeployer(contexts); // Create the DeploymentScanner to monitor the webapps directory. DeploymentScanner scanner = new DeploymentScanner(server, deployer); scanner.setWebappsDirectories(List.of(Path.of(\"/path/to/webapps\"))); // Link the lifecycle of the DeploymentScanner to the Server. server.addBean(scanner); // Create the core environment. EnvironmentBuilder coreEnvBuilder = new EnvironmentBuilder(\"core\"); coreEnvBuilder.addClassPath(\"/path/to/jetty-coreapp-12.1.13.jar\"); Environment coreEnv = coreEnvBuilder.build(); // Create the ee11 environment. EnvironmentBuilder jakartaEnvBuilder = new EnvironmentBuilder(\"ee11\"); jakartaEnvBuilder.addClassPath(\"/path/to/jakarta.servlet-api-6.1.0.jar\"); jakartaEnvBuilder.addClassPath(\"/path/to/jetty-ee11-servlet-12.1.13.jar\"); jakartaEnvBuilder.addClassPath(\"/path/to/jetty-ee11-webapp-12.1.13.jar\"); Environment jakartaEnv = jakartaEnvBuilder.build(); // Tell the DeploymentScanner about the environments, and configure them for deployment. DeploymentScanner.EnvironmentConfig coreEnvConfig = scanner.configureEnvironment(coreEnv.getName()); coreEnvConfig.setDefaultContextHandlerClassName(\"org.eclipse.jetty.coreapp.CoreAppContext\"); DeploymentScanner.EnvironmentConfig jakartaEnvConfig = scanner.configureEnvironment(jakartaEnv.getName()); jakartaEnvConfig.setDefaultContextHandlerClassName(\"org.eclipse.jetty.ee11.webapp.WebAppContext\"); jakartaEnvConfig.setDefaultsDescriptor(\"/path/to/ee11-default-web.xml\");
1 // Other relevant Jakarta environment configurations. server.start(); The class loader hierarchy is the following: System ClassLoader âââ core Environment ClassLoader â âââ Jetty Core App ClassLoader âââ ee11 Environment ClassLoader âââ Jakarta Web App ClassLoader With multiple environments, it is good practice to specify the web application *.properties file, as described in this section.","title":"Web Application Deployment","component":"jetty","version":"12.1","name":"deploy","url":"/docs/jetty/12.1/programming-guide/server/deploy.html","titles":[{"text":"Simple Deployer Setup","hash":"simple","id":1},{"text":"Jetty Static Deployer Setup","hash":"static","id":2},{"text":"Jetty Core Deployer Setup","hash":"core","id":3},{"text":"Jakarta Deployer Setup","hash":"jakarta","id":4},{"text":"Multiple Environments","hash":"multi","id":5}]},"70":{"id":70,"text":"The Jetty server strives to keep up with the latest IETF RFCs for compliance with internet specifications, which are periodically updated. When possible, Jetty will support backwards compatibility by providing compliance modes that can be configured to allow violations of the current specifications that may have been allowed in obsoleted specifications. There are compliance modes provided for: HTTP Compliance URI Compliance Cookie Compliance MultiPart Compliance Compliance modes can be configured to allow violations from the RFC requirements, or in some cases to allow additional behaviors that Jetty has implemented in excess of the RFC (for example, to allow ambiguous URIs). For example, the HTTP RFCs require that request HTTP methods are case sensitive, however Jetty can allow case-insensitive HTTP methods by including the HttpCompliance.Violation.CASE_INSENSITIVE_METHOD in the HttpCompliance set of allowed violations. In 1995, when Jetty was first implemented, there were no RFC specification of HTTP, only a W3C specification for HTTP/0.9, which has since been obsoleted or augmented by: RFC 1945 for HTTP/1.0 in 1996 RFC 2068 for HTTP/1.1 in 1997 RFC 2616 for HTTP/1.1 bis in 1999 RFC 7230, RFC 7231, RFC 7232, RFC 7233, RFC 7234, RFC 7235 again for HTTP/1.1 in 2014 RFC 7540 for HTTP/2.0 in 2015 RFC 9110 for common HTTP semantics and RFC 9112 for HTTP/1.1 In addition to these evolving requirements, some earlier version of Jetty did not completely or strictly implement the RFC at the time (for example, case-insensitive HTTP methods). Therefore, upgrading to a newer Jetty version may cause runtime behavior differences that may break your applications. The HttpCompliance.Violation enumeration defines the RFC requirements that may be optionally enforced by Jetty, to support legacy deployments. These possible violations are grouped into modes by the HttpCompliance class, which also defines several named modes that support common deployed sets of violations (with the default being HttpCompliance.RFC9110). For example: HttpConfiguration httpConfiguration = new HttpConfiguration(); httpConfiguration.setHttpCompliance(HttpCompliance.RFC9110); If you want to customize the violations that you want to allow, you can create your own mode using the HttpCompliance.from(String) method: HttpConfiguration httpConfiguration = new HttpConfiguration(); // RFC9110 compliance, but allow Violation.MULTIPLE_CONTENT_LENGTHS. HttpCompliance customHttpCompliance = HttpCompliance.from(\"RFC9110,MULTIPLE_CONTENT_LENGTHS\"); httpConfiguration.setHttpCompliance(customHttpCompliance); Universal Resource Locators (URLs) where initially formalized in 1994 in RFC 1738 and then refined in 1995 with relative URLs by RFC 1808. In 1998, URLs were generalized to Universal Resource Identifiers (URIs) by RFC 2396, which also introduced features such a path parameters. This was then obsoleted in 2005 by RFC 3986 which removed the definition for path parameters. Unfortunately by this stage the existence and use of such parameters had already been codified in the Servlet specification. For example, the relative URI /foo/bar;JSESSIONID=a8b38cd02b1c would define the path parameter JSESSIONID for the path segment bar, but the most recent RFC does not specify a formal definition of what this relative URI actually means. The current situation is that there may be URIs that are entirely valid for RFC 3986, but are ambiguous when handled by the Servlet APIs: A URI with .. and path parameters such as /some/..;/path is not resolved by RFC 3986, since the resolution process only applies to the exact segment .., not to ..;. However, once the path parameters are removed by the Servlet APIs, the resulting /some/../
1path can easily be resolved to /path, rather than be treated as a path that has ..; as a segment. A URI such as /some/%2e%2e/path is not resolved by RFC 3986, yet when URL-decoded by the Servlet APIs will result in /some/../path which can easily be resolved to /path, rather than be treated as a path that has .. as a segment. A URI with empty segments like /some//../path may be correctly resolved to /some/path (the .. removes the previous empty segment) by the Servlet APIs. However, if the URI raw path is passed to some other APIs (for example, file system APIs) it can be interpreted as /path because the empty segment // is discarded and treated as /, and the .. thus removes the /some segment. In order to avoid ambiguous URIs, Jetty imposes additional URI requirements in excess of what is required by RFC 3986 compliance. These additional requirements may optionally be violated and are defined by the UriCompliance.Violation enumeration. These violations are then grouped into modes by the UriCompliance class, which also defines several named modes that support common deployed sets of violations, with the default being UriCompliance.DEFAULT. For example: HttpConfiguration httpConfiguration = new HttpConfiguration(); httpConfiguration.setUriCompliance(UriCompliance.RFC3986); If you want to customize the violations that you want to allow, you can create your own mode using the UriCompliance.from(String) method: HttpConfiguration httpConfiguration = new HttpConfiguration(); // RFC3986 compliance, but enforce Violation.AMBIGUOUS_PATH_SEPARATOR. UriCompliance customUriCompliance = UriCompliance.from(\"RFC3986,-AMBIGUOUS_PATH_SEPARATOR\"); httpConfiguration.setUriCompliance(customUriCompliance); Even if the server has been configured (as above) to allow ambiguous URIs to be received, individual Servlet contexts may not allow such ambiguous URIs to be returned via some specific methods. Specifically the HttpServletRequest methods: getServletPath() and getPathInfo(), may throw IllegalArgumentException for such URIs. The intention is for safer methods, such as getRequestURI to be used instead. If necessary, the ServletHandler can be configured to allow ambiguous URIs from all methods with setDecodeAmbiguousURIs(boolean). The standards for Cookies have varied greatly over time from a non-specified but de-facto standard (implemented by the first browsers), through RFC 2965 and currently to RFC 6265. The CookieCompliance.Violation enumeration defines the RFC requirements that may be optionally enforced by Jetty when parsing the Cookie HTTP header in requests and when generating the Set-Cookie HTTP header in responses. These violations are then grouped into modes by the CookieCompliance class, which also defines several named modes that support common deployed sets of violations, with the default being CookieCompliance.RFC6265. For example: HttpConfiguration httpConfiguration = new HttpConfiguration(); httpConfiguration.setRequestCookieCompliance(CookieCompliance.RFC6265); httpConfiguration.setResponseCookieCompliance(CookieCompliance.RFC6265); If you want to customize the violations that you want to allow, you can create your own mode using the CookieCompliance.from(String) method: HttpConfiguration httpConfiguration = new HttpConfiguration(); // RFC6265 compliance, but enforce Violation.RESERVED_NAMES_NOT_DOLLAR_PREFIXED. CookieCompliance customUriCompliance = CookieCompliance.from(\"RFC6265,-RESERVED_NAMES_NOT_DOLLAR_PREFIXED\"); httpConfiguration.setRequestCookieCompliance(customUriCompliance); httpConfiguration.setResponseCookieCompliance(CookieCompliance.RFC6265); The standards for multipart uploads (also known as multipart/form-data) varied over time, but were eventually standardized by RFC 7578. The MultiPartCompliance.Violation enumeration defines the RFC requirements that may be optionally enforced by Jetty when parsing multipart/form-data content in requests. These violations are then grouped into modes by the MultiPartCompliance class, which also defines several named modes that support common deployed sets of violations, with the default being MultiPartCompliance.RFC7578. If you want to customize the violations that you want to allow, you can create your own mode using the MultiPartCompliance.from(String) method: HttpConfiguration httpConfiguration = new HttpConfiguration(); MultiPartCompliance custom = MultiPartCompliance.from(\"RFC7578,-CONTENT_TRANSFER_ENCODING\"); httpConfiguration.setMultiPartCompliance(custom);","title":"Server Compliance Modes","component":"jetty","version":"12.1","name":"compliance","url":"/docs/jetty/12.1/programming-guide/server/compliance.html","titles":[{"text":"HTTP Compliance Modes","hash":"http","id":1},{"text":"URI Compliance Modes","hash":"uri","id":2},{"text":"Servlet URI Compliance Modes","hash":"servleturi","id":3},{"text":"Cookie Compliance Modes","hash":"cookie","id":4},{"text":"MultiPart Compliance Modes","hash":"multiPart","id":5}]},"71":{"id":71,"text":"Web application development typically involves writing your web applications, optionally packaging them into a web application archive, for example the Jakarta EE *.war file, and then deploy the web application into a standalone Servlet Container that you have previously installed. The Jetty server libraries allow you to write web applications components using either the Jetty APIs (by writing Jetty Handlers) or using the Jakarta EE Servlet APIs (by writing Servlets and Servlet Filters). These components can then be programmatically assembled together, without the need of creating a web application archive, added to a Jetty Server instance that is then started. This result in your web applications to be available to HTTP clients as if you deployed your web applications in a standalone Jetty server. Jetty Handler APIs pros: Simple minimalist asynchronous APIs. Very low overhead, only configure the features you use. Faster turnaround to implement new APIs or new standards. Normal classloading behavior (web application classloading isolation also available). Jakarta EE APIs pros: Standard, well known, APIs. The Maven artifact coordinates are: <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-server</artifactId> <version>12.1.13</version> </dependency> An org.eclipse.jetty.server.Server instance is the central component that links together a collection of Connectors and a collection of Handlers, with threads from a ThreadPool doing the work. The components that accept connections from clients are org.eclipse.jetty.server.Connector implementations. When a Jetty server interprets the HTTP protocol (HTTP/1.1, HTTP/2 or HTTP/3), it uses org.eclipse.jetty.server.Handler instances to process incoming requests and eventually produce responses. A Server must be created, configured and started: // Create and configure a ThreadPool. QueuedThreadPool threadPool = new QueuedThreadPool(); threadPool.setName(\"server\"); // Create a Server instance. Server server = new Server(threadPool); // Create a ServerConnector to accept connections from clients. Connector connector = new ServerConnector(server); // Add the Connector to the Server server.addConnector(connector); // Set a simple Handler to handle requests/responses. server.setHandler(new Handler.Abstract() { @Override public boolean handle(Request request, Response response, Callback callback) { // Succeed the callback to signal that the // request/response processing is complete. callback.succeeded(); return true; } }); // Start the Server to start accepting connections from clients. server.start(); The example above shows the simplest HTTP/1.1 server; it has no support for HTTP sessions, nor for HTTP authentication, nor for any of the features required by the Servlet specification. These features (HTTP session support, HTTP authentication support, etc.) are provided by the Jetty server libraries, but not all of them may be necessary in your web application. You need to put together the required Jetty components to provide the features required by your web applications. The advantage is that you do not pay the cost for features that you do not use, saving resources and likely increasing performance. The built-in Handlers provided by the Jetty server libraries allow you to write web applications that have functionalities similar to Apache HTTPD or Nginx (for example: URL redirection, URL rewriting, serving static content, reverse proxying, etc.), as well as generating content dynamically by processing incoming requests. Read this section for further details about Handlers. If you are interested in writing your web application based on the Jakarta EE APIs, jump to this section. The Jetty HTTP request processing is outlined below in the diagram below. You may want to refer to the Jetty I/O architecture for additional information about the classes mentioned below. Request handing is slightly different for each protocol; in HTTP/2 Jetty takes into account multiplexing, something that is not present in HTTP/1.1. However, the diagram below captures the essence of request handling that is common among all protocols that carry HTTP requests. First, the Jetty I/O layer emits an event that a socket has data to read. This event is converted to a call to AbstractConnection.onFillable(), where the Connection first reads from the EndPoint into a ByteBuffer, and then calls a protocol specific parser to parse the bytes in the ByteBuffer. The parser emit events that are protocol specific; the HTTP/2 parser, for example, emits events for each HTTP/2 frame that has been parsed, and similarly does the HTTP/3 parser. The parser events are then converted to protocol independent events such as \"request start\", \"request headers\", \"request content chunk\", etc. detailed in this section. When enough of the HTTP request is arrived, the Connection calls HttpChannel.onRequest(). HttpChannel.onRequest() calls the request customizers, that allow to customize the request and/or the response headers on a per-Connector basis. After request customization, if any, the Handler tree is invoked, starting from the Server instance, and eventually your web application code is invoked. Advanced web applications may be interested in the progress of the processing of an HTTP request/response. A typical case is to know exactly when the HTTP request/response processing starts and when it is complete, for example to monitor processing times. This is conveniently implemented by org.eclipse.jetty.server.handler.EventsHandler, described
1in more details in this section. HTTP requests and responses can be logged to provide data that can be later analyzed with other tools. These tools can provide information such as the most frequently accessed request URIs, the response status codes, the request/response content lengths, geographical information about the clients, etc. The default request/response log line format is the NCSA Format extended with referrer data and user-agent data. Typically, the extended NCSA format is enough and itâs the standard used and understood by most log parsing tools and monitoring tools. To customize the request/response log line format see the CustomRequestLog javadocs. Request logging can be enabled at the Server level. The request logging output can be directed to an SLF4J logger named \"org.eclipse.jetty.server.RequestLog\" at INFO level, and therefore to any logging library implementation of your choice (see also this section about logging). Server server = new Server(); // Sets the RequestLog to log to an SLF4J logger named \"org.eclipse.jetty.server.RequestLog\" at INFO level. server.setRequestLog(new CustomRequestLog(new Slf4jRequestLogWriter(), CustomRequestLog.EXTENDED_NCSA_FORMAT)); Alternatively, the request logging output can be directed to a daily rolling file of your choice, and the file name must contain yyyy_MM_dd so that rolled over files retain their date: Server server = new Server(); // Use a file name with the pattern 'yyyy_MM_dd' so rolled over files retain their date. RequestLogWriter logWriter = new RequestLogWriter(\"/var/log/yyyy_MM_dd.jetty.request.log\"); // Retain rolled over files for 2 weeks. logWriter.setRetainDays(14); // Log times are in the current time zone. logWriter.setTimeZone(TimeZone.getDefault().getID()); // Set the RequestLog to log to the given file, rolling over at midnight. server.setRequestLog(new CustomRequestLog(logWriter, CustomRequestLog.EXTENDED_NCSA_FORMAT)); For maximum flexibility, you can log to multiple RequestLogs using class RequestLog.Collection, for example by logging with different formats or to different outputs. You can use CustomRequestLog with a custom RequestLog.Writer to direct the request logging output to your custom targets (for example, an RDBMS). You can implement your own RequestLog if you want to have functionalities that are not implemented by CustomRequestLog. A request customizer is an instance of HttpConfiguration.Customizer, that can customize the HTTP request and/or the HTTP response headers before the Handler tree is invoked. Request customizers are added to a particular HttpConfiguration instance, and therefore are specific to a Connector instance: you can have two different Connectors configured with different request customizers. For example, it is common to configure a secure Connector with the SecureRequestCustomizer that customizes the HTTP request by adding attributes that expose TLS data associated with the secure communication. A request customizer may: Inspect the received HTTP request method, URI, version and headers. Wrap the Request object to allow any method to be overridden and customized. Typically this is done to synthesize additional HTTP request headers, or to change the return value of overridden methods. Add or modify the HTTP response headers. The out-of-the-box request customizers include: ForwardedRequestCustomizer â to interpret the Forwarded (or the the obsolete X-Forwarded-*) HTTP header added by a reverse proxy; see this section. HostHeaderCustomizer â to customize, or synthesize it when original absent, the HTTP Host header; see this section. ProxyCustomizer â to expose as Request attributes the ip:port information carried by the PROXY protocol; see this section. RewriteCustomizer â to rewrite the request URI; see this section. SecureRequestCustomizer â to expose TLS data via Request attributes; see this section. You can also write your own request customizers and add them to the HttpConfiguration instance along existing request customizers. Multiple request customizers will be invoked in the order they have been added. Below you can find an example of how to add a request customizer: Server server = new Server(); // Configure the secure connector. HttpConfiguration httpsConfig = new HttpConfiguration(); // Add the SecureRequestCustomizer. httpsConfig.addCustomizer(new SecureRequestCustomizer()); // Configure the SslContextFactory with the KeyStore information. SslContextFactory.Server sslContextFactory = new SslContextFactory.Server(); sslContextFactory.setKeyStorePath(\"/path/to/keystore\"); sslContextFactory.setKeyStorePassword(\"secret\"); // Configure the Connector to speak HTTP/1.1 and HTTP/2. HttpConnectionFactory h1 = new HttpConnectionFactory(httpsConfig); HTTP2ServerConnectionFactory h2 = new HTTP2ServerConnectionFactory(httpsConfig); ALPNServerConnectionFactory alpn = new ALPNServerConnectionFactory(); alpn.setDefaultProtocol(h1.getProtocol()); SslConnectionFactory ssl = new SslConnectionFactory(sslContextFactory, alpn.getProtocol()); ServerConnector connector = new ServerConnector(server, ssl, alpn, h2, h1); server.addConnector(connector); server.start(); ForwardedRequestCustomizer should be added when Jetty receives requests from a reverse proxy on behalf of a remote client, and web applications need to access the remote client information. The reverse proxy adds the Forwarded (or the obsolete X-Forwarded-*) HTTP header to the request, and may offload TLS so that the request arrives in clear-text to Jetty. Applications deployed in Jetty may need to access information related to the remote client, for example the remote IP address and port, or whether the request was sent through a secure communication channel. However, the request is forwarded by the reverse proxy, so the direct information about the remote IP address is that of the proxy, not of the remote client. Furthermore, the proxy may offload TLS and forward the request in clear-text, so that the URI scheme would be http as forwarded by the reverse proxy, not https as sent by the remote client. ForwardedRequestCustomizer reads the Forwarded header where the reverse proxy saved the remote client information, and wraps the original Request so that applications will transparently see the remote client information when calling methods such as Request.isSecure(), or Request.getConnectionMetaData().getRemoteSocketAddress(), etc. For more information about how to configure ForwardedRequestCustomizer, see also the javadocs. HostHeaderCustomizer should be added when Jetty receives requests that may lack the Host HTTP header, such as HTTP/1.0, HTTP/2 or HTTP/3 requests, and web applications have logic that depends on the value of the Host HTTP header. For HTTP/2 and HTTP/3, the Host HTTP header is missing because the authority information is carried by the :authority pseudo-header, as per the respective specifications. HostHeaderCustomizer will look at the :authority pseudo-header, then wrap the original Request adding a Host HTTP header synthesized from the :authority pseudo-header. In this way, web applications that rely on the presence of the Host HTTP header will work seamlessly in any HTTP protocol version. HostHeaderCustomizer works also for the WebSocket protocol. WebSocket over HTTP/2 or over HTTP/3 initiate the WebSocket communication with an HTTP request that only has the :authority pseudo-header. HostHeaderCustomizer synthesizes the Host HTTP header for such requests, so that WebSocket web applications that inspect the initial HTTP request before the WebSocket communication will work seamlessly in any HTTP protocol version. For more information about how to configure HostHeaderCustomizer, see also the javadocs. AuthorityCustomizer should be added when Jetty receives HTTP/2 or HTTP/3 requests that lack the :authority pseudo-header, and web applications have logic that depends on this value, exposed through the Request URI authority via Request.getHttpURI().getAuthority(). The :authority pseudo-header may be missing if the request arrived to a proxy in HTTP/1.1 format, and the proxy is convert
1ing it to HTTP/2 or HTTP/3 before sending it to the backend server. AuthorityCustomizer will synthesize the authority using the Host header field, if present. If the Host header is also missing, it will use the request server name and server port, values that may be influenced by the Forwarded HTTP header and the PROXY protocol. The synthesized authority will be exposed as the Request URI authority via Request.getHttpURI().getAuthority(). ProxyCustomizer should be added when Jetty receives requests from a reverse proxy on behalf of a remote client, prefixed by the PROXY protocol (see also this section about the PROXY protocol). ProxyCustomizer adds the reverse proxy IP address and port as Request attributes. Web applications may use these attributes in conjunction with the data exposed by ForwardedRequestCustomizer (see this section). For more information about how to configure ProxyCustomizer, see also the javadocs. RewriteCustomizer is similar to RewriteHandler (see this section), but a RewriteCustomizer cannot send a response or otherwise complete the request/response processing. A RewriteCustomizer is mostly useful if you want to rewrite the request URI before the Handler tree is invoked. However, a very similar effect can be achieved by having the RewriteHandler as the first Handler (the child Handler of the Server instance). Since RewriteCustomizer cannot send a response or complete the request/response processing, Rules that do so such as redirect rules have no effect and are ignored; only Rules that modify or wrap the Request will have effect and be applied. Due to this limitation, it is often a better choice to use RewriteHandler instead of RewriteCustomizer. For more information about how to configure RewriteCustomizer, see also the javadocs. SecureRequestCustomizer should be added when Jetty receives requests over a secure Connector. SecureRequestCustomizer adds TLS information as request attributes, in particular an instance of EndPoint.SslSessionData that contains information about the negotiated TLS cipher suite and possibly client certificates, and an instance of org.eclipse.jetty.util.ssl.X509 that contains information about the server certificate. SecureRequestCustomizer also adds, if configured so, the Strict-Transport-Security HTTP response header (for more information about this header, see its specification). For more information about how to configure SecureRequestCustomizer, see also the javadocs. A Connector is the component that handles incoming requests from clients, and works in conjunction with ConnectionFactory instances. The available implementations are: org.eclipse.jetty.server.ServerConnector, for TCP/IP sockets. org.eclipse.jetty.unixdomain.server.UnixDomainServerConnector for Unix-Domain sockets (requires Java 16 or later). org.eclipse.jetty.quic.server.QuicServerConnector, for the low-level QUIC protocol and HTTP/3. org.eclipse.jetty.server.MemoryConnector, for memory communication between client and server. ServerConnector and UnixDomainServerConnector use a java.nio.channels.ServerSocketChannel to listen to a socket address and to accept socket connections. QuicheServerConnector uses a java.nio.channels.DatagramChannel to listen to incoming UDP packets. MemoryConnector uses memory for the communication between client and server, avoiding the use of sockets. Since ServerConnector wraps a ServerSocketChannel, it can be configured in a similar way, for example the TCP port to listen to, the IP address to bind to, etc.: Server server = new Server(); // The number of acceptor threads. int acceptors = 1; // The number of selectors. int selectors = 1; // Create a ServerConnector instance. ServerConnector connector = new ServerConnector(server, acceptors, selectors, new HttpConnectionFactory()); // Configure TCP/IP parameters. // The port to listen to. connector.setPort(8080); // The address to bind to. connector.setHost(\"127.0.0.1\"); // The TCP accept queue size. connector.setAcceptQueueSize(128); server.addConnector(connector); server.start(); UnixDomainServerConnector also wraps a ServerSocketChannel and can be configured with the Unix-Domain path to listen to: Server server = new Server(); // The number of acceptor threads. int acceptors = 1; // The number of selectors. int selectors = 1; // Create a ServerConnector instance. UnixDomainServerConnector connector = new UnixDomainServerConnector(server, acceptors, selectors, new HttpConnectionFactory()); // Configure Unix-Domain parameters. // The Unix-Domain path to listen to. connector.setUnixDomainPath(Path.of(\"/tmp/jetty.sock\")); // The TCP accept queue size. connector.setAcceptQueueSize(128); server.addConnector(connector); server.start(); You can use Unix-Domain sockets only when you run your server with Java 16 or later. QuicheServerConnector wraps a DatagramChannel and can be configured in a similar way, as shown in the example below. Since the communication via UDP does not require to \"accept\" connections like TCP does, the number of acceptors is set to 0 and there is no API to configure their number. Server server = new Server(); // Configure the SslContextFactory with the keyStore information. SslContextFactory.Server sslContextFactory = new SslContextFactory.Server(); sslContextFactory.setKeyStorePath(\"/path/to/keystore\"); sslContextFactory.setKeyStorePassword(\"secret\"); // Create a QuicServerConnector instance. Path pemWorkDir = Path.of(\"/path/to/pem/dir\"); QuicheServerQuicConfiguration serverQuicConfig = HTTP3ServerQuicConfiguration.configure(new QuicheServerQuicConfiguration(pemWorkDir)); QuicheServerConnector connector = new QuicheServerConnector(server, sslContextFactory, serverQuicConfig, new HTTP3ServerConnectionFactory()); // The port to listen to. connector.setPort(8080); // The address to bind to. connector.setHost(\"127.0.0.1\"); server.addConnector(connector); server.start(); MemoryConnector uses in-process memory, not sockets, for the communication between client and server, that therefore must be in the same process. Typical usage of MemoryConnector is the following: Server server = new Server(); // Create a MemoryConnector instance that speaks HTTP/1.1. MemoryConnector connector = new MemoryConnector(server, new HttpConnectionFactory()); server.addConnector(connector); server.start(); // The code above is the server-side. // ---- // The code below is the client-side. HttpClient httpClient = new HttpClient(); httpClient.start(); ContentResponse response = httpClient.newRequest(\"http://localhost/\") // Use the memory Transport to communicate with the server-side. .transport(ne
1w MemoryTransport(connector)) .send(); The acceptors are threads (typically only one) that compete to accept TCP socket connections. The connectors for the QUIC or HTTP/3 protocol, based on UDP, have zero acceptors. When a TCP connection is accepted by a ServerSocketChannel, ServerConnector wraps the accepted SocketChannel and registers it to the SelectorManager. Therefore, there is a little moment where the acceptor thread is not accepting new connections because it is busy wrapping the just accepted connection to pass it to the SelectorManager. Connections that are ready to be accepted but are not accepted yet are queued in a bounded queue (at the OS level) whose capacity can be configured with the acceptQueueSize parameter. If your application must withstand a very high rate of connection opening, configuring more than one acceptor thread may be beneficial: when one acceptor thread accepts one connection, another acceptor thread can take over accepting connections. The number of acceptors may be set to 0. In this case, the ServerSocketChannel will be configured in non-blocking mode, and registered in the SelectorManager. New connections will be accepted in non-blocking mode by the SelectorManager, and when the connection is completely established, the accepted SocketChannel is wrapped and registered in the SelectorManager as before. Configuring 0 acceptors uses fewer threads, but may result in increased latency, since accepting connections is now competing with established connections in the Java NIO mechanism. The selectors are components that manage a set of accepted TCP sockets, implemented by ManagedSelector. For QUIC or HTTP/3, there are no accepted TCP sockets, but only one DatagramChannel and therefore there is only one selector. Each selector requires one thread and uses the Java NIO mechanism to efficiently handle a set of registered channels. As a rule of thumb, a single selector can easily manage up to 1000-5000 TCP sockets, although the number may vary greatly depending on the application. For example, web applications for websites tend to use TCP sockets for one or more HTTP requests to retrieve resources and then the TCP socket is idle for most of the time. In this case a single selector may be able to manage many TCP sockets because chances are that they will be idle most of the time. On the contrary, web messaging applications or REST applications tend to send many small messages at a very high frequency so that the TCP sockets are rarely idle. In this case a single selector may be able to manage less TCP sockets because chances are that many of them will be active at the same time, so you may need more than one selector. It is possible to configure more than one Connector per Server. Typical cases are a ServerConnector for clear-text HTTP, and another ServerConnector for secure HTTP. Another case could be a publicly exposed ServerConnector for secure HTTP, and an internally exposed UnixDomainServerConnector or MemoryConnector for clear-text HTTP. Yet another example could be a ServerConnector for clear-text HTTP, a ServerConnector for secure HTTP/2, and an QuicheServerConnector for QUIC+HTTP/3. For example: Server server = new Server(); // Create a ServerConnector instance on port 8080. ServerConnector connector1 = new ServerConnector(server, 1, 1, new HttpConnectionFactory()); connector1.setPort(8080); server.addConnector(connector1); // Create another ServerConnector instance on port 9090, // for example with a different HTTP configuration. HttpConfiguration httpConfig2 = new HttpConfiguration(); httpConfig2.setHttpCompliance(HttpCompliance.LEGACY); ServerConnector connector2 = new ServerConnector(server, 1, 1, new HttpConnectionFactory(httpConfig2)); connector2.setPort(9090); server.addConnector(connector2); server.start(); If you do not specify the port the connector listens to explicitly, the OS will allocate one randomly when the connector starts. You may need to use the randomly allocated port to configure other components. One example is to use the randomly allocated port to configure secure redirects (when redirecting from a URI with the http scheme to the https scheme). Another example is to bind both the HTTP/2 connector and the HTTP/3 connector to the same randomly allocated port. It is possible that the HTTP/2 connector and the HTTP/3 connector share the same port, be
1cause one uses TCP, while the other uses UDP. For example: SslContextFactory.Server sslContextFactory = new SslContextFactory.Server(); sslContextFactory.setKeyStorePath(\"/path/to/keystore\"); sslContextFactory.setKeyStorePassword(\"secret\"); Server server = new Server(); // The plain HTTP configuration. HttpConfiguration plainConfig = new HttpConfiguration(); // The secure HTTP configuration. HttpConfiguration secureConfig = new HttpConfiguration(plainConfig); secureConfig.addCustomizer(new SecureRequestCustomizer()); // First, create the secure connector for HTTPS and HTTP/2. HttpConnectionFactory https = new HttpConnectionFactory(secureConfig); HTTP2ServerConnectionFactory http2 = new HTTP2ServerConnectionFactory(secureConfig); ALPNServerConnectionFactory alpn = new ALPNServerConnectionFactory(); alpn.setDefaultProtocol(https.getProtocol()); ConnectionFactory ssl = new SslConnectionFactory(sslContextFactory, https.getProtocol()); ServerConnector secureConnector = new ServerConnector(server, 1, 1, ssl, alpn, http2, https); server.addConnector(secureConnector); // Second, create the plain connector for HTTP. HttpConnectionFactory http = new HttpConnectionFactory(plainConfig); ServerConnector plainConnector = new ServerConnector(server, 1, 1, http); server.addConnector(plainConnector); // Third, create the connector for HTTP/3. Path pemWorkDir = Path.of(\"/path/to/pem/dir\"); QuicheServerQuicConfiguration serverQuicConfig = HTTP3ServerQuicConfiguration.configure(new QuicheServerQuicConfiguration(pemWorkDir)); QuicheServerConnector http3Connector = new QuicheServerConnector(server, sslContextFactory, serverQuicConfig, new HTTP3ServerConnectionFactory()); server.addConnector(http3Connector); // Set up a listener so that when the secure connector starts, // it configures the other connectors that have not started yet. secureConnector.addEventListener(new NetworkConnector.Listener() { @Override public void onOpen(NetworkConnector connector) { int port = connector.getLocalPort(); // Configure the plain connector for secure redirects from http to https. plainConfig.setSecurePort(port); // Configure the HTTP3 connector port to be the same as HTTPS/HTTP2. http3Connector.setPort(port); } }); server.start(); It is possible to limit the number of TCP connections accepted by the whole server (and therefore across all connectors), or by a specific connector. This feature is implemented by class org.eclipse.jetty.server.NetworkConnectionLimit and you can use it in this way: Server server = new Server(); // Limit TCP connections to the server, across all connectors. NetworkConnectionLimit serverNetworkConnectionLimit = new NetworkConnectionLimit(1024, server); server.addBean(serverNetworkConnectionLimit); ServerConnector connector1 = new ServerConnector(server); connector1.setPort(8080); server.addConnector(connector1); ServerConnector connector2 = new ServerConnector(server); connector2.setPort(9090); server.addConnector(connector2); // Limit connections for this connector only. NetworkConnectionLimit connectorNetworkConnectionLimit = new NetworkConnectionLimit(64, connector2); connector2.addBean(connectorNetworkConnectionLimit); When the maximum number of TCP connections is reached, no more TCP connections will be accepted at the JVM level â but they could be accepted at the OS level. This means that if you are using OS tools (like Linuxâs ss) to count the number of established TCP connections, you may find a number that may be greater than the maximum number of TCP connections configured in a NetworkConnectionLimit. Note also that different operative systems may behave differently when Jetty is not accepting TCP connections: some OS accepts connections at the TCP level anyway (but does not notify this event to the JVM), some other OS may not accept connections at the TCP level. A server Connector can be configured with one or more ConnectionFactorys, and this list of ConnectionFactorys represents the protocols that the Connector can understand. If no ConnectionFactory is specified then HttpConnectionFactory is implicitly configured. For each accepted connection, the server Connector asks a ConnectionFactory to create a Connection object that handles the traffic on that connection, parsing and generating bytes for a specific protocol (see this section for more details about Connection objects). You can listen for Connection open and close events as detailed in this section. Secure protocols like secure HTTP/1.1, secure HTTP/2 or HTTP/3 (HTTP/3 is intrinsically secure â there is no clear-text HTTP/3) require an SslContextFactory.Server to be configured with a KeyStore. For HTTP/1.1 and HTTP/2, SslContextFactory.Server is used in conjunction with SSLEngine, which drives the TLS handshake that establishes the secure communication. Applications may register a org.eclipse.jetty.io.ssl.SslHandshakeListener to be notified of TLS handshakes success or failure, by adding the SslHandshakeListener as a bean to the Connector: // Create a SslHandshakeListener. SslHandshakeListener listener = new SslHandshakeListener() { @Override public void handshakeSucceeded(Event event) throws SSLException { SSLEngine sslEngine = event.getSSLEngine(); System.getLogger(\"tls\").log(INFO, \"TLS handshake successful to %s\", sslEngine.getPeerHost()); } @Override public void handshakeFailed(Event event, Throwable failure) { SSLEngine sslEngine = event.getSSLEngine(); System.getLogger(\"tls\").log(ERROR, \"TLS handshake failure to %s\", sslEngine.getPeerHost(), failure); } }; Server server = new Server(); ServerConnector connector = new ServerConnector(server); server.addConnector(connector); // Add the SslHandshakeListener as bean to ServerConnector. // The listener will be notified of TLS handshakes success and failure. connector.addBean(listener); HttpConnectionFactory creates HttpConnection objects that parse bytes and generate bytes for the HTTP/1.1 protocol. This is how you configure Jetty to support clear-text HTTP/1.1: Server server = new Server(); // The HTTP configuration object. HttpConfiguration httpConfig = new HttpConfiguration(); // Configure the HTTP support, for example: httpConfig.setSendServerVersion(false); // The ConnectionFactory for HTTP/1.1. HttpConnectionFactory http11 = new HttpConnectionFactory(httpConfig); // Create the ServerConnector. ServerConnector connector = new ServerConnector(server, http11); connector.setPort(8080); server.addConnector(connector); server.start(); Supporting encrypted HTTP/1.1 (that is, requests with the https scheme) is supported by configuring an SslContextFactory that has access to the KeyStore containing the private server key and public server certificate, in this way: Server server = new Server(); // The HTTP configuration object. HttpConfiguration httpConfig = new HttpConfiguration(); // Add the SecureRequestCustomizer because TLS is used. httpConfig.addCustomizer(new SecureRequestCustomizer()); // The ConnectionFactory for HTTP/1.1. HttpConnectionFactory http11 = new HttpConnectionFactory(httpConfig); // Configure the SslContextFactory with the keyStore information. SslContextFactory.Server sslContextFactory = new SslContextFactory.Server(); sslContextFactory.setKeyStorePath(\"/path/to/keystore\"); sslContextFactory.setKeyStorePassword(\"secret\"); // The ConnectionFactory for TLS. SslConnectionFactory tls = new SslConnectionFactory(sslContextFactory, http11.getProtocol()); // The ServerConnector instance. ServerConnector connector = new ServerConnector(server, tls, http11); connector.setPort(8443); server.addConnector(connector); server.start(); You can customize the SSL/TLS provider as explained in this section. It is well known that the HTTP ports are 80 (for clear-text HTTP) and 443 for encrypted HTTP. By using those ports, a client had prior knowledge that the server would speak, respectively, the HTTP/1.x protocol and the TLS protocol (and, after decryption, the HTTP/1.x protocol). HTTP/2 was designed to be a smooth transition from HTTP/1.1 for users and as such the HTTP ports were not changed. However the HTTP/2 protocol is, on the wire, a binary protocol, completely different from HTTP/1.1. Therefore, with HTTP/2, clients that connect to port 80 (or to a specific Unix-Domain path) may speak either HTTP/1.1 or HTTP/2, and the server must figure out which version of the HTTP protocol the client is speaking. Jetty can support both HTTP/1.1 and HTTP/2 on the same clear-text port by configuring both the HTTP/1.1 and the HTTP/2 ConnectionFactorys: Server server = new Server(); // The HTTP configuration object. HttpConfiguration httpConfig = new HttpConfiguration(); // The ConnectionFactory for HTTP/1.1. HttpConnectionFactory http11 = new HttpConnectionFactory(httpConfig); // The ConnectionFactory for clear-text HTTP/2. HTTP2CServerConnectionFactory h2c = new HTTP2CServerConnectionFactory(httpConfig); // The ServerConnector instance. ServerConnector connector = new ServerConnector(server, http11, h2c); connector.setPort(8080); server.addConnector(connector); server.start(); Note how the ConnectionFactorys passed to ServerConnector are in order: first HTTP/1.1, then HTTP/2. This is necessary to support both protocols on the same port: Jetty will start parsing the incoming bytes as HTTP/1.1, but then realize that they are HTTP/2 bytes and will therefore upgrade from HTTP/1.1 to HTTP/2. This configuration is also typical when Jetty is installed in backend servers behind a load balancer that also takes care of offloading TLS. When Jetty is behind a load balancer, you can always prepe
1nd the PROXY protocol as described in this section. When using encrypted HTTP/2, the unencrypted protocol is negotiated by client and server using an extension to the TLS protocol called ALPN. Jetty supports ALPN and encrypted HTTP/2 with this configuration: Server server = new Server(); // The HTTP configuration object. HttpConfiguration httpConfig = new HttpConfiguration(); // Add the SecureRequestCustomizer because TLS is used. httpConfig.addCustomizer(new SecureRequestCustomizer()); // The ConnectionFactory for HTTP/1.1. HttpConnectionFactory http11 = new HttpConnectionFactory(httpConfig); // The ConnectionFactory for HTTP/2. HTTP2ServerConnectionFactory h2 = new HTTP2ServerConnectionFactory(httpConfig); // The ALPN ConnectionFactory. ALPNServerConnectionFactory alpn = new ALPNServerConnectionFactory(); // The default protocol to use in case there is no negotiation. alpn.setDefaultProtocol(http11.getProtocol()); // Configure the SslContextFactory with the keyStore information. SslContextFactory.Server sslContextFactory = new SslContextFactory.Server(); sslContextFactory.setKeyStorePath(\"/path/to/keystore\"); sslContextFactory.setKeyStorePassword(\"secret\"); // The ConnectionFactory for TLS. SslConnectionFactory tls = new SslConnectionFactory(sslContextFactory, alpn.getProtocol()); // The ServerConnector instance. ServerConnector connector = new ServerConnector(server, tls, alpn, h2, http11); connector.setPort(8443); server.addConnector(connector); server.start(); Note how the ConnectionFactorys passed to ServerConnector are in order: TLS, ALPN, HTTP/2, HTTP/1.1. Jetty starts parsing TLS bytes so that it can obtain the ALPN extension. With the ALPN extension information, Jetty can negotiate a protocol and pick, among the ConnectionFactorys supported by the ServerConnector, the ConnectionFactory correspondent to the negotiated protocol. The fact that the HTTP/2 protocol comes before the HTTP/1.1 protocol indicates that HTTP/2 is the preferred protocol for the server. Note also that the default protocol set in the ALPN ConnectionFactory, which is used in case ALPN is not supported by the client, is HTTP/1.1 â if the client does not support ALPN is probably an old client so HTTP/1.1 is the safest choice. You can customize the SSL/TLS provider as explained in this section. The HTTP/3 protocol is layered on top of the QUIC protocol, which is based on UDP. This is rather different with respect to HTTP/1 and HTTP/2, that are based on TCP. Jetty only implements the HTTP/3 layer in Java; the QUIC implementation is provided by the Quiche native library, that Jetty calls via JNA (and possibly, in the future, via the Foreign APIs). Jettyâs HTTP/3 support can only be used on the platforms (OS and CPU) supported by the Quiche native library. HTTP/3 clients may not know in advance if the server supports QUIC (over UDP), but the server typically supports either HTTP/1 or HTTP/2 (over TCP) on the default HTTP secure port 443, and advertises the availability HTTP/3 as an HTTP alternate service, possibly on a different port and/or on a different host. For example, an HTTP/2 response may include the following header: Alt-Svc: h3=\":843\" The presence of this header indicates that protocol h3 is available on the same host (since no host is defined before the port), but on port 843 (although it may be the same port 443). The ma (max-age) attribute specifies how long (in seconds) the client should cache this information. The HTTP/3 client may now initiate a QUIC connection on port 843 and make HTTP/3 requests. It is nowadays common to use the same port 443 for both HTTP/2 and HTTP/3. This does not cause problems because HTTP/2 listens on the TCP port 443, while QUIC listens on the UDP port 443. The Alt-Svc header is automatically added to HTTP/2 responses if an HTTP/3 connector is present, advertising the HTTP/3 connectorâs port. By default, only the port is advertised without additional attributes. The ma (max-age) attribute can be configured via AltSvcCustomizer.setMaxAge(Duration) and the persist attribute via AltSvcCustomizer.setPersist(boolean). To configure the AltSvcCustomizer, retrieve it from the HttpConfiguration after creating the HTTP2ServerConnectionFactory: HttpConfiguration httpConfig = new HttpConfiguration(); HTTP2ServerConnectionFactory h2 = new HTTP2ServerConnectionFactory(httpConfig); // Configure AltSvcCustomizer after connection factory creation. HTTP2ServerConnectionFactory.AltSvcCustomizer h2AltSvc = httpConfig.getCustomizer(HTTP2ServerConnectionFactory.AltSvcCustomizer.class); if (h2AltSvc != null) { h2AltSvc.setMaxAge(Duration.ofHours(24)); h2AltSvc.setPersist(true); } It is therefore common for HTTP/3 clients to initiate connections using the HTTP/2 protocol over TCP, and if the server supports HTTP/3 switch to HTTP/3 as indicated by the server. The code necessary to configure HTTP/2 is described
1in this section. To setup HTTP/3, for example on port 843, you need the following code (some of which could be shared with other connectors such as HTTP/2âs): Server server = new Server(); SslContextFactory.Server sslContextFactory = new SslContextFactory.Server(); sslContextFactory.setKeyStorePath(\"/path/to/keystore\"); sslContextFactory.setKeyStorePassword(\"secret\"); HttpConfiguration httpConfig = new HttpConfiguration(); httpConfig.addCustomizer(new SecureRequestCustomizer()); // Create and configure the HTTP/3 connector. // It is mandatory to configure the PEM directory. Path pemWorkDir = Path.of(\"/path/to/pem/dir\"); QuicheServerQuicConfiguration serverQuicConfig = HTTP3ServerQuicConfiguration.configure(new QuicheServerQuicConfiguration(pemWorkDir)); QuicheServerConnector connector = new QuicheServerConnector(server, sslContextFactory, serverQuicConfig, new HTTP3ServerConnectionFactory()); connector.setPort(843); server.addConnector(connector); server.start(); The use of the Quiche native library requires the private key and public certificate present in the KeyStore to be exported as PEM files for Quiche to use them. It is therefore mandatory to configure the PEM directory as shown above. The PEM directory must also be adequately protected using file system permissions, because it stores the private key PEM file. You want to grant as few permissions as possible, typically the equivalent of POSIX rwx only to the user that runs the Jetty process. Using /tmp or any other directory accessible by any user is not a secure choice. If not explicitly configured, the TLS implementation is provided by the JDK you are using at runtime. OpenJDKâs vendors may replace the default TLS provider with their own, but you can also explicitly configure an alternative TLS provider. The standard TLS provider from OpenJDK is implemented in Java (no native code), and its performance is not optimal, both in CPU usage and memory usage. A faster alternative, implemented natively, is Googleâs Conscrypt, which is built on BoringSSL, which is Googleâs fork of OpenSSL. As Conscrypt eventually binds to a native library, there is a higher risk that a bug in Conscrypt or in the native library causes a JVM crash, while the Java implementation will not cause a JVM crash. To use Conscrypt as TLS provider, you must have the Conscrypt jar and the Jetty dependency jetty-alpn-conscrypt-server-12.1.13.jar in the class-path or module-path. Then, you must configure the JDK with the Conscrypt provider, and configure Jetty to use the Conscrypt provider, in this way: // Configure the JDK with the Conscrypt provider. Security.addProvider(new OpenSSLProvider()); SslContextFactory.Server sslContextFactory = new SslContextFactory.Server(); sslContextFactory.setKeyStorePath(\"/path/to/keystore\"); sslContextFactory.setKeyStorePassword(\"secret\"); // Configure Jetty's SslContextFactory to use the Conscrypt provider. sslContextFactory.setProvider(\"Conscrypt\"); If not explicitly configured, the TLS implementation is provided by the JDK you are using at runtime. OpenJDKâs vendors may replace the default TLS provider with their own, but you can also explicitly configure an alternative TLS provider. Bouncy Castle is a pure Java alternative provider for the Java security APIs, and includes a TLS provider. To use Bouncy Castle as TLS provider, you must have the Bouncy Castle jars and the Jetty dependency jetty-alpn-bouncycastle-server-12.1.13.jar in the class-path or module-path. Then, you must configure the JDK with the Bouncy Castle provider, and configure Jetty to use the Bouncy Castle provider, in this way: // Configure the JDK with the Bouncy Castle providers, you need both. Security.addProvider(new BouncyCastleProvider()); Security.addProvider(new BouncyCastleJsseProvider()); SslContextFactory.Server sslContextFactory = new SslContextFactory.Server(); sslContextFactory.setKeyStorePath(\"/path/to/keystore\"); sslContextFactory.setKeyStorePassword(\"secret\"); // Configure Jetty's SslContextFactory to use the Bouncy Castle provider. sslContextFactory.setProvider(\"BCJSSE\"); Jetty can be configured to monitor the KeyStore file specified in the SslContextFactory, and reload the SslContextFactory if any changes are detected to the KeyStore file. If changes need to be done to other files, such as the TrustStore file, this must be done before the change to the Keystore file which will then trigger the SslContextFactory reload. For embedded usage the KeyStoreScanner should be created for the specific SslContextFactory and added as a bean on the Server. Server server = new Server(); // The HTTP configuration object. HttpConfiguration httpConfig = new HttpConfiguration(); // Add the SecureRequestCustomizer because TLS is used. httpConfig.addCustomizer(new SecureRequestCustomizer()); // The ConnectionFactory for HTTP/1.1. HttpConnectionFactory http11 = new HttpConnectionFactory(httpConfig); // Configure the SslContextFactory with the keyStore information. SslContextFactory.Server sslContextFactory = new SslContextFactory.Server(); sslContextFactory.setKeyStorePath(\"/path/to/keystore\"); sslContextFactory.setKeyStorePassword(\"secret\"); // The ConnectionFactory for TLS. SslConnectionFactory tls = new SslConnectionFactory(sslContextFactory, http11.getProtocol()); // The ServerConnector instance. ServerConnector connector = new ServerConnector(server, tls, http11); connector.setPort(8443); server.addConnector(connector); KeyStoreScanner keyStoreScanner = new KeyStoreScanner(sslContextFactory); keyStoreScanner.setScanInterval(60); server.addBean(keyStoreScanner); server.start(); It is often the case that Jetty receives connections from a load balancer configured to distribute the load among many Jetty backend servers. From the Jetty point of view, all the connections arrive from the load balancer, rather than the real clients, but is possible to configure the load balancer to forward the real client IP address and IP port to the backend Jetty server using the PROXY protocol. The PROXY protocol is widely supported by load balancers such as HAProxy (via its send-proxy directive), Nginx(via its proxy_protocol on directive) and others. To support this case, Jetty can be configured in this way: Server server = new Server(); // The HTTP configuration object. HttpConfiguration httpConfig = new HttpConfiguration(); // Configure the HTTP support, for example: httpConfig.setSendServerVersion(false); // The ConnectionFactory for HTTP/1.1. HttpConnectionFactory http11 = new HttpConnectionFactory(httpConfig); // The ConnectionFactory for the PROXY protocol. ProxyConnectionFactory proxy = new ProxyConnectionFactory(http11.getProtocol()); // Create the ServerConnector. ServerConnector connector = new ServerConnector(server, proxy, http11); connector.setPort(8080); server.addConnector(connector); server.start(); Note how the ConnectionFactorys passed to ServerConnector are in order: first PROXY, then HTTP/1.1. Note also how the PROXY ConnectionFactory needs to know its next protocol (in this example, HTTP/1.1). Each ConnectionFactory is asked to create a Connection object for each accepted TCP connection; the Connection objects will be chained together to handle the bytes, each for its own protocol. Therefore the ProxyConnection will handle the PROXY protocol bytes and HttpConnection will handle the HTTP/1.1 bytes producing a request object and response object that will be processed by Handlers. The load balancer may be configured to communicate with Jetty backend servers via Unix-Domain sockets (requires Java 16 or later). For example: Server server = new Server(); // The HTTP configuration object. HttpConfiguration httpConfig = new HttpConfiguration(); // Configure the HTTP support, for example: httpConfig.setSendServerVersion(false); // The ConnectionFactory for HTTP/1.1. HttpConnectionFactory http11 = new HttpConnectionFactory(httpConfig); // The ConnectionFactory for the PROXY protocol. ProxyConnectionFactory proxy = new ProxyConnectionFactory(http11.getProtocol()); // Create the ServerConnector. UnixDomainServerConnector connector = new UnixDomainServerConnector(server, proxy, http11); connector.setUnixDomainPath(Path.of(\"/tmp/jetty.sock\")); server.addConnector(connector); server.start(); Note that the only difference when using Unix-Domain sockets is instantiating Unix
1DomainServerConnector instead of ServerConnector and configuring the Unix-Domain path instead of the IP port. An org.eclipse.jetty.server.Handler is the component that processes incoming HTTP requests and eventually produces HTTP responses. Handlers can process the HTTP request themselves, or they can be Handler.Containers that delegate HTTP request processing to one or more contained Handlers. This allows Handlers to be organized as a tree comprised of: Leaf Handlers that generate a response, complete the Callback, and return true from the handle(...) method. A Handler.Wrapper can be used to form a chain of Handlers where request, response or callback objects may be wrapped in the handle(...) method before being passed down the chain. A Handler.Sequence that contains a sequence of Handlers, with each Handler being called in sequence until one returns true from its handle(...) method. A specialized Handler.Container that may use properties of the request (for example, the URI, or a header, etc.) to select from one or more contained Handlers to delegate the HTTP request processing to, for example PathMappingsHandler. A Handler tree is created by composing Handlers together: Server server = new Server(); GzipHandler gzipHandler = new GzipHandler(); server.setHandler(gzipHandler); Handler.Sequence sequence = new Handler.Sequence(); gzipHandler.setHandler(sequence); sequence.addHandler(new App1Handler()); sequence.addHandler(new App2Handler()); The corresponding Handler tree structure looks like the following: Server âââ GzipHandler âââ Handler.Sequence âââ App1Handler âââ App2Handler You should prefer using existing Handlers provided by the Jetty server libraries for managing web application contexts, security, HTTP sessions and Servlet support. Refer to this section for more information about how to use the Handlers provided by the Jetty server libraries. You should write your own leaf Handlers to implement your web application logic. Refer to this section for more information about how to write your own Handlers. A Handler may be declared as non-blocking (by extending Handler.Abstract.NonBlocking) or as blocking (by extending Handler.Abstract), to allow interaction with the Jetty threading architecture for more efficient thread and CPU utilization during the request/response processing. Container Handlers typically inherit whether they are blocking or non-blocking from their child or children. Furthermore, container Handlers may be declared as dynamic: they allow adding/removing child Handlers after they have been started (see Handler.AbstractContainer for more information). Dynamic container Handlers are therefore always blocking, as it is not possible to know if a child Handler added in the future will be blocking or non-blocking. If the Handler tree is not dynamic, then it is possible to create a non-blocking Handler tree, for example: Server âââ RewriteHandler âââ GzipHandler âââ ContextHandler âââ AppHandler extends Handler.Abstract.NonBlocking When the Handler tree is non-blocking, Jetty may use the Produce-Consume mode to invoke the Handler tree, therefore avoiding a thread hand-off, and saving the cost of being scheduled on a different CPU with cold caches. The Produce-Consume mode is equivalent to what other servers call \"event loop\" or \"selector thread loop\" architectures. This mode has the benefit of reducing OS context switches and CPU cache misses, using fewer threads, and it is overall very efficient. On the other hand, it requires writing quick, non-blocking code, and partially sequentializes the request/response processing, so that the Nth request in the sequence pays the latency of the processing of the N-1 requests in front of it. If you declare your Handler to be non-blocking by extending Handler.Abstract.NonBlocking, the code you write in handle(...) (and recursively all the code called from there) must truly be non-blocking, and possibly execute quickly. If the code blocks, you risk a server lock-up. If the code takes a long time to execute, requests from other connections may be delayed. Web applications are the unit of deployment in an HTTP server or Servlet Container such as Jetty. Two different web applications are typically deployed on different c
1ontext paths, where a context path is the initial segment of the URI path. For example, web application webappA that implements a web user interface for an e-commerce site may be deployed to context path /shop, while web application webappB that implements a REST API for the e-commerce business may be deployed to /api. A client making a request to URI /shop/cart is directed by Jetty to webappA, while a request to URI /api/products is directed to webappB. An alternative way to deploy the two web applications of the example above is to use virtual hosts. A virtual host is a subdomain of the primary domain that shares the same IP address with the primary domain. If the e-commerce business primary domain is domain.com, then a virtual host for webappA could be shop.domain.com, while a virtual host for webappB could be api.domain.com. Web application webappA can now be deployed to virtual host shop.domain.com and context path /, while web application webappB can be deployed to virtual host api.domain.com and context path /. Both applications have the same context path /, but they can be distinguished by the subdomain. A client making a request to https://shop.domain.com/cart is directed by Jetty to webappA, while a request to https://api.domain.com/products is directed to webappB. Therefore, in general, a web application is deployed to a context which can be seen as the pair (virtual_host, context_path). In the first case the contexts were (domain.com, /shop) and (domain.com, /api), while in the second case the contexts were (shop.domain.com, /) and (api.domain.com, /). Server applications using the Jetty Server Libraries create and configure a context for each web application. Many contexts can be deployed together to enrich the web application offering â for example a catalog context, a shop context, an API context, an administration context, etc. Web applications can be written using exclusively the Jakarta EE APIs, since developers know them well, and because they guarantee better portability across Servlet Container implementations, as described in this section. On the other hand, web applications can be written using the Jetty APIs, for better performance, or to be able to access to Jetty specific APIs, or to use features such as redirection from HTTP to HTTPS, support for gzip content compression, URI rewriting, etc. The Jetty Server Libraries provides a number of out-of-the-box Handlers that implement the most common functionalities and are described in the next sections. ContextHandler is a Handler that represents a context for a web application. It is a Handler.Wrapper that performs s
1ome action before and after delegating to the nested Handler. The simplest use of ContextHandler is the following: class ShopHandler extends Handler.Abstract { @Override public boolean handle(Request request, Response response, Callback callback) { // Implement the shop, remembering to complete the callback. return true; } } Server server = new Server(); Connector connector = new ServerConnector(server); server.addConnector(connector); // Create a ContextHandler with contextPath. ContextHandler context = new ContextHandler(new ShopHandler(), \"/shop\"); // Link the context to the server. server.setHandler(context); server.start(); The Handler tree structure looks like the following: Server âââ ContextHandler /shop âââ ShopHandler You may need to deploy to Jetty more than one web application. Recall from the introduction that Jetty offers Handler.Collection that contains a sequence of child Handlers. However, this has no knowledge of the concept of context and just iterates through the sequence of Handlers. A better choice for multiple web application is ContextHandlerCollection, that matches a context from either its context path or virtual host, without iterating through the Handlers. If ContextHandlerCollection does not find a match, it just returns false from its handle(...) method. What happens next depends on the Handler tree structure: other Handlers may be invoked after ContextHandlerCollection, for example DefaultHandler (see this section). Eventually, if no Handler returns true from their own handle(...) method, then Jetty returns an HTTP 404 response to the client. class ShopHandler extends Handler.Abstract { @Override public boolean handle(Request request, Response response, Callback callback) { // Implement the shop, remembering to complete the callback. return true; } } class RESTHandler extends Handler.Abstract { @Override public boolean handle(Request request, Response response, Callback callback) { // Implement the REST APIs, remembering to complete the callback. return true; } } Server server = new Server(); Connector connector = new ServerConnector(server); server.addConnector(connector); // Create a ContextHandlerCollection to hold contexts. ContextHandlerCollection contextCollection = new ContextHandlerCollection(); // Create the context for the shop web application and add it to ContextHandlerCollection. contextCollection.addHandler(new ContextHandler(new ShopHandler(), \"/shop\")); // Link the ContextHandlerCollection to the Server. server.setHandler(contextCollection); server.start(); // Create the context for the API web application. ContextHandler apiContext = new ContextHandler(new RESTHandler(), \"/api\"); // Web applications can be deployed after the Server is started. contextCollection.deployHandler(apiContext, Callback.NOOP); The Handler tree structure looks like the following: Server âââ ContextHandlerCollection âââ ContextHandler /shop â âââ ShopHandler âââ ContextHandler /api âââ RESTHandler It is possible to split the handling of HTTP requests within the same web application using PathMappingsHandler. Static content such as images or files (HTML, JavaScript, CSS) can be sent by Jetty very efficiently because Jetty can write the content asynchronously, using direct ByteBuffers to minimize data copy, and using a memory cache for faster access to the data to send. Being able to write content asynchronously means that if the network gets congested (for example, the client reads the content very slowly) and the server stalls the send of the requested data, then Jetty will wait to resume the send without blocking a thread to finish the send. ResourceHandler supports the following features: Welcome files, for example serving /index.html for request URI / Precompressed resources, serving a precompressed /document.txt.gz for request URI /document.txt Range requests, for requests containing the Range header, which allows clients to pause and resume downloads of large files Directory listing, serving a HTML page with the file list of the requested directory Conditional headers, for requests containing the If-Match, If-None-Match, If-Modified-Since, If-Unmodified-Since headers. The number of features supported and the efficiency in sending static content are on the same level as those of common front-end servers used to serve static content such as Nginx or Apache. Therefore, the traditional architecture where Nginx/Apache was the front-end server used only to send static content and Jetty was the back-end server used only to send dynamic content is somehow obsolete as Jetty can perform efficiently both tasks. This leads to simpler systems (less components to configure and manage) and more performance (no need to proxy dynamic requests from front-end servers to back-end servers). It is common to use Nginx/Apache as load balancers, or as rewrite/redirect servers. We typically recommend HAProxy as load balancer, and Jetty has rewrite/redirect features as well. This is how you configure a ResourceHandler to create a simple file server: Server server = new Server(); Connector connector = new ServerConnector(server); server.addConnector(connector); // Create and configure a ResourceHandler. ResourceHandler handler = new ResourceHandler(); // Configure the directory where static resources are located. handler.setBaseResource(ResourceFactory.of(handler).newResource(\"/path/to/static/resources/\")); // Configure directory listing. handler.setDirAllowed(false); // Configure welcome files. handler.setWelcomeFiles(List.of(\"index.html\")); // Configure whether to accept range requests. handler.setAcceptRanges(true); // Link the context to the server. server.setHandler(handler); server.start(); If you need to serve static resources from multiple directories: ResourceHandler handler = new ResourceHandler(); // For multiple directories, use ResourceFactory.combine(). Resource resource = ResourceFactory.combine( ResourceFactory.of(handler).newResource(\"/path/to/static/resources/\"), ResourceFactory.of(handler).newResource(\"/another/path/to/static/resources/\") ); handler.setBaseResource(resource); If the resource is not found, ResourceHandler will not return true from the handle(...) method, so what happens next depends on the Handler tree structure. See also how to use DefaultHandler. ConditionalHandler is an abstract Handler that matches conditions about the request, and allows subclasses to handle the request differently depending on whether the conditions have been met or not. You may subclass ConditionalHandler.Abstract and override these methods: boolean onConditionsMet(Request, Response, Callback), to handle the request when the conditions are met. boolean onConditionsNotMet(Request, Response, Callback), to handle the request when the conditions are not met. Alternatively, you can use the following ConditionalHandler subclasses that implement common behaviors: ConditionalHandler.ElseNext: When conditions are met, you have to write the implementation. When conditions are not met, the handling of the request is forwarded to the next Handler. ConditionalHandler.Reject: When conditions are met, a response is written with a configurable HTTP status code. When conditions are not met, the handling of the request is forwarded to the next Handler. ConditionalHandler.SkipNext: When conditions are met, the handling of the request is forwarded to the next-next Handler, skipping the next Handler. When conditions are not met, the handling of the request is forwarded to the next Handler. ConditionalHandler.DontHandle: When conditions are met, the request is not handled. When conditions are not met, the handling of the request is forwarded to the next Handler. ConditionalHandler.NextElseReject: When conditions are met, the handling of the request is forwarded to the next Handler. When conditions are not met, a response is written with a configurable HTTP status code. Conditions can be specified using an include/exclude mechanism, where a condition match if it is not excluded, and either it is included or the include set is empty. For example, you can specify to match only the specific HTTP request method DELETE by adding it to the include set; or you can specify to match all HTTP request methods apart TRACE by adding it to the exclude set. ConditionalHandler allows you to specify conditions for the following request properties: The request HTTP method. The request path in context, that is the request URI relative to the context path. The request remote address. Custom predicates that receive the request to match a custom condition. Notable subclasses of ConditionalHandler are, for example, QoSHandler, ThreadLimitHandler and DoSHandler. CompressionH
1andler provides support for automatic decompression of compressed request content and automatic compression of response content. The Maven artifact coordinates are: <dependency> <groupId>org.eclipse.jetty.compression</groupId> <artifactId>jetty-compression-server</artifactId> <version>12.1.13</version> </dependency> The compression algorithms supported are: brotli; identified by br in Accept-Encoding and Content-Encoding HTTP headers. gzip; identified by gzip in Accept-Encoding and Content-Encoding HTTP headers. zstdandard; identified by zstd in Accept-Encoding and Content-Encoding HTTP headers. CompressionHandler discovers compression algorithm implementations via Javaâs ServiceLoader mechanism, so it is enough to put the Jetty artifacts with the compression implementation in the module-path or class-path, respectively: jetty-compression-brotli jetty-compression-gzip jetty-compression-zstandard The Maven artifact coordinates are the following: <dependencies> <dependency> <groupId>org.eclipse.jetty.compression</groupId> <artifactId>jetty-compression-brotli</artifactId> <version>12.1.13</version> </dependency> <dependency> <groupId>org.eclipse.jetty.compression</groupId> <artifactId>jetty-compression-gzip</artifactId> <version>12.1.13</version> </dependency> <dependency> <groupId>org.eclipse.jetty.compression</groupId> <artifactId>jetty-compression-zstandard</artifactId> <version>12.1.13</version> </dependency> </dependencies> The Jetty artifacts jetty-compression-brotli and jetty-compression-zstandard access respectively the Brotli and Zstandard implementations, that are written in native code. Since Java 22, the JVM emits a warning message when Java code tries to access code in native libraries. For example with Java 25: WARNING: A restricted method in java.lang.System has been called WARNING: java.lang.System::loadLibrary has been called by com.aayushatharva.brotli4j.Brotli4jLoader in an unnamed module (file:/home/simon/.m2/repository/com/aayushatharva/brotli4j/brotli4j/1.17.0/brotli4j-1.17.0.jar) WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module WARNING: Restricted methods will be blocked in a future release unless native access is enabled To avoid the warning, you can start the JVM as suggested by the warning message above, by adding --enable-native-access=ALL-UNNAMED on the command line. This grants any code in the class-path access to any native library. If you are running in JPMS mode, you can explicitly grant access just to the JPMS module(s) that require it. In the case above, you need --enable-native-access=com.aayushatharva.brotli4j. CompressionHandler is a Handler.Wrapper that inspects the request and, if the conditions are met, it wraps the request and the response to eventually perform decompression of the request content or compression of the response content. The decompression/compression is not performed until the web application reads request content or writes response content. CompressionHandler automatically adds the Vary: Accept-Encoding response header when the request method supports compression (by default GET and POST). This header is added regardless of whether the client sends an Accept-Encoding request header, ensuring that caching proxies correctly handle responses that may vary based on client compression capabilities. CompressionHandler comes with a default configuration, but can be explicitly configured through a CompressionConfig object that can be constructed via the builder pattern. Furthermore, CompressionHandler can be configured either at the server level, or at the context level. CompressionHandler can be configured at the server level in this way: Server server = new Server(); Connector connector = new ServerConnector(server); server.addConnector(connector); // Create and configure CompressionHandler. CompressionHandler compressionHandler = new CompressionHandler(); server.setHandler(compressionHandler); CompressionConfig compressionConfig = CompressionConfig.builder() // Do not compress these URI paths. .compressExcludePath(\"/uncompressed\") // Also compress POST responses. .compressIncludeMethod(\"POST\") // Do not compress these mime types. .compressExcludeMimeType(\"font/ttf\") .build(); // Map the request URI path spec '/*' with the compression configuration. // You can map different path specs with different c
1ompression configurations. compressionHandler.putConfiguration(\"/*\", compressionConfig); // Create a ContextHandlerCollection to manage contexts. ContextHandlerCollection contexts = new ContextHandlerCollection(); compressionHandler.setHandler(contexts); server.start(); The Handler tree structure looks like the following: Server âââ CompressionHandler âââ ContextHandlerCollection âââ ContextHandler 1 :ââ ... âââ ContextHandler N However, in less common cases, you can configure CompressionHandler on a per-context basis, for example because you want to configure CompressionHandler with different parameters for each context, or because you want only some contexts to have compression support: Server server = new Server(); ServerConnector connector = new ServerConnector(server); server.addConnector(connector); // Create a ContextHandlerCollection to hold contexts. ContextHandlerCollection contextCollection = new ContextHandlerCollection(); // Link the ContextHandlerCollection to the Server. server.setHandler(contextCollection); // Create the context for the shop web application wrapped with CompressionHandler so only the shop will do compression. CompressionHandler shopCompressionHandler = new CompressionHandler(new ContextHandler(new ShopHandler(), \"/shop\")); // Add it to ContextHandlerCollection. contextCollection.addHandler(shopCompressionHandler); // Create the context for the API web application. ContextHandler apiContext = new ContextHandler(new RESTHandler(), \"/api\"); // Add it to ContextHandlerCollection. contextCollection.addHandler(apiContext); server.start(); The Handler tree structure looks like the following: Server âââ ContextHandlerCollection âââ ContextHandlerCollection âââ CompressionHandler â âââ ContextHandler /shop â âââ ShopHandler âââ ContextHandler /api âââ RESTHandler GzipHandler provides supports for automatic decompression of gzip compressed request content and automatic gzip compression of response content. GzipHandler is now obsoleted by CompressionHandler, but still maintained for backwards compatibility. CompressionHandler currently supports gzip but also other compression algorithms such as brotli and zstandard. GzipHandler is a Handler.Wrapper that inspects the request and, if the request matches the GzipHandler configuration, just installs the required components to eventually perform decompression of the request content or compression of the response content. The decompression/compression is not performed until the web application reads request content or writes response content. GzipHandler can be configured at the server level in this way: Server server = new Server(); Connector connector = new ServerConnector(server); server.addConnector(connector); // Create and configure GzipHandler. GzipHandler gzipHandler = new GzipHandler(); server.setHandler(gzipHandler); // Only compress response content larger than this. gzipHandler.setMinGzipSize(1024); // Do not compress these URI paths. gzipHandler.setExcludedPaths(\"/uncompressed\"); // Also compress POST responses. gzipHandler.addIncludedMethods(\"POST\"); // Do not compress these mime types. gzipHandler.addExcludedMimeTypes(\"font/ttf\"); // Create a ContextHandlerCollection to manage contexts. ContextHandlerCollection contexts = new ContextHandlerCollection(); gzipHandler.setHandler(contexts); server.start(); The Handler tree structure looks like the following: Server âââ GzipHandler âââ ContextHandlerCollection âââ ContextHandler 1 :ââ ... âââ ContextHandler N However, in less common cases, you can configure GzipHandler on a per-context basis, for example because you want to configure GzipHandler with different parameters for each context, or because you want only some contexts to have compression support: Server server = new Server(); ServerConnector connector = new ServerConnector(server); server.addConnector(connector); // Create a ContextHandlerCollection to hold contexts. ContextHandlerCollection contextCollection = new ContextHandlerCollection(); // Link the ContextHandlerCollection to the Server. server.setHandler(contextCollection); // Create the context for the shop web application wrapped with GzipHandler so only the shop will do gzip. GzipHandler shopGzipHandler = new GzipHandler(new ContextHandler(new ShopHandler(), \"/shop\")); // Add it to ContextHandlerCollection. contextCollection.addHandler(shopGzipHandler); // Create the context for the API web application. ContextHandler apiContext = new ContextHandler(new RESTHandler(), \"/api\"); // Add it to ContextHandlerCollection. contextCollection.addHandler(apiContext); server.start(); The Handler tree structure looks like the following: Server âââ ContextHandlerCollection âââ ContextHandlerCollection âââ GzipHandler â âââ ContextHandler /shop â âââ ShopHandler âââ ContextHandler /api âââ RESTHandler RewriteHandler provides support for URL rewriting, very similarly to Apacheâs mod_rewrite or Nginx rewrite module. The Maven artifact coordinates are: <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-rewrite</artifactId> <version>12.1.13</version> </dependency> RewriteHandler can be configured with a set of rules;
1 a rule inspects the request and when it matches it performs some change to the request (for example, changes the URI path, adds/removes headers, etc.). The Jetty Server Libraries provide rules for the most common usages, but you can write your own rules by extending the org.eclipse.jetty.rewrite.handler.Rule class. Please refer to the jetty-rewrite module javadocs for the complete list of available rules. You typically want to configure RewriteHandler at the server level, although it is possible to configure it on a per-context basis. Server server = new Server(); ServerConnector connector = new ServerConnector(server); server.addConnector(connector); // Create and link the RewriteHandler to the Server. RewriteHandler rewriteHandler = new RewriteHandler(); server.setHandler(rewriteHandler); // Compacts URI paths with double slashes, e.g. /ctx//path/to//resource. rewriteHandler.addRule(new CompactPathRule()); // Rewrites */products/* to */p/*. rewriteHandler.addRule(new RewriteRegexRule(\"/(.*)/product/(.*)\", \"/$1/p/$2\")); // Redirects permanently to a different URI. RedirectRegexRule redirectRule = new RedirectRegexRule(\"/documentation/(.*)\", \"https://docs.domain.com/$1\"); redirectRule.setStatusCode(HttpStatus.MOVED_PERMANENTLY_301); rewriteHandler.addRule(redirectRule); // Create a ContextHandlerCollection to hold contexts. ContextHandlerCollection contextCollection = new ContextHandlerCollection(); rewriteHandler.setHandler(contextCollection); server.start(); The Handler tree structure looks like the following: Server âââ RewriteHandler âââ ContextHandlerCollection âââ ContextHandler 1 :ââ ... âââ ContextHandler N SizeLimitHandler tracks the sizes of request content and response content, and fails the request processing with an HTTP status code of 413 Content Too Large. Server applications can set up the SizeLimitHandler before or after handlers that modify the request content or response content such as GzipHandler. When SizeLimitHandler is before GzipHandler in the Handler tree, it will limit the compressed content; when it is after, it will limit the uncompressed content. The Handler tree structure look like the following, to limit uncompressed content: Server âââ GzipHandler âââ SizeLimitHandler âââ ContextHandlerCollection âââ ContextHandler 1 :ââ ... âââ ContextHandler N StatisticsHandler gathers and exposes a number of statistic values related to request processing such as: Total number of requests Current number of concurrent requests Minimum, maximum, average and standard deviation of request processing times Number of responses grouped by HTTP code (i.e. how many 2xx responses, how many 3xx responses, etc.) Total response content bytes Server applications can read these values and use them internally, or expose them via some service, or export them to JMX. StatisticsHandler can be configured at the server level or at the context level. Server server = new Server(); ServerConnector connector = new ServerConnector(server); server.addConnector(connector); // Create and link the StatisticsHandler to the Server. StatisticsHandler statsHandler = new StatisticsHandler(); server.setHandler(statsHandler); // Create a ContextHandlerCollection to hold contexts. ContextHandlerCollection contextCollection = new ContextHandlerCollection(); statsHandler.setHandler(contextCollection); server.start(); The Handler tree structure looks like the following: Server âââ StatisticsHandler âââ ContextHandlerCollection âââ ContextHandler 1 :ââ ... âââ ContextHandler N MinimumDataRateHandler is a subclass of StatisticsHandler that enforces a minimum request content read rate and a minimum response content write rate based of the figures that it collects: Server server = new Server(); ServerConnector connector = new ServerConnector(server); server.addConnector(connector); // Create and link the MinimumDataRateHandler to the Server. // Create the MinimumDataRateHandler with a minimum read rate of 1KB per second and no minimum write rate. MinimumDataRateHandler dataRateHandler = new MinimumDataRateHandler(1024L, 0L); server.setHandler(dataRateHandler); // Create a ContextHandlerCollection to hold contexts. ContextHandlerCollection contextCollection = new ContextHandlerCollection(); dataRateHandler.setHandler(contextCollection); server.start(); The Handler tree structure looks like the following: Server âââ MinimumDataRateHandler âââ ContextHandlerCollection âââ ContextHandler 1 :ââ ... âââ ContextHandler N When minimum data rate is not enforced, bad clients may cause threads to be blocked on the server, and excessive memory consumption (as requests and responses stay in memory for longer than expected). Configuring the minimum read rate protects the server against bad clients that send request content very slowly, without tripping the idle timeout. When the server detects that the minimum threshold is not reached, it will abort the request, freeing server resources. Configuring the minimum write rate protects the server against bad clients that read response content very slowly, without tripping the idle timeout, and cause TCP congestion (for HTTP/1.1) or flow control stalls (for HTTP/2 and HTTP/3). When the server detects that the minimum threshold is not reached, it will abort the response, freeing server resources. EventsHandler allows applications to be notified of request processing events. EventsHandler must be subclassed, and the relevant onXYZ() methods overridden to capture the request processing events you are interested in. The request processing events can be used in conjunction with Request APIs that provide the information you may be interested in. For example, if you want to use EventsHandler to record processing times, you can use the request processing events with the following Request APIs: Request.getBeginNanoTime(), which returns the earliest possible nanoTime the request was received. Request.getHeadersNanoTime(), which returns the nanoTime at which the parsing of the HTTP headers was completed. The Request and Response objects may be inspected during events, but it is recommended to avoid modifying them, for example by adding/removing headers or by reading/writing content, because any modification may interfere with the processing performed by other Handlers. EventsHandler emits the following events: beforeHandling Emitted just before EventsHandler invokes the Handler.handle(...) method of the next Handler in the Handler tree. afterHandling Emitted just after the invocation to the Handler.handle(...) method of the next Handler in the Handler tree returns, either normally or by throwing. requestRead Emitted every time a chunk of content is read from the Request. responseBegin Emitted when the response first write happens. responseWrite Emitted every time the write of some response content is initiated. responseWriteComplete Emitted every time the write of some response content is completed, either successfully or with a failure. responseTrailersComplete Emitted when the write of the response trailers is completed. complete Emitted when both request and the response have been completely processed. Your EventsHandler subclass should then be linked in the Handler tree in the relevant position, typically as the outermost Handler after Server: class MyEventsHandler extends
1EventsHandler { @Override protected void onBeforeHandling(Request request) { // The nanoTime at which the request is first received. long requestBeginNanoTime = request.getBeginNanoTime(); // The nanoTime just before invoking the next Handler. request.setAttribute(\"beforeHandlingNanoTime\", NanoTime.now()); } @Override protected void onComplete(Request request, int status, HttpFields headers, Throwable failure) { // Retrieve the before handling nanoTime. long beforeHandlingNanoTime = (long)request.getAttribute(\"beforeHandlingNanoTime\"); // Record the request processing time and the status that was sent back to the client. long processingTime = NanoTime.millisSince(beforeHandlingNanoTime); System.getLogger(\"trackTime\").log(INFO, \"processing request %s took %d ms and ended with status code %d\", request, processingTime, status); } } Server server = new Server(); ServerConnector connector = new ServerConnector(server); server.addConnector(connector); // Link the EventsHandler as the outermost Handler after Server. MyEventsHandler eventsHandler = new MyEventsHandler(); server.setHandler(eventsHandler); ContextHandler appHandler = new ContextHandler(\"/app\"); eventsHandler.setHandler(appHandler); server.start(); The Handler tree structure looks like the following: Server âââ MyEventsHandler âââ ContextHandler /app You can link the EventsHandler at any point in the Handler tree structure, and even have multiple EventsHandlers to be notified of the request processing events at the different stages of the Handler tree, for example: Server âââ TotalEventsHandler âââ SlowHandler âââ AppEventsHandler âââ ContextHandler /app In the example above, TotalEventsHandler may record the total times of request processing, from SlowHandler all the way to the ContextHandler. On the other hand, AppEventsHandler may record both the time it takes for the request to flow from TotalEventsHandler to AppEventsHandler, therefore effectively measuring the processing time due to SlowHandler, and the time it takes to process the request by the ContextHandler. Refer to the EventsHandler javadocs for further information. QoSHandler allows web applications to limit the number of active concurrent requests, that is requests that are currently being handled by a thread, and therefore are not waiting asynchronously, for example reading request content or writing response content. QoSHandler extends ConditionalHandler, so you may be able to restrict what QoSHandler does to only requests that match the conditions (for example, only to POST requests, or only for certain request URIs, etc.) Web applications may need to access resources with limited capacity, for example a relational database accessed through a JDBC connection pool. Limiting the number of active concurrent requests helps to control the load on the server, so that it does not become overloaded and possibly unresponsive. In turn, this improves the quality of service (QoS) for end users of the web application, because either their request is being handled actively by the server, or it is rejected sooner (after a configurable timeout in QoSHandler) rather than later (after a possibly longer idle timeout). Consider the case where each HTTP request results in a JDBC query, and the capacity of the database is of 400 queries/s. Allowing more than 400 HTTP requests/s into the system, for example 500 requests/s, results in 100 requests blocking waiting for a JDBC connection for every second. It is evident that even a short load spike of few seconds eventually results in consuming all the server threads: some will be processing requests and queries, the remaining will be blocked waiting for a JDBC connection. When no more threads are available, additional requests will queue up as tasks in the thread pool, consuming more memory and potentially causing a complete server failure. This situation affects the whole server, so one bad behaving web application may affect other well behaving web applications. From the end user perspective the quality of service is terrible, because requests will take a lot of time to be served and eventually time out. In cases of load spikes, caused for example by popular events (weather or social events), usage bursts (Black Friday sales), or even denial-of-service attacks, it is desirable to give priority to certain requests rather than others. For example, in an e-commerce site requests that lead to the checkout and to the payments should have higher priorities than requests to browse the products. Another example is to prioritize requests for certain users such as paying users or administrative users. QoSHandler allows you to configure the maximum number of concurrent requests; by extending QoSHandler you can prioritize suspended requests for faster processing. A simple example that just limits the number of concurrent requests: class ShopHandler extends Handler.Abstract { @Override public boolean handle(Request request, Response response, Callback callback) { // Implement the shop, remembering to complete the callback. callback.succeeded(); return true; } } int maxThreads = 256; QueuedThreadPool serverThreads = new QueuedThreadPool(maxThreads); Server server = new Server(serverThreads); ServerConnector connector = new ServerConnector(server); server.addConnector(connector); // Create and configure QoSHandler. QoSHandler qosHandler = new QoSHandler(); // Set the max number of concurrent requests, // for example in relation to the thread pool. qosHandler.setMaxRequestCount(maxThreads / 2); // A suspended request may stay suspended for at most 5 seconds. qosHandler.setMaxSuspend(Duration.ofSeconds(5)); server.setHandler(qosHandler); // Provide quality of service to the shop // application by wrapping ShopHandler with QoSHandler. qosHandler.setHandler(new ShopHandler()); server.start(); This is an example of a QoSHandler subclass where you can implement a custom prioritization logic: class PriorityQoSHandler extends QoSHandler { @Override protected int getPriority(Request request) { String pathInContext = Request.getPathInContext(request); // Payment requests have the highest priority. if (pathInContext.startsWith(\"/payment/\")) return 3; // Login, checkout and admin requests. if (pathInContext.startsWith(\"/login/\")) return 2; if (pathInContext.startsWith(\"/checkout/\")) return 2; if (pathInContext.startsWith(\"/admin/\")) return 2; // Health-check requests from the load balancer. if (pathInContext.equals(\"/health-check\")) return 1; // Other requests have the lowest priority. return 0; } } Note that QoSHandler limits the number of active concurrent requests for the whole server; if you want to apply limits for each remote client, see ThreadLimitHandler and DoSHandler. SecuredRedirectHandler allows to redirect requests made with the http scheme (and therefore to the clear-text port) to the https scheme (and therefore to the encrypted port). For example a request to http://domain.com:8080/path?param=value is redirected to https://domain.com:8443/path?param=value. Server applications must configure a HttpConfiguration object with the secure scheme and secure port so that SecuredRedirectHandler can build the redirect URI. SecuredRedirectHandler is typically configured at the server level, although it can be configured on a per-context basis. Server server = new Server(); // Configure the HttpConfiguration for the clear-text connector. int securePort = 8443; HttpConfiguration httpConfig = new HttpConfiguration(); httpConfig.setSecurePort(securePort); // The clear-text connector. ServerConnector connector = new ServerConnector(server, new HttpConnectionFactory(httpConfig)); connector.setPort(8080); server.addConnector(connector); // Configure the HttpConfiguration for the secure connector. HttpConfiguration httpsConfig = new HttpConfiguration(httpConfig); // Add the SecureRequestCustomizer because TLS is used. httpConfig.addCustomizer(new SecureRequestCustomizer()); // The HttpConnectionFactory for the secure connector. HttpConnectionFactory http11 = new HttpConnectionFactory(httpsConfig); // Configure the SslContextFactory with the keyStore information. SslContextFactory.Server sslContextFactory = new SslContextFactory.Server(); sslContextFactory.setKeyStorePath(\"/path/to/keystore\"); sslContextFactory.setKeyStorePassword(\"secret\"); // The ConnectionFactory for TLS. SslConnectionFactory tls = new SslConnectionFactory(sslContextFactory, http11.getProtocol()); // The secure connector. ServerConnector secureConnector = new ServerConnector(server, tls, http11); secureConnector.setPort(8443); server.addConnector(secureConnector); // Create and link the SecuredRedirectHandler to the Server. SecuredRedirectHandler securedHandler = new SecuredRedirectHandler(); server.setHandler(securedHandler); // Create a ContextHandlerCollection to hold contexts. ContextHandlerCollection contextCollection = new ContextHandlerCollection(); securedHandler.setHandler(contextCollection); server.start(); CrossOriginHandler supports the server-side requirements of the CORS protocol implemented by browsers when performing cross-origin requests. An example of a cross-origin request is
1when a script downloaded from the origin domain http://domain.com uses fetch() or XMLHttpRequest to make a request to a cross domain such as http://cross.domain.com (a subdomain of the origin domain) or to http://example.com (a completely different domain). This is common, for example, when you embed reusable components such as a chat component into a web page: the web page and the chat component files are downloaded from http://domain.com, but the chat server is at http://chat.domain.com, so the chat component must make cross-origin requests to the chat server. This kind of setup exposes to cross-site request forgery (CSRF) attacks, and the CORS protocol has been established to protect against this kind of attacks. For security reasons, browsers by default do not allow cross-origin requests, unless the response from the cross domain contains the right CORS headers. CrossOriginHandler relieves server-side web applications from handling CORS headers explicitly. You can set up your Handler tree with the CrossOriginHandler, configure it, and it will take care of the CORS headers separately from your application, where you can concentrate on the business logic. The Handler tree structure looks like the following: Server âââ CrossOriginHandler âââ ContextHandler /app âââ AppHandler The most important CrossOriginHandler configuration parameter that must be configured is allowedOrigins, which by default is the empty set, therefore disallowing all origins. You want to restrict requests to your cross domain to only origins you trust. From the chat example above, the chat server at http://chat.domain.com knows that the chat component is downloaded from the origin server at http://domain.com, so the CrossOriginHandler is configured in this way: CrossOriginHandler crossOriginHandler = new CrossOriginHandler(); // The allowed origins are regex patterns. crossOriginHandler.setAllowedOriginPatterns(Set.of(\"http://domain\\\\.com\")); Browsers send cross-origin requests in two ways: Directly, if the cross-origin request meets some simple criteria. By issuing a hidden preflight request before the actual cross-origin request, to verify with the server if it is willing to reply properly to the actual cross-origin request. Both preflight requests and cross-origin requests will be handled by CrossOriginHandler, which will analyze the request and possibly add appropriate CORS response headers. By default, preflight requests are not delivered to the CrossOriginHandler child Handler, but it is possible to configure CrossOriginHandler by setting deliverPreflightRequests=true so that the web application can fine-tune the CORS response headers. Another important CrossOriginHandler configuration parameter is allowCredentials, which controls whether cookies and authentication headers that match the cross-origin request to the cross domain are sent in the cross-origin requests. By default, allowCredentials=false so that cookies and authentication headers are not sent in cross-origin requests. If the application deployed in the cross domain requires cookies or authentication, then you must set allowCredentials=true, but you also need to restrict the allowed origins only to the ones your trust, otherwise your cross domain application will be vulnerable to CSRF attacks. For more CrossOriginHandler configuration options, refer to the CrossOriginHandler javadocs. StateTrackingHandler is a troubleshooting Handler that tracks whether Handler/Request/Response asynchronous APIs are properly used by applications.</p> Asynchronous APIs are notoriously more difficult to troubleshoot than blocking APIs, and may be subject to restrictions that applications need to respect (a typical case is that they cannot perform blocking operations). For example, a Handler implementation whose handle(...) method returns true must eventually complete the callback passed to handle(...) (for more details on the Handler APIs, see this section). When an application forgets to complete the callback passed to handle(...), the HTTP response may not be sent to the client, but it will be difficult to troubleshoot why the client is not receiving responses. StateTrackingHandler helps with this troubleshooting because it tracks the callback passed to handle(...) and emits an event if the callback is not completed within a configurable timeout: StateTrackingHandler stateTrackingHandler = new StateTrackingHandler(); // Emit an event if the Handler callback is not completed with 5 seconds. stateTrackingHandler.setHandlerCallbackTimeout(5000); By default, events are logged at warning level, but it is possible to specify a listener to be notified of the events tracked by StateTrackingHandler: StateTrackingHandler stateTrackingHandler = new StateTrackingHandler(new StateTrackingHandler.Listener() { @Override public void onHandlerCallbackNotCompleted(Request request, StateTrackingHandler.ThreadInfo handlerThreadInfo) { // Your own event handling logic. } }); // Emit an event if the Handler callback is not completed with 5 seconds. stateTrackingHandler.setHandlerCallbackTimeout(5000); Other events tracked by StateTrackingHandler are demand callbacks that block, writes that do not complete their callbacks, or write callbacks that block. The complete list of events is specified by the StateTrackingHandler.Listener class (javadocs). DefaultHandler is a terminal Handler that always returns true from its handle(...) method and performs the following: Serves the favicon.ico Jetty icon when it is requested Sends a HTTP 404 response for any other request The HTTP 404 response content nicely shows a HTML table with all the contexts deployed on the Server instance DefaultHandler is set directly on the server, for example: Server server = new Server(); server.setDefaultHandler(new DefaultHandler(false, true)); Connector connector = new ServerConnector(server); server.addConnector(connector); // Add a ContextHandlerCollection to manage contexts. ContextHandlerCollection contexts = new ContextHandlerCollection(); // Link the contexts to the Server. server.setHandler(contexts); server.start(); The Handler tree structure looks like the following: Server âââ ContextHandlerCollection â âââ ContextHandler 1 â :ââ ... â âââ ContextHandler N âââ DefaultHandler In the example above, ContextHandlerCollection will try to match a request to one of the contexts; if the match fails, Server will call the DefaultHandler that will return a HTTP 404 with an HTML page showing the existing contexts deployed on the Server. DefaultHandler just sends a nicer HTTP 404 response in case of wrong requests from clients. Jetty will send an HTTP 404 response anyway if DefaultHandler has not been set. EagerContentHandler reads eagerly the HTTP request content, and invokes the next Handler in the Handler tree when the request content has been read. EagerContentHandler should be installed when web applications use blocking I/O to read the request content, which is the typical case for Servlet or RESTful (JAX-RS) web applications. Because the request content is read eagerly and asynchronously, the web application will never (or rarely) block while reading the request content. In this way, the application obtains the benefits of asynchronous I/O without forcing web application developers to use more complicated asynchronous I/O APIs. The Handler tree structure looks like the following: Server âââ (GzipHandler) // optional âââ EagerContentHandler âââ ContextHandler /app âââ AppHandler EagerContentHandler should be installed in the Handler tree after other Handlers that may modify or transform the request content, like for example the GzipHandler. EagerContentHandler eagerly reads request content in the following cases: Form request content. MultiPart request content. Any other type of request content. For Form request content, EagerContentHandler reads the whole request content, parses it into a Fields object, and then invokes the next Handler. This allows web applications that use blocking API calls such as HttpServletRequest.getParameterMap() to avoid blocking, since they can directly use the already created Fields object. Similarly, for MultiPart request content, EagerContentHandler reads the whole request content, parses it into MultiPartFormData.Parts, and then invokes the next Handler. This allows web applications that use blocking API calls such as HttpServletRequest.getParts() to avoid blocking, since the can directly use the already created MultiPartFormData.Parts object. For other types of request content, EagerContentHandler reads and retains request content bytes up to a configurable amount, and then invokes the next Handler, without any further processing of the request content bytes. This allows web applications that use blocking API calls such as HttpServletRequest.getIn
1putStream() to avoid blocking in most cases (if the request is smaller than what has been configured in EagerContentHandler). ThreadLimitHandler tracks remote IP addresses and limits the number of concurrent requests (and therefore threads) for each remote IP address to protect against denial-of-service attacks. ThreadLimitHandler extends ConditionalHandler, so you may be able to restrict what ThreadLimitHandler does to only requests that match the conditions (for example, only to POST requests, or only for certain request URIs, etc.) The remote IP address can be derived from the network, or from the Forwarded (or the now obsolete X-Forwarded-For) HTTP header. The Forwarded header is typically present in requests that have been forwarded to Jetty by a reverse proxy such as HAProxy, Nginx, Apache, etc. Note that ThreadLimitHandler is different from QoSHandler in that it limits the number of concurrent requests per remote IP address, while QoSHandler limits the total number of concurrent requests. Note also that ThreadLimitHandler is different from DoSHandler in that it limits the number of concurrent requests per remote IP address, while DoSHandler limits the request rate per remote IP address. DoSHandler tracks remote clients (in a pluggable way, by default using the remote IP address), and limits the rate of requests for each remote client, to protect against denial-of-service attacks. DoSHandler extends ConditionalHandler, so you may be able to restrict what DoSHandler does to only requests that match the conditions (for example, only to POST requests, or only for certain request URIs, etc.) DoSHandler allows you to specify how to identify a remote client (by default using the remote IP address, but this is configurable), and the algorithm to use to calculate the rate of requests for each remote client (by default the Leaky Bucket Algorithm). If a remote client exceeds the configured request rate, DoSHandler forwards the request handling to a configurable Request.Handler that allows you to decide how to handle the request. DosHandler provides two such Request.Handlers out of the box: StatusRejectHandler (the default) that responds with a configurable HTTP status code (by default 429 Too Many Requests) DelayedRejectHandler that delays the request handling by a configurable timeout, and then forwards to request handling to another Request.Handler (by default StatusRejectHandler). Delaying the request handling is of little cost for the server (since the request is delayed asynchronously), but the attacker would not know whether the request it sent was processed or rejected until the timeout elapses. Hopefully, the delay forces the attacker to use more resources, and/or reduce the request rate, therefore reducing the attack impact on the server. While DoSHandler may be a good start for simple setups, denial-of-service protection is typically best performed outside the server itself, for example in load balancers or other data center network infrastructure components. Here is a simple example that shows how to use DoSHandler: class CatalogHandler extends Handler.Abstract { @Override public boolean handle(Request request, Response response, Callback callback) { // Implement the catalog application. callback.succeeded(); return true; } } Server server = new Server(); ServerConnector connector = new ServerConnector(server); server.addConnector(connector); // Create and configure DoSHandler. DoSHandler dosHandler = new DoSHandler( // Identify remote clients by IP address. DoSHandler.ID_FROM_REMOTE_ADDRESS, // Allow 50 requests/s per remote client. new DoSHandler.LeakingBucketTrackerFactory(50), // When the request rate is exceeded, delay for 10s and then respond with 429. new DoSHandler.DelayedRejectHandler(10000, -1, new DoSHandler.StatusRejectHandler()), // Limit the number of remote clients. 5000 ); server.setHandler(dosHandler); // Protect the catalog application by wrapping CatalogHandler with DoSHandler. dosHandler.setHandler(new CatalogHandler()); server.start(); For other denial-of-service protections, see also QoSHandler and ThreadLimitHandler. GracefulHandler allows to stop the Jetty server in a graceful way, by rejecting new requests but allowing existing requests to complete within a configurable timeout. In this way, existing requests can be completed normally rather than with failures caused by the fact that the server is stopping; for example, stopping the server causes all TCP connections to be closed, so trying to write a response will result in a failure. In order to stop Jetty gracefully, you need the following: Install the GracefulHandler, typically just after the Server at the root of the Handler tree. Configure Server.stopTimeout to a positive value. When the Server component is stopped, it will check the Server.stopTimeout, and if positive, it will initiate a graceful shutdown by notifying all components that implement the Graceful interface that the shutdown has been initiated. GracefulHandler implements Graceful, so it will start rejecting new requests with status code 503 Service Available, but will allow existing requests to complete for a period of time up to Server.stopTimeout. When all existing requests have completed, the Server stops all Connectors, closes all connections, and finally stops all the components. This is how you configure and use GracefulHandler: Server server = new Server(); // Install the GracefulHandler. GracefulHandler gracefulHandler = new GracefulHandler(); server.setHandler(gracefulHandler); // Set the Server stopTimeout to wait at most // 10 seconds for existing requests to complete. server.setStopTimeout(10_000); // Add one web application. class MyWebApp extends Handler.Abstract { @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { // Implement your web application. callback.succeeded(); return true; } } ContextHandler contextHandler = new ContextHandler(new MyWebApp(), \"/app\"); gracefulHandler.setHandler(contextHandler); server.start(); The Handler tree structure looks like the following: Server âââ GracefulHandler âââ ContextHandler âââ MyWebApp MovedContextHandler allows you to redirect an old URI to a new one, specifying the HTTP redirect code. Use of this class is less flexible than using the RewriteHandler with a redirect rule, because it unconditionally redirects old URIs to the new URIs, while a RewriteHandler redirect rule performs the redirection only if the rule matches. Server server = new Server(); // Install the MovedContextHandler to redirect from // http://olddomain.com/path to http://newdomain.com/ctx/path. MovedContextHandler movedContextHandler = new MovedContextHandler(); movedContextHandler.setVirtualHosts(List.of(\"olddomain.com\")); movedContextHandler.setContextPath(\"/\"); // Redirect permanently. movedContextHandler.setStatusCode(HttpStatus.MOVED_PE
1RMANENTLY_301); // Redirect to the new domain. movedContextHandler.setRedirectURI(\"https://newdomain.com/ctx\"); // Keep the URI path, but discard the query. movedContextHandler.setDiscardQuery(true); server.setHandler(movedContextHandler); server.start(); The section about ContextHandlerCollection showed how it is possible to split handling of HTTP requests across different web applications. You can also split the handling of HTTP requests within the same web application, so that they are handled by different Handlers, to separate different concerns within a single web application. For example, a shop web application with a context path of /shop may want to handle requests to browse the shop catalog separately from requests that manage the shopping cart, separately from requests that perform the checkout. A typical way to separate these concerns is to design the request URIs so that each feature is identified by a different path in context, that is the request URI relative to the context path. In this case, requests to browse the shop catalog can have a URI path of /shop/catalog/*, while requests that manage the shopping cart can have a URI path of /shop/cart/*, and requests that perform the checkout can have a URI path of /shop/checkout/*. PathMappingsHandler supports exactly this use case: Server server = new Server(); ContextHandler contextHandler = new ContextHandler(\"/shop\"); server.setHandler(contextHandler); PathMappingsHandler pathMappings = new PathMappingsHandler(); contextHandler.setHandler(pathMappings); // Configure PathMappingsHandler for the different paths in context. pathMappings.addMapping(PathSpec.from(\"/catalog/*\"), new CatalogHandler()); pathMappings.addMapping(PathSpec.from(\"/cart/*\"), new CartHandler()); pathMappings.addMapping(PathSpec.from(\"/checkout/*\"), new CheckoutHandler()); The Handler tree structure looks like the following: Server âââ ContextHandler /shop âââ PathMappingsHandler âââ CatalogHandler /catalog/* âââ CartHandler /cart/* âââ CheckoutHandler /checkout/* The paths configured in PathMappingsHandler are the paths after the context path. Class PathSpec is used to specify the paths, and supports both Servlet path mappings and regular expression path mappings. The Handlers children of PathMappingsHandler may extend ConditionalHandler to further control the conditions under which the Handler is invoked. For example, a LoginHandler that extends ConditionalHandler may be configured to only accept POST requests. SecurityHandler allows to configure authentication and authorization for your web applications, and it is discussed in details in this section. ConnectHandler provides support for the HTTP CONNECT method, and it is used in forward proxies, as detailed in this section. ProxyHandler provides proxying capabilities for two use cases: Forward proxying, implemented by ProxyHandler.Forward. A forward proxy is chosen by clients (for example, it is configured in browsers or in HttpClient), and it is typically used intercept an organizationâs HTTP requests for sake of providing security or selective access to domains or resources. Some forward proxies apply transformations to HTTP messages or their content as they are forwarded (for example, rewriting of URIs in HTML documents). Reverse proxying, implemented by ProxyHandler.Reverse. A reverse proxy, or gateway, is an intermediary that acts as an origin server. Clients cannot tell whether they are connecting to a reverse proxy or directly to the origin server: from the client point of view, the reverse proxy is the origin server. Reverse proxies receive requests and forward them to another server, and are typically used for TLS offloading, caching, and load balancing. ProxyHandler.Forward and ProxyHandler.Reverse are typically subclassed to implement the custom logic that you want to apply in either case, and to configure the HttpClient instance, for example by specifying different HttpClient transports. The most common methods to override are the following (consult the javadocs for the full list): newHttpClient() to customize the HttpClient transport.
1configureHttpClient(...) to customize the HttpClient configuration. handle(...) to customize the proxy-to-server request and proxy-to-client response, for example to deny certain requests. newProxyToServerRequest(...) to customize the proxy-to-server request. newProxyToServerRequestContent(...) to customize the proxy-to-server request content. newServerToProxyResponseListener(...) to customize the server-to-proxy response. You may want to override newHttpClient() to customize the HttpClient transport, which is by default only HTTP/1.1, to also support HTTP/2, as shown below for ProxyHandler.Forward (but the same could be done for ProxyHandler.Reverse): Server server = new Server(); ServerConnector connector = new ServerConnector(server); server.addConnector(connector); // Customize the forward proxy's HttpClient transports. ProxyHandler.Forward forwardProxy = new ProxyHandler.Forward() { @Override protected HttpClient newHttpClient() { ClientConnector clientConnector = new ClientConnector(); ClientConnectionFactory.Info http11 = HttpClientConnectionFactory.HTTP11; ClientConnectionFactory.Info http2 = new ClientConnectionFactoryOverHTTP2.HTTP2(new HTTP2Client(clientConnector)); return new HttpClient(new HttpClientTransportDynamic(clientConnector, http11, http2)); } }; server.setHandler(forwardProxy); server.start(); HTTP clients, such as browsers or HttpClient, interact with forward proxies in two ways: When the request is plain-text, using the http scheme, the request is sent to the forward proxy with little modifications. The forward proxy typically just forwards the request to the origin server. When the request is secure, using the https scheme, the client first sends an HTTP CONNECT request to the forward proxy to establish a tunnel to the origin server. Then the client sends the original request through the tunnel, and the forward proxy only acts as a pass-through for the encrypted bytes and cannot decrypt them. The Jetty component that manages HTTP CONNECT requests and establishes tunnels to origin server is ConnectHandler. A forward proxy that only supports plain-text requests has the following simple Handler tree structure: Server âââ ProxyHandler.Forward You can override ProxyHandler.Forward.handle(...) to deny requests to certain URIs, or to certain domains: Server server = new Server(); ServerConnector connector = new ServerConnector(server); server.addConnector(connector); // Customize the forward proxy's HttpClient transports. ProxyHandler.Forward forwardProxy = new ProxyHandler.Forward() { @Override public boolean handle(Request clientToProxyRequest, Response proxyToClientResponse, Callback proxyToClientCallback) { String domain = Request.getServerName(clientToProxyRequest); // Allow requests to non-bad domains. if (!domain.contains(\".bad.com\")) return super.handle(clientToProxyRequest, proxyToClientResponse, proxyToClientCallback); // Deny requests to bad domains. Response.writeError(clientToProxyRequest, proxyToClientResponse, proxyToClientCallback, HttpStatus.FORBIDDEN_403); return true; } }; server.setHandler(forwardProxy); server.start(); On the other hand, a forward proxy that supports both plain-text and secure requests has the following Handler tree structure: Server âââ ConnectHandler âââ ProxyHandler.Forward If your forward proxy only accepts secure requests (see also SecuredRedirectHandler), you can also configure it with just ConnectHandler: Server âââ ConnectHandler You can configure ConnectHandler with a white list of origin servers the forward proxy is allowed to connect to. Similarly, you can configure ConnectHandler with a black list of origin servers the forward proxy is forbidden to connect to. You may need to add authentication to the forward proxy. For simpler setups, authentication can be implemented by overriding ConnectionHandler.handleAuthentication(...) for CONNECT requests, and by overriding ProxyHandler.Forward.handle(...) for plain-text requests. Full-blown authentication support can be achieved using SecurityHandler: Server âââ SecurityHandler âââ ConnectHandler âââ ProxyHandler.Forward Forward proxies are configured in HttpClient as described
1in this section. Reverse proxy acts as origin servers (from the client point of view) and process incoming requests typically by forwarding them to a backend server, although they can also directly return cached responses. A simple reverse proxy server has the following Handler tree structure: Server âââ ProxyHandler.Reverse A reverse proxy that forwards requests to a backend server, for example, may be configured to accept requests at https://domain.com/path and forward them to the backend server at http://backend1/proxy/path: Server server = new Server(); ServerConnector connector = new ServerConnector(server); server.addConnector(connector); // Rewrite the client URI to the backend server. ProxyHandler.Reverse reverseProxy = new ProxyHandler.Reverse( clientToProxyRequest -> HttpURI.build(\"http://backend1/proxy/\" + clientToProxyRequest.getHttpURI().getPathQuery()) ); server.setHandler(reverseProxy); server.start(); You can implement a very simple stateless load balancer in this way: Server server = new Server(); ServerConnector connector = new ServerConnector(server); server.addConnector(connector); // Rewrite the client URI to the backend server. AtomicLong counter = new AtomicLong(); ProxyHandler.Reverse reverseProxy = new ProxyHandler.Reverse( clientToProxyRequest -> { // Even goes to backend1, odd goes to backend2. long index = counter.getAndIncrement(); int turn = (index & 1) == 0 ? 1 : 2; String backendHost = \"backend\" + turn; // Rewrite the URI to the chosen backend. return HttpURI.build() .scheme(\"http\") .host(backendHost) .path(\"/proxy/\" + clientToProxyRequest.getHttpURI().getPathQuery()); } ); server.setHandler(reverseProxy); server.start(); Reverse proxies do not typically need to be set up with a ConnectHandler. Clients typically only send HTTP CONNECT requests to forward proxies, not to reverse proxies. Reverse proxies can be set up to communicate with the backend using a protocol different from the one used on the frontend. For example, it is possible to set up a reverse proxy that accepts on the frontend both HTTP/1.1 and HTTP/2 over network, both plain-text and secure, and communicates with the backend using FastCGI over Unix-Domain sockets. This allows you to use WordPress to serve your website through Jetty: see this section for more information. Handlers are easy to write, but often web applications have already been written using the Jakarta EE APIs, using Servlets and Filters. ServletContextHandler is a ContextHandler that provides support for the Jakarta EE Servlet APIs and implements the behaviors required by the Servlet specification. However, differently from WebAppContext, it does not require web application to be packaged as a *.war, nor it requires a web.xml for configuration. With ServletContextHandler you can just put all your Servlet components in a *.jar and configure each component using the ServletContextHandler APIs, in a way equivalent to what you would write in a web.xml. The Maven artifact coordinates depend on the version of Jakarta EE you want to use, and they are: <dependency> <groupId>org.eclipse.jetty.ee{8,9,10,11}</groupId> <artifactId>jetty-ee{8,9,10,11}-servlet</artifactId> <version>12.1.13</version> </dependency> For example, for Jakarta EE 11 the coordinates are: org.eclipse.jetty.ee11:jetty-ee11-servlet:12.1.13. Below you can find an example of how to set up a Jakarta EE 11 ServletContextHandler: public class ShopCartServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) { // Implement the shop cart functionality. } } Server server = new Server(); Connector connector = new ServerConnector(server); server.addConnector(connector); // Add the CrossOriginHandler to protect from CSRF attacks. CrossOriginHandler crossOriginHandler = new CrossOriginHandler(); crossOriginHandler.setAllowedOriginPatterns(Set.of(\"http://domain.com\")); crossOriginHandler.setAllowCredentials(true); server.setHandler(crossOriginHandler); // Create a ServletContextHandler with contextPath. ServletContextHandler context = new ServletContextHandler(); context.setContextPath(\"/shop\"); // Link the context to the server. crossOriginHandler.setHandler(context); // Add the Servlet implementing the cart functionality to the context. ServletHolder servletHolder = context.addServlet(ShopCartServlet.class, \"/cart/*\"); // Configure the Servlet with init-parameters. servletHolder.setInitParameter(\"maxItems\", \"128\"); server.start(); The Handler and Servlet components tree structure looks like the following: Server âââ ServletContextHandler /shop âââ ShopCartServlet /cart/* âââ CrossOriginFilter /* Note how the Servlet components (they are not Handlers) are represented in italic. Note also how adding a Servlet or a Filter returns a holder object that can be used to specify additional configuration for that particular Servlet or Filter, for example initialization parameters (equivalent to <init-param> in web.xml). When a request arrives to ServletContextHandler the request URI will be matched against the Filters and Servlet mappings and only those that match will process the request, as dictated by the Servlet specification. ServletContextHandler is a terminal Handler, that is it always returns true from its handle(...) method when invoked. Server applications must be careful when creating the Handler tree to put ServletContextHandlers as last Handlers in any Handler.Collection or as children of a ContextHandlerCollection. WebAppContext is a ServletContextHandler that autoconfigures itself by reading a web.xml Servlet configuration file. The Maven artifact coordinates depend on the version of Jakarta EE you want to use, and they are: <dependency> <groupId>org.eclipse.jetty.ee{8,9,10,11}</groupId> <artifactId>jetty-ee{8,9,10,11}-webapp</artifactId> <version>12.1.13</version> </dependency> Jakarta EE web applications can specify a *.war file or a directory with the structure of a *.war file to WebAppContext to deploy a standard Jakarta EE web application packaged as defined by the Servlet specification. Where web applications using ServletContextHandler must manually invoke methods to add Servlets and Filters as described
1in this section, WebAppContext reads WEB-INF/web.xml to add Servlets and Filters, and also enforces a number of restrictions defined by the Servlet specification, in particular related to class loading. Server server = new Server(); Connector connector = new ServerConnector(server); server.addConnector(connector); // Create a WebAppContext. WebAppContext context = new WebAppContext(); // Link the context to the server. server.setHandler(context); // Configure the path of the packaged web application (file or directory). context.setWar(\"/path/to/webapp.war\"); // Configure the contextPath. context.setContextPath(\"/app\"); server.start(); The Jakarta EE Servlet specification requires that a Jakarta EE web application class loader must load classes found in WEB-INF/classes and WEB_INF/lib in preference to using the parent class loader. This is significantly different to typical Java class loaders where loaders first delegate to their parent class loader. For Servlet specification compliant web applications, the typical parent-first class loading model is inverted. Furthermore, the Servlet specification requires that Jakarta EE web applications cannot load or otherwise access the Servlet Container implementation classes, also called hidden classes (previously called server classes). Jakarta EE web applications receive the HTTP request object as an instance of the jakarta.servlet.http.HttpServletRequest interface, and cannot downcast it to the Jetty specific implementation of that interface to access Jetty specific features â this ensures maximum web application portability across Servlet Container implementations. Lastly, the Servlet specification requires that specific classes are protected classes (previously called system classes), in that they cannot be replaced by the web application loader and normal class loader priority applies. These are classes such as jakarta.servlet.http.HttpServletRequest and JDK classes such as java.lang.String or java.sql.Connection. WebAppContext implements this class loader logic using a single class loader, WebAppClassLoader, with filtering capabilities: when it loads a class, it checks whether the class is a protected class or a hidden class. When WebAppClassLoader is asked to load a class, it first tries to find the class locally (since it must use the inverted child-first model); if the class is found, and it is not a protected class, the class is loaded; otherwise the class is not found locally. If the class is not found locally, the parent class loader is asked to load the class; the parent class loader uses the standard parent-first model, so it delegates the class loading to its parent, and so on. If the class is found, and it is not a hidden class, the class is loaded; otherwise the class is not found and a ClassNotFoundException is thrown. Unfortunately, the Servlet specification does not define exactly which classes are hidden classes and which classes are protected classes. However, Jetty picks good defaults and allows server applications to customize hidden classes and protected classes in WebAppContext. Below you can find an example of how to set up additional classloading configuration, including hidden and protected classes in code: Server server = new Server(); Connector connector = new ServerConnector(server); server.addConnector(connector); // Create a WebAppContext. WebAppContext context = new WebAppContext(); // Keep Servlet specification behaviour. context.setParentLoaderPriority(false); // Add hidden classes. context.getHiddenClassMatcher().add( // All classes from this package are hidden. \"org.example.package.\", // This specific class is not hidden. \"-org.example.package.SpecificClass\", // All classes from this location are hidden. \"file:/usr/local/server/lib/some.jar\" ); // Add protected classes. context.getProtectedClassMatcher().add( // This class is protected. \"org.example.package.SpecificClass\", // All classes from this JPMS module are protected. \"jrt:/modulename\" ); // Add additional class-path items. String extra = String.join(File.pathSeparator, \"file:/usr/local/server/context/lib/context.jar\", \"file:/usr/local/server/context/classe
1s/\" ); context.setExtraClasspath(extra); Specifying protected and hidden classes is also possible when using Jetty as a standalone server, as explained in this section. A WebAppClassLoader may be repeatedly asked to load classes or to find resources that do not exist. In this case, the standard behavior is to try to load the class or find the resource every time, first by asking locally to the WebAppClassLoader itself, and then walking the parent ClassLoader hierarchy. CachingWebAppClassLoader is a WebAppClassLoader subclass that caches not-found attempts to load classes and find resources, so that a subsequent attempt to load a class or find a resource that does not exist is immediately responded, rather than being performed again. CachingWebAppClassLoader may therefore increase performance, at the cost of dynamic resolution of classes or resources that may become available at a later time. Below you can find an example of how to set up CachingWebAppClassLoader: // Create a WebAppContext. WebAppContext context = new WebAppContext(); // Configure a CachingWebAppClassLoader. context.setClassLoader(new CachingWebAppClassLoader(context)); // Configure the path of the packaged web application (file or directory). context.setWar(\"/path/to/webapp.war\"); // Configure the contextPath. context.setContextPath(\"/app\"); Jakarta EE web applications may want to use Jetty utility classes in their code. Typical examples are annotating web application classes with Jettyâs JMX annotations (for the Jetty server to export the instances as MBeans), or use Jettyâs HttpClient, or Jettyâs JSON support. There are two cases: The web application is using Jetty classes independently of the server. For example, using Jettyâs HttpClient, or JSON support from within a web application. The web application may be deployed on a different Servlet Container. The web application is using Jetty classes with the goal of interacting with the Jetty server. For example, annotating web application classes with Jettyâs JMX annotations, so that the server exports instances as MBeans; or extending from org.eclipse.jetty.util.component.LifeCycle so that web application components can be made part of the Jetty server component tree. The web application can only be deployed in Jetty. In the first case, it is enough to package all the Jetty libraries, and their transitive dependencies, in the web application *.war file, typically as *.jar files under WEB-INF/lib/. For example, to use Jettyâs HttpClient with HTTP/1.1 support in a web application you would need the following: my-webapp.war âââ WEB-INF âââ lib âââ jetty-client-12.1.13.jar âââ jetty-http-12.1.13.jar âââ jetty-io-12.1.13.jar âââ jetty-util-12.1.13.jar The second case is more complicated due to class loading. If the Jetty classes are present in the web applicationâs WEB-INF/lib/, they will be loaded by the web application class loader, and therefore they will be a different type with respect to the same class loaded by the server class loader. Because the web application wants to interact with the server, the Jetty JMX classes, or the Jetty component classes (such as LifeCycle) used by the web application must be the same type that the server is using. To achieve that, you need the following: The web application *.war file must not contain the Jetty library *.jar files. Protect and expose the relevant Jetty classes from the server to the web application. When interacting with the protected and hidden classes, the string patterns are interpreted as follows: For full qualified class names, the class name itself, for example org.eclipse.jetty.jmx.ObjectMBean. For packages (its sub-packages), the package name ending with a ., for example org.eclipse.jetty.util.annotation.. For *.jar files or directories, their file URI, for example file:/opt/jetty/lib/jetty-util-12.1.13.jar. For JPMS modules, their jrt URI, for example jrt:/org.eclipse.jetty.util. Any pattern that begins with - inverts the matching. For example, adding to the hidden classes the package pattern -org.eclipse.jetty.jmx. results in not hiding (and therefore exposing) classes of that package (and its sub-packages) to the web application. For example, to protect (that is, avoid that the web application provides a modified version of the same class) and expose (that is, not hiding the class to the web application) the Jetty JMX classes: // Create a WebAppContext. WebAppContext context = new WebAppContext(); // Protect the Jetty JMX classes in these packages. context.getProtectedClassMatcher().add( \"org.eclipse.jetty.util.annotation.\", \"org.eclipse.jetty.jmx.\" ); // Expose (not hide) the Jetty JMX classes in these packages. // Note the \"-\" prefix to \"not\" hide the package. context.getHiddenClassMatcher().add( \"-org.eclipse.jetty.util.annotation.\", \"-org.eclipse.jetty.jmx.\" ); If you have a Jakarta EE web application, you may want to use a DefaultServlet instead of ResourceHandler. The features are similar, but DefaultServlet is more commonly used to serve static files for Jakarta EE web applications. The Maven artifact coordinates depend on the version of Jakarta EE you want to use, and they are: <dependency> <groupId>org.eclipse.jetty.ee{8,9,10,11}</groupId> <artifactId>jetty-ee{8,9,10,11}-servlet</artifactId> <version>12.1.13</version> </dependency> Below you can find an example of how to set up DefaultServlet: // Create a ServletContextHandler with contextPath. ServletContextHandler context = new ServletContextHandler(); context.setContextPath(\"/app\"); // Add the DefaultServlet to serve static content. ServletHolder servletHolder = context.addServlet(DefaultServlet.class, \"/\"); // Configure the DefaultServlet with init-parameters. servletHolder.setInitParameter(\"maxCacheSize\", \"8388608\"); servletHolder.setInitParameter(\"dirAllowed\", \"true\"); servletHolder.setAsyncSupported(true);
1 If you wish to serve resources from a non-default location, then ResourceServlet should be used instead of the DefaultServlet. Below you can find an example of how to set up both a DefaultServlet and a ResourceServlet: // Create a ServletContextHandler with contextPath. ServletContextHandler context = new ServletContextHandler(); context.setContextPath(\"/app\"); // Add the ResourceServlet to serve static content from a specific location. ServletHolder servletHolder = context.addServlet(ResourceServlet.class, \"/static/*\"); // Configure the ResourceServlet with init-parameters. servletHolder.setInitParameter(\"baseResource\", \"/absolute/path/to/static/resources/\"); servletHolder.setInitParameter(\"pathInfoOnly\", \"true\"); servletHolder.setAsyncSupported(true); // Add the DefaultServlet to serve static content from the resource base ServletHolder defaultHolder = context.addServlet(DefaultServlet.class, \"/\"); defaultHolder.setAsyncSupported(true); The Handler API consist fundamentally of just one method: public boolean handle(Request request, Response response, Callback callback) throws Exception The code that implements the handle(...) method must respect the following contract: It may inspect Request immutable information such as URI and headers, typically to decide whether to return true or false (see below). Returning false means that the implementation will not handle the request, and it must not complete the callback parameter, nor read the request content, nor write response content. Returning true means that the implementation will handle the request, and it must eventually complete the callback parameter. The completion of the callback parameter may happen synchronously within the invocation to handle(...), or at a later time, asynchronously, possibly from another thread. If the response has not been explicitly written when the callback has been completed, the Jetty implementation will write a 200 response with no content if the callback has been succeeded, or an error response if the callback has been failed. Violating the contract above may result in undefined or unexpected behavior, and possibly leak resources. For example, returning true from handle(...), but not completing the callback parameter may result in the request or the response never be completed, likely causing the client to time out. Similarly, returning false from handle(...) but then either writing the response or completing the callback parameter will likely result in a garbled response be sent to the client, as the implementation will either invoke another Handler (that may write a response) or write a default response. Applications may wrap the request, the response, or the callback and forward the wrapped request, response and callback to a child Handler. A simple \"Hello World\" Handler is the following: class HelloWorldHandler extends Handler.Abstract.NonBlocking { @Override public boolean handle(Request request, Response response, Callback callback) { response.setStatus(200); response.getHeaders().put(HttpHeader.CONTENT_TYPE, \"text/html; charset=UTF-8\"); // Write a Hello World response. Content.Sink.write(response, true, \"\"\" <!DOCTYPE html> <html> <head> <title>Jetty Hello World Handler</title> </head> <body> <p>Hello World</p> </body> </html> \"\"\", callback); return true; } } Server server = new Server(); Connector connector = new ServerConnector(server); server.addConnector(connector); // Set the Hello World Handler. server.setHandler(new HelloWorldHandler()); server.start(); Such a simple Handler can access the request and response main features, such as reading request headers and content, or writing response headers and content. Note how HelloWorldHandler extends from Handler.Abstract.NonBlocking. This is a declaration that HelloWorldHandler does not use blocking APIs (of any kind) to perform its logic, allowing Jetty to apply optimizations (see here) that are not applied to Handlers that declare themselves as blocking. If your Handler implementation uses blocking APIs (of any kind), extend from Handler.Abstract. Note how the callback parameter is passed to Content.Sink.write(...) â a utility method that eventually calls Response.write(...), so that when the write completes, also the callback parameter is completed. Note also that because the callback parameter will eventually be completed, the value returned from handle(...) is true. In this way the Handler contract is fully respected: when true is returned, the callback will eventually be completed. A filtering Handler is a handler that perform some modification to the request or response, and then either forwards the request to another Handler or produces an error response: class FilterHandler extends Handler.Wrapper { public FilterHandler(Handler handler) { super(handler); } @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { String path = Request.getPathInContext(request); if (path.startsWith(\"/old_path/\")) { // Rewrite old paths to new paths. HttpURI uri = request.getHttpURI(); String newPath = \"/new_path/\" + path.substring(\"/old_path/\".length()); HttpURI newURI = HttpURI.build(uri).path(newPath).asImmutable(); // Modify the request object by wrapping the HttpURI. Request newRequest = Request.serveAs(request, newURI); // Forward to the next Handler using the wrapped Request. return super.handle(newRequest, response, callback); } else { // Forward to the next Handler as-is. return super.handle(request, response, callback); } } } Server server = new Server(); Connector connector = new ServerConnector(server); server.addConnector(connector); // Link the Handlers in a chain. server.setHandler(new FilterHandler(new HelloWorldHandler())); server.start(); Note how a filtering Handler extends from Handler.Wrapper and as such needs another handler to forward the request processing to, and how the two Handlers needs to be linked together to work properly. The Request object can be accessed by web applications to inspect the HTTP request URI, the HTTP request headers and read the HTTP request content. Since the Request object may be wrapped by filtering Handlers, the design decision for the Request APIs was to keep the number of virtual methods at a minimum. This minimizes the effort necessary to write Request wrapper implementations and provides a single source for the data carried by Request objects. To use the Request APIs, you should look up the relevant methods in the following order: Request virtual methods. For example, Request.getMethod() returns the HTTP method used in the request, such as GET, PO
1ST, etc. Request static methods. These are utility methods that provide more convenient access to request features. For example, the HTTP URI query is a string and can be directly accessed via the non-static method request.getHttpURI().getQuery(); however, the query string typically holds key/value parameters and applications should not have the burden to parse the query string, so the static Request.extractQueryParameters(Request) method is provided. Super class static methods. Since Request is-a Content.Source, look also for static methods in Content.Source that take a Content.Source as a parameter, so that you can pass the Request object as a parameter. Below you can find a list of the most common Request features and how to access them. Refer to the Request javadocs for the complete list. Request URI The Request URI is accessed via Request.getHttpURI() and the HttpURI APIs. Request HTTP headers The Request HTTP headers are accessed via Request.getHeaders() and the HttpFields APIs. Request cookies The Request cookies are accessed via static Request.getCookies(Request) and the HttpCookie APIs. Request parameters The Request parameters are accessed via static Request.extractQueryParameters(Request) for those present in the HTTP URI query, and via static Request.getParametersAsync(Request) for both query parameters and request content parameters received via form upload with Content-Type: application/x-www-url-form-encoded, and the Fields APIs. If you are only interested in the request content parameters received via form upload, you can use static FormFields.from(Request), see also this section. Request HTTP session The Request HTTP session is accessed via Request.getSession(boolean) and the Session APIs. For more information about how to set up support for HTTP sessions, see this section. Since Request is-a Content.Source, the section about reading from Content.Source applies to Request as well. The static Content.Source utility methods will allow you to read the request content as a string, or as an InputStream, for example. There are two special cases that are specific to HTTP for the request content: form parameters (sent when submitting an HTML form) and multipart form data (sent when submitting an HTML form with file upload). For form parameters, typical of HTML form submissions, you can use the FormFields APIs as shown here: class FormHandler extends Handler.Abstract.NonBlocking { @Override public boolean handle(Request request, Response response, Callback callback) { String contentType = request.getHeaders().get(HttpHeader.CONTENT_TYPE); if (MimeTypes.Type.FORM_ENCODED.is(contentType)) { // Convert the request content into Fields. FormFields.onFields(request, new Promise.Invocable<>() (1) { @Override public void succeeded(Fields fields) (2) { processFields(fields); // Send a simple 200 response, completing the callback. response.setStatus(HttpStatus.OK_200); callback.succeeded(); } @Override public void failed(Throwable failure) { // Reading the request content failed. // Send an error response, completing the callback. Response.writeError(request, response, callback, failure); } @Override public InvocationType getInvocationType() (3) { return InvocationType.NON_BLOCKING; } }); // The callback will be eventually completed in all cases, return true. return true; } else { // Send an error response, completing the callback, and returning true. Response.writeError(request, response, callback, HttpStatus.BAD_REQUEST_400, \"invalid request\"); return true; } } } 1 If the Content-Type is application/x-www-form-urlencoded, read the request content with FormFields. 2 When all the request content has arrived, process the Fields. 3 Specify that processing of the form fields is non-blocking. The Handler returns true, so the callback parameter must be completed. It is therefore mandatory to use CompletableFuture APIs that are invoked even when reading the request content failed, such as whenComplete(BiConsumer), handle(BiFunction), exceptionally(Function), etc. Failing to do so may result in the Handler callback parameter to never be completed, causing the request processing to hang forever. For multipart form data, typical for HTML form file uploads, you can use the MultiPartFormData.Parser APIs as shown here: class MultiPartFormDataHandler extends Handler.Abstract.NonBlocking { @Override public boolean handle(Request request, Response response, Callback callback) { String contentType = request.getHeaders().get(HttpHeader.CONTENT_TYPE); if (MimeTypes.Type.MULTIPART_FORM_DATA.is(contentType)) { // Configuration for the MultiPart parser. MultiPartConfig config = new MultiPartConfig.Builder() // By default, uploaded files are stored in this directory, to // avoid to read the file content (which can be large) in memory. .location(Path.of(\"/tmp\")) .build(); // Convert the request content into parts. MultiPartFormData.onParts(request, request, contentType, config, new Promise.Invocable<>() (1) { @Override public void succeeded(MultiPartFormData.Parts parts) (2) { // Use the Parts API to process the parts. processParts(parts); // Send a simple 200 response, completing the callback. response.setStatus(HttpStatus.OK_200); callback.succeeded(); } @Override public void failed(Throwable failure) { // Reading the request content failed. // Send an error response, completing the callback. Response.writeError(request, response, callback, failure); } @Override public InvocationType getInvocationType() (3) { return InvocationType.NON_BLOCKING; } }); // The callback will be eventually completed in all cases, return true. return true; } else { // Send an error response, completing the callback, and returning true. Response.writeError(request, response, callback, HttpStatus.BAD_REQUEST_400, \"invali
1d request\"); return true; } } } 1 If the Content-Type is multipart/form-data, parse the request content with MultiPartFormData. 2 When all the request content has arrived, process the MultiPartFormData.Parts. 3 Specify that processing of the parts is non-blocking. The Handler returns true, so the callback parameter must be completed. It is therefore mandatory to use CompletableFuture APIs that are invoked even when reading the request content failed, such as whenComplete(BiConsumer), handle(BiFunction), exceptionally(Function), etc. Failing to do so may result in the Handler callback parameter to never be completed, causing the request processing to hang forever. Application may add listeners to the Request object to be notified of particular events happening during the request/response processing. Request.addIdleTimeoutListener(Predicate<TimeoutException>) allows you to add an idle timeout listener, which is invoked when an idle timeout period elapses during the request/response processing, if the idle timeout event is not notified otherwise. When an idle timeout event happens, it is delivered to the application as follows: If there is pending demand (via Request.demand(Runnable)), then the demand Runnable is invoked and the application may see the idle timeout failure by reading from the Request, obtaining a transient failure chunk. If there is a pending response write (via Response.write(boolean, ByteBuffer, Callback)), the response write Callback is failed. If neither of the above, the idle timeout listeners are invoked, in the same order they have been added. The first idle timeout listener that returns true stops the Jetty implementation from invoking the idle timeout listeners that follow. The idle timeout listeners are therefore invoked only when the application is really idle, neither trying to read nor trying to write. An idle timeout listener may return true to indicate that the idle timeout should be treated as a fatal failure of the request/response processing; otherwise the listener may return false to indicate that no further handling of the idle timeout is needed from the Jetty implementation. When idle timeout listeners return false, then any subsequent idle timeouts are handled as above. In the case that the application does not initiate any read or write, then the idle timeout listeners are invoked again after another idle timeout period. Request.addFailureListener(Consumer<Throwable>) allows you to add a failure listener, which is invoked when a failure happens during the request/response processing. When a failure happens during the request/response processing, then: The pending demand for request content, if any, is invoked; that is, the Runnable passed to Request.demand(Runnable) is invoked. The callback of an outstanding call to Response.write(boolean, ByteBuffer, Callback), if any, is failed. The failure listeners are invoked, in the same order they have been added. Failure listeners are invoked also in case of idle timeouts, in the following cases: At least one idle timeout listener returned true to indicate to the Jetty implementation to treat the idle timeout as a fatal failure. There are no idle timeout listeners. Failures reported to a failure listener are always fatal failures; see also this section about fatal versus transient failures. This means that it is not possible to read or write from a failure listener: the read returns a fatal failure chunk, and the write will immediately fail the write callback. Applications are always required to complete the Handler callback, as described here. In case of asynchronous failures, failure listeners are a good place to complete (typically by failing it) the Handler callback. Request.addCompletionListener(Consumer<Throwable>) allows you to add a completion listener, which is invoked at the very end of the request/response processing. This is equivalent to adding an HttpStream wrapper and overriding both HttpStream.succeeded() and HttpStream.failed(Throwable). Completion listeners are typically (but not only) used to recycle or dispose resources used during the request/response processing, or get a precise timing for when the request/response processing finishes, to be paired with Request.getBeginNanoTime(). Note that while failure listeners are invoked as soon as the failure happens, completion listeners are invoked only at the very end of the request/response processing: after the Callback passed to Handler.handle(Request, Response, Callback) has been completed, all c
1ontainer dispatched threads have returned, and all the response writes have been completed. In case of many completion listeners, they are invoked in the reverse order they have been added. The Response object can be accessed by web applications to set the HTTP response status code, the HTTP response headers and write the HTTP response content. The design of the Response APIs is similar to that of the Request APIs, described in this section. To use the Response APIs, you should look up the relevant methods in the following order: Response virtual methods. For example, Response.setStatus(int) to set the HTTP response status code. Request static methods. These are utility methods that provide more convenient access to response features. For example, adding an HTTP cookie could be done by adding a Set-Cookie response header, but it would be extremely error-prone. The utility method static Response.addCookie(Response, HttpCookie) is provided instead. Super class static methods. Since Response is-a Content.Sink, look also for static methods in Content.Sink that take a Content.Sink as a parameter, so that you can pass the Response object as a parameter. Below you can find a list of the most common Response features and how to access them. Refer to the Response javadocs for the complete list. Response status code The Response HTTP status code is accessed via Response.getStatus() and Response.setStatus(int). Response HTTP headers The Response HTTP headers are accessed via Response.getHeaders() and the HttpFields.Mutable APIs. The response headers are mutable until the response is committed, as defined in this section. Response cookies The Response cookies are accessed via static Response.addCookie(Response, HttpCookie), static Response.replaceCookie(Response, HttpCookie) and the HttpCookie APIs. Since cookies translate to HTTP headers, they can be added/replaces until the response is committed, as defined in this section. Since Response is-a Content.Sink, the section about writing to Content.Sink applies to Response as well. The static Content.Sink utility methods will allow you to write the response content as a string, or as an OutputStream, for example. The first call to Response.write(boolean, ByteBuffer, Callback) commits the response. Committing the response means that the response status code and response headers are sent to the other peer, and therefore cannot be modified anymore. Trying to modify them may result in an IllegalStateException to be thrown, as it is an application mistake to commit the response and then try to modify the headers. You can explicitly commit the response by performing an empty, non-last write: class FlushingHandler extends Handler.Abstract.NonBlocking { @Override public boolean handle(Request request, Response response, Callback callback) { // Set the response status code. response.setStatus(HttpStatus.OK_200); // Set the response headers. response.getHeaders().put(HttpHeader.CONTENT_TYPE, \"text/plain\"); // Commit the response with a \"flush\" write. Callback.Completable.with(flush -> response.write(false, null, flush)) // When the flush is finished, send the content and complete the callback. .whenComplete((ignored, failure) -> { if (failure == null) response.write(true, UTF_8.encode(\"HELLO\"), callback); else callback.failed(failure); }); // Return true because the callback will eventually be completed. return true; } } The Handler returns true, so the callback parameter must be completed. It is therefore mandatory to use CompletableFuture APIs that are invoked even when writing the response content failed, such as whenComplete(BiConsumer), handle(BiFunction), exceptionally(Function), etc. Failing to do so may result in the Handler callback parameter to never be completed, causing the request processing to hang forever. Jetty can perform important optimizations for the HTTP/1.1 protocol if the response content length is known before the response is committed: class ContentLengthHandler extends Handler.Abstract.NonBlocking { @Override public boolean handle(Request request, Response response, Callback callback) { // Set the response status code. response.setStatus(HttpStatus.OK_200); String content = \"\"\" { \"result\": 0, \"advice\": { \"message\"
1: \"Jetty Rocks!\" } } \"\"\"; // Must count the bytes, not the characters! byte[] bytes = content.getBytes(UTF_8); long contentLength = bytes.length; // Set the response headers before the response is committed. HttpFields.Mutable responseHeaders = response.getHeaders(); // Set the content type. responseHeaders.put(HttpHeader.CONTENT_TYPE, \"application/json; charset=UTF-8\"); // Set the response content length. responseHeaders.put(HttpHeader.CONTENT_LENGTH, contentLength); // Commit the response. response.write(true, ByteBuffer.wrap(bytes), callback); // Return true because the callback will eventually be completed. return true; } } Setting the response content length is an optimization; Jetty will work well even without it. If you set the response content length, however, remember that it must specify the number of bytes, not the number of characters. The HTTP protocol (any version) allows applications to write interim responses. An interim response has a status code in the 1xx range (but not 101), and an application may write zero or more interim response before the final response. This is an example of writing an interim 100 Continue response: class Continue100Handler extends Handler.Wrapper { public Continue100Handler(Handler handler) { super(handler); } @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { HttpFields requestHeaders = request.getHeaders(); if (requestHeaders.contains(HttpHeader.EXPECT, HttpHeaderValue.CONTINUE.asString())) { // Analyze the request and decide whether to receive the content. long contentLength = request.getLength(); if (contentLength > 0 && contentLength < 1024) { // Small request content, ask to send it by // sending a 100 Continue interim response. CompletableFuture<Void> processing = response.writeInterim(HttpStatus.CONTINUE_100, HttpFields.EMPTY) (1) // Then read the request content into a ByteBuffer. .thenCompose(ignored -> Promise.Completable.<ByteBuffer>with(p -> Content.Source.asByteBuffer(request, p))) // Then store the ByteBuffer somewhere. .thenCompose(byteBuffer -> store(byteBuffer)); // At the end of the processing, complete // the callback with the CompletableFuture, // a simple 200 response in case of success, // or a 500 response in case of failure. callback.completeWith(processing); (2) return true; } else { // The request content is too large, send an error. Response.writeError(request, response, callback, HttpStatus.PAYLOAD_TOO_LARGE_413); return true; } } else { return super.handle(request, response, callback); } } } 1 Using Response.writeInterim(...) to send the interim response. 2 The completion of the callback must take into account both success and failure. Note how writing an interim response is as asynchronous operation. As such you must perform subsequent operations using the CompletableFuture APIs, and remember to complete the Handler callback parameter both in case of success or in case of failure. This is an example of writing an interim 103 Early Hints response: class EarlyHints103Handler extends Handler.Wrapper { public EarlyHints103Handler(Handler handler) { super(handler); } @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { String pathInContext = Request.getPathInContext(request); // Simple logic that assumes that every HTML // file has associated the same CSS stylesheet. if (pathInContext.endsWith(\".html\")) { // Tell the client that a Link is coming // sending a 103 Early Hints interim response. HttpFields.Mutable interimHeaders = HttpFields.build() .put(HttpHeader.LINK, \"</style.css>; rel=preload; as=style\"); response.writeInterim(HttpStatus.EARLY_HINTS_103, interimHeaders) (1) .whenComplete((ignored, failure) -> (2) { if (failure == null) { try { // Delegate the handling to the child Handler. boolean handled = super.handle(request, response, callback); if (!handled) { // The child Handler did not produce a final response, do it here. Response.writeError(request, response, callback, HttpStatus.NOT_FOUND_404); } } catch (Throwable x) { callback.failed(x); } } else { callback.failed(failure); } }); // This Handler sent an interim response, so this Handler // (or its desce
1ndants) must produce a final response, so return true. return true; } else { // Not a request for an HTML page, delegate // the handling to the child Handler. return super.handle(request, response, callback); } } } 1 Using Response.writeInterim(...) to send the interim response. 2 The completion of the callback must take into account both success and failure. An interim response may or may not have its own HTTP headers (this depends on the interim response status code), and they are typically different from the final response HTTP headers. Some web applications (but not all of them) have the concept of a user, that is a way to identify a specific client that is interacting with the web application. The HTTP session is a feature offered by servers that allows web applications to maintain a temporary, per-user, storage for user-specific data. The storage can be accessed by the web application across multiple request/response interactions with the client. This makes the web application stateful, because a computation performed by a previous request may be stored in the HTTP session and used in subsequent requests without the need to perform again the computation. Since not all web applications need support for the HTTP session, Jetty offers this feature optionally. The Maven coordinates for the Jetty HTTP session support are: <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-session</artifactId> <version>12.1.13</version> </dependency> The HTTP session support is provided by the org.eclipse.jetty.session.SessionHandler, that must be set up in the Handler tree between a ContextHandler and your Handler implementation: class MyAppHandler extends Handler.Abstract.NonBlocking { @Override public boolean handle(Request request, Response response, Callback callback) { // Your web application implemented here. // You can access the HTTP session. Session session = request.getSession(false); return true; } } Server server = new Server(); Connector connector = new ServerConnector(server); server.addConnector(connector); // Create a ContextHandler with contextPath. ContextHandler contextHandler = new ContextHandler(\"/myApp\"); server.setHandler(contextHandler); // Create and link the SessionHandler. SessionHandler sessionHandler = new SessionHandler(); contextHandler.setHandler(sessionHandler); // Link your web application Handler. sessionHandler.setHandler(new MyAppHandler()); server.start(); The corresponding Handler tree structure looks like the following: Server âââ ContextHandler /myApp âââ SessionHandler âââ MyAppHandler With the Handlers set up in this way, you can access the HTTP session from your MyAppHandler using Request.getSession(boolean), and then use the Session APIs. The support provided by Jetty for HTTP sessions is advanced and completely pluggable, providing features such as first-level and second-level caching, eviction, etc. You can configure the HTTP session support from a very simple local in-memory configuration, to a replicated (across nodes in a cluster), persistent (for example over file system, database or memcached) configuration for the most advanced use cases. The advanced configuration of Jettyâs HTTP session support is discussed in more details in this section. Web applications may need to restrict access to resources to authenticated requests. The Jetty support for web application security is provided by the artifact at the following Maven coordinates: <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-security</artifactId> <version>12.1.13</version> </dependency> Web application security is primarily provided by org.eclipse.jetty.security.SecurityHandler, and it is covered in details in this section. Writing HTTP applications is typically simple, especially when using blocking APIs. However, there are subtle cases where it is worth clarifying what a server application should do to obtain the desired results when run by Jetty. The HTTP/1.1 RFC allows for 1xx informational responses to be sent before a real content response. Unfortunately the servlet specification does not provide a way for these to be sent, so Jetty has had to provide non-standard handling of these headers. The 100 Continue response should be sent by the server when a client sends a request with an Expect: 100-continue header, as the client will not send the body of the request until the 100 Continue response has been sent. The intent of this feature is to allow a server to inspect the headers and to tell the client to not send a request body that might be too large or insufficiently private or otherwise unable to be handled. Jetty achieves this by waiting until the input stream or reader is obtained by the filter/servlet, before sending the 100 Continue response. Thus a filter/servlet may inspect the headers of a request before getting the input stream and send an error response
1(or redirect etc.) rather than the 100 continues. class Continue100HttpServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws IOException { // Inspect the method and headers. boolean isPost = HttpMethod.POST.is(request.getMethod()); boolean expects100 = HttpHeaderValue.CONTINUE.is(request.getHeader(\"Expect\")); long contentLength = request.getContentLengthLong(); if (isPost && expects100) { if (contentLength > 1024 * 1024) { // Rejects uploads that are too large. response.sendError(HttpStatus.PAYLOAD_TOO_LARGE_413); } else { // Getting the request InputStream indicates that // the application wants to read the request content. // Jetty will send the 100 Continue response at this // point, and the client will send the request content. ServletInputStream input = request.getInputStream(); // Read and process the request input. } } else { // Process normal requests. } } } RFC 2518 defined the 102 Processing status code that can be sent: when the server has a reasonable expectation that the request will take significant time to complete. As guidance, if a method is taking longer than 20 seconds (a reasonable, but arbitrary value) to process the server SHOULD return a 102 Processing response. â RFC 2518 section 10.1 However, a later update of RFC 2518, RFC 4918, removed the 102 Processing status code for \"lack of implementation\". Jetty supports the 102 Processing status code. If a request is received with the Expect: 102-processing header, then a filter/servlet may send a 102 Processing response (without terminating further processing) by calling response.sendError(102).","title":"HTTP Server Libraries","component":"jetty","version":"12.1","name":"http","url":"/docs/jetty/12.1/programming-guide/server/http.html","titles":[{"text":"Request Processing","hash":"request-processing","id":1},{"text":"Request Processing Events","hash":"request-processing-events","id":2},{"text":"Request Logging","hash":"request-logging","id":3},{"text":"Request Customizers","hash":"request-customizers","id":4},{"text":"ForwardedRequestCustomizer","hash":"request-customizer-forwarded","id":5},{"text":"HostHeaderCustomizer","hash":"request-customizer-host","id":6},{"text":"AuthorityCustomizer","hash":"request-customizer-authority","id":7},{"text":"ProxyCustomizer","hash":"request-customizer-proxy","id":8},{"text":"RewriteCustomizer","hash":"request-customizer-rewrite","id":9},{"text":"SecureRequestCustomizer","hash":"request-customizer-secure","id":10},{"text":"Server Connectors","hash":"connector","id":11},{"text":"Acceptors","hash":"connector-acceptors","id":12},{"text":"Selectors","hash":"connector-selectors","id":13},{"text":"Multiple Connectors","hash":"connector-multiple","id":14},{"text":"Limiting Connections","hash":"connector-limiting","id":15},{"text":"Configuring Protocols","hash":"connector-protocol","id":16},{"text":"Clear-Text HTTP/1.1","hash":"connector-protocol-http11","id":17},{"text":"Encrypted HTTP/1.1 (https)","hash":"connector-protocol-http11-tls","id":18},{"text":"Clear-Text HTTP/2","hash":"connector-protocol-http2","id":19},{"text":"Encrypted HTTP/2","hash":"connector-protocol-http2-tls","id":20},{"text":"HTTP/3","hash":"connector-protocol-http3","id":21},{"text":"Using Conscrypt as SSL/TLS Provider","hash":"connector-protocol-tls-conscrypt","id":22},{"text":"Using Bouncy Castle as SSL/TLS Provider","hash":"connector-protocol-tls-bouncycastle","id":23},{"text":"SslContextFactory KeyStore Auto-Reload","hash":"connector-protocol-tls-keystore-auto-reload","id":24},{"text":"Jetty Behind a Load Balancer","hash":"connector-protocol-proxy-http11","id":25},{"text":"Server Handlers","hash":"handler","id":26},{"text":"Jetty Handlers","hash":"handler-use","id":27},{"text":"ContextHandler","hash":"handler-use-context","id":28},{"text":"ContextHandlerCollection","hash":"handler-use-context-collection","id":29},{"text":"ResourceHandlerâââStatic Content","hash":"handler-use-resource","id":30},{"text":"ConditionalHandler","hash":"handler-use-conditional","id":31}
1,{"text":"CompressionHandler","hash":"handler-use-compression","id":32},{"text":"GzipHandler","hash":"handler-use-gzip","id":33},{"text":"RewriteHandler","hash":"handler-use-rewrite","id":34},{"text":"SizeLimitHandler","hash":"handler-use-size-limit","id":35},{"text":"StatisticsHandler","hash":"handler-use-statistics","id":36},{"text":"MinimumDataRateHandler","hash":"handler-use-min-data-rate","id":37},{"text":"EventsHandler","hash":"handler-use-events","id":38},{"text":"QoSHandler","hash":"handler-use-qos","id":39},{"text":"SecuredRedirectHandlerâââRedirect from HTTP to HTTPS","hash":"handler-use-secured","id":40},{"text":"CrossOriginHandler","hash":"handler-use-cross-origin","id":41},{"text":"StateTrackingHandler","hash":"handler-use-state-tracking","id":42},{"text":"DefaultHandler","hash":"handler-use-default","id":43},{"text":"EagerContentHandler","hash":"handler-use-eager","id":44},{"text":"ThreadLimitHandler","hash":"handler-use-thread-limit","id":45},{"text":"DoSHandler","hash":"handler-use-dos","id":46},{"text":"GracefulHandler","hash":"handler-use-graceful","id":47},{"text":"MovedContextHandler","hash":"handler-use-moved","id":48},{"text":"PathMappingsHandler","hash":"handler-use-path-mappings","id":49},{"text":"SecurityHandler","hash":"handler-use-security","id":50},{"text":"ConnectHandler","hash":"handler-use-connect","id":51},{"text":"ProxyHandler","hash":"handler-use-proxy","id":52},{"text":"ProxyHandler.Forward","hash":"handler-use-proxy-forward","id":53},{"text":"ProxyHandler.Reverse","hash":"handler-use-proxy-reverse","id":54},{"text":"Servlet API Handlers","hash":"handler-use-servlet","id":55},{"text":"ServletContextHandler","hash":"handler-use-servlet-context","id":56},{"text":"WebAppContext","hash":"handler-use-webapp-context","id":57},{"text":"WebAppContext Class Loading","hash":"handler-use-webapp-context-class-loading","id":58},{"text":"CachingWebAppClassLoader","hash":"handler-use-webapp-context-class-loading-caching","id":59},{"text":"Web Applications using Jetty Libraries","hash":"handler-use-webapp-context-class-loading-jetty-l
1ibraries","id":60},{"text":"DefaultServletâââStatic Content for Servlets","hash":"handler-use-default-servlet","id":61},{"text":"Implementing Handler","hash":"handler-impl","id":62},{"text":"Hello World Handler","hash":"handler-impl-hello","id":63},{"text":"Filtering Handler","hash":"handler-impl-filter","id":64},{"text":"Using the Request","hash":"handler-impl-request","id":65},{"text":"Reading the Request Content","hash":"handler-impl-request-content","id":66},{"text":"Request Listeners","hash":"handler-impl-request-listeners","id":67},{"text":"Using the Response","hash":"handler-impl-response","id":68},{"text":"Writing the Response Content","hash":"handler-impl-response-content","id":69},{"text":"Sending Interim Responses","hash":"handler-impl-response-interim","id":70},{"text":"HTTP Session Support","hash":"session","id":71},{"text":"Securing HTTP Server Applications","hash":"security","id":72},{"text":"Writing HTTP Server Applications","hash":"application","id":73},{"text":"Sending 1xx Responses","hash":"application-1xx","id":74},{"text":"100 Continue","hash":"application-100","id":75},{"text":"102 Processing","hash":"jetty-102-processing","id":76}]},"72":{"id":72,"text":"TODO","title":"FastCGI Server Libraries","component":"jetty","version":"12.1","name":"fastcgi","url":"/docs/jetty/12.1/programming-guide/server/fastcgi.html","titles":[]},"73":{"id":73,"text":"In the vast majority of cases, server applications should use the generic, high-level, HTTP server library that also provides HTTP/2 support via the HTTP/2 ConnectionFactorys as described in details here. The low-level HTTP/2 server library has been designed for those applications that need low-level access to HTTP/2 features such as sessions, streams and frames, and this is quite a rare use case. See also the correspondent HTTP/2 client library. The Maven artifact coordinates for the HTTP/2 client library are the following: <dependency> <groupId>org.eclipse.jetty.http2</groupId> <artifactId>jetty-http2-server</artifactId> <version>12.1.13</version> </dependency> HTTP/2 is a multiplexed protocol: it allows multiple HTTP/2 requests to be sent on the same TCP connection, or session. Each request/response cycle is represented by a stream. Therefore, a single session manages multiple concurrent streams. A stream has typically a very short life compared to the session: a stream only exists for the duration of the request/response cycle and then disappears. The HTTP/2 protocol is flow controlled (see the specification). This means that a sender and a receiver maintain a flow control window that tracks the number of data bytes sent and received, respectively. When a sender sends data bytes, it reduces its flow control window. When a receiver receives data bytes, it also reduces its flow control window, and then passes the received data bytes to the application. The application consumes the data bytes and tells back the receiver that it has consumed the data bytes. The receiver then enlarges the flow control window, and the implementation arranges to send a message to the sender with the number of bytes consumed, so that the sender can enlarge its flow control window. A sender can send data bytes up to its whole flow control window, then it must stop sending. The sender may resume sending data bytes when it receives a message from the receiver that the data bytes sent previously have been consumed. This message enlarges the sender flow control window, which allows the sender to send more data bytes. HTTP/2 defines two flow control windows: one for each session, and one for each stream. Letâs see with an example how they interact, assuming that in this example the session flow control window is 120 bytes and the stream flow control window is 100 bytes. The sender opens a session, and then opens stream_1 on that session, and sends 80 data bytes. At this point the session flow control window is 40 bytes (120 - 80), and stream_1's flow control window is 20 bytes (100 - 80). The sender now opens stream_2 on the same session and sends 40 data bytes. At this point, the session flow control window is 0 bytes (40 - 40), while stream_2's flow control window is 60 (100 - 40). Since now the session flow control window is 0, the sender cannot send more data bytes, neither on stream_1 nor on stream_2, nor on other streams, despite all the streams having their stream flow control windows greater than 0. The receiver consumes stream_2's 40 data bytes and sends a message to the sender with this information. At this point, the session flow control window is 40 (0 + 40), stream_1's flow control window is still 20 and stream_2's flow control window is 100 (60 + 40). If the sender opens stream_3 and would like to send 50 data bytes, it would only be able to send 40 because that is the maximum allowed by the session flow control window at this point. It is therefore very important that applications notify the fact that they have consumed data bytes as soon as possible, so that the implementation (the receiver) can send a message to the sender (in the form of a WINDOW_UPDATE frame) with the information to enlarge the flow control window, therefore reducing the possibility that sender stalls due to the flow control windows being reduced to 0. How a server application should handle HTTP/2 flow control is discussed in details in this section. The low-level HTTP/2 support is provided by org.eclipse.jetty.http2.server.RawHTTP2ServerConnectionFactory and org.eclipse.jetty.http2.api.server.ServerSessionListener: // Create a Server instance. Server server = new Server(); ServerSessionListener sessionListener = new ServerSessionListener() {}; // Create a ServerConnector with RawHTTP2ServerConnectionFactory. RawHTTP2ServerConnectionFactory http2 = new RawHTTP2ServerConnectionFactory(sessionListener); // Configure RawHTTP2ServerConnectionFactory, for example: // Configure the max number of concurrent requests. http2.setMaxConcurrentStreams(128); // Enable support for CONNECT. http2.setConnectProtocolEnabled(true); // Create the ServerConnector. ServerConnector connector = new ServerConnector(server, http2); // Add the Connector to the Server server.addConnector(connector); // Start the Server so it starts accepting connections from clients. server.start(); Where server applications using the high-level server library deal with HTTP requests and responses in Handlers, server applications using the low-level HTTP/2 server library deal directly with HTTP/2 sessions, streams and frames in a ServerSessionListener implementation. The ServerSessionListener interface defines a number of methods that are invoked by the implementation upon the occurrence of HTTP/2 events, and that server applications can override to react to those events. Please refer to the ServerSessionListener javadocs for the complete list of events. The first event is the accept event and happens when a client opens a new TCP connection to the server and the server accepts the connection. This is the first occasion where server applications have access to the HTTP/2 Session object: ServerSessionListener sessionListener = new ServerSessionListener() { @Override public void onAccept(Session session) { SocketAddress remoteAddress = session.getRemoteSocketAddress(); System.getLogger(\"http2\").log(INFO, \"Connection from {0}\", remoteAddress); } }; After connecting to the server, a compliant HTTP/2 client must send the HTTP/2 client preface, and when the server receives it, it generates the preface event on the server. This is where server applications can customize the connection settings by returning a map of settings that the implementation will send to the client: ServerSessionListener sessionListener = new ServerSessionListener() { @Override public Map<Integer, Integer> onPreface(Session session) { // Customize the settings, for example: Map<Integer, Integer> settings = new HashMap<>(); // Tell the client that HTTP/2 push is disabled. settings.put(SettingsFrame.ENABLE_PUSH, 0); return settings; } }; Receiving an HTTP request from the client, and sending a response, creates a stream that encapsulates the exchange of HTTP/2 frames that compose the request and the response. An HTTP request is made of a HEADERS frame, that carries the request method, the request URI and the request headers, and optional DATA frames that carry the request content. Receiving the HEADERS frame opens the Stream: ServerSessionListener sessionListener = new ServerSessionListener() { @Override public Stream.Listener onNewStream(Stream stream, HeadersFrame frame) { // This is the \"new stream\" event, so it's guaranteed to be a request. MetaData.Request request = (MetaData.Request)frame.getMetaData(); // Return a Stream.Listener to handle the request events, // for example request content events or a request reset. return new Stream.Listener() { // Override callback methods for events you are interested in. }; } }; Server applications should return a Stream.Listener implementation from onNewStream(...) to be notified of events generated by the client, such as DATA frames carrying request content, or a RST_STREAM frame indicating that the client wants to reset the request, or an idle timeout event indicating that the client was supposed to send more frames but it did not. The example below shows how to receive request content: ServerSessionListener sessionListener = new ServerSessionListener() { @Override public Stream.Listener onNewStream(Stream stream, HeadersFrame frame) { MetaData.Request request = (MetaData.Request)frame.getMetaData(); // Demand for request data content. stream.demand(); // Return a Stream.Listener to handle the request events. return new Stream.Listener() { @Override public void onDataAvailable(Stream stream) { Stream.Data data = stream.readData(); if (data == null) { stream.demand(); return; } // Get the content buffer. ByteBuffer buffer = data.frame().getByteBuffer(); // Consume the buffer, here - as an example - just log it. System.getLogger(\"http2\").log(INFO, \"Consuming buffer {0}\", buffer); // Tell the implementation that the buffer has been consumed. data.release(); if (!data.frame().isEndStream()) { // Demand more DATA frames when they are available. stream.demand(); } } }; } }; When onDataAvailable(Stream stream) is invoked, the demand is implicitly cancelled. Just returning from the onDataAvailable(Stream stream) method does not implicitly demand for more DATA frames. Applications must call Stream.demand() to explicitly require that onDataAvailable(Stream stream) is invoked again when more DATA frames are available. Applications that consume the content buffer within onDataAvailable(Stream stream) (for example, writing it to a file, or copying the bytes to another storage) should call Data.release() as soon as they have consumed the content buffer. This allows the implementation to reuse the buffer, reducing the memory requirements needed to handle the content buffers. Alternatively, an application may store away the Data object to consume the buffer bytes later, or pass the Data object to another asynchronous API (this is typical in proxy applications). The call to Stream.readData() tells the implementation to enlarge the stream and session flow control windows so that the sender will be able to send more DATA frames without stalling. Applications can unwrap the Data object into some other object that may be used later, provided that the release semantic is maintained: record Chunk(ByteBuffer byteBuffer, Callback callback) { } // A queue that consumers poll to consume content asynchronously. Queue<Chunk> dataQueue = new ConcurrentLinkedQueue<>(); // Implementation of Stream.Listener.onDataAvailable(Stream stream) // in case of unwrapping of the Data object for asynchronous content // consumption and demand. Stream.Listener listener = new Stream.Listener() { @Override public void onDataAvailable(Stream stream) { Stream.Data data = stream.readData(); if (data == null) { stream.demand(); return; } // Get the content buffer. ByteBuffer byteBuffer = data.frame().getByteBuffer(); // Unwrap the Data object, converting it to a Chunk. // The Data.release() semantic is maintained in the completion of the Callback. dataQueue.offer(new Chunk(byteBuffer, Callback.from(() -> { // When the buffer has been consumed, then: // A) release the Data object. data.release(); // B) possibly demand more DATA frames. if (!data.frame().isEndStream()) stream.demand(); })));
1 // Do not demand more data here, to avoid to overflow the queue. } }; Applications that implement onDataAvailable(Stream stream) must remember to call Stream.demand() eventually. If they do not call Stream.demand(), the implementation will not invoke onDataAvailable(Stream stream) to deliver more DATA frames and the application will stall threadlessly until an idle timeout fires to close the stream or the session. After receiving an HTTP request, a server application must send an HTTP response. An HTTP response is typically composed of a HEADERS frame containing the HTTP status code and the response headers, and optionally one or more DATA frames containing the response content bytes. The HTTP/2 protocol also supports response trailers (that is, headers that are sent after the response content) that also are sent using a HEADERS frame. A server application can send a response in this way: ServerSessionListener sessionListener = new ServerSessionListener() { @Override public Stream.Listener onNewStream(Stream stream, HeadersFrame frame) { // Send a response after reading the request. MetaData.Request request = (MetaData.Request)frame.getMetaData(); if (frame.isEndStream()) { respond(stream, request); return null; } else { // Demand for request data. stream.demand(); // Return a listener to handle the request events. return new Stream.Listener() { @Override public void onDataAvailable(Stream stream) { Stream.Data data = stream.readData(); if (data == null) { stream.demand(); return; } // Consume the request content. data.release(); if (data.frame().isEndStream()) respond(stream, request); else stream.demand(); } }; } } private void respond(Stream stream, MetaData.Request request) { // Prepare the response HEADERS frame. // The response HTTP status and HTTP headers. MetaData.Response response = new MetaData.Response(HttpStatus.OK_200, null, HttpVersion.HTTP_2, HttpFields.EMPTY); if (HttpMethod.GET.is(request.getMethod())) { // The response content. ByteBuffer resourceBytes = getResourceBytes(request); // Send the HEADERS frame with the response status and headers, // and a DATA frame with the response content bytes. stream.headers(new HeadersFrame(stream.getId(), response, null, false)) .thenCompose(s -> s.data(new DataFrame(s.getId(), resourceBytes, true))); } else { // Send just the HEADERS frame with the response status and headers. stream.headers(new HeadersFrame(stream.getId(), response, null, true)); } } }; A server application may decide that it does not want to accept the request. For example, it may throttle the client because it sent too many requests in a time window, or the request is invalid (and does not deserve a proper HTTP response), etc. A request can be reset in this way: ServerSessionListener sessionListener = new ServerSessionListener() { @Override public Stream.Listener onNewStream(Stream stream, HeadersFrame frame) { float requestRate = calculateRequestRate(); if (requestRate > maxRequestRate) { stream.reset(new ResetFrame(stream.getId(), ErrorCode.REFUSED_STREAM_ERROR.code), Callback.NOOP); return null; } else { // The request is accepted. MetaData.Request request = (MetaData.Request)frame.getMetaData(); // Return a Stream.Listener to handle the request events. return new Stream.Listener() { // Override callback methods for events you are interested in. }; } } }; A server application may push secondary resources related to a primary resource. A client may inform the server that it does not accept pushed resources(see this section of the specification) via a SETTINGS frame. Server applications must track SETTINGS frames and verify whether the client supports HTTP/2 push, and only push if the client supports it: // The favicon bytes. ByteBuffer faviconBuffer = BufferUtil.toBuffer(ResourceFactory.root().newResource(\"/path/to/favicon.ico\"), true); ServerSessionListener sessionListener = new ServerSessionListener() { // By default, push is enabled. private boolean pushEnabled = true; @Override public void onSettings(Session session, SettingsFrame frame) { // Check whether the client sent an ENABLE_PUSH setting. Map<Integer, Integer> settings = frame.getSettings();
1 Integer enablePush = settings.get(SettingsFrame.ENABLE_PUSH); if (enablePush != null) pushEnabled = enablePush == 1; } @Override public Stream.Listener onNewStream(Stream stream, HeadersFrame frame) { MetaData.Request request = (MetaData.Request)frame.getMetaData(); if (pushEnabled && request.getHttpURI().toString().endsWith(\"/index.html\")) { // Push the favicon. HttpURI pushedURI = HttpURI.build(request.getHttpURI()).path(\"/favicon.ico\"); MetaData.Request pushedRequest = new MetaData.Request(\"GET\", pushedURI, HttpVersion.HTTP_2, HttpFields.EMPTY); PushPromiseFrame promiseFrame = new PushPromiseFrame(stream.getId(), 0, pushedRequest); stream.push(promiseFrame, null) .thenCompose(pushedStream -> { // Send the favicon \"response\". MetaData.Response pushedResponse = new MetaData.Response(HttpStatus.OK_200, null, HttpVersion.HTTP_2, HttpFields.EMPTY); return pushedStream.headers(new HeadersFrame(pushedStream.getId(), pushedResponse, null, false)) .thenCompose(pushed -> pushed.data(new DataFrame(pushed.getId(), faviconBuffer.slice(), true))); }); } // Return a Stream.Listener to handle the request events. return new Stream.Listener() { // Override callback methods for events you are interested in. }; } };","title":"HTTP/2 Server Library","component":"jetty","version":"12.1","name":"http2","url":"/docs/jetty/12.1/programming-guide/server/http2.html","titles":[{"text":"Introduction","hash":"intro","id":1},{"text":"HTTP/2 Flow Control","hash":"flow-control","id":2},{"text":"Server Setup","hash":"setup","id":3},{"text":"Receiving a Request","hash":"request","id":4},{"text":"Sending a Response","hash":"response","id":5},{"text":"Resetting a Request","hash":"reset","id":6},{"text":"HTTP/2 Push of Resources","hash":"push","id":7}]},"74":{"id":74,"text":"In the vast majority of cases, server applications should use the generic, high-level, HTTP server library that also provides HTTP/3 support via the HTTP/3 connector and ConnectionFactorys as described in details here. The low-level HTTP/3 server library has been designed for those applications that need low-level access to HTTP/3 features such as sessions, streams and frames, and this is quite a rare use case. See also the correspondent HTTP/3 client library. The Maven artifact coordinates for the HTTP/3 server library are the following: <dependency> <groupId>org.eclipse.jetty.http3</groupId> <artifactId>jetty-http3-server</artifactId> <version>12.1.13</version> </dependency> The HTTP/3 protocol is layered on top of the underlying QUIC protocol. The QUIC protocol implementation underlying HTTP/3 is provided by Jetty classes that wrap the Quiche native library, so you need also the following artifact: <dependency> <groupId>org.eclipse.jetty.quic</groupId> <artifactId>jetty-quic-quiche-server</artifactId> <version>12.1.13</version> </dependency> Furthermore, the binding to the Quiche native library has two implementations: one based on JNA that works with Java 17 or later, and one based on JDKâs Foreign Function & Memory (FFM) APIs that works with Java 22 or later. You must choose the binding you want to use (depending on the Java version you are using), with either of the following artifacts: <dependency> <groupId>org.eclipse.jetty.quic</groupId> <artifactId>jetty-quic-quiche-jna</artifactId> <version>12.1.13</version> </dependency> <dependency> <groupId>org.eclipse.jetty.quic</groupId> <artifactId>jetty-quic-quiche-foreign</artifactId> <version>12.1.13</version> </dependency> Since Java 22, the JVM emits a warning message when Java code tries to access code in native libraries. For example with Java 25: WARNING: A restricted method in java.lang.foreign.AddressLayout has been called WARNING: java.lang.foreign.AddressLayout::withTargetLayout has been called by org.eclipse.jetty.quic.quiche.foreign.NativeHelper in an unnamed module (file:/home/simon/opensource/jetty/12.1.x/jetty-core/jetty-quic/jetty-quic-quiche/jetty-quic-quiche-foreign/target/classes/) WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module WARNING: Restricted methods will be blocked in a future release unless native access is enabled To avoid the warning, you can start the JVM as
1suggested by the warning message above, by adding --enable-native-access=ALL-UNNAMED on the command line. This grants any code in the class-path access to any native library. If you are running in JPMS mode, you can explicitly grant access just to the JPMS module(s) that require it. To grant Jetty access to the Quiche native library, use --enable-native-access=org.eclipse.jetty.quic.quiche.foreign. This grants only to the Jetty JPMS module org.eclipse.jetty.quic.quiche.foreign in the module-path access to any native library. When a client wants to establish a connection with a server, the QUIC protocol establishes the connection with the server, represented by a QUIC session. A QUIC session typically has a long life â once the connection is established, it remains active until it is not used anymore (and therefore it is closed by the idle timeout mechanism), until a fatal error occurs (for example, a network failure), or if one of the peers decides unilaterally to close the connection. There is a 1-to-1 relationship between a QUIC session and an HTTP/3 session, defined by class org.eclipse.jetty.http3.api.Session.Server. The QUIC protocol is multiplexed, that is it allows multiple, independent, QUIC streams to exchange data to and from the server, over a single connection. Therefore, a single QUIC session manages multiple concurrent QUIC streams. There is a 1-to-1 relationship between a QUIC stream and an HTTP/3 stream, defined by class org.eclipse.jetty.http3.api.Stream.Server. Each HTTP/3 request/response cycle is carried by an HTTP/3 stream, and has typically a very short life compared to the session: a stream only exists for the duration of the request/response cycle and then disappears. The low-level HTTP/3 support is provided by org.eclipse.jetty.http3.server.RawHTTP3ServerConnectionFactory and org.eclipse.jetty.http3.api.Session.Server.Listener: // Create a Server instance. Server server = new Server(); // HTTP/3 is always secure, so it always need a SslContextFactory. SslContextFactory.Server sslContextFactory = new SslContextFactory.Server(); sslContextFactory.setKeyStorePath(\"/path/to/keystore\"); sslContextFactory.setKeyStorePassword(\"secret\"); // The listener for session events. Session.Server.Listener sessionListener = new Session.Server.Listener() {}; QuicheServerQuicConfiguration serverQuicConfig = HTTP3ServerQuicConfiguration.configure(new QuicheServerQuicConfiguration(Path.of(\"/path/to/pem/dir\"))); // Configure the max number of requests per QUIC connection. serverQuicConfig.setBidirectionalMaxStreams(1024 * 1024); // Create and configure the RawHTTP3ServerConnectionFactory. RawHTTP3ServerConnectionFactory http3 = new RawHTTP3ServerConnectionFactory(sessionListener); http3.getHTTP3Configuration().setStreamIdleTimeout(15000); // Create and configure the QuicheServerConnector. QuicheServerConnector connector = new QuicheServerConnector(server, sslContextFactory, serverQuicConfig, http3); // Add the Connector to the Server. server.addConnector(connector); // Start the Server so it starts accepting connections from clients. server.start(); Where server applications using the high-level server library deal with HTTP requests and responses in Handlers, server applications using the low-level HTTP/3 server library deal directly with HTTP/3 sessions, streams and frames in a Session.Server.Listener implementation. The Session.Server.Listener interface defines a number of methods that are invoked by the implementation upon the occurrence of HTTP/3 events, and that server applications can override to react to those events. Please refer to the Session.Server.Listener javadocs for the complete list of events. The first event is the accept event and happens when a client opens a new QUIC connection to the server and the server accepts the connection. This is the first occasion where server applications have access to the HTTP/3 Session object: Session.Server.Listener sessionListener = new Session.Server.Listener() { @Override public void onAccept(Session.Server session) { SocketAddress remoteAddress = session.getRemoteSocketAddress(); System.getLogger(\"http3\").log(INFO, \"Connection from {0}\", remoteAddress); } }; After the QUIC connection has been established, both client and server must send an HTTP/3 SETTINGS frame to exchange their HTTP/3 configuration. This generates the preface event, where applications can customize the HTTP/3 configuration by returning a map of settings that the implementation will send to the other peer: Session.Server.Listener sessionListener = new Session.Server.Listener() { @Override public Map<Long, Long> onPreface(Session session) { Map<Long, Long> settings = new HashMap<>(); // Customize the settings, for example: settings.put(SettingsFrame.MAX_BLOCKED_STREAMS, 16L); return settings; } }; Receiving an HTTP request from the client, and sending a response, creates a stream that encapsulates the exchange of HTTP/3 frames that compose the request and the response. An HTTP request is made of a HEADERS frame, that carries the request method, the request URI and the request headers, and optional DATA frames that carry the request content. Receiving the HEADERS frame opens the Stream: Session.Server.Listener sessionListener = new Session.Server.Listener() { @Override public Stream.Server.Listener onRequest(Session.Server session, HeadersFrame frame) { // Return a Stream.Server.Listener to handle the request events, // for example request content events or request cancellation. return new Stream.Server.Listener() { @Override public void onRequest(Stream.Server stream, HeadersFrame frame) { // Process the request method, URI and headers. MetaData.Request request = (MetaData.Request)frame.getMetaData(); } }; } }; Server applications should return a Stream.Server.Listener implementation from onRequest(...) to be notified of events generated by the client, such as HEADERS frame carrying the request headers, DATA frames carrying request content, or a failure event indicating that the client wants to cancel the request, or an idle timeout event indicating that the client was supposed to send more frames, but it did not. The example below shows how to receive request content: Session.Server.Listener sessionListener = new Session.Server.Listener() { @Override public Stream.Server.Listener onRequest(Session.Server session, HeadersFrame frame) { // Return a Stream.Server.Listener to handle the request. return new Stream.Server.Listener() { @Override public void onRequest(Stream.Server stream, HeadersFrame frame) { // Process the request method, URI and headers. MetaData.Request request = (MetaData.Request)frame.getMetaData(); // Demand to be called back when data is available. stream.demand(); } @Override public void onDataAvailable(Stream.Server stream) { // Read a chunk of the request content. Content.Chunk chunk = stream.read(); if (chunk == null) { // No data available now, demand to be called back. stream.demand(); } else { // Get the content buffer. ByteBuffer buffer = chunk.getByteBuffer(); // Consume the buffer, here - as an example - just log it. System.getLogger(\"http3\").log(INFO, \"Consuming buffer {0}\", buffer); // Tell the implementation that the buffer has been consumed. chunk.release(); if (!chunk.isLast()) { // Demand to be called back. stream.demand(); } } } }; } }; After receiving an HTTP request, a server application must send an HTTP response. An HTTP response is typically composed of a HEADERS frame containing the HTTP status code and the response headers, and optionally one or more DATA frames containing the response content bytes. The HTTP/3 protocol also supports response trailers (that is, headers that are sent after the response content) that also are sent using a HEADERS frame. A server application can send a response in this way: Session.Server.Listener sessionListener = new Session.Server.Listener() { @Override public Stream.Server.Listener onRequest(Session.Server session, HeadersFrame frame) { MetaData.Request request = (MetaData.Request)frame.getMetaData(); return new Stream.Server.Listener() { @Override public void onRequest(Stream.Server stream, HeadersFrame frame) { // Send a response after reading the request. if (frame.isLast()) { // No request content, respond immediately. respond(stream, request); } else { // Demand to be called back when request content is available. stream.demand(); } } @Override public void onDataAvailable(Stream.Server stream) { Content.Chunk chunk = stream.read(); if (chunk == null) { stream.demand(); } else { // Consume the request content. chunk.release(); if (chunk.isLast()) respond(stream, request); else stream.demand(); } } }; } private void respond(Stream.Server stream, MetaData.Request request) { // Prepare the response HEADERS frame. // The response HTTP status and HTTP headers. MetaData.Response response = new MetaData.Response(HttpStatus.OK_200, null, HttpVersion.HTTP_3, HttpFields.EMPTY); if (HttpMethod.GET.is(request.getMethod())) { // The response content. ByteBuffer resourceBytes = getResourceBytes(request); // Send the HEADERS frame with the response status and headers, // and a DATA frame with the response content bytes. stream.respond(new HeadersFrame(response, false), new Promise.Invocable.NonBlocking<>() { @Override public void succeeded(Stream result) { result.data(new DataFrame(resourceBytes, true), Promise.Invocable.noop()); } }); } else { // Send just the HEADERS frame with the response status and headers. stream.respond(new HeadersFrame(response, true), Promise.Invocable.noop()); } } }; A server application may decide that it does not want to accept the request. For example, it may throttle the client because it sent too many requests in a time window, or the request is invali
1d (and does not deserve a proper HTTP response), etc. A request can be abruptly terminated in this way: Session.Server.Listener sessionListener = new Session.Server.Listener() { @Override public Stream.Server.Listener onRequest(Session.Server session, HeadersFrame frame) { // Return a Stream.Server.Listener to handle the request events. return new Stream.Server.Listener() { @Override public void onRequest(Stream.Server stream, HeadersFrame frame) { float requestRate = calculateRequestRate(); if (requestRate > maxRequestRate) { // The request is rejected. stream.disconnect(HTTP3ErrorCode.REQUEST_REJECTED_ERROR.code(), new RejectedExecutionException(), Promise.Invocable.noop()); } else { // The request is accepted. } } }; } };","title":"HTTP/3 Server Library","component":"jetty","version":"12.1","name":"http3","url":"/docs/jetty/12.1/programming-guide/server/http3.html","titles":[{"text":"Introduction","hash":"intro","id":1},{"text":"Server Setup","hash":"setup","id":2},{"text":"Receiving a Request","hash":"request","id":3},{"text":"Sending a Response","hash":"response","id":4},{"text":"Terminating a Request","hash":"terminate","id":5}]},"75":{"id":75,"text":"The Jetty server libraries provide the basic components and APIs to implement a network server. They build on the common Jetty I/O Architecture and provide server specific concepts. The Jetty server libraries provide I/O support for TCP/IP sockets (for both IPv4 and IPv6) and, when using Java 16 or later, for Unix-Domain sockets. Support for Unix-Domain sockets is interesting when Jetty is deployed behind a proxy or a load-balancer: it is possible to configure the proxy or load balancer to communicate with Jetty via Unix-Domain sockets, rather than via the loopback network interface. The central I/O server-side component are org.eclipse.jetty.server.ServerConnector, that handles the TCP/IP socket traffic, and org.eclipse.jetty.unixdomain.server.UnixDomainServerConnector, that handles the Unix-Domain socket traffic. ServerConnector and UnixDomainServerConnector are very similar, and while in the following sections ServerConnector is used, the same concepts apply to UnixDomainServerConnector, unless otherwise noted. A ServerConnector manages a list of ConnectionFactorys, that indicate what protocols the connector is able to speak. Recall from the Connection section of the Jetty I/O architecture that Connection instances are responsible for parsing bytes read from a socket and generating bytes to write to that socket. On the server-side, a ConnectionFactory creates Connection instances that know how to parse and generate bytes for the specific protocol they support â it can be either HTTP/1.1, or TLS, or FastCGI, or the PROXY protocol. For example, this is how clear-text HTTP/1.1 is configured for TCP/IP sockets: // Create the HTTP/1.1 ConnectionFactory. HttpConnectionFactory http = new HttpConnectionFactory(); Server server = new Server(); // Create the connector with the ConnectionFactory. ServerConnector connector = new ServerConnector(server, http); connector.setPort(8080); server.addConnector(connector); server.start(); With this configuration, the ServerConnector will listen on port 8080. Similarly, this is how clear-text HTTP/1.1 is configured for Unix-Domain sockets: // Create the HTTP/1.1 ConnectionFactory. HttpConnectionFactory http = new HttpConnectionFactory(); Server server = new Server(); // Create the connector with the ConnectionFactory. UnixDomainServerConnector connector = new UnixDomainServerConnector(server, http); connector.setUnixDomainPath(Path.of(\"/tmp/jetty.sock\")); server.addConnector(connector); server.start(); With this configuration, the UnixDomainServerConnector will listen on file /tmp/jetty.sock. ServerConnector and UnixDomainServerConnector only differ by how they are configured â for ServerConnector you specify the IP port it listens to, for UnixDomainServerConnector you specify the Unix-Domain path it listens to. Both configure ConnectionFactorys in exactly the same way. When a new socket connection is established, ServerConnector delegates to the ConnectionFactory the creation of the Connection instance for that socket connection, that is linked to the corresponding EndPoint: For every socket connection there will be an EndPoint + Connection pair. A ConnectionFactory may wrap another ConnectionFactory; for example, the TLS protocol provides encryption for any other protocol. Therefore, to supp
1ort encrypted HTTP/1.1 (also known as https), you need to configure the ServerConnector with two ConnectionFactorys â one for the TLS protocol and one for the HTTP/1.1 protocol, like in the example below: // Create the HTTP/1.1 ConnectionFactory. HttpConnectionFactory http = new HttpConnectionFactory(); // Create and configure the TLS context factory. SslContextFactory.Server sslContextFactory = new SslContextFactory.Server(); sslContextFactory.setKeyStorePath(\"/path/to/keystore.p12\"); sslContextFactory.setKeyStorePassword(\"secret\"); // Create the TLS ConnectionFactory, // setting HTTP/1.1 as the wrapped protocol. SslConnectionFactory tls = new SslConnectionFactory(sslContextFactory, http.getProtocol()); Server server = new Server(); // Create the connector with both ConnectionFactories. ServerConnector connector = new ServerConnector(server, tls, http); connector.setPort(8443); server.addConnector(connector); server.start(); With this configuration, the ServerConnector will listen on port 8443. When a new socket connection is established, the first ConnectionFactory configured in ServerConnector is invoked to create a Connection. In the example above, SslConnectionFactory creates a SslConnection and then asks to its wrapped ConnectionFactory (in the example, HttpConnectionFactory) to create the wrapped Connection (an HttpConnection) and will then link the two Connections together, in this way: Bytes read by the SocketChannelEndPoint will be interpreted as TLS bytes by the SslConnection, then decrypted and made available to the SslEndPoint (a component part of SslConnection), which will then provide them to HttpConnection. The application writes bytes through the HttpConnection to the SslEndPoint, which will encrypt them through the SslConnection and write the encrypted bytes to the SocketChannelEndPoint. Typically, a network port is associated with a specific protocol. For example, port 80 is associated with clear-text HTTP, while port 443 is associated with encrypted HTTP (that is, the TLS protocol wrapping the HTTP protocol, also known as https). In certain cases, applications need to listen to the same port for two or more protocols, or for different but incompatible versions of the same protocol, which can only be distinguished by reading the initial bytes and figuring out to what protocol they belong to. The Jetty server libraries support this case by placing a DetectorConnectionFactory in front of other ConnectionFactorys. DetectorConnectionFactory accepts a list of ConnectionFactorys that implement ConnectionFactory.Detecting, which will be called to see if one of them recognizes the initial bytes. In the example below you can see how to support both clear-text and encrypted HTTP/1.1 (i.e. both http and https) on the same network port: // Create the HTTP/1.1 ConnectionFactory. HttpConnectionFactory http = new HttpConnectionFactory(); // Create and configure the TLS context factory. SslContextFactory.Server sslContextFactory = new SslContextFactory.Server(); sslContextFactory.setKeyStorePath(\"/path/to/keystore.p12\"); sslContextFactory.setKeyStorePassword(\"secret\"); // Create the TLS ConnectionFactory, // setting HTTP/1.1 as the wrapped protocol. SslConnectionFactory tls = new SslConnectionFactory(sslContextFactory, http.getProtocol()); Server server = new Server(); // Create the detector ConnectionFactory to // detect whether the initial bytes are TLS. DetectorConnectionFactory tlsDetector = new DetectorConnectionFactory(tls); (1) // Create the connector with both ConnectionFactories. ServerConnector connector = new ServerConnector(server, tlsDetector, http); (2) connector.setPort(8181); server.addConnector(connector); server.start(); 1 Creates the DetectorConnectionFactory with the SslConnectionFactory as the only detecting ConnectionFactory. With this configuration, the detector will delegate to SslConnectionFactory to recognize the initial bytes, which will detect whether the bytes are TLS protocol bytes. 2 Creates the ServerConnector with DetectorConnectionFactory as the first ConnectionFactory, and HttpConnectionFactory as the next ConnectionFactory to invoke if the detection fails. In the example above ServerConnector will listen on port 8181. When a new socket connection is established, DetectorConnectionFactory is invoked to create a Connection, because it is the first ConnectionFactory specified in the ServerConnector list. DetectorConnectionFactory reads the initial bytes and asks to its detecting ConnectionFactorys if they recognize the bytes. In the example above, the detecting ConnectionFactory is SslConnectionFactory which will therefore detect whether the initial bytes are TLS bytes. If one of the detecting ConnectionFactorys recognizes the bytes, it creates a Connection; otherwise DetectorConnectionFactory will try the next ConnectionFactory after itself in the ServerConnector list. In the example above, the next ConnectionFactory after DetectorConnectionFactory is HttpConnectionFactory. The final result is that when new socket connection is established, the initial bytes are examined: if they are TLS bytes, a SslConnectionFactory will create a SslConnection that wraps an HttpConnection as explained here, therefore supporting https; otherwise they are not TLS bytes and an HttpConnection is created, therefore supporting http. This section explains how to use the Jetty server-side libraries to write a generic network server able to parse and generate any protocol.. Letâs supp
1ose that we want to write a custom protocol that is based on JSON but has the same semantic as HTTP; letâs call this custom protocol JSONHTTP, so that a request would look like this: { \"type\": \"request\", \"method\": \"GET\", \"version\": \"HTTP/1.1\", \"uri\": \"http://localhost/path\", \"fields\": { \"content-type\": \"text/plain;charset=ASCII\" }, \"content\": \"HELLO\" } In order to implement this custom protocol, we need to: implement a JSONHTTPConnectionFactory implement a JSONHTTPConnection parse bytes and generate bytes in the JSONHTTP format design an easy to use API that applications use to process requests and respond First, the JSONHTTPConnectionFactory: public class JSONHTTPConnectionFactory extends AbstractConnectionFactory { public JSONHTTPConnectionFactory() { super(\"JSONHTTP\"); } @Override public Connection newConnection(Connector connector, EndPoint endPoint) { JSONHTTPConnection connection = new JSONHTTPConnection(endPoint, connector.getExecutor()); // Call configure() to apply configurations common to all connections. return configure(connection, connector, endPoint); } } Note how JSONHTTPConnectionFactory extends AbstractConnectionFactory to inherit facilities common to all ConnectionFactory implementations. Second, the JSONHTTPConnection. Recall from the echo Connection example that you need to override onOpen() to call fillInterested() so that the Jetty I/O system will notify your Connection implementation when there are bytes to read by calling onFillable(). Furthermore, because the Jetty libraries are non-blocking and asynchronous, you need to use IteratingCallback to implement onFillable(): public class JSONHTTPConnection extends AbstractConnection { // The asynchronous JSON parser. private final AsyncJSON parser = new AsyncJSON.Factory().newAsyncJSON(); private final IteratingCallback callback = new JSONHTTPIteratingCallback(); public JSONHTTPConnection(EndPoint endPoint, Executor executor) { super(endPoint, executor); } @Override public void onOpen() { super.onOpen(); // Declare interest in being called back when // there are bytes to read from the network. fillInterested(); } @Override public void onFillable() { // Called from fillInterested() in onOpen() to start iteration. callback.iterate(); } private class JSONHTTPIteratingCallback extends IteratingCallback { private ByteBuffer buffer; @Override protected Action process() throws Throwable { if (buffer == null) buffer = BufferUtil.allocate(getInputBufferSize(), true); while (true) { int filled = getEndPoint().fill(buffer); if (filled > 0) { boolean parsed = parser.parse(buffer); if (parsed) { Map<String, Object> request = parser.complete(); // Allow applications to process the request. invokeApplication(request, this); // Signal that the iteration should resume when // the application completed the request processing. return Action.SCHEDULED; } // Did not receive enough JSON bytes to complete the // JSON parsing, loop around to try to read more bytes. } else if (filled == 0) { // We don't need the buffer anymore, so // don't keep it around while we are idle. buffer = null; // No more bytes to read, declare again interest for fill events. fillInterested(this); // Signal that the iteration is now SCHEDULED for fill interest callback. return Action.SCHEDULED; } else { // The other peer closed the connection, // the iteration completed successfully. return Action.SUCCEEDED; } } } @Override protected void onCompleteSuccess() { getEndPoint().close(); } @Override protected void onCompleteFailure(Throwable cause) { getEndPoint().close(cause); } } } Again, note how JSONHTTPConnection extends AbstractConnection to inherit facilities that you would otherwise need to re-implement from scratch. When JSONHTTPConnection receives a full JSON object it calls invokeApplication(â¦â) to allow the application to process the incoming request and produce a response. At this point you need to design a non-blocking asynchronous API that takes a Callback parameter so that applications can signal to the implementation when the request processing is complete (either successfully or with a failure). A simple example of this API design could be the following: Wrap the JSON Map into a JSONHTTPRequest parameter so that applications may use more specific HTTP APIs such as JSONHTTPRequest.getMethod() rather than a generic Map.get(\"method\") Provide an equivalent JSONHTTPResponse parameter so that applications may use more specific APIs such as JSONHTTPResponse.setStatus(int) rather than a generic Map.put(\"status\", 200) Provide a Callback (or a CompletableFuture) parameter so that applications may indicate when the request processing is complete This results in the following API: class JSONHTTPRequest { // Request APIs } class JSONHTTPResponse { // Response APIs } interface JSONHTTPService { void service(JSONHTTPRequest request, JSONHTTPResponse response, Callback callback); } The important part of this simple API example is the Callback parameter that makes the API non-blocking and asynchronous.","title":"Server I/O Architecture","component":"jetty","version":"12.1","name":"io-arch","url":"/docs/jetty/12.1/programming-guide/server/io-arch.html","titles":[{"text":"Creating Connections with ConnectionFactory","hash":"connection-factory","id":1},{"text":"Wrapping a ConnectionFactory","hash":"connection-factory-wrapping","id":2},{"text":"Choosing ConnectionFactory via Bytes Detection","hash":"connection-factory-detecting","id":3},{"text":"Writing a Custom ConnectionFactory","hash":"connection-factory-custom","id":4}]},"76":{"id":76,"text":"The Eclipse Jetty Project provides server-side libraries that allow you to configure and start programmatically an HTTP or WebSocket server from a main class, or embed it in your existing application. A typical example is a HTTP server that needs to expose a REST endpoint. Another example is a proxy application that receives HTTP requests, processes them, and then forwards them to third party services, for example using the Jetty client libraries. While historically Jetty is an HTTP server, it is possible to use the Jetty server-side libraries to write a generic network server that interprets any network protocol (not only HTTP). If you are interested in the low-level details of how the Eclipse Jetty server libraries work, or are interested in writing a custom protocol, look at the server I/O architecture and the server threading architecture. The Jetty server-side libraries provide: HTTP high-level support for HTTP/1.0, HTTP/1.1, HTTP/2, clear-text or encrypted, HTTP/3, for applications that want to embed Jetty as a generic HTTP server or proxy (no matter the HTTP version), via the HTTP libraries HTTP/2 low-level support, for applications that want to explicitly handle low-level HTTP/2 sessions, streams and frames, via the HTTP/2 libraries HTTP/3 low-level support, for applications that want to explicitly handle low-level HTTP/3 sessions, streams and frames, via the HTTP/3 libraries WebSocket support, for applications that want to embed a WebSocket server, via the WebSocket libraries FCGI support, to delegate requests to PHP, Python, Ruby or similar scripting languages.","title":"Server Libraries","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/programming-guide/server/index.html","titles":[]},"77":{"id":77,"text":"Sessions are a concept within the Servlet API which allow requests to store and retrieve information across the time a user spends in an application. Jetty session support has been architected to provide a core implementation that is independent of the Servlet specification. This allows programmers who use core Jetty - without the Servlet API - to still have classic Servlet session-like support for their Requests and Handlers. These core classes are adapted to each of the various Servlet specification environments to deliver classic HttpSessions for Servlets,`Filter``s, etc Full support for the session lifecycle is supported, in addition to L1 and L2 caching, and a number of pluggable options for persisting session data. Here are some of the most important concepts that will be referred to throughout the documentation: SessionIdManager responsible for allocation of unique session ids. HouseKeeper responsible for orchestrating the detection and removal of expired sessions. SessionManager responsible for managing the lifecycle of sessions. SessionHandler an implementation of SessionManager that adapts sessions to either the core or Servlet specification environment. SessionCache an L1 cache of in-use ManagedSession objects Session a session consisting of SessionData that can be associated with a Request ManagedSession a Session that supports caching and lifecycle management SessionData encapsulates the attributes and metadata associated with a Session SessionDataStore responsible for creating, persisting and reading SessionData CachingSessionDataStore an L2 cache of SessionData Diagrammatically, these concepts can be represented as: There is a maximum of one SessionIdManager per Server instance. Its purpose is to generate fresh, unique session ids and to coordinate the re-use of session ids amongst co-operating contexts. The SessionIdManager is agnostic with respect to the type of clustering technology chosen. Jetty provides a default implementation - the DefaultSessionIdManager - which should meet the needs of most users. A single instance of the DefaultSessionIdManager should be created and registered as a bean on the Server instance so that all SessionHandler's share the same instance. This is done by the Jetty session module, but can be done programmatically instead. As a fallback, when an individual SessionHandler starts up, if it does not find the SessionIdManager already present for the Server it will create and register a bean for it. That instance will be shared by the other SessionHandlers. The most important configuration parameter for the DefaultSessionIdManager is the workerName, which uniquely identifies the server in a cluster. If a workerName has not been explicitly set, then the value is derived as follows: node[JETTY_WORKER_NAME] where JETTY_WORKER_NAME is an environment variable whose value can be an integer or string. If the environment variable is not set, then it defaults to 0, yielding the default workerName of \"node0\". It is essential to change this default if you have more than one Server. Here is an example of explicitly setting up a DefaultSessionIdManager with a workerName of server3 in code: Server server = new Server(); DefaultSessionIdManager idMgr = new DefaultSessionIdManager(server); //you must set the workerName unless you set the env viable JETTY_WORKER_NAME idMgr.setWorkerName(\"server3\"); server.addBean(idMgr, true); The DefaultSessionIdManager creates a HouseKeeper, which periodically scans for, and eliminates, expired sessions (referred to as \"scavenging\"). The period of the scan is controlled by the setIntervalSec(int) method, defaulting to 600secs. Setting a negative or 0 value prevents scavenging occurring. The HouseKeeper semi-randomly adds 10% to the configured intervalSec. This is to help prevent sync-ing up of servers in a cluster that are all restarted at once, and slightly stagger their scavenge cycles to ensure any load on the persistent storage mechanism is spread out. Here is an example of creating and configuring a HouseKeeper for the DefaultSessionIdManager in code: Server server = new Server(); DefaultSessionIdManager idMgr = new DefaultSessionIdManager(server); idMgr.setWorkerName(\"server7\"); server.addBean(idMgr, true); HouseKeeper houseKeeper = new HouseKeeper(); houseKeeper.setSessionIdManager(idMgr); //set the frequency of scavenge cycles houseKeeper.setIntervalSec(600L);
1 idMgr.setSessionHouseKeeper(houseKeeper); If the DefaultSessionIdManager does not meet your needs, you can extend it, or implement the SessionIdManager interface directly. When implementing a SessionIdManager pay particular attention to the following: the getWorkerName() method must return a name that is unique to the Server instance. The workerName becomes important in clustering scenarios because sessions can migrate from node to node: the workerName identifies which node was last managing a Session. the contract of the isIdInUse(String id) method is very specific: a session id may only be reused iff it is already in use by another context. This restriction is important to support cross-context dispatch. you should be very careful to ensure that the newSessionId(HttpServletRequest request, long created) method does not return duplicate or predictable session ids. A SessionHandler is a Handler that implements the SessionManager, and is thus responsible for the creation, maintenance and propagation of sessions. There are SessionHandlers for both the core and the various Servlet environments. Note that in the Servlet environments, each ServletContextHandler or WebAppContext has at most a single SessionHandler. Both core and Servlet environment SessionHandlers can be configured programmatically. Here are some of the most important methods that you may call to customize your session setup. Note that in Servlet environments, some of these methods also have analogous Servlet API methods and/or analogous web.xml declarations and also equivalent context init params. These alternatives are noted below. setCheckingRemoteSessionIdEncoding(boolean) [Default:false] This controls whether response urls will be encoded with the session id as a path parameter when the URL is destined for a remote node. Servlet environment alternatives: org.eclipse.jetty.session.CheckingRemoteSessionIdEncoding context init parameter setMaxInactiveInterval(int) [Default:-1] This is the amount of time in seconds after which an unused session may be scavenged. Servlet environment alternatives: <session-config><session-timeout/></session-config> element in web.xml (NOTE! this element is specified in minutes but this method uses seconds). ServletContext.setSessionTimeout(int) where the timeout is configured in minutes. setHttpOnly(boolean) [Default:false] If true, the session cookie will not be exposed to client-side scripting code. Servlet environment alternatives: SessionCookieConfig.setHttpOnly(boolean) <session-config><cookie-config><http-only/></cookie-config></session-config> element in web.xml setRefreshCookieAge(int) [Default:-1] Value in seconds that controls resetting the session cookie when SessionCookieConfig.setMaxAge(int) is non-zero. See also setting the max session cookie age with an init parameter. If the amount of time since the session cookie was last set exceeds this time, the session cookie is regenerated to keep the session cookie valid. setSameSite(HttpCookie.SameSite) [Default:null] The values are HttpCookie.SameSite.NONE, HttpCookie.SameSite.STRICT, HttpCookie.SameSite.LAX. setSecureRequestOnly(boolean) [Default:true] If true and the request is HTTPS, the set session cookie will be marked as secure, meaning the client will only send the session cookie to the server on subsequent requests over HTTPS. Servlet environment alternatives: SessionCookieConfig.setSecure(true), in which case the set session cookie will always be marked as secure, even if the request triggering the creation of the cookie was not over HTTPS. <session-config><cookie-config><secure/></cookie-config></session-config> element in web.xml setSessionCookie(String) [Default:\"JSESSIONID\"] This is the name of the session cookie. Servlet environment alternatives: SessionCookieConfig.setName(String) <session-config><cookie-config><name/></cookie-config></session-config> element in web.xml org.eclipse.jetty.session.SessionCookie context init parameter. setSessionIdPathParameterName(String) [Default:\"jsessionid\"] This is the name of the path parameter used to transmit the session id on request URLs, and on encoded URLS in responses. Servlet environment alternatives: org.eclipse.jetty.session.SessionIdPathParameterName context init parameter setSessionTrackingModes(Set<SessionTrackingMode>) [Default:{SessionTrackingMode.COOKIE, SessionTrackingMode.URL}] Servlet environment alternatives: ServletContext.setSessionTrackingModes<Set<SessionTrackingMode>) defining up to three <tracking-mode>s for the <session-config> element in web.xml setUsingCookies(boolean) [Default:true] Determines whether the SessionHandler will look for session cookies on requests, and will set session cookies on responses. If false session ids must be transmitted as path params on URLs. setMaxAge(int) [Default:-1] This is the maximum number of seconds that the session cookie will be considered to be valid. By default, the cookie has no maximum validity time. See also refreshing the session cookie. Servlet environment alternatives: ServletContext.getSessionCookieConfig().setMa
1xAge(int) org.eclipse.jetty.session.MaxAge context init parameter setSessionDomain(String) [Default:null] This is the domain of the session cookie. Servlet environment alternatives: ServletContext.getSessionCookieConfig().setDomain(String) <session-config><cookie-config><domain/></cookie-config></session-config> element in web.xml org.eclipse.jetty.session.SessionDomain context init parameter setSessionPath(String) [Default:null] This is used when creating a new session cookie. If nothing is configured, the context path is used instead, defaulting to /. Servlet environment alternatives: ServletContext.getSessionCookieConfig().setPath(String) <session-config><cookie-config><path/></cookie-config></session-config> element in web.xml org.eclipse.jetty.session.SessionPath context init parameter Some statistics about the sessions for a context can be obtained from the SessionHandler, either by calling the methods directly or via JMX: getSessionsCreated() This is the total number of sessions that have been created for this context since Jetty started. getSessionTimeMax() The longest period of time a session was valid in this context before being invalidated. getSessionTimeMean() The average period of time a session in this context was valid. getSessionTimeStdDev() The standard deviation of the session validity times for this context. getSessionTimeTotal() The total time that all sessions in this context have remained valid. There is one SessionCache per SessionManager, and thus one per context. Its purpose is to provide an L1 cache of ManagedSession objects. Having a working set of ManagedSession objects in memory allows multiple simultaneous requests for the same session (ie the same session id in the same context) to share the same ManagedSession object. A SessionCache uses a SessionDataStore to create, read, store, and delete the SessionData associated with the ManagedSession. There are two ways to create a SessionCache for a SessionManager: allow the SessionManager to create one lazily at startup. The SessionManager looks for a SessionCacheFactory bean on the Server to produce the SessionCache instance. It then looks for a SessionDataStoreFactory bean on the Server to produce a SessionDataStore instance to use with the SessionCache. If no SessionCacheFactory is present, it defaults to creating a DefaultSessionCache. If no SessionDataStoreFactory is present, it defaults to creating a NullSessionDataStore. pass a fully configured SessionCache instance to the SessionManager. You are responsible for configuring both the SessionCache instance and its SessionDataStore More on SessionDataStores later, this section concentrates on the SessionCache and SessionCacheFactory. The AbstractSessionCache provides most of the behaviour of SessionCaches. If you are implementing a custom SessionCache it is strongly recommended that you extend this class because it implements the numerous subtleties of the Servlet specification. Some of the important behaviours of SessionCaches are: eviction By default, ManagedSessions remain in a cache until they are expired or invalidated. If you have many or large sessions that are infrequently referenced you can use eviction to reduce the memory consumed by the cache. When a session is evicted, it is removed from the cache but it is not invalidated. If you have configured a SessionDataStore that persists or distributes the session in some way, it will continue to exist, and can be read back in when it needs to be referenced again. The eviction strategies are: NEVER_EVICT This is the default, sessions remain in the cache until expired or invalidated. EVICT_ON_SESSION_EXIT When the last simultaneous request for a session finishes, the session will be evicted from the cache. EVICT_ON_INACTIVITY If a session has not been referenced for a configurable number of seconds, then it will be evicted from the cache. saveOnInactiveEviction This controls whether a session will be persisted to the SessionDataStore if it is being evicted due to the EVICT_ON_INACTIVITY policy. Usually sessions are written to the SessionDataStore whenever the last simultaneous request exits the session. However, as SessionDataStores` can be configured to skip some writes, this option ensures that the session will be written out. saveOnCreate Usually a session will be written through to the configured SessionDataStore when the last request for it finishes. In the case of a freshly created session, this means that it will not be persisted until the request is fully f
1inished. If your application uses context forwarding or including, the newly created session id will not be available in the subsequent contexts. You can enable this feature to ensure that a freshly created session is immediately persisted after creation: in this way the session id will be available for use in other contexts accessed during the same request. removeUnloadableSessions If a session becomes corrupted in the persistent store, it cannot be re-loaded into the SessionCache. This can cause noisy log output during scavenge cycles, when the same corrupted session fails to load over and over again. To prevent his, enable this feature and the SessionCache will ensure that if a session fails to be loaded, it will be deleted. invalidateOnShutdown Some applications want to ensure that all cached sessions are removed when the server shuts down. This option will ensure that all cached sessions are invalidated. The AbstractSessionCache does not implement this behaviour, a subclass must implement the SessionCache.shutdown() method. flushOnResponseCommit This forces a \"dirty\" session to be written to the SessionDataStore just before a response is returned to the client, rather than waiting until the request is finished. A \"dirty\" session is one whose attributes have changed, or it has been freshly created. Using this option ensures that all subsequent requests - either to the same or a different node - will see the latest changes to the session. Jetty provides two SessionCache implementations: the DefaultSessionCache and the NullSessionCache. The DefaultSessionCache retains ManagedSession objects in memory in a ConcurrentHashMap. It is suitable for non-clustered and clustered deployments. For clustered deployments, a sticky load balancer is strongly recommended, otherwise you risk indeterminate session state as the session bounces around multiple nodes. It implements the SessionCache.shutdown() method. It also provides some statistics on sessions, which are convenient to access either directly in code or remotely via JMX: current sessions The DefaultSessionCache.getSessionsCurrent() method reports the number of sessions in the cache at the time of the method call. max sessions The DefaultSessionCache.getSessionsMax() method reports the highest number of sessions in the cache at the time of the method call. total sessions The DefaultSessionCache.getSessionsTotal() method reports the cumulative total of the number of sessions in the cache at the time of the method call. If you create a DefaultSessionFactory and register it as a Server bean, a SessionManger will be able to lazily create a DefaultSessionCache. The DefaultSessionCacheFactory has all of the same configuration setters as a DefaultSessionCache. Alternatively, if you only have a single SessionManager, or you need to configure a DefaultSessionCache differently for every SessionManager, then you could dispense with the DefaultSessionCacheFactory and simply instantiate, configure, and pass in the DefaultSessionCache yourself. Server server = new Server(); DefaultSessionCacheFactory cacheFactory = new DefaultSessionCacheFactory(); //EVICT_ON_INACTIVE: evict a session after 60sec inactivity cacheFactory.setEvictionPolicy(60); //Only useful with the EVICT_ON_INACTIVE policy cacheFactory.setSaveOnInactiveEviction(true); cacheFactory.setFlushOnResponseCommit(true); cacheFactory.setInvalidateOnShutdown(false); cacheFactory.setRemoveUnloadableSessions(true); cacheFactory.setSaveOnCreate(true); //Add the factory as a bean to the server, now whenever a //SessionManager starts it will consult the bean to create a new DefaultSessionCache server.addBean(cacheFactory); If you donât configure any SessionCache or SessionCacheFactory, a SessionManager will automatically create its own DefaultSessionCache. The NullSessionCache does not actually cache any objects: each request uses a fresh ManagedSession object. It is suitable for clustered deployments without a sticky load balancer and non-clustered deployments when purely minimal support for sessions is needed. As no sessions are actually cached, of course functions like invalidateOnShutdown and all of the eviction strategies have no meaning for the NullSessionCache. There is a NullSessionCacheFactory which you can instantiate, configure and set as a Server bean to enable a SessionManager to automatically create new NullSessionCaches as needed. All of the same configuration options are available on the NullSessionCacheFactory as the NullSessionCache itself. Alternatively, if you only have a single SessionManager, or you need to configure a NullSessionCache differently for every SessionManager, then you could dispense with the NullSessionCacheFactory and simply instantiate, configure, and pass in the NullSessionCache yourself. Server server = new Server(); NullSessionCacheFactory cacheFactory = new NullSessionCacheFactory(); cacheFactory.setFlushOnResponseCommit(true); cacheFactory.setRemoveUnloadableSessions(true); cacheFactory.setSaveOnCreate(true); //Add the factory as a bean to the server, now whenever a //SessionManager starts it will consult the bean to create a new NullSessionCache server.addBean(cacheFactory); As previously mentioned, it is strongly recommended that you extend the AbstractSessionCache. Using one of the SessionCacheFactorys
1will ensure that every time a SessionManager starts it will create a new instance of the corresponding type of SessionCache. But, what if you deploy multiple web applications, and for one of them, you donât want to use sessions? Or alternatively, you donât want to use sessions, but you have one web application that now needs them? In that case, you can configure the SessionCacheFactory appropriate to the majority, and then specifically create the right type of SessionCache for the others. Hereâs an example where we configure the DefaultSessionCacheFactory to handle most web applications, but then specifically use a NullSessionCache for another: Server server = new Server(); DefaultSessionCacheFactory cacheFactory = new DefaultSessionCacheFactory(); //NEVER_EVICT cacheFactory.setEvictionPolicy(SessionCache.NEVER_EVICT); cacheFactory.setFlushOnResponseCommit(true); cacheFactory.setInvalidateOnShutdown(false); cacheFactory.setRemoveUnloadableSessions(true); cacheFactory.setSaveOnCreate(true); //Add the factory as a bean to the server, now whenever a //SessionManager starts it will consult the bean to create a new DefaultSessionCache server.addBean(cacheFactory); ContextHandlerCollection contexts = new ContextHandlerCollection(); server.setHandler(contexts); //Add a webapp that will use a DefaultSessionCache via the DefaultSessionCacheFactory WebAppContext app1 = new WebAppContext(); app1.setContextPath(\"/app1\"); contexts.addHandler(app1); //Add a webapp that uses an explicit NullSessionCache instead WebAppContext app2 = new WebAppContext(); app2.setContextPath(\"/app2\"); NullSessionCache nullSessionCache = new NullSessionCache(app2.getSessionHandler()); nullSessionCache.setFlushOnResponseCommit(true); nullSessionCache.setRemoveUnloadableSessions(true); nullSessionCache.setSaveOnCreate(true); //If we pass an existing SessionCache instance to the SessionHandler, it must be //fully configured: this means we must also provide SessionDataStore nullSessionCache.setSessionDataStore(new NullSessionDataStore()); app2.getSessionHandler().setSessionCache(nullSessionCache); A SessionDataStore mediates the storage, retrieval and deletion of SessionData. There is one SessionDataStore per SessionCache and thus one per context. Jetty provides a number of alternative SessionDataStore implementations: NullSessionDataStore Does not store SessionData, meaning that sessions will exist in-memory only. See NullSessionDataStore FileSessionDataStore Uses the file system to persist SessionData. See FileSessionDataStore for more information. GCloudSessionDataStore Uses GCloud Datastore for persisting SessionData. See GCloudSessionDataStore for more information. HazelcastSessionDataStore Uses Hazelcast for persisting SessionData. InfinispanSessionDataStore Uses Infinispan for persisting SessionData. See InfinispanSessionDataStore for more information. JDBCSessionDataStore Uses a relational database via JDBC API to persist SessionData. See JDBCSessionDataStore for more information. MongoSessionDataStore Uses MongoDB document database to persist SessionData. See MongoSessionDataStore for more information. CachingSessionDataStore Uses memcached to provide an L2 cache of SessionData while delegating to another SessionDataStore for persistence of SessionData. See CachingSessionDataStore for more information. Most of the behaviour common to SessionDataStores is provided by the AbstractSessionDataStore class. You are strongly encouraged to use this as the base class for implementing your custom SessionDataStore. Some important methods are: isPassivating() Boolean. \"True\" means that session data is serialized. Some persistence mechanisms serialize, such as JDBC, GCloud Datastore etc. Others can store an object in shared memory, e.g. Infinispan and thus donât serialize session data. In Servlet environments, whether a SessionDataStore reports that it is capable of passivating controls whether HttpSessionActivationListeners will be called. When implementing a custom SessionDataStore you need to decide whether you will support passivation or not. setSavePeriodSec(int) [Default:0] This is an interval defined in seconds. It is used to reduce the frequency with which SessionData is written. Normally, whenever the last concurrent request leaves a Session, the SessionData for that Session is always persisted, even if the only thing that changed is the lastAccessTime. If the savePeriodSec is non-zero, the SessionData will not be persisted if no session attributes changed, unless the time since the last save exceeds the savePeriod. Setting a non-zero value can reduce the load on the persistence mechanism, but in a clustered environment runs the risk that other nodes will see the session as expired because it has not been persisted sufficiently recently. setGracePeriodSec(int) [Default:3600] The gracePeriod is an interval defined in seconds. It is an attempt to deal with the non-transactional nature of sessions with regard to finding sessions that have expired. In a clustered configuration - even with a sticky load balancer - it is always possible that a session is \"live\" on a node but not yet updated in the persistent store. This means that it can be hard to determine at any given moment whether a clustered session has truly expired. Thus, we use the gracePeriod to provide a bit of leeway around the moment of expiry during scavenging: on every scavenge cycle an AbstractSessionDataStore searches for sessions that belong to the context that expired at least one gracePeriod ago infrequently the AbstractSessionDataStore searches for and summarily deletes sessions - from any context - that expired at least 10 gracePeriods ago When implementing a SessionDataStore for a particular persistence technology, you should base it off the AbstractSessionDataStore class. Firstly, it is important to understand the components of a unique key for a session suitable for storing in a persistence mechanism. Consider that although multiple contexts may share the same session id (ie cross-context dispatch), the data in those sessions must be distinct. Therefore, when storing session data in a persistence mechanism that is shared by many nodes in a cluster, the session must be identified by a combination of the id and the context. The SessionDataStores use the following information to synthesize a unique key for session data that is suitable to the particular persistence mechanism : id This is the id as generated by the SessionIdManager context The path of the context associated with the session. virtual host The first virtual host - if any - associated with the context. The SessionContext class, of which every AbstractSessionDataStore has an instance, will provide these components to you in a canonicalized form. Then you will need to implement the following methods: public boolean doExists(String id) Check if data for the given session exists in your persistence mechanism. The id is always relative to the context, see above. public void doStore(String id, SessionData data, long lastSaveTime) Store the session data into your persistence mechanism. The id is always relative to the context, see above. public SessionData doLoad(String id) Load the session from your persistent mechanism. The id is always relative to the context, see above. public Set<String> doCheckExpired(Set<String> candidates, long time) Verify which of the suggested session ids have expired since the time given, according to the data stored in your persistence mechanism. This is used during scavenging to ensure that a session that is a candidate for expiry according to this node is not in-use on another node. The sessions matching these ids will be loaded as ManagedSessions and have their normal expiration lifecycle events invoked. The id is always relative to the context, see above. public Set<String> doGetExpired(long before) Find the ids of sessions that expired at or before the time given. The sessions matching these ids will be loaded as ManagedSessions and have their normal expiration lifecycle events invoked. The id is always relative to the context, see above. public void doCleanOrphans(long time) Find the ids of sessions that expired at or before the given time, independent of the context they are in. The purpose is to find sessions that are no longer being managed by any node. These sessions may even belong to contexts that no longer exist. Thus, any such sessions must be summarily deleted from the persistence mechanism and cannot have their normal expiration lifecycle events invoked. Every SessionDataStore has a factory class that creates instances based on common configuration. All SessionDataStoreFactory implementations supp
1ort configuring: setSavePeriodSec(int) setGracePeriodSec(int) The NullSessionDataStore is a trivial implementation of SessionDataStore that does not persist SessionData. Use it when you want your sessions to remain in memory only. Be careful of your SessionCache when using the NullSessionDataStore: if using a NullSessionCache then your sessions are neither shared nor saved if using a DefaultSessionCache with eviction settings, your session will cease to exist when it is evicted from the cache If you have not configured any other SessionDataStore, when a SessionHandler aka AbstractSessionManager starts up, it will instantiate a NullSessionDataStore. The FileSessionDataStore supports persistent storage of session data in a filesystem. Persisting sessions to the local file system should never be used in a clustered environment. One file represents one session in one context. File names follow this pattern: [expiry]_[contextpath]_[virtualhost]_[id] expiry This is the expiry time in milliseconds since the epoch. contextpath This is the context path with any special characters, including /, replaced by the underscore character. For example, a context path of /catalog would become _catalog. A context path of simply / becomes just _. virtualhost This is the first virtual host associated with the context and has the form of 4 digits separated by . characters. If there are no virtual hosts associated with a context, then 0.0.0.0 is used: [digit].[digit].[digit].[digit] id This is the unique id of the session. Putting all of the above together as an example, a session with an id of node0ek3vx7x2y1e7pmi3z00uqj1k0 for the context with path /test with no virtual hosts and an expiry of 1599558193150 would have a file name of: 1599558193150__test_0.0.0.0_node0ek3vx7x2y1e7pmi3z00uqj1k0 You can configure either a FileSessionDataStore individually, or a FileSessionDataStoreFactory if you want multiple SessionHandlers to use FileSessionDataStores that are identically configured. The configuration methods are: setStoreDir(File) [Default:null] This is the location for storage of session files. If the directory does not exist at startup, it will be created. If you use the same storeDir for multiple SessionHandlers, then the sessions for all of those contexts are stored in the same directory. This is not a problem, as the name of the file is unique because it contains the context information. You must supply a value for this, otherwise startup of the FileSessionDataStore will fail. deleteUnrestorableFiles(boolean) [Default:false] If set to true, unreadable files will be deleted. This is useful to prevent repeated logging of the same error when the scavenger periodically (re-)attempts to load the corrupted information for a session in order to expire it. setSavePeriodSec(int) [Default:0] This is an interval defined in seconds. It is used to reduce the frequency with which SessionData is written. Normally, whenever the last concurrent request leaves a Session, the SessionData for that Session is always persisted, even if the only thing that changed is the lastAccessTime. If the savePeriodSec is non-zero, the SessionData will not be persisted if no session attributes changed, unless the time since the last save exceeds the savePeriod. Setting a non-zero value can reduce the load on the persistence mechanism, but in a clustered environment runs the risk that other nodes will see the session as expired because it has not been persisted sufficiently recently. setGracePeriodSec(int) [Default:3600] The gracePeriod is an interval defined in seconds. It is an attempt to deal with the non-transactional nature of sessions with regard to finding sessions that have expired. In a clustered configuration - even with a sticky load balancer - it is always possible that a session is \"live\" on a node but not yet updated in the persistent store. This means that it can be hard to determine at any given moment whether a clustered session has truly expired. Thus, we use the gracePeriod to provide a bit of leeway around the moment of expiry during scavenging: on every scavenge cycle an AbstractSessionDataStore searches for sessions that belong to the context that expired at least one gracePeriod ago infrequently the AbstractSessionDataStore searches for and summarily deletes sessions - from any context - that expired at least 10 gracePeriods ago Hereâs an example of configuring a FileSessionDataStoreFactory: Server server = new Server(); //First lets configure a DefaultSessionCacheFactory DefaultSessionCacheFactory cacheFactory = new DefaultSessionCacheFactory(); //NEVER_EVICT cacheFactory.setEvictionPolicy(SessionCache.NEVER_EVICT); cacheFactory.setFlushOnResponseCommit(true); cacheFactory.setInvalidateOnShutdown(false); cacheFactory.setRemoveUnloadableSessions(true); cacheFactory.setSaveOnCreate(true); //Add the factory as a bean to the server, now whenever a //SessionManager starts it will consult the bean to create a new DefaultSessionCache server.addBean(cacheFactory); //Now, lets configure a FileSessionDataStoreFactory FileSessionDataStoreFactory storeFactory = new FileSessionDataStoreFactory(); storeFactory.setStoreDir(new File(\"/tmp/sessions\")); storeFactory.setGracePeriodSec(3600); storeFactory.setSavePeriodSec(0); //Add the factory as a bean on the server, now whenever a //SessionManager starts, it will consult the bean to create a new FileSessionDataStore //for use by the DefaultSessionCache server.addBean(storeFactory); Hereâs an alternate example, configuring a FileSessionDataStore directly: //create a context WebAppContext app1 = new WebAppContext(); app1.setContextPath(\"/app1\"); //First, we create a DefaultSessionCache DefaultSessionCache cache = new DefaultSessionCache(app1.getSessionHandler()); cache.setEvictionPolicy(SessionCache.NEVER_EVICT); cache.setFlushOnResponseCommit(true); cache.setInvalidateOnShutdown(false); cache.setRemoveUnloadableSessions(true); cache.setSaveOnCreate(true); //Now, we configure a FileSessionDataStore FileSessionDataStore store = new FileSessionDataStore(); store.setStoreDir(new File(\"/tmp/sessions\")); store.setGracePeriodSec(3600); store.setSavePeriodSec(0); //Tell the cache to use the store cache.setSessionDataStore(store); //Tell the context to use the cache/store combination app1.getSessionHandler().setSessionCache(cache); The JDBCSessionDataStore supports persistent storage of session data in a relational database. To do that, it requires a DatabaseAdaptor that handles the differences between databases (eg Oracle, Postgres etc), and a SessionTableSchema that allows for the customization of table and column names. The JDBCSessionDataStore and corresponding JDBCSessionDataStoreFactory support the following configuration: setSavePeriodSec(int) [Default:0] This is an interval defined in seconds. It is used to reduce the frequency with which SessionData is written. Normally, whenever the last concurrent request leaves a Session, the SessionData for that Session is always persisted, even if the only thing that changed is the lastAccessTime. If the savePeriodSec is non-zero, the SessionData will not be persisted if no session attributes changed, unless the time since the last save exceeds the savePeriod. Setting a non-zero value can reduce the load on the persistence mechanism, but in a clustered environment runs the risk that other nodes will see the session as expired because it has not been persisted sufficiently recently. setGracePeriodSec(int) [Default:3600] The gracePeriod is an interval defined in seconds. It is an attempt to deal with the non-transactional nature of sessions with regard to finding sessions that have expired. In a clustered configuration - even with a sticky load balancer - it is always possible that a session is \"live\" on a node but not yet updated in the persistent store. This means that it can be hard to determine at any given moment whether a clustered session has truly expired. Thus, we use the gracePeriod to provide a bit of leeway around the moment of expiry during scavenging: on every scavenge cycle an AbstractSessionDataStore searches for sessions that belong to the context that expired at least one gracePeriod ago infrequently the AbstractSessionDataStore searches for and summarily deletes sessions - from any context - that expired at least 10 gracePeriods ago setDatabaseAdaptor(DatabaseAdaptor) A JDBCSessionDataStore requires a DatabaseAdapter, otherwise an Exception is thrown at start time. setSessionTableSchema(SessionTableSchema) If a SessionTableSchema has not been explicitly set, one with all values defaulted is created at start time. Many databases use different keywords for types such as long, blob and varchar. Jetty will detect the type of the database at runtime by interrogating the metadata associated with a database connection. Based on that metadata Jetty will try to select that databaseâs preferred keywords. However, you may
1need to instead explicitly configure these as described below. setDatasource(String) setDatasource(Datasource) Either the JNDI name of a Datasource to look up, or the Datasource itself. Alternatively you can set the driverInfo, see below. DatabaseAdaptor datasourceAdaptor = new DatabaseAdaptor(); datasourceAdaptor.setDatasourceName(\"/jdbc/myDS\"); setDriverInfo(String, String) setDriverInfo(Driver, String) This is the name or instance of a Driver class and a connection URL. Alternatively you can set the datasource, see above. DatabaseAdaptor driverAdaptor = new DatabaseAdaptor(); driverAdaptor.setDriverInfo(\"com.mysql.jdbc.Driver\", \"jdbc:mysql://127.0.0.1:3306/sessions?user=sessionsadmin\"); setBlobType(String) [Default: \"blob\" or \"bytea\" for Postgres] The type name used to represent \"blobs\" by the database. setLongType(String) [Default: \"bigint\" or \"number(20)\" for Oracle] The type name used to represent large integers by the database. setStringType(String) [Default: \"varchar\"] The type name used to represent character data by the database. SessionData is stored in a table with one row per session. This is the definition of the table with the table name, column names, and type keywords all at their default settings: Table:JettySessions sessionId contextPath virtualHost lastNode accessTime lastAccessTime createTime cookieTime lastSavedTime expiryTime maxInterval map 120 varchar 60 varchar 60 varchar 60 varchar long long long long long long long blob Use the SessionTableSchema class to customize these names. setSchemaName(String), setCatalogName(String) [Default: null] The exact meaning of these two are dependent on your database vendor, but can broadly be described as further scoping for the session table name. See https://en.wikipedia.org/wiki/Database_schema and https://en.wikipedia.org/wiki/Database_catalog. These extra scoping names come into play at startup time when Jetty determines if the session table already exists, or creates it on-the-fly. If your database is not using schema or catalog name scoping, leave these unset. If your database is configured with a schema or catalog name, use the special value \"INFERRED\" and Jetty will extract them from the database metadata. Alternatively, set them explicitly using these methods. setTableName(String) [Default:\"JettySessions\"] This is the name of the table in which session data is stored. setAccessTimeColumn(String) [Default: \"accessTime\"] This is the name of the column that stores the time - in ms since the epoch - at which a session was last accessed setContextPathColumn(String) [Default: \"contextPath\"] This is the name of the column that stores the contextPath of a session. setCookieTimeColumn(String) [Default: \"cookieTime\"] This is the name of the column that stores the time - in ms since the epoch - that the cookie was last set for a session. setCreateTimeColumn(String) [Default: \"createTime\"] This is the name of the column that stores the time - in ms since the epoch - at which a session was created. setExpiryTimeColumn(String) [Default: \"expiryTime\"] This is name of the column that stores - in ms since the epoch - the time at which a session will expire. setLastAccessTimeColumn(String) [Default: \"lastAccessTime\"] This is the name of the column that stores the time - in ms since the epoch - that a session was previously accessed. setLastSavedTimeColumn(String) [Default: \"lastSavedTime\"] This is the name of the column that stores the time - in ms since the epoch - at which a session was last written. setIdColumn(String) [Default: \"sessionId\"] This is the name of the column that stores the id of a session. setLastNodeColumn(String) [Default: \"lastNode\"] This is the name of the column that stores the workerName of the last node to write a session. setVirtualHostColumn(String) [Default: \"virtualHost\"] This is the name of the column that stores the first virtual host of the context of a session. setMaxIntervalColumn(String) [Default: \"maxInterval\"] This is the name of the column that stores the interval - in ms - during which a session can be idle before being considered expired. setMapColumn(String) [Default: \"map\"] This is the name of the column that stores the serialized attributes of a session. The MongoSessionDataStore supports persistence of SessionData in a nosql database. The best description for the document model for session information is found in the javadoc for the MongoSessionDataStore. In overview, it can be represented thus: The database contains a document collection for the sessions. Each document represents a session id, and contains one nested document per context in which that session id is used. For example, the session id abcd12345 might be used by two contexts, one with path /contextA and one with path /contextB. In that case, the outermost document would refer to abcd12345 and it would have a nested document for /contextA containing the session attributes for that context, and another nested document for /contextB containing the session attributes for that context. Remember, according to the Servlet Specification, a session id can be shared by many contexts, but the attributes must be unique per context. The outermost document contains these fields: id The session id. created The time (in ms since the epoch) at which the session was first created in any context. maxIdle The time (in ms) for which an idle session is regarded as valid. As maxIdle times can be different for Sessions from different c
1ontexts, this is the shortest maxIdle time. expiry The time (in ms since the epoch) at which the session will expire. As the expiry time can be different for Sessions from different contexts, this is the shortest expiry time. Each nested context-specific document contains: attributes The session attributes as a serialized map. lastSaved The time (in ms since the epoch) at which the session in this context was saved. lastAccessed The time (in ms since the epoch) at which the session in this context was previously accessed. accessed The time (in ms since the epoch) at which this session was most recently accessed. lastNode The workerName of the last server that saved the session data. version An object that is updated every time a session is written for a context. You can configure either a MongoSessionDataStore individually, or a MongoSessionDataStoreFactory if you want multiple SessionHandlers to use MongoSessionDataStores that are identically configured. The configuration methods for the MongoSessionDataStoreFactory are: setSavePeriodSec(int) [Default:0] This is an interval defined in seconds. It is used to reduce the frequency with which SessionData is written. Normally, whenever the last concurrent request leaves a Session, the SessionData for that Session is always persisted, even if the only thing that changed is the lastAccessTime. If the savePeriodSec is non-zero, the SessionData will not be persisted if no session attributes changed, unless the time since the last save exceeds the savePeriod. Setting a non-zero value can reduce the load on the persistence mechanism, but in a clustered environment runs the risk that other nodes will see the session as expired because it has not been persisted sufficiently recently. setGracePeriodSec(int) [Default:3600] The gracePeriod is an interval defined in seconds. It is an attempt to deal with the non-transactional nature of sessions with regard to finding sessions that have expired. In a clustered configuration - even with a sticky load balancer - it is always possible that a session is \"live\" on a node but not yet updated in the persistent store. This means that it can be hard to determine at any given moment whether a clustered session has truly expired. Thus, we use the gracePeriod to provide a bit of leeway around the moment of expiry during scavenging: on every scavenge cycle an AbstractSessionDataStore searches for sessions that belong to the context that expired at least one gracePeriod ago infrequently the AbstractSessionDataStore searches for and summarily deletes sessions - from any context - that expired at least 10 gracePeriods ago setDbName(String) This is the name of the database. setCollectionName(String) The name of the document collection. setConnectionString(String) a mongodb url, eg \"mongodb://localhost\". Alternatively, you can specify the host,port combination instead, see below. setHost(String) setPort(int) the hostname and port number of the mongodb instance to contact. Alternatively, you can specify the connectionString instead, see above. This is an example of configuring a MongoSessionDataStoreFactory: Server server = new Server(); MongoSessionDataStoreFactory mongoSessionDataStoreFactory = new MongoSessionDataStoreFactory(); mongoSessionDataStoreFactory.setGracePeriodSec(3600); mongoSessionDataStoreFactory.setSavePeriodSec(0); mongoSessionDataStoreFactory.setDbName(\"HttpSessions\"); mongoSessionDataStoreFactory.setCollectionName(\"JettySessions\"); // Either set the connectionString mongoSessionDataStoreFactory.setConnectionString(\"mongodb:://localhost:27017\"); // or alternatively set the host and port. mongoSessionDataStoreFactory.setHost(\"localhost\"); mongoSessionDataStoreFactory.setPort(27017); The InfinispanSessionDataStore supports persistent storage of session data via the Infinispan data grid. You may use Infinispan in either embedded mode, where it runs in the same process as Jetty, or in remote mode mode, where your Infinispan instance is on another node. For more information on Infinispan, including some code examples, consult the Infinispan documentation. See below for some code examples of configuring the InfinispanSessionDataStore in Jetty. Note that the configuration options are the same for both the InfinispanSessionDataStore and the InfinispanSessionDataStoreFactory. Use the latter to apply the same configuration to multiple InfinispanSessionDataStores. setSavePeriodSec(int) [Default:0] This is an interval defined in seconds. It is used to reduce the frequency with which SessionData is written. Normally, whenever the last concurrent request leaves a Session, the SessionData for that Session is always persisted, even if the only thing that changed is the lastAccessTime. If the savePeriodSec is non-zero, the SessionData will not be persisted if no session attributes changed, unless the time since the last save exceeds the savePeriod. Setting a non-zero value can reduce the load on the persistence mechanism, but in a clustered environment runs the risk that other nodes will see the session as expired because it has not been persisted sufficiently recently. setGracePeriodSec(int) [Default:3600] The gracePeriod is an interval defined in seconds. It is an attempt to deal with the non-transactional nature of sessions with regard to finding sessions that have expired. In a clustered configuration - even with a sticky load balancer - it is always possible that a session is \"live\" on a node but not yet updated in the persistent store. This means that it can be hard to determine at any given moment whether a clustered session has truly expired. Thus, we use the gracePeriod to provide a bit of leeway around the moment of expiry during scavenging: on every scavenge cycle an AbstractSessionDataStore searches for sessions that belong to the context that expired at least one gracePeriod ago infrequently the AbstractSessionDataStore searches for and summarily deletes sessions - from any context - that expired at least 10 gracePeriods ago setCac
1he(BasicCache<String, InfinispanSessionData> cache) Infinispan uses a cache API as the interface to the data grid and this method configures Jetty with the cache instance. This cache can be either an embedded cache - also called a \"local\" cache in Infinispan parlance - or a remote cache. setSerialization(boolean) [Default: false] When the InfinispanSessionDataStore starts, if it detects the Infinispan classes for remote caches on the classpath, it will automatically assume serialization is true, and thus that SessionData will be serialized over-the-wire to a remote cache. You can use this parameter to override this. If this parameter is true, the InfinispanSessionDataStore returns true for the isPassivating() method, but false otherwise. setInfinispanIdleTimeoutSec(int) [Default: 0] This controls the Infinispan option whereby it can detect and delete entries that have not been referenced for a configurable amount of time. A value of 0 disables it. If you use this option, expired sessions will be summarily deleted from Infinispan without the normal session invalidation handling (eg calling of lifecycle listeners). Only use this option if you do not have session lifecycle listeners that must be called when a session is invalidated. setQueryManager(QueryManager) If this parameter is not set, the InfinispanSessionDataStore will be unable to scavenge for unused sessions. In that case, you can use the infinispanIdleTimeoutSec option instead to prevent the accumulation of expired sessions. When using Infinispan in embedded mode, configure the EmbeddedQueryManager to enable Jetty to query for expired sessions so that they may be property invalidated and lifecycle listeners called. When using Infinispan in remote mode, configure the RemoteQueryManager instead. Here is an example of configuring an InfinispanSessionDataStore in code using an embedded cache: /* Create a core SessionHandler * Alternatively in a Servlet Environment do: * WebAppContext webapp = new WebAppContext(); * SessionHandler sessionHandler = webapp.getSessionHandler(); */ SessionHandler sessionHandler = new SessionHandler(); //Use an Infinispan local cache configured via an infinispan xml file DefaultCacheManager defaultCacheManager = new DefaultCacheManager(\"path/to/infinispan.xml\"); Cache<String, InfinispanSessionData> localCache = defaultCacheManager.getCache(); //Configure the Jetty session datastore with Infinispan InfinispanSessionDataStore infinispanSessionDataStore = new InfinispanSessionDataStore(); infinispanSessionDataStore.setCache(localCache); infinispanSessionDataStore.setSerialization(false); //local cache does not serialize session data infinispanSessionDataStore.setInfinispanIdleTimeoutSec(0); //do not use infinispan auto delete of unused sessions infinispanSessionDataStore.setQueryManager(new org.eclipse.jetty.session.infinispan.EmbeddedQueryManager(localCache)); //enable Jetty session scavenging infinispanSessionDataStore.setGracePeriodSec(3600); infinispanSessionDataStore.setSavePeriodSec(0); //Configure a SessionHandler to use the local Infinispan cache as a store of SessionData DefaultSessionCache sessionCache = new DefaultSessionCache(sessionHandler); sessionCache.setSessionDataStore(infinispanSessionDataStore); sessionHandler.setSessionCache(sessionCache); Here is an example of configuring an InfinispanSessionDataStore in code using a remote cache: /* Create a core SessionHandler * Alternatively in a Servlet Environment do: * WebAppContext webapp = new WebAppContext(); * SessionHandler sessionHandler = webapp.getSessionHandler(); */ SessionHandler sessionHandler = new SessionHandler(); //Configure Infinispan to provide a remote cache called \"JettySessions\" Properties hotrodProperties = new Properties(); hotrodProperties.load(new FileInputStream(\"/path/to/hotrod-client.properties\")); org.infinispan.client.hotrod.configuration.ConfigurationBuilder configurationBuilder = new ConfigurationBuilder(); configurationBuilder.withProperties(hotrodProperties); configurationBuilder.marshaller(new ProtoStreamMarshaller()); configurationBuilder.addContextInitializer(new org.eclipse.jetty.session.infinispan.InfinispanSerializationContextInitializer()); org.infinispan.client.hotrod.RemoteCacheManager remoteCacheManager = new RemoteCacheManager(configurationBuilder.build()); RemoteCache<String, InfinispanSessionData> remoteCache = remoteCacheManager.getCache(\"JettySessions\"); //Configure the Jetty session datastore with Infinispan InfinispanSessionDataStore infinispanSessionDataStore = new InfinispanSessionDataStore();
1 infinispanSessionDataStore.setCache(remoteCache); infinispanSessionDataStore.setSerialization(true); //remote cache serializes session data infinispanSessionDataStore.setInfinispanIdleTimeoutSec(0); //do not use infinispan auto delete of unused sessions infinispanSessionDataStore.setQueryManager(new org.eclipse.jetty.session.infinispan.RemoteQueryManager(remoteCache)); //enable Jetty session scavenging infinispanSessionDataStore.setGracePeriodSec(3600); infinispanSessionDataStore.setSavePeriodSec(0); //Configure a SessionHandler to use a remote Infinispan cache as a store of SessionData DefaultSessionCache sessionCache = new DefaultSessionCache(sessionHandler); sessionCache.setSessionDataStore(infinispanSessionDataStore); sessionHandler.setSessionCache(sessionCache); The GCloudSessionDataStore supports persistent storage of session data into Google Cloud DataStore. You will first need to create a project and enable the Google Cloud API: https://cloud.google.com/docs/authentication#preparation. Take note of the project id that you create in this step as you need to supply it in later steps. You can choose to use Jetty either inside or outside of Google infrastructure. Outside of Google infrastructure Before running Jetty, you will need to choose one of the following methods to set up the local environment to enable remote GCloud DataStore communications: Using the GCloud SDK Ensure you have the GCloud SDK installed: https://cloud.google.com/sdk/?hl=en Use the GCloud tool to set up the project you created in the preparation step: gcloud config set project PROJECT_ID Use the GCloud tool to authenticate a Google account associated with the project created in the preparation step: gcloud auth login ACCOUNT Using environment variables Define the environment variable GCLOUD_PROJECT with the project id you created in the preparation step. Generate a JSON service account key and then define the environment variable GOOGLE_APPLICATION_CREDENTIALS=/path/to/my/key.json Inside of Google infrastructure The Google deployment tools will automatically configure the project and authentication information for you. Jetty GCloud session support provides some indexes as optimizations that can speed up session searches. This will particularly benefit session scavenging, although it may make write operations slower. By default, indexes will not be used. You will see a log WARNING message informing you about the absence of indexes: WARN: Session indexes not uploaded, falling back to less efficient queries In order to use them, you will need to manually upload the file to GCloud that defines the indexes. This file is named index.yaml and you can find it in your distribution in $JETTY_BASE/etc/sessions/gcloud/index.yaml. Follow the instructions here to upload the pre-generated index.yaml file. The following configuration options apply to both the GCloudSessionDataStore and the GCloudSessionDataStoreFactory. Use the latter if you want multiple SessionHandlers to use GCloudSessionDataStores that are identically configured. setSavePeriodSec(int) [Default:0] This is an interval defined in seconds. It is used to reduce the frequency with which SessionData is written. Normally, whenever the last concurrent request leaves a Session, the SessionData for that Session is always persisted, even if the only thing that changed is the lastAccessTime. If the savePeriodSec is non-zero, the SessionData will not be persisted if no session attributes changed, unless the time since the last save exceeds the savePeriod. Setting a non-zero value can reduce the load on the persistence mechanism, but in a clustered environment runs the risk that other nodes will see the session as expired because it has not been persisted sufficiently recently. setGracePeriodSec(int) [Default:3600] The gracePeriod is an interval defined in seconds. It is an attempt to deal with the non-transactional nature of sessions with regard to finding sessions that have expired. In a clustered configuration - even with a sticky load balancer - it is always possible that a session is \"live\" on a node but not yet updated in the persistent store. This means that it can be hard to determine at any given moment whether a clustered session has truly expired. Thus, we use the gracePeriod to provide a bit of leeway around the moment of expiry during scavenging: on every scavenge cycle an AbstractSessionDataStore searches for sessions that belong to the context that expired at least one gracePeriod ago infrequently the AbstractSessionDataStore searches for and summarily deletes sessions - from any context - that expired at least 10 gracePeriods ago setProjectId(String) [Default: null] Optional. The project id of your project. You donât need to set this if you carried out the instructions in the Preparation section, but you might want to set this - along with the host and/or namespace parameters - if you want more explicit control over connecting to GCloud. setHost(String) [Default: null] Optional. This is the name of the host for the GCloud DataStore. If you leave it unset, then the GCloud DataStore library will work out the host to contact. You might want to use this - along with projectId and/or namespace parameters - if you want more explicit control over connecting to GCloud. setNamespace(String) [Default: null] Optional. If set, partitions the visibility of session data in multi-tenant deployments. More information can be found here. setMaxRetries(int) [Default: 5] This is the maximum number of retries to connect to GCloud DataStore in order to write a session. This is used in conjunction with the backoffMs parameter to control the frequency with which Jetty will retry to contact GCloud to write out a session. setBackoffMs(int) [Default: 1000] This is the interval that Jetty will wait in between retrying failed writes. Each time a write fails, Jetty doubles the previous backoff. Used in conjunction with the maxRetries parameter. setEntityDataModel(EntityDataModel) The EntityDataModel encapsulates the type (called \"kind\" in GCloud DataStore) of stored session objects and the names of its fields. If you do not set this parameter, GCloudSessionDataStore uses all default values, which should be sufficient for most needs. Should you need to customize this, the methods and their defaults are: setKind(String) [Default: \"GCloudSession\"] this is the type of the session object. setId(String) [Default: \"id\"] this is the name of the field storing the session id. setContextPath(String) [Default: \"contextPath\"] this is name of the field storing the canonicalized context path of the context to which the session belongs. setVhost(String) [Default: \"vhost\"] this the name of the field storing the canonicalized virtual host of the context to which the session belongs. setAccessed(String) [Default: \"accessed\"] this is the name of the field storing the current access time of the session. setLastAccessed(String) [Default: \"lastAccessed\"] this is the name of the field storing the last access time of the session. setCreateTime(String) [Default: \"createTime\"] this is the name of the field storing the time in ms since the epoch, at which the session was created. setCookieSetTime(String) [Default: \"cookieSetTime\"] this is the name of the field storing time at which the session cookie was last set. setLastNode(String) [Default: \"lastNode\"] this is the name of the field storing the workerName of the last node to manage the session. setExpiry(String) [Default: \"expiry\"] this is the name of the field storing the time, in ms since the epoch, at which the session will expire. setMaxInactive(String) [Default: \"maxInactive\"] this is the name of the field storing the session timeout in ms. setAttributes(String) [Default: \"attributes\"] this is the name of the field storing the session attribute map. Hereâs an example of configuring a GCloudSessionDataStoreFactory: Server server = new Server(); //Ensure there is a SessionCacheFactory DefaultSessionCacheFactory cacheFactory = new DefaultSessionCacheFactory(); //Add the factory as a bean to the server, now whenever a //SessionManager starts it will consult the bean to create a new DefaultSessionCache server.addBean(cacheFactory); //Configure the GCloudSessionDataStoreFactory GCloudSessionDataStoreFactory storeFactory = new GCloudSessionDataStoreFactory(); storeFactory.setGracePeriodSec(3600); storeFactory.setSavePeriodSec(0); storeFactory.setBackoffMs(2000); //increase the time between retries of failed writes storeFactory.setMaxRetries(10); //increase the number of retries of failed writes //Add the factory as a bean on the server, now whenever a //SessionManager starts, it will consult the bean to create a new GCloudSessionDataStore //for use by the DefaultSessionCache server.addBean(storeFactory); The CachingSessionDataStore is a special type of SessionDataStore that checks an L2 cache for SessionData before checking a delegate SessionDataStore. This can improve the performance of slow stores. The L2 cache is an instance of a SessionDataMap. Jetty provides one implementation of this L2 cache based on memcached, MemcachedSessionDataMap. This is an example of how to programmatically configure CachingSessionDataStores, using a FileSessionDataStore as a delegate, and memcached as the L2 cache: Server server = new Server(); //Make a factory for memcached L2 caches for SessionData MemcachedSessionDataMapFactory mapFactory = new MemcachedSessionDataMapFactory(); mapFactory.setExpirySec(0); //items in memcached don't expire mapFactory.setHeartbeats(true); //tell memcached to use heartbeats mapFactory.setAddresses(new InetSocketAddress(\"localhost\", 11211)); //use a local memcached instance mapFactory.setWeights(new int[]{100}); //set the weighting //Make a FileSessionDataStoreFactory for creating FileSessionDataStores //to persist the session data FileSessionDataStoreFactory storeFactory = new FileSessionDataStoreFactory(); storeFactory.setStoreDir(new File(\"/tmp/sessions\")); storeFactory.setGracePeriodSec(3600); storeFactory.setSavePeriodSec(0); //Make a factory that plugs the L2 cache into the SessionDataStore CachingSessionDataStoreFactory cachingSessionDataStoreFactory = new CachingSessionDataStoreFactory(); cachingSessionDataStoreFactory.setSessionDataMapFactory(mapFactory); cachingSessionDataStoreFactory.setSessionStoreFactory(storeFactory); //Register it as a bean so that all SessionManagers will use it //to make FileSessionDataStores that use memcached as an L2 SessionData cache. server.addBean(cachingSessionDataStoreFactory);","title":"HTTP Session Management","component":"jetty","version":"12.1","name":"session","url":"/docs/jetty/12.1/programming-guide/server/session.html","titles":[{"text":"Session Architecture","hash":"architecture","id":1},{"text":"The SessionIdManager","hash":"idmgr","id":2},{"text":"The DefaultSessionIdManager","hash":"defaultidmgr","id":3},{"text":"The HouseKeeper","hash":"housekeeper","id":4},{"text":"Implementing a Custom SessionIdManager","hash":"implementing-a-custom-sessionidmanager","id":5},{"text":"The SessionHandler","hash":"handler","id":6},{"text":"Statistics","hash":"statistics","id":7},{"text":"The SessionCache","hash":"cache","id":8},{"text":"The DefaultSessionCache","hash":"hash","id":9},{"text":"The NullSessionCache","hash":"null","id":10},{"text":"Implementing a custom SessionCache","hash":"customcache","id":11},{"text":"Heterogeneous caching","hash":"heterogeneous-caching","id":12},{"text":"The SessionDataStore","hash":"datastore","id":13},{"text":"Custom SessionDataStores","hash":"custom-sessiondatastores","id":14},{"text":"The SessionDataStoreFactory","hash":"the-sessiondatastorefactory","id":15},{"text":"The NullSessionDataStore","hash":"datastore-null","id":16}
1,{"text":"The FileSessionDataStore","hash":"datastore-file","id":17},{"text":"The JDBCSessionDataStore","hash":"datastore-jdbc","id":18},{"text":"The DatabaseAdaptor","hash":"the-databaseadaptor","id":19},{"text":"The SessionTableSchema","hash":"the-sessiontableschema","id":20},{"text":"The MongoSessionDataStore","hash":"datastore-mongo","id":21},{"text":"The InfinispanSessionDataStore","hash":"datastore-infinispan","id":22},{"text":"The GCloudSessionDataStore","hash":"datastore-gcloud","id":23},{"text":"Preparation","hash":"datastore-gcloud-prep","id":24},{"text":"Configuration","hash":"configuration","id":25},{"text":"The CachingSessionDataStore","hash":"cachingsessiondatastore","id":26}]},"78":{"id":78,"text":"As explained in the general Jetty threading architecture, web applications can specify the InvocationType of the Jetty implementation tasks that invoke web application code. There are two main Jetty implementation tasks that invoke web application code: The task that invokes the Handler tree, detailed here. The task that invokes the Request demand callback, detailed here. The InvocationType of the task that invokes the Handler tree is determined by the structure of the Handler tree, and defines the InvocationType with which HTTP request are processed. As explained in this section, the Handler tree starts at the Server instance. In a simple Handler tree, the Server wraps a ContextHandler instance, that wraps an application code Handler, for example: class ShopHandler extends Handler.Abstract { public ShopHandler() { // Specifies that the handle() implementation is non-blocking. super(InvocationType.NON_BLOCKING); (1) } @Override public boolean handle(Request request, Response response, Callback callback) { // Implement the shop application. callback.succeeded(); return true; } } Server server = new Server(); ContextHandler contextHandler = new ContextHandler(\"/shop\"); server.setHandler(contextHandler); contextHandler.setHandler(new ShopHandler()); 1 Specifies that the ShopHandler.handle(...) implementation is NON_BLOCKING. The correspondent structure is the following: Server âââ ContextHandler /shop âââ ShopHandler Both Server and ContextHandler extend from Handler.Wrapper, which reports the same InvocationType as its child Handler. ShopHandler specifies its own InvocationType to be NON_BLOCKING, so the whole Handler tree is NON_BLOCKING. A more complex Handler tree is one that uses ContextHandlerCollection, for example: Server âââ ContextHandlerCollection âââ ContextHandler /shop â âââ ShopHandler âââ ContextHandler /api âââ RESTHandler Another more complex Handler tree is one that uses PathMappingsHandler, for example: Server âââ ContextHandler /shop âââ PathMappingsHandler âââ CatalogHandler /catalog/* âââ CheckoutHandler /checkout/* Both ContextHandlerCollection and PathMappingsHandler extend from Handler.Container that calculates the InvocationType combining the InvocationTypes of all the children Handlers (see Invocable.combine(InvocationType, InvocationType)). When all the children Handlers are NON_BLOCKING, then the Handler.Container is also NON_BLOCKING. Otherwise, if one of the children is BLOCKING, then the Handler.Container is also BLOCKING. WebSocketUpgradeHandler is a special case of Handler.Wrapper because it combines the InvocationType of the child Handler (that processes HTTP requests) with the InvocationType of the ServerWebSocketContainer (that processes WebSocket messages). WebSocket applications should set the InvocationType of the ServerWebSocketContainer to match whether WebSocket EndPoints have been implemented in a blocking or non-blocking way: Server server = new Server(); ContextHandler contextHandler = new ContextHandler(\"/ws\"); server.setHandler(contextHandler); // The InvocationType for both WebSocket EndPoints and HTTP requests. Invocable.InvocationType invocationType = Invocable.InvocationType.NON_BLOCKING; WebSocketUpgradeHandler wsHandler = WebSocketUpgradeHandler.from(server, contextHandler, wsContainer -> wsContainer.setInvocationType(invocationType)); (1) contextHandler.setHandler(wsHandler); wsHandler.setHandler(new Handler.Abstract(invocationType) (2) { @Override public boolean handle(Request request, Response response, Callback callback) { // Handle HTTP requests here. callback.succeeded(); return true; } }); 1 Setting the InvocationType for the ServerWebSocketContainer. 2 Setting the InvocationType for the leaf HTTP Handler. In the example above, the Handler tree is the following: Server âââ ContextHandler /ws âââ WebSocketUpgradeHandler âââ Handler.Abstract HTTP requests that flow through the WebSocketUpgradeHandler are influenced by the InvocationType of the WebSocketUpgradeHandler, even if WebSocketUpgradeHandler just forwards them to its child Handler. The InvocationType of the task that invokes the Request demand callback is determined from the demand callback object passed to Request.demand(Runnable), and defines the InvocationType with which the demand callback is invoked. Rather than passing a simple Runnable or a lambda expression (for which the InvocationType is assumed to be BLOCKING), you can pass an Invocable.Task, that implements both Invocable (to specify the InvocationType) and Runnable (to specify the demand callback). For example: class NonBlockingHandler extends Handler.Abstract { public NonBlockingHandler() { super(InvocationType.NON_BLOCKING); (1) } @Override public boolean handle(Request request, Response response, Callback callback) throws Exception { // Read the request content in non-blocking way. request.demand(new Invocable.Task.Abstract(InvocationType.NON_BLOCKING) (2) { @Override public void run() { while (true) { Content.Chunk chunk = request.read(); if (chunk == null) { request.demand(this); (2) return; } if (Content.Chunk.isFailure(chunk)) { callback.failed(chunk.getFailure()); return; } // Process the Chunk in non-blocking way. processNonBlocking(chunk); chunk.release(); if (chunk.isLast()) { callback.succeeded(); return; } } } }); return true; } } 1 Specifies the Handler's InvocationType for HTTP request processing. 2 Specifies the demand callback to be an Invocable.Task with InvocationType NON_BLOCKING.","title":"Server Threading Architecture","component":"jetty","version":"12.1","name":"threads","url":"/docs/jetty/12.1/programming-guide/server/threads.html","titles":[{"text":"Handler Tree InvocationType","hash":"invocation-type-handler","id":1},{"text":"WebSocketUpgradeHandler InvocationType","hash":"websocketupgradehandler-invocationtype","id":2},{"text":"Request Demand InvocationType","hash":"invocation-type-demand","id":3}]},"79":{"id":79,"text":"Jetty provides different implementations of the WebSocket protocol: A Jakarta EE 8 (javax.websocket) implementation, based on the Jakarta WebSocket 1.1 Specification. A Jakarta EE 9 (jakarta.websocket) implementation, based on the Jakarta WebSocket 2.0 Specification. A Jakarta EE 10 (jakarta.websocket) implementation, based on the Jakarta WebSocket 2.1 Specification. A Jakarta EE 11 (jakarta.websocket) implementation, based on the Jakarta WebSocket 2.2 Specification. A Jetty/Jakarta WebSocket API implementation, dependent on Jakarta EE, offering extended WebSocket APIs. A Jetty WebSocket API implementation independent of Jakarta EE, based on the Jetty Core APIs. The Jakarta EE implementations and APIs are described
1in this section. Using the standard Jakarta EE WebSocket APIs allows your applications to depend only on standard APIs, and your applications may be deployed in any compliant WebSocket Container that supports Jakarta WebSocket. The standard Jakarta EE WebSocket APIs provide these features that are not present in the Jetty WebSocket APIs Encoders and Decoders for automatic conversion of text or binary messages to objects. Alternatively, the Jetty/Jakarta WebSocket API implementation, dependent on Jakarta EE, and offering extended WebSocket APIs, is described in this section. This implementation provides extended APIs with respect to the Jakarta EE APIs, but still integrates with Jakarta EE. The use of these APIs is now obsoleted in favor of the Jetty specific WebSocket APIs based on the Jetty Core APIs, but maintained for backward compatibility. Lastly, the Jetty WebSocket API implementation, independent of Jakarta EE, is described in this section. Using the Jetty WebSocket APIs allows your applications to be more efficient and offer greater and more fine-grained control, and provide the following features that are not present in the Jakarta EE WebSocket APIs: A demand mechanism to control backpressure. Remote socket address (IP address and port) information. Advanced request URI matching with regular expressions, in addition to Servlet patterns and URI template patterns. More configuration options, for example the network buffer capacity. Programmatic WebSocket upgrade, in addition to WebSocket upgrade based on URI matching, for maximum flexibility. If your application needs specific features that are not provided by the standard APIs, the Jetty WebSocket APIs may provide such features. If the feature you are looking for is not present, you may ask for these features by submitting an issue to the Jetty Project. In this way, you will avoid waiting for the standard Jakarta EE process to approve them and release a new version of the Jakarta EE WebSocket specification. When you write a WebSocket application using the Jakarta EE jakarta.websocket APIs, your code typically need to depend on just the Jakarta EE WebSocket APIs to compile your application. However, at runtime you need to have an implementation of the Jakarta EE WebSocket APIs in your class-path/module-path. The standard jakarta.websocket APIs, for example for Jakarta EE 11, are provided by the following Maven artifact: <dependency> <groupId>jakarta.websocket</groupId> <artifactId>jakarta.websocket-api</artifactId> <version>2.2.0</version> </dependency> At runtime, you also need an implementation of the standard Jakarta EE 11 WebSocket APIs, that Jetty provides with the following Maven artifact (and its transitive dependencies): <dependency> <groupId>org.eclipse.jetty.ee11.websocket</groupId> <artifactId>jetty-ee11-websocket-jakarta-server</artifactId> <version>12.1.13</version> </dependency> The jakarta.websocket-api artifact and the jetty-ee11-websocket-jakarta-server artifact (and their transitive dependencies) should be present in the server class-path/module-path, and never in the web applicationâs /WEB-INF/lib directory. To configure correctly your WebSocket application based on the standard Jakarta EE 11 WebSocket APIs, you need two steps: Make sure that Jetty sets up an instance of jakarta.websocket.server.ServerContainer, described in this section. Configure the WebSocket endpoints that implement your application logic, either by annotating their classes with the standard jakarta.websocket annotations, or by using the ServerContainer APIs to register them in your code, described in this section. Jetty sets up a jakarta.websocket.server.ServerContainer instance using JakartaWebSocketServletContainerInitializer. When you deploy web applications using WebAppContext, then JakartaWebSocketServletContainerInitializer is automatically discovered (because it is present in the server class-path/module-path) and initialized by Jetty when the web application starts, so that it sets up the ServerContainer. In this way, you do not need to write any additional code: // Create a Server with a ServerConnector listening on port 8080. Server server = new Server(8080); // Create a WebAppContext with the given context path. WebAppContext handler = new WebAppContext(\"/path/to/webapp\", \"/ctx\"); server.setHandler(handler); // Starting the Server will start the WebAppContext. server.start(); On the other hand, when you deploy web applications using ServletContextHandler, you have to write the code to ensure that the JakartaWebSocketServletContainerInitializer is initialized, so that it sets up the ServerContainer: // Create a Server with a ServerConnector listening on port 8080. Server server = new Server(8080); // Create a ServletContextHandler with the given context path. ServletContextHandler handler = new ServletContextHandler(\"/ctx\"); server.setHandler(handler); // Ensure that JavaxWebSocketServletContainerInitializer is initialized, // to set up the ServerContainer for this web application context. JakartaWebSocketServletContainerInitializer.configure(handler, null); // Starting the Server will start the ServletContextHandler. server.start(); Calling JakartaWebSocketServletContainerInitializer.configure(...) must be done before the ServletContextHandler is started, and configures the Jakarta EE 11 WebSocket implementation for that web application context, making ServerContainer available to web applications. Once you have set up the ServerContainer, you can configure your WebSocket endpoints. The WebSocket endpoints classes may be either annotated with the standard jakarta.websocket annotations, extend the jakarta.websocket.Endpoint abstract class, or implement the jakarta.websocket.server.
1ServerApplicationConfig interface. When you deploy web applications using WebAppContext, then annotated WebSocket endpoint classes are automatically discovered and registered. In this way, you do not need to write any additional code; you just need to ensure that your WebSocket endpoint classes are present in the web applicationâs /WEB-INF/classes directory, or in a *.jar file in /WEB-INF/lib. On the other hand, when you deploy web applications using WebAppContext but you need to perform more advanced configuration of the ServerContainer or of the WebSocket endpoints, or when you deploy web applications using ServletContextHandler, you need to access the ServerContainer APIs. The ServerContainer instance is stored as a ServletContext attribute, so it can be retrieved when the ServletContext is initialized, either from a ServletContextListener, or from a Servlet Filter, or from an HttpServlet: // Create a Server with a ServerConnector listening on port 8080. Server server = new Server(8080); // Create a ServletContextHandler with the given context path. ServletContextHandler handler = new ServletContextHandler(\"/ctx\"); server.setHandler(handler); // Ensure that JavaxWebSocketServletContainerInitializer is initialized, // to setup the ServerContainer for this web application context. JakartaWebSocketServletContainerInitializer.configure(handler, null); // Add a WebSocket-initializer Servlet to register WebSocket endpoints. handler.addServlet(MyJavaxWebSocketInitializerServlet.class, \"/*\"); // Starting the Server will start the ServletContextHandler. server.start(); public class MyJavaxWebSocketInitializerServlet extends HttpServlet { @Override public void init() throws ServletException { try { // Retrieve the ServerContainer from the ServletContext attributes. ServerContainer container = (ServerContainer)getServletContext().getAttribute(ServerContainer.class.getName()); // Configure the ServerContainer. container.setDefaultMaxTextMessageBufferSize(128 * 1024); // Simple registration of your WebSocket endpoints. container.addEndpoint(MyJavaxWebSocketEndPoint.class); // Advanced registration of your WebSocket endpoints. container.addEndpoint( ServerEndpointConfig.Builder.create(MyJavaxWebSocketEndPoint.class, \"/ws\") .subprotocols(List.of(\"my-ws-protocol\")) .build() ); } catch (DeploymentException x) { throw new ServletException(x); } } } When you deploy web applications using ServletContextHandler, you can alternatively use the code below to set up the ServerContainer and configure the WebSocket endpoints in one step: // Create a Server with a ServerConnector listening on port 8080. Server server = new Server(8080); // Create a ServletContextHandler with the given context path. ServletContextHandler handler = new ServletContextHandler(\"/ctx\"); server.setHandler(handler); // Setup the ServerContainer and the WebSocket endpoints for this web application context. JakartaWebSocketServletContainerInitializer.configure(handler, (servletContext, container) -> { // Configure the ServerContainer. container.setDefaultMaxTextMessageBufferSize(128 * 1024); // Simple registration of your WebSocket endpoints. container.addEndpoint(MyJavaxWebSocketEndPoint.class); // Advanced registration of your WebSocket endpoints. container.addEndpoint( ServerEndpointConfig.Builder.create(MyJavaxWebSocketEndPoint.class, \"/ws\") .subprotocols(List.of(\"my-ws-protocol\")) .build() ); }); // Starting the Server will start the ServletContextHandler. server.start(); When the ServletContextHandler is started, the Configurator lambda (the second parameter passed to JakartaWebSocketServletContainerInitializer.configure(...)) is invoked and allows you to explicitly configure the WebSocket endpoints using the standard APIs provided by ServerContainer. Under the hood, JakartaWebSocketServletContainerInitializer installs the org.eclipse.jetty.ee11.websocket.servlet.WebSocketUpgradeFilter, which is the component that intercepts HTTP requests to upgrade to WebSocket, and performs the upgrade from the HTTP protocol to the WebSocket protocol. The WebSocketUpgradeFilter is installed under the filter name corresponding to its class
1name (that is, the string \"org.eclipse.jetty.ee11.websocket.servlet.WebSocketUpgradeFilter\") and with a filter mapping of /*. Refer to the advanced WebSocketUpgradeFilter configuration section for more information. With the default configuration, every HTTP request flows first through the WebSocketUpgradeFilter. If the HTTP request is a valid upgrade to WebSocket, then WebSocketUpgradeFilter tries to find a matching WebSocket endpoint for the request URI path; if the match is found, WebSocketUpgradeFilter performs the upgrade and does not invoke any other Filter or Servlet. From this point on, the communication happens with the WebSocket protocol, and HTTP components such as Filters and Servlets are not relevant anymore. If the HTTP request is not an upgrade to WebSocket, or WebSocketUpgradeFilter did not find a matching WebSocket endpoint for the request URI path, then the request is passed to the Filter chain of your web application, and eventually the request arrives to a Servlet to be processed (otherwise a 404 Not Found response is returned to client). The WebSocketUpgradeFilter that handles the HTTP requests that upgrade to WebSocket is installed by the JakartaWebSocketServletContainerInitializer, as described in this section. Typically, the WebSocketUpgradeFilter is not present in the web.xml configuration, and therefore the mechanisms above create a new WebSocketUpgradeFilter and install it before any other Filter declared in web.xml, under the default name of \"org.eclipse.jetty.ee11.websocket.servlet.WebSocketUpgradeFilter\" and with path mapping /*. However, if the WebSocketUpgradeFilter is already present in web.xml under the default name, then the ServletContainerInitializers will use that declared in web.xml instead of creating a new one. This allows you to customize: The filter order; for example, by configuring filters for increased security or authentication before the WebSocketUpgradeFilter. The WebSocketUpgradeFilter configuration via init-params, that affects all Session instances created by this filter. The WebSocketUpgradeFilter path mapping. Rather than the default mapping of /*, you can map the WebSocketUpgradeFilter to a more specific path such as /ws/*. The possibility to have multiple WebSocketUpgradeFilters, mapped to different paths, each with its own configuration. For example: <?xml version=\"1.0\" encoding=\"UTF-8\"?> <web-app xmlns=\"https://jakarta.ee/xml/ns/jakartaee\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd\" version=\"5.0\"> <display-name>My WebSocket WebApp</display-name> <!-- The SecurityFilter *must* be the first --> (1) <filter> <filter-name>security</filter-name> <filter-class>com.acme.SecurityFilter</filter-class> <async-supported>true</async-supported> </filter> <filter-mapping> <filter-name>security</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- Configure the default WebSocketUpgradeFilter --> (2) <filter> <!-- The filter name must be the default WebSocketUpgradeFilter name --> <filter-name>org.eclipse.jetty.ee11.websocket.servlet.WebSocketUpgradeFilter</filter-name> (3) <filter-class>org.eclipse.jetty.ee11.websocket.servlet.WebSocketUpgradeFilter</filter-class> <!-- Configure at most 1 MiB text messages --> <init-param> (4) <param-name>maxTextMessageSize</param-name> <param-value>1048576</param-value> </init-param> <async-supported>true</async-supported> </filter> <filter-mapping> <filter-name>org.eclipse.jetty.ee11.websocket.servlet.WebSocketUpgradeFilter</filter-name> <!-- Use a more specific path mapping for WebSocket requests --> <url-pattern>/ws/*</url-pattern> (5) </filter-mapping> </web-app> 1 The custom SecurityFilter is the first, to apply custom security. 2 The configuration for the default WebSocketUpgradeFilter. 3 Note the use of the default WebSocketUpgradeFilter name. 4 Specific configuration for WebSocketUpgradeFilter parameters. 5 Use a more specific path mapping for WebSocketUpgradeFilter. Note that using a more specific path mapping for WebSocket requests is also beneficial to the performance of normal HTTP requests: they do not go through the WebSocketUpgradeFilter (as they will not match its path mapping), saving the cost of analyzing them to see whether they are WebSocket upgrade requests or not. When you write a WebSocket application using the Jetty/Jakarta WebSocket APIs, your co
1de needs to depend on both the Jetty WebSocket APIs and the Jakarta Servlet APIs to compile your application. However, at runtime you need to have the implementation of the Jetty/Jakarta WebSocket APIs in your class-path (or module-path). Jetty/Jakarta WebSocket APIs are provided by the following Maven artifact for Jakarta EE 10 to Jakarta EE 11 <dependency> <groupId>org.eclipse.jetty.websocket</groupId> <artifactId>jetty-websocket-jetty-api</artifactId> <version>12.1.13</version> </dependency> For Java EE 8 and Jakarta EE 9 they are provided by the following Maven artifact (adjust the EE version number accordingly): <dependency> <groupId>org.eclipse.jetty.websocket</groupId> <artifactId>jetty-ee9-websocket-jetty-api</artifactId> <version>12.1.13</version> </dependency> The implementation is provided by the following Maven artifact and its transitive dependencies (adjust the EE version number accordingly): <dependency> <groupId>org.eclipse.jetty.ee11.websocket</groupId> <artifactId>jetty-ee11-websocket-jetty-server</artifactId> <version>12.1.13</version> </dependency> The jetty-websocket-jetty-api artifact and the jetty-ee11-websocket-jetty-server artifact (and its transitive dependencies) should be present in the server class-path (or module-path), and never in the web applicationâs /WEB-INF/lib directory. You can read more about the Jetty WebSocket architecture, which is common to both client-side and server-side, to get familiar with the terminology used in the following sections. The WebSocket upgrade can be performed by either: The WebSocketUpgradeFilter â WebSocket mappings are configured through the JettyWebSocketServerContainer. The JettyWebSocketServlet â WebSocket mappings are configured through the JettyWebSocketServletFactory provided in the JettyWebSocketServlet.configure() method. You need Jetty to set up a JettyWebSocketServerContainer instance, in order to use the Jetty WebSocket APIs through the WebSocketUpgradeFilter. Jetty sets up a JettyWebSocketServerContainer instance using JettyWebSocketServletContainerInitializer. When you deploy web applications using WebAppContext, then JettyWebSocketServletContainerInitializer is automatically discovered and initialized by Jetty when the web application starts, so that it sets up the JettyWebSocketServerContainer. In this way, you do not need to write any additional code: // Create a Server with a ServerConnector listening on port 8080. Server server = new Server(8080); // Create a WebAppContext with the given context path. WebAppContext handler = new WebAppContext(\"/path/to/webapp\", \"/ctx\"); server.setHandler(handler); // Starting the Server will start the WebAppContext. server.start(); On the other hand, when you deploy web applications using ServletContextHandler, you have to write the code to ensure that the JettyWebSocketServletContainerInitializer is initialized, so that it sets up the JettyWebSocketServerContainer: // Create a Server with a ServerConnector listening on port 8080. Server server = new Server(8080); // Create a ServletContextHandler with the given context path. ServletContextHandler handler = new ServletContextHandler(\"/ctx\"); server.setHandler(handler); // Ensure that JettyWebSocketServletContainerInitializer is initialized, // to set up the ServerContainer for this web application context. JettyWebSocketServletContainerInitializer.configure(handler, null); // Starting the Server will start the ServletContextHandler. server.start(); Calling JettyWebSocketServletContainerInitializer.configure(...) must be done before the ServletContextHandler is started, and configures the Jetty WebSocket implementation for that web application context. Once you have set up the JettyWebSocketServerContainer, you can configure your WebSocket endpoints. Differently from the configuration of standard WebSocket endpoints, WebSocket endpoint classes may be annotated with Jetty WebSocket API annotations, or extend the org.eclipse.jetty.websocket.api.Session.Listener interface, but they are not automatically discovered, not even when deploying web applications using WebAppContext. When using the Jetty WebSocket APIs, WebSocket endpoints must al
1ways be explicitly configured. There are two ways of configuring WebSocket endpoints when using the Jetty WebSocket APIs: Using JettyWebSocketServerContainer, which is very similar to how WebSocket endpoints are configured when using the standard javax.websocket APIs, but also provides APIs to perform a direct, programmatic, WebSocket upgrade. Using JettyWebSocketServlet, which may configured in web.xml, rather than in Java code. To register WebSocket endpoints using the Jetty WebSocket APIs you need to access the JettyWebSocketServerContainer APIs. The JettyWebSocketServerContainer instance is stored in the ServletContext, so it can be retrieved when the ServletContext is initialized, either from a ServletContextListener or from a HttpServlet: // Create a Server with a ServerConnector listening on port 8080. Server server = new Server(8080); // Create a ServletContextHandler with the given context path. ServletContextHandler handler = new ServletContextHandler(\"/ctx\"); server.setHandler(handler); // Ensure that JettyWebSocketServletContainerInitializer is initialized, // to set up the JettyWebSocketServerContainer for this web application context. JettyWebSocketServletContainerInitializer.configure(handler, null); // Add a WebSocket-initializer Servlet to register WebSocket endpoints. handler.addServlet(MyJettyWebSocketInitializerServlet.class, \"/*\"); // Starting the Server will start the ServletContextHandler. server.start(); public class MyJettyWebSocketInitializerServlet extends HttpServlet { @Override public void init() throws ServletException { // Retrieve the JettyWebSocketServerContainer. JettyWebSocketServerContainer container = JettyWebSocketServerContainer.getContainer(getServletContext()); // Configure the JettyWebSocketServerContainer. container.setMaxTextMessageSize(128 * 1024); // Simple registration of your WebSocket endpoints. container.addMapping(\"/ws/myURI\", MyJettyWebSocketEndPoint.class); // Advanced registration of your WebSocket endpoints. container.addMapping(\"/ws/myOtherURI\", (upgradeRequest, upgradeResponse) -> new MyOtherJettyWebSocketEndPoint() ); } } You can also use this variant to set up the JettyWebSocketServerContainer and configure the WebSocket endpoints in one step: // Create a Server with a ServerConnector listening on port 8080. Server server = new Server(8080); // Create a ServletContextHandler with the given context path. ServletContextHandler handler = new ServletContextHandler(\"/ctx\"); server.setHandler(handler); // Set up the JettyWebSocketServerContainer and the WebSocket endpoints for this web application context. JettyWebSocketServletContainerInitializer.configure(handler, (servletContext, container) -> { // Configure the ServerContainer. container.setMaxTextMessageSize(128 * 1024); // Add your WebSocket endpoint(s) to the JettyWebSocketServerContainer. container.addMapping(\"/ws/myURI\", MyJettyWebSocketEndPoint.class); // Use JettyWebSocketCreator to have more control on the WebSocket endpoint creation. container.addMapping(\"/ws/myOtherURI\", (upgradeRequest, upgradeResponse) -> { // Possibly inspect the upgrade request and modify the upgrade response. upgradeResponse.setAcceptedSubProtocol(\"my-ws-protocol\"); // Create the new WebSocket endpoint. return new MyOtherJettyWebSocketEndPoint(); }); }); // Starting the Server will start the ServletContextHandler. server.start(); In the call to JettyWebSocketServerContainer.addMapping(...), you can specify a path spec (the first parameter) that can be configured as specified in this section. When the ServletContextHandler is started, the Configurator lambda (the second parameter passed to JettyWebSocketServletContainerInitializer.configure(...)) is invoked and allows you to explicitly configure the WebSocket endpoints using the Jetty WebSocket APIs provided by JettyWebSocketServerContainer. Under the hood, the call to JettyWebSocketServerContainer.addMapping(...) installs the org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter, which is the component that intercepts HTTP requests to upgrade to WebSocket, described
1in this section. For more information about the configuration of WebSocketUpgradeFilter see also this section. One last alternative to register your WebSocket endpoints is to use a programmatic WebSocket upgrade via JettyWebSocketServerContainer.upgrade(...), which allows you to use a standard HttpServlet subclass (rather than a JettyWebSocketServlet as explained in this section) to perform a direct WebSocket upgrade when your application logic demands so: // Create a Server with a ServerConnector listening on port 8080. Server server = new Server(8080); // Create a ServletContextHandler with the given context path. ServletContextHandler handler = new ServletContextHandler(\"/ctx\"); server.setHandler(handler); // Ensure that JettyWebSocketServletContainerInitializer is initialized, // to set up the ServerContainer for this web application context. JettyWebSocketServletContainerInitializer.configure(handler, null); // Starting the Server will start the ServletContextHandler. server.start(); public class ProgrammaticWebSocketUpgradeServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { if (requiresWebSocketUpgrade(request)) { // Retrieve the JettyWebSocketServerContainer. JettyWebSocketServerContainer container = JettyWebSocketServerContainer.getContainer(getServletContext()); // Use a JettyWebSocketCreator to inspect the upgrade request, // possibly modify the upgrade response, and create the WebSocket endpoint. JettyWebSocketCreator creator = (upgradeRequest, upgradeResponse) -> new MyJettyWebSocketEndPoint(); // Perform the direct WebSocket upgrade. container.upgrade(creator, request, response); } else { // Normal handling of the HTTP request/response. } } } When using JettyWebSocketServerContainer.upgrade(...), the WebSocketUpgradeFilter is not installed, since the WebSocket upgrade is performed programmatically. An alternative way to register WebSocket endpoints using the Jetty WebSocket APIs is to use a JettyWebSocketServlet subclass (or even many different JettyWebSocketServlet subclasses). This method has the advantage that it does not install the WebSocketUpgradeFilter under the hood, because the WebSocket upgrade is handled directly by your JettyWebSocketServlet subclass. This may also have a performance benefit for non-WebSocket HTTP requests (as they will not pass through the WebSocketUpgradeFilter). Your JettyWebSocketServlet subclass may be declared and configured either in code or in web.xml. Declaring your JettyWebSocketServlet subclass explicitly in code or in web.xml also simplifies the declaration and configuration of other web components such as other Servlets and/or Filters (for example, it is easier to configure the CrossOriginFilter, see also this section for more information). For example, your JettyWebSocketServlet subclass may be declared in code in this way: // Create a Server with a ServerConnector listening on port 8080. Server server = new Server(8080); // Create a ServletContextHandler with the given context path. ServletContextHandler handler = new ServletContextHandler(\"/ctx\"); server.setHandler(handler); // Set up the JettyWebSocketServerContainer to initialize WebSocket components. JettyWebSocketServletContainerInitializer.configure(handler, null); // Add your JettyWebSocketServlet subclass to the ServletContextHandler. handler.addServlet(MyJettyWebSocketServlet.class, \"/ws/*\"); // Starting the Server will start the ServletContextHandler. server.start(); public class MyJettyWebSocketServlet extends JettyWebSocketServlet { @Override protected void configure(JettyWebSocketServletFactory factory) { // At most 1 MiB text messages. factory.setMaxTextMessageSize(1048576); // Add the WebSocket endpoint. factory.addMapping(\"/ws/someURI\", (upgradeRequest, upgradeResponse) -> { // Possibly inspect the upgrade request and modify the upgrade response. // Create the new WebSocket endpoint. return new MyJettyWebSocketEndPoint(); }); } } Note how in the call to JettyWebSocketServletContainerInitializer.configure(...) the second parameter is null, because WebSocket endpoints are not created here, but instead by one (or more) JettyWebSocketServlet subclasses. Yet the call is necessary to create other WebSocket implementation components that are used by JettyWebSocketServlet. An HTTP upgrade request to WebSocket that matches your JettyWebSocketServlet subclass path mapping (specified above via ServletContextHandler.addServlet(...)) arr
1ives at the Servlet and is inspected to verify whether it is a valid upgrade to WebSocket. If the HTTP request is a valid upgrade to WebSocket, JettyWebSocketServlet calls configure(JettyWebSocketServletFactory factory) that you have overridden in your subclass, so that your application can instantiate and return the WebSocket endpoint. After having obtained the WebSocket endpoint, JettyWebSocketServlet performs the WebSocket upgrade. From this point on, the communication happens with the WebSocket protocol, and HTTP components such as Filters and Servlets are not relevant anymore. If the HTTP request is not an upgrade to WebSocket, JettyWebSocketServlet delegates the processing to the superclass, javax.servlet.HttpServlet, which in turn invokes methods such as doGet(...) or doPost(...) depending on the HTTP method. If your JettyWebSocketServlet subclass does not override the doXYZ(...) method corresponding to the HTTP request, a 405 Method Not Allowed response is returned to the client, as per the standard HttpServlet class implementation. It is possible to use both JettyWebSocketServerContainer and JettyWebSocketServlet. However, it is typically best to avoid mixing the use of JettyWebSocketServerContainer with the use of JettyWebSocketServlet, so that all your WebSocket endpoints are initialized by the same code in one place only. Using JettyWebSocketServerContainer.addMapping(...) will install the WebSocketUpgradeFilter under the hood, which by default will intercept all HTTP requests to upgrade to WebSocket. However, as explained in this section, if WebSocketUpgradeFilter does not find a matching WebSocket endpoint for the request URI path, then the HTTP request is passed to the Filter chain of your web application and may arrive to your JettyWebSocketServlet subclass, where it would be processed and possibly result in a WebSocket upgrade. When you write a WebSocket application using the Jetty WebSocket APIs, your code typically needs to depend on just the Jetty WebSocket APIs to compile your application. However, at runtime you need to have the implementation of the Jetty WebSocket APIs in your class-path/module-path. Jettyâs WebSocket APIs are provided by the following Maven artifact: <dependency> <groupId>org.eclipse.jetty.websocket</groupId> <artifactId>jetty-websocket-jetty-api</artifactId> <version>12.1.13</version> </dependency> Jettyâs implementation of the Jetty WebSocket APIs is provided by the following Maven artifact (and its transitive dependencies): <dependency> <groupId>org.eclipse.jetty.websocket</groupId> <artifactId>jetty-websocket-jetty-server</artifactId> <version>12.1.13</version> </dependency> The jetty-websocket-jetty-api artifact and the jetty-websocket-jetty-server artifact (and its transitive dependencies) should be present in the server class-path/module-path, and never in the web applicationâs class-path. To configure correctly your WebSocket application based on the Jetty WebSocket APIs, you need two steps: Make sure to set up an instance of org.eclipse.jetty.websocket.server.ServerWebSocketContainer. Use the ServerWebSocketContainer APIs in your applications to register the WebSocket endpoints that implement your application logic. You can read more about the Jetty WebSocket architecture, which is common to both client-side and server-side, to get familiar with the terminology used in the following sections. You need Jetty to set up a ServerWebSocketContainer instance to make your WebSocket applications based on the Jetty WebSocket APIs work. Your WebSocket web application is represented by a ContextHandler. The WebSocket upgrade is performed in a descendant (typically the only child) of the ContextHandler, either by the org.eclipse.jetty.websocket.server.WebSocketUpgradeHandler, or by a custom Handler that you write and is part of your web application. In both cases, you need to set up a ServerWebSocketContainer, and this can be done implicitly by using WebSocketUpgradeHandler, or explicitly by creating the ServerWebSocketContainer instance. Using WebSocketUpgradeHandler is the most common way to set up your WebSocket applications. You can use the WebSocketUpgradeHandler and the ServerWebSocketContainer APIs to map HTTP request URIs to WebSocket endpoints. When an HTTP request arrives, WebSocketUpgradeHandler tests whether it is a WebSocket upgrade request, whether it matches a mapped URI, and if so upgrades the protocol to WebSocket. From this point on, the communication on the upgraded connection happens with the WebSocket protocol. This is very similar to what WebSocketUpgradeFilter does when using the Jakarta EE WebSocket APIs. Once you have set up the WebSocketUpgradeHandler, you can use the ServerWebSocketContainer APIs to configure the WebSocket endpoints. The example below shows how to set up the WebSocketUpgradeHandler and use the ServerWebSocketContainer APIs: // Create a Server with a ServerConnector listening on port 8080. Server server = new Server(8080); // Create a ContextHandler with the given context path. ContextHandler contextHandler = new ContextHandler(\"/ctx\"); server.setHandler(contextHandler); // Create a WebSocketUpgradeHandler that implicitly creates a ServerWebSocketContainer. WebSocketUpgradeHandler webSocketHandler = WebSocketUpgradeHandler.from(server, contextHandler, container -> { // Configure the ServerWebSocketContainer. container.setMaxTextMessageSize(128 * 1024); // Map a request URI to a WebSocket endpoint, for example using a regexp. container.addMapping(\"regex|/ws/v\\\\d+/echo\", (rq, rs, cb) -> new EchoEndPoint()); // Advanced registration of a WebSocket endpoint. container.addMapping(\"/ws/adv\", (rq, rs, cb) -> { List<String> subProtocols = rq.getSubProtocols(); if (subProtocols.contains(\"my-ws-protocol\")) return new MyJettyWebSocketEndPoint(); return null; }); }); contextHandler.setHandler(webSocketHandler); // Starting the Server will start the ContextHandler and the WebSocketUpgradeHandler, // which w
1ould run the configuration of the ServerWebSocketContainer. server.start(); The mapping of request URIs to WebSocket endpoints is further explained in this section. A more advanced way to set up your WebSocket applications is to explicitly create the ServerWebSocketContainer instance programmatically. This gives you more flexibility when deciding whether an HTTP request should be upgraded to WebSocket, because you do not need to match request URIs (although you can), nor you need to use WebSocketUpgradeHandler (although you can). Once you have created the ServerWebSocketContainer, you can use its APIs to configure the WebSocket endpoints as shown in the example below. // Create a Server with a ServerConnector listening on port 8080. Server server = new Server(8080); // Create a ContextHandler with the given context path. ContextHandler contextHandler = new ContextHandler(\"/ctx\"); server.setHandler(contextHandler); // Create a ServerWebSocketContainer, which is also stored as an attribute in the context. ServerWebSocketContainer container = ServerWebSocketContainer.ensure(server, contextHandler); // You can use WebSocketUpgradeHandler if you want, but it is not necessary. // You can ignore the line below, it is shown only for reference. WebSocketUpgradeHandler webSocketHandler = new WebSocketUpgradeHandler(container); // You can directly use ServerWebSocketContainer from any Handler. contextHandler.setHandler(new Handler.Abstract() { @Override public boolean handle(Request request, Response response, Callback callback) { // Retrieve the ServerWebSocketContainer. ServerWebSocketContainer container = ServerWebSocketContainer.get(request.getContext()); // Verify special conditions for which a request should be upgraded to WebSocket. String pathInContext = Request.getPathInContext(request); if (pathInContext.startsWith(\"/ws/echo\") && request.getHeaders().contains(\"X-WS\", \"true\")) { try { // This is a WebSocket upgrade request, perform a direct upgrade. boolean upgraded = container.upgrade((rq, rs, cb) -> new EchoEndPoint(), request, response, callback); if (upgraded) return true; // This was supposed to be a WebSocket upgrade request, but something went wrong. Response.writeError(request, response, callback, HttpStatus.UPGRADE_REQUIRED_426); return true; } catch (Exception x) { Response.writeError(request, response, callback, HttpStatus.UPGRADE_REQUIRED_426, \"failed to upgrade\", x); return true; } } else { // Handle a normal HTTP request. response.setStatus(HttpStatus.OK_200); callback.succeeded(); return true; } } }); // Starting the Server will start the ContextHandler. server.start(); Note how the call to ServerWebSocketContainer.upgrade(...) allows you to perform a direct WebSocket upgrade programmatically. When using the Jetty WebSocket APIs, the WebSocket endpoint classes must be either annotated with the Jetty WebSocket annotations from the org.eclipse.jetty.websocket.api.annotations package, or implement the org.eclipse.jetty.websocket.api.Session.Listener interface. In the case you want to implement the Session.Listener interface, remember that you have to explicitly demand to receive the next WebSocket event. Use Session.Listener.AutoDemanding to automate the demand for simple use cases. Refer to the Jetty WebSocket architecture section for more information about Jetty WebSocket endpoints and how to correctly deal with the demand for WebSocket events. There is no automatic discovery of WebSocket endpoints; all the WebSocket endpoints of your application must be returned by a org.eclipse.jetty.websocket.server.WebSocketCreator that is either mapped to a request URI via ServerWebSocketContainer.addMapping(...), or directly upgraded via ServerWebSocketContainer.upgrade(...). In the call to ServerWebSocketContainer.addMapping(...), you can specify a path spec (the first parameter) that can specified as discussed in this section. When the Server is started, the lambda passed to ServerWebSocketContainer.configure(...)) is invoked and allows you to explicitly configure the WebSocket endpoints using the Jetty WebSocket APIs provided by ServerWebSocketContainer. The ServerWebSocketContainer.addMapping(...) API maps a path spec to a WebSocketCreator instance (typically a lambda expression). The path spec is matched against the WebSocket upgrade request URI to select the correspondent WebSocketCreator to invoke. The path spec can have these forms: Servlet syntax, specified with servlet|<path spec>, where the servlet| prefix can be omitted if the path spec begins with / or *. (for example, /ws, /ws/chat or *.ws). Regex syntax, specified with regex|<path spec>, where the regex| prefix can be omitted if the path spec begins with ^ (for example, ^/ws/[0-9]+). URI template syntax, specified with uri-template|<path spec> (for example uri-template|/ws/chat/{room}). Within the WebSocketCreator, it is possible to access the path spec and, for example in case of URI templates, extract additional information in the following way: Server server = new Server(8080); ContextHandler contextHandler = new ContextHandler(\"/ctx\"); server.setHandler(contextHandler); // Create a WebSocketUpgradeHandler. WebSocketUpgradeHandler webSocketHandler = WebSocketUpgradeHandler.from(server, contextHandler, container -> { container.addMapping(\"/ws/chat/{room}\", (upgradeRequest, upgradeResponse, callback) -> { // Retrieve the URI template. UriTemplatePathSpec pathSpec = (UriTemplatePathSpec)upgradeRequest.getAttribute(PathSpec.class.getName()); // Match the URI template. String pathInContext = Request.getPathInContext(upgradeRequest); Map<String, String> params = pathSpec.getPathParams(pathInContext); String room = params.get(\"room\"); // Create the new WebSocket endpoint with the URI template information. return new MyWebSocketRoomEndPoint(room); }); }); contextHandler.setHandler(webSocketHandler);","title":"WebSocket Server","component":"jetty","version":"12.1","name":"websocket","url":"/docs/jetty/12.1/programming-guide/server/websocket.html","titles":[{"text":"Comparison","hash":"comparison","id":1},{"text":"Standard APIs Implementation","hash":"standard","id":2},{"text":"Setting Up ServerContainer","hash":"standard-container","id":3},{"text":"Configuring Endpoints","hash":"standard-endpoints","id":4},{"text":"Upgrade to WebSocket","hash":"standard-upgrade","id":5},{"text":"Advanced WebSocketUpgradeFilter Configuration","hash":"configure-filter","id":6},{"text":"Jetty/Jakarta WebSocket APIs Implementation","hash":"jetty-jakarta","id":7},{"text":"Setting up JettyWebSocketServerContainer","hash":"jetty-jakarta-container","id":8},{"text":"Configuring Endpoints","hash":"jetty-jakarta-endpoints","id":9},{"text":"Using JettyWebSocketServerContainer","hash":"jetty-jakarta-endpoints-container","id":10},{"text":"Using JettyWebSocketServlet","hash":"jetty-jakarta-endpoints-servlet","id":11},{"text":"Jetty APIs Implementation using Jetty Core APIs","hash":"jetty","id":12},{"text":"Setting up ServerWebSocketContainer","hash":"jetty-container","id":13},{"text":"Implicit setup using WebSocketUpgradeHandler","hash":"jetty-container-websocket-handler","id":14},{"text":"Explicit setup using ServerWebSocketContainer","hash":"jetty-container-websocket-container","id":15},{"text":"WebSocket Endpoints","hash":"jetty-endpoints","id":16},{"text":"Custom PathSpec Mappings","hash":"jetty-pathspec","id":17}]},"80":{"id":80,"text":"Sometimes, in order to figure out a problem, enabling DEBUG logging is not enough and you really need to debug the code with a debugger. Debugging an embedded Jetty application is most easily done from your preferred IDE, so refer to your IDE instruction for how to debug Java applications. Remote debugging can be enabled in a Jetty application via command line options: java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000 --class-path ... The example above enables remote debugging so that debuggers (for example, your preferred IDE) can connect to port 8000 on the host running the Jetty application to receive debugging events. More technically, remote debugging exchanges JVM Tools Interface (JVMTI) events and commands via the Java Debug Wire Protocol (JDWP).","title":"Remote Debugging","component":"jetty","version":"12.1","name":"debugging","url":"/docs/jetty/12.1/programming-guide/troubleshooting/debugging.html","titles":[]},"81":{"id":81,"text":"Jetty is based on components organized as a tree of objects (refer to this section), with the Server instance or the HttpClient instance typically at the root of the tree. As explained in the JMX section, these components can be exported as JMX MBeans and therefore be accessible from JMX Consoles such as Java Missions Control (JMC). Being able to take a snapshot of a Jetty component tree while it is running is the most useful information that can be attached when reporting an issue as it can contain both configuration and current state of Jetty. A dump of the component tree for the Server includes: The thread pool configuration and its current state, including how many threads are in use, and their stack trace. The Connector configuration (including TLS configuration), state and statistics. The I/O configuration and its current state, including the ports Jetty listens to, how many connections are currently open, and he state of each connection, and the state of the request/response handling for each connection. The Handler structure and its configuration. The web applications deployed and their configurations, including the class loader information. You can get the server dump at any time using these methods. Server server = new Server(); server.start(); // Get the server dump as a string. String dumpString = server.dump(); // Or dump to standard error stream. server.dumpStdErr(); However, it is often useful to configure the server to dump the state of the freshly started server, and also dump the state just before the Server stops (which may be useful to log the state of server that is not working properly). Server server = new Server(); server.setDumpAfterStart(true); server.setDumpBeforeStop(true); server.start(); The format of the Jetty Server Dump output is subject to change at any time, as Jetty developers modify the Jetty code and decide to include more state, or remove state that is no longer relevant. The Jetty Server Dump is organized in a tree whose structure is similar to the runtime Jetty component tree. At the end of the dump output there is a legend that explains the type of tree node: whether it is a node that represent a managed component, or an array no
1de (or a map node) that represent some component state, etc. The Jetty Component Dump can be obtained by invoking, via JMX, the Server.dump() operation, as shown below using Java Mission Control (JMC): Find the Server MBean in the MBean Tree, under org.eclipse.jetty.server:type=server,id=0. Then click on the \"Operations\" tab, select the dump() operation, and then click the Execute button. In the bottom panel you will see the result of the invocation, that you can copy into a text editor and save to your file system. Taking a Jetty Component Dump is a relatively expensive operation, as it dumps the state of all connections (which can be thousands), and the state of all threads. The result of the invocation may produce a large string, possibly few MiB, that may impact the server memory usage. Furthermore, dumping the state of the I/O Jetty components takes a little CPU time off the handling of the actual I/O, possibly slowing it down temporarily. The slow-down caused by taking the Jetty Component Dump may be noticeable on highly loaded systems. However, it is typically a very small price to pay to obtain the information about the Jetty state that may be critical to the resolution of an issue. By default, the dump of the thread pool will only dump the topmost stack frame of each thread. It is possible to configure the thread pool to dump the whole stack trace for each thread; while this may be a little more expensive, it provides complete information about the state of each thread, which may be important to diagnose the issue. See the threadpool module configuration for more information about how to configure the thread pool to dump detailed thread information. Detailed thread pool information can also be turned on/off on-the-fly via JMX, by finding the ThreadPool MBean under org.eclipse.jetty.util.thread:type=queuedthreadpool,id=0, then selecting the detailedDump attribute and setting it to true. You can now perform the Server.dump() operation as explained above, and then set detailedDump back to false. Below you can find a simple example of a Jetty Component Dump, with annotations for the principal components: [Running Jetty] :{args=jetty.http.selectors=1 jetty.http.acceptors=1 jetty.threadPool.minThreads=4 jetty.server.dumpAfterStart=true, callouts= <$N>,Server@,= oejut.QueuedThreadPool,ContextHandlerCollection@, oejs.ServerConnector,ManagedSelector@,keys @,startJarLoader@,unmanaged, jetty-home=/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13, jetty-version=undefined, setup-args=--add-modules=http, delete=^[0-9]{4}} oejs.Server@3ba987b8{STARTING}[12.1.13,sto=0] ~ BLOCKING - STARTING (1) += oejut.QueuedThreadPool[qtp1279309678]@4c40b76e{STARTED,4<=4<=200,i=2,r=-1,t=59983ms,q=0}[oejut.ReservedThreadExecutor@48bb62{capacity=16,threads=oejut.ThreadIdPool@353352b6{capacity=16}}] - STARTED (2) | +- oejut.ThreadPoolBudget@4681c175 | += oejut.ReservedThreadExecutor@48bb62{capacity=16,threads=oejut.ThreadIdPool@353352b6{capacity=16}} - STARTED | | +~@ oejut.QueuedThreadPool[qtp1279309678]@4c40b76e{STARTED,4<=4<=200,i=2,r=-1,t=59983ms,q=0}[oejut.ReservedThreadExecutor@48bb62{capacity=16,threads=oejut.ThreadIdPool@353352b6{capacity=16}}] - STARTED | | +- oejut.ThreadIdPool@353352b6{capacity=16} | +> threads size=4 | +> qtp1279309678-44 TIMED_WAITING tid=44 prio=5 IDLE | +> qtp1279309678-45 TIMED_WAITING tid=45 prio=5 IDLE | +> qtp1279309678-42 RUNNABLE tid=42 prio=5 SELECTING | +> [email protected]@8519cb4{HTTP/1.1, (http/1.1)}{0.0.0.0:8080} RUNNABLE tid=43 prio=3 ACCEPTING +~ oejut.ScheduledExecutorScheduler@491666ad{STARTED} - STARTED +- oeji.ArrayByteBufferPool@6c284af{min=0,max=65536,buckets=16,heap=0/2095054848,direct=0/2095054848} | +> direct size=16 | | +> oeji.ArrayByteBufferPool$RetainedBucket@221a3fa4[capacity=4096,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@8462f31[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@5ddeb7cb[capacity=8192,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-
1pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@70ed52de[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@59402b8f[capacity=12288,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@7188af83[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@7c37508a[capacity=16384,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@247310d0[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@303cf2ba[capacity=20480,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@76494737[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@4082ba93[capacity=24576,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@17fc391b[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@609e8838[capacity=28672,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@359df09a[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@6d60fe40[capacity=32768,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@792b749c[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@19932c16[capacity=36864,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@73eb439a[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@305ffe9e[capacity=40960,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@302c971f[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@7ae0a9ec[capacity=45056,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@35841320[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@6f10d5b6[capacity=49152,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@1040be71[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@433defed[capacity=53248,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@2a693f59[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@7fd50002[capacity=57344,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@533bda92[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@723ca036[capacity=61440,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@25be7b63[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@45d84a20[capacity=65536,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | +> oeju.ConcurrentPool@52f27fbd[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | +> entries size=0 | +> direct non-pooled acquisitions size=0 | +> indirect size=16 | | +> oeji.ArrayByteBufferPool$RetainedBucket@6c4906d3[capacity=4096,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-
1pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@65987993[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@4f32a3ad[capacity=8192,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@6b695b06[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@6f53b8a[capacity=12288,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@5c80cf32[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@6f01b95f[capacity=16384,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@4007f65e[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@673fdbce[capacity=20480,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@5965d37[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@4201c465[capacity=24576,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@5b799640[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@710636b0[capacity=28672,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@3de8f619[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@4e5ed836[capacity=32768,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@eadd4fb[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@7bd7d6d6[capacity=36864,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@43f02ef2[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@2a8448fa[capacity=40960,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@6f204a1a[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@5f8e8a9d[capacity=45056,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@5745ca0e[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@3cce5371[capacity=49152,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@17bffc17[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@15a34df2[capacity=53248,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@5b38c1ec[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@4722ef0c[capacity=57344,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@48e1f6c7[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@1807e3f6[capacity=61440,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-pooled/evicts/removes=0/0/0] | | | +> oeju.ConcurrentPool@480d3575[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | | +> entries size=0 | | +> oeji.ArrayByteBufferPool$RetainedBucket@194fad1[capacity=65536,in-use=0/0,pooled/acquires/releases=0/0/0(NaN%),avgSize=0,non-
1pooled/evicts/removes=0/0/0] | | +> oeju.ConcurrentPool@26abb146[strategy=THREAD_ID,inUse=0,size=0,max=-1,leaked=0,terminated=false] | | +> entries size=0 | +> heap non-pooled acquisitions size=0 +~ oejur.FileSystemPool@38467116{0} | +> buckets size=0 += oejsh.DefaultHandler@790da477{showContext=true,favIcon=true,STARTED} ~ NON_BLOCKING - STARTED += oejsh.ContextHandlerCollection@5c7933ad{STARTED} ~ BLOCKING - STARTED (3) += oejs.ServerConnector@8519cb4{HTTP/1.1, (http/1.1)}{0.0.0.0:8080} - STARTED (4) | +~@ oejut.QueuedThreadPool[qtp1279309678]@4c40b76e{STARTED,4<=4<=200,i=2,r=-1,t=59961ms,q=0}[oejut.ReservedThreadExecutor@48bb62{capacity=16,threads=oejut.ThreadIdPool@353352b6{capacity=16}}] - STARTED | +~ oejut.ScheduledExecutorScheduler@491666ad{STARTED} - STARTED | +~@ oeji.ArrayByteBufferPool@6c284af{min=0,max=65536,buckets=16,heap=0/2095054848,direct=0/2095054848} | += oejs.HttpConnectionFactory@3232a28a[HTTP/1.1] - STARTED | | +- oejs.HttpConfiguration@57bc27f5{32768/8192,8192/8192,https://:0,[]} | | +> customizers size=0 | | +> formEncodedMethods size=2 | | | +> POST | | | +> PUT | | +> outputBufferSize=32768 | | +> outputAggregationSize=8192 | | +> requestHeaderSize=8192 | | +> responseHeaderSize=8192 | | +> maxResponseHeaderSize=16384 | | +> headerCacheSize=1024 | | +> headerCacheCaseSensitive=false | | +> secureScheme=https | | +> securePort=0 | | +> idleTimeout=-1 | | +> sendDateHeader=true | | +> sendServerVersion=true | | +> sendXPoweredBy=false | | +> delayDispatchUntilContent=true | | +> persistentConnectionsEnabled=true | | +> maxErrorDispatches=10 | | +> useInputDirectByteBuffers=true | | +> useOutputDirectByteBuffers=true | | +> minRequestDataRate=0 | | +> minResponseDataRate=0 | | +> httpCompliance=RFC9110[LF_HEADER_TERMINATION] | | +> uriCompliance=DEFAULT[] | | +> redirectUriCompliance=DEFAULT_REDIRECT[FRAGMENT] | | +> requestCookieCompliance=RFC6265@2dfaea86[INVALID_COOKIES, OPTIONAL_WHITE_SPACE, SPACE_IN_VALUES, STRIPPED_QUOTES] | | +> responseCookieCompliance=RFC6265@2dfaea86[INVALID_COOKIES, OPTIONAL_WHITE_SPACE, SPACE_IN_VALUES, STRIPPED_QUOTES] | | +> multiPartCompliance=RFC7578 | | +> notifyRemoteAsyncErrors=true | | +> relativeRedirectAllowed=true | | +> serverAuthority=null | | +> localAddress=null | | +> maxUnconsumedRequestContentReads=16 | += oejs.ServerConnector$ServerConnectorManager@34bde49d[keys=0] - STARTED | | += oeji.ManagedSelector@1b1cfb87{STARTED}[id=0 keys=0 selected=0 updates=0 selection:tot=0/avg=0.00/max=0] - STARTED (5) | | += oejuts.AdaptiveExecutionStrategy@20b2475a/oeji.ManagedSelector$SelectorProducer@7857fe2/PRODUCING/oejut.QueuedThreadPool[qtp1279309678]@4c40b76e{STARTED,4<=4<=200,i=2,r=-1,t=59955ms,q=0}[oejut.ReservedThreadExecutor@48bb62{capacity=16,threads=oejut.ThreadIdPool@353352b6{capacity=16}}][pc=0,pic=0,pec=0,epc=0/0] - STARTED | | | +- oeji.ManagedSelector$SelectorProducer@7857fe2 | | | +~@ oejut.QueuedThreadPool[qtp1279309678]@4c40b76e{STARTED,4<=4<=200,i=2,r=-1,t=59955ms,q=0}[oejut.ReservedThreadExecutor@48bb62{capacity=16,threads=oejut.ThreadIdPool@353352b6{capacity=16}}] - STARTED | | +> updates @ 2026-09-23T22:25:28.593326488Z size=0 | | +> keys @ 2026-09-23T22:25:28.593707255Z size=0 (6) | +- sun.nio.ch.ServerSocketChannelImpl[/[0:0:0:0:0:0:0:0]:8080] | +- [email protected]@8519cb4{HTTP/1.1, (http/1.1)}{0.0.0.0:8080} | +> idleTimeout=30000 | +> shutdownIdleTimeout=1000 +- org.eclipse.jetty.util.component.HaltLifeCycleListener@4f0f2942 +- oejs.Server$DynamicErrorHandler@2657d4dd ~ BLOCKING +> startJarLoader@244038d0 (7) | +> URLs size=8 | | +> file:/path/to/jetty.home-base/resources/ | | +> file:/path/to/jetty.home/lib/logging/slf4j-api-2.0.17.jar | | +> file:/path/to/jetty.home/lib/logging/jetty-slf4j-impl-12.1.13.jar | | +> file:/path/to/jetty.home/lib/jetty-http-12.1.13.jar | | +> file:/path/to/jetty.home/lib/jetty-util-12.1.13.jar | | +> file:/path/to/jetty.home/lib/jetty-server-12.1.13.jar | | +> file:/path/to/jetty.home/lib/jetty-xml-12.1.13.jar | | +> file:/path/to/jetty.home/lib/jetty-io-12.1.13.jar | +> parent: jdk.internal.loader.ClassLoaders$AppClassLoader@639fee48 | +> packages size=4 | | +> package org.eclipse.jetty.start.config | | +> package org.eclipse.jetty.start.builders | | +> package org.eclipse.jetty.start.shaded.util | | +> package org.eclipse.jetty.start | +> parent: jdk.internal.loader.ClassLoaders$PlatformClassLoader@1f9e9475 | +> packages size=2 | +> package sun.util.resources.provider | +> package sun.util.resources.cldr.provider +> environments size=0 +> attributes size=0 +>@ oejur.FileSystemPool@38467116{0} legend: +- bean, += managed, +~ unmanaged, +? auto, +: iterable, +] array, +} map, +> pojo; @ visited (8) JVM: Eclipse Adoptium OpenJDK 64-Bit Server VM 21.0.8+9-LTS; OS: Linux amd64 6.8.0-139-lowlatency; Jetty: 12.1.13; CPUs: 16; mem(free/total/max): 953/1,008/15,984 MiB UTC: 2026-09-23T22:25:28.599094545Z; Etc/UTC: 2026-09-23T22:25:28.599094545Z 1 The Server instance at the root of the tree 2 The thread pool component 3 The root of the Handler structure 4 The connector listening on port 8080 for the HTTP/1.1 protocol 5 A selector component that manages connections 6 The connections currently managed by the selector component 7 The server ClassLoader and its classpath 8 The legend for the dump nodes","title":"Jetty Component Dump","component":"jetty","version":"12.1","name":"component-dump","url":"/docs/jetty/12.1/programming-guide/troubleshooting/component-dump.html","titles":[{"text":"Component Dump at Server Start/Stop","hash":"dump-start-stop","id":1},{"text":"Obtaining Dump via JMX","hash":"dump-invoke","id":2},{"text":"Detailed ThreadPool Information","hash":"dump-detailed","id":3},{"text":"Dump Example","hash":"dump-example","id":4}]},"82":{"id":82,"text":"TODO: introduction","title":"Troubleshooting Jetty","component":"jetty","version":"12.1","name":"index","url":"/docs/jetty/12.1/programming-guide/troubleshooting/index.html","titles":[]}
1,"83":{"id":83,"text":"StateTrackingHandler (described here) is a troubleshooting Handler that can be inserted in the Handler chain to track usages of Handler/Request/Response asynchronous APIs. Dumping the Jetty component tree will dump the StateTrackingHandler, which will dump the state of the current requests. This will help detecting whether requests are not completed due to callbacks not being completed, or whether callback code is stuck while invoking blocking APIs, etc. Thread stack traces (including virtual threads) of operations that have been started but not completed, or are stuck in blocking code are provided in the component tree dump.","title":"StateTrackingHandler","component":"jetty","version":"12.1","name":"state-tracking","url":"/docs/jetty/12.1/programming-guide/troubleshooting/state-tracking.html","titles":[]},"84":{"id":84,"text":"The Jetty libraries (both client and server) use SLF4J as logging APIs. You can therefore plug in any SLF4J logging implementation, and configure the logging category org.eclipse.jetty at the desired level. When you have problems with Jetty, the first thing that you want to do is to enable DEBUG logging. This is helpful because by reading the DEBUG logs you get a better understanding of what is going on in the system (and that alone may give you the answers you need to fix the problem), and because Jetty developers will probably need the DEBUG logs to help you. The Jetty artifact jetty-slf4j-impl is a SLF4J binding, that is the Jetty implementation of the SLF4J APIs, and provides a number of easy-to-use features to configure logging. The Jetty SLF4J binding only provides an appender that writes to System.err. For more advanced configurations (for example, logging to a file), use LogBack, or Log4j2, or your preferred SLF4J binding. Only one binding can be present in the class-path or module-path. If you use the LogBack SLF4J binding or the Log4j2 SLF4J binding, remember to remove the Jetty SLF4J binding. The Jetty SLF4J binding reads a file in the class-path (or module-path) called jetty-logging.properties that can be configured with the logging levels for various logger categories: jetty-logging.properties # By default, log at INFO level all Jetty classes. org.eclipse.jetty.LEVEL=INFO # However, the Jetty client classes are logged at DEBUG level. org.eclipse.jetty.client.LEVEL=DEBUG Similarly to how you configure the jetty-logging.properties file, you can set the system property org.eclipse.jetty[.<package_names>].LEVEL=DEBUG to quickly change the logging level to DEBUG without editing any file. The system property can be set on the command line, or in your IDE when you run your tests or your Jetty-based application and will override the jetty-logging.properties file configuration. For example to enable DEBUG logging for all the Jetty classes (very verbose): java -Dorg.eclipse.jetty.LEVEL=DEBUG --class-path ... If you want to enable DEBUG logging but only for the HTTP/2 classes: java -Dorg.eclipse.jetty.http2.LEVEL=DEBUG --class-path ...","title":"Logging","component":"jetty","version":"12.1","name":"logging","url":"/docs/jetty/12.1/programming-guide/troubleshooting/logging.html","titles":[{"text":"Jetty SLF4J Binding","hash":"jetty-slf4j-binding","id":1}]},"85":{"id":85,"text":"TODO","title":"JVM Thread Dump","component":"jetty","version":"12.1","name":"thread-dump","url":"/docs/jetty/12.1/programming-guide/troubleshooting/thread-dump.html","titles":[]}},"components":{},"componentVersions":{"ROOT/":{"displayVersion":"default","title":"Home","version":"","origins":{},"name":"ROOT","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"Eclipse Jetty","site-url":"https://jetty.org","experimental":"","idprefix":"","idseparator":"-","page-pagination":""},"sourcemap":false,"extensions":[{},{},{},{},{},{}]},"url":"/index.html"},"docs/":{"displayVersion":"default","title":"Jetty Documentation","version":"","origins":{},"name":"docs","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanch
1ors":"","source-highlighter":"highlight.js","site-title":"Eclipse Jetty","site-url":"https://jetty.org","experimental":"","idprefix":"","idseparator":"-","page-pagination":""},"sourcemap":false,"extensions":[{},{},{},{},{},{}]},"url":"/docs/index.html"},"contribution-guide/":{"displayVersion":"default","title":"Contribution Guide","version":"","origins":{},"name":"contribution-guide","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"Eclipse Jetty","site-url":"https://jetty.org","experimental":"","idprefix":"","idseparator":"-","page-pagination":""},"sourcemap":false,"extensions":[{},{},{},{},{},{}]},"nav":["modules/ROOT/nav.adoc"],"url":"/docs/contribution-guide/index.html","navigation":[{"content":"Participation and Contribution","url":"/docs/contribution-guide/index.html","urlType":"internal","roles":["page"],"items":[{"content":"The Eclipse Contributor Agreement","url":"/docs/contribution-guide/eca/index.html","urlType":"internal","roles":["page"]},{"content":"Getting the source code","url":"/docs/contribution-guide/source/index.html","urlType":"internal","roles":["page"]},{"content":"Building Jetty","url":"/docs/contribution-guide/build/index.html","urlType":"internal","roles":["page"]},{"content":"Code Standards","url":"/docs/contribution-guide/standards/index.html","urlType":"internal","roles":["page"]},{"content":"Writing Documentation","url":"/docs/contribution-guide/documentation/index.html","urlType":"internal","roles":["page"]},{"content":"Submitting Patches","url":"/docs/contribution-guide/patches/index.html","urlType":"internal","roles":["page"]},{"content":"Security","url":"/docs/contribution-guide/security/index.html","urlType":"internal","roles":["page"]}],"root":true,"order":0}]},"jetty/12.1":{"displayVersion":"12.1","title":"Eclipse Jetty","version":"12.1","origins":{},"name":"jetty","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"Eclipse Jetty","site-url":"https://jetty.org","experimental":"","idprefix":"","idseparator":"-","page-pagination":"","javadoc-url":"https://javadoc.jetty.org/jetty-12.1","jetty-home":"/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.1.13-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.1.13@","jetty-version":"12.1.13","ee-all":"ee{8,9,10,11}","ee-all-caps":"EE {8,9,10,11}","ee-current":"ee11","ee-current-caps":"EE 11","ee-prev":"ee10","ee-prev-caps":"EE 10","run-jetty-classpath":"/home/ubuntu/.m2/repository/org/eclipse/jetty/tests/jetty-testers/12.1.13/jetty-testers-12.1.13.jar:/home/ubuntu/.m2/repository/com/google/code/gson/gson/2.14.0/gson-2.14.0.jar:/home/ubuntu/.m2/repository/com/google/errorprone/error_prone_annotations/2.48.0/error_prone_annotations-2.48.0.jar:/home/ubuntu/.m2/repository/io/netty/netty-common/4.2.17.Final/netty-common-4.2.17.Final.jar:/home/ubuntu/.m2/repository/io/netty/netty-resolver/4.2.17.Final/netty-resolver-4.2.17.Final.jar:/home/ubuntu/.m2/repository/io/netty/netty-buffer/4.2.17.Final/netty-buffer-4.2.17.Final.jar:/home/ubuntu/.m2/repository/io/netty/netty-transport/4.2.17.Final/netty-transport-4.2.17.Final.jar:/home/ubuntu/.m2/repository/io/netty/netty-transport-native-unix-common/4.2.17.Final/netty-transport-native-unix-common-4.2.17.Final.jar:/home/ubuntu/.m2/repository/io/netty/netty-transport-native-epoll/4.2.17.Final/netty-transport-native-epoll-4.2.17.Final-linux-x86_64.jar:/home/ubuntu/.m2/repository/io/netty/netty-transport-classes-epoll/4.2.17.Final/netty-transport-classes-epoll-4.2.17.Final.jar:/home/ubuntu/.m2/repository/io/netty/netty-transport-native-epoll/4.2.17.Final/netty-transport-native-epoll-4.2.17.Final-linux-aarch_64.jar:/home/ubuntu/.m2/repository/org/ow2/asm/asm/9.10.1/asm-9.10.1.jar:/home/ubuntu/.m2/repository/org/slf4j/slf4j-api/2.0.17/slf4j-api-2.0.17.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-model-builder/3.9.16/maven-model-builder
1-3.9.16.jar:/home/ubuntu/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.29/plexus-interpolation-1.29.jar:/home/ubuntu/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-model/3.9.16/maven-model-3.9.16.jar:/home/ubuntu/.m2/repository/org/codehaus/plexus/plexus-utils/4.1.0/plexus-utils-4.1.0.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-artifact/3.9.16/maven-artifact-3.9.16.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-builder-support/3.9.16/maven-builder-support-3.9.16.jar:/home/ubuntu/.m2/repository/org/eclipse/sisu/org.eclipse.sisu.inject/1.0.0/org.eclipse.sisu.inject-1.0.0.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-supplier/1.9.27/maven-resolver-supplier-1.9.27.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-api/1.9.27/maven-resolver-api-1.9.27.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-spi/1.9.27/maven-resolver-spi-1.9.27.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-named-locks/1.9.27/maven-resolver-named-locks-1.9.27.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-impl/1.9.27/maven-resolver-impl-1.9.27.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-util/1.9.27/maven-resolver-util-1.9.27.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-connector-basic/1.9.27/maven-resolver-connector-basic-1.9.27.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-file/1.9.27/maven-resolver-transport-file-1.9.27.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-http/1.9.27/maven-resolver-transport-http-1.9.27.jar:/home/ubuntu/.m2/repository/org/apache/httpcomponents/httpclient/4.5.14/httpclient-4.5.14.jar:/home/ubuntu/.m2/repository/org/apache/httpcomponents/httpcore/4.4.16/httpcore-4.4.16.jar:/home/ubuntu/.m2/repository/commons-codec/commons-codec/1.22.1/commons-codec-1.22.1.jar:/home/ubuntu/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.36/jcl-over-slf4j-1.7.36.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-resolver-provider/3.9.16/maven-resolver-provider-3.9.16.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-repository-metadata/3.9.16/maven-repository-metadata-3.9.16.jar:/home/ubuntu/.m2/repository/org/awaitility/awaitility/4.3.0/awaitility-4.3.0.jar:/home/ubuntu/.m2/repository/org/codehaus/plexus/plexus-xml/4.2.0/plexus-xml-4.2.0.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-api-xml/4.0.0-rc-6/maven-api-xml-4.0.0-rc-6.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-api-annotations/4.0.0-rc-6/maven-api-annotations-4.0.0-rc-6.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-xml/4.0.0-rc-6/maven-xml-4.0.0-rc-6.jar:/home/ubuntu/.m2/repository/com/fasterxml/woodstox/woodstox-core/7.2.1/woodstox-core-7.2.1.jar:/home/ubuntu/.m2/repository/org/codehaus/woodstox/stax2-api/4.3.0/stax2-api-4.3.0.jar:/home/ubuntu/.m2/repository/org/hamcrest/hamcrest/3.0/hamcrest-3.0.jar:/home/ubuntu/.m2/repository/org/junit/jupiter/junit-jupiter-api/6.1.3/junit-jupiter-api-6.1.3.jar:/home/ubuntu/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/home/ubuntu/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/home/ubuntu/.m2/repository/org/jspecify/jspecify/1.0.0/jspecify-1.0.0.jar:/home/ubuntu/.m2/repository/org/eclipse/jetty/toolchain/jetty-test-helper/6.4/jetty-test-helper-6.4.jar:/home/ubuntu/.m2/repository/org/junit/platform/junit-platform-commons/6.1.3/junit-platform-commons-6.1.3.jar","servlet-current-version":"6.1.0"},"sourcemap":false,"extensions":[{},{},{},{},{},{}]},"nav":["modules/operations-guide/nav.adoc","modules/programming-guide/nav.adoc"],"url":"/docs/jetty/12.1/index.html","navigation":[{"content":"Operations Guide","url":"/docs/jetty/12.1/operations-guide/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Getting Started","url":"/docs/jetty/12.1/operations-guide/begin/index.html","urlType":"internal","roles":["page"]},{"content":"Eclipse Jetty Features","url":"/docs/jetty/12.1/operations-guide/features/index.html","urlType":"internal","roles":["page"]},{"content":"Eclipse Jetty How-Tos","url":"/docs/jetty/12.1/operations-guide/howtos/index.html","urlType":"internal","roles":["page"]},{"content":"Architecture Overview","url":"/docs/jetty/12.1/operations-guide/arch/index.html","urlType":"internal","roles":["page"]},{"content":"Jetty Start Mechanism","url":"/docs/jetty/12.1/operations-guide/start/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Starting Jetty using JPMS","url":"/docs/jetty/12.1/operations-guide/start/start-jpms.html","urlType":"internal","roles":["page"]}]},{"content":"Jetty Modules","url":"/docs/jetty/12.1/operations-guide/modules/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Custom Jetty Modules","url":"/docs/jetty/12.1/operations-guide/modules/custom.html","urlType":"internal","roles":["page"]},{"content":"Standard Modules","url":"/docs/jetty/12.1/operations-guide/modules/standard.html","urlType":"internal","roles":["page"]}]},{"content":"Web Application Deployment","url":"/docs/jetty/12.1/operations-guide/deploy/index.html","urlType":"internal","roles":["page"]},{"content":"Jetty Server","url":"/docs/jetty/12.1/operations-guide/server/index.html","urlType":"internal","roles":["page"]},{"content":"Jetty Connectors and Protocols","url":"/docs/jetty/12.1/operations-guide/protocols/index.html","urlType":"internal","roles":["page"]},{"content":"Configuring SSL/TLS KeyStores","url":"/docs/jetty/12.1/operations-guide/keystore/index.html","urlType":"internal","roles":["page"]},{"content":"HTTP Session Management","url":"/docs/jetty/12.1/operations-guide/session/index.html","urlType":"internal","roles":["page"]},{"content":"Faster Jakarta EE Web Application Deployment","url":"/docs/jetty/12.1/operations-guide/quickstart/index.html","urlType":"internal","roles":["page"]},{"content":"Annotations","url":"/docs/jetty/12.1/operations-guide/annotations/index.html","urlType":"internal","roles":["page"]},{"content":"Java Server Pages","url":"/docs/jetty/12.1/operations-guide/jsp
1/index.html","urlType":"internal","roles":["page"]},{"content":"JavaServer Pages Standard Tag Libraries","url":"/docs/jetty/12.1/operations-guide/jstl/index.html","urlType":"internal","roles":["page"]},{"content":"Jakarta Faces TagLibs","url":"/docs/jetty/12.1/operations-guide/jsf-taglibs/index.html","urlType":"internal","roles":["page"]},{"content":"JNDI","url":"/docs/jetty/12.1/operations-guide/jndi/index.html","urlType":"internal","roles":["page"]},{"content":"Jetty Security","items":[{"content":"Limiting Form Content","url":"/docs/jetty/12.1/operations-guide/security/configuring-form-size.html","urlType":"internal","roles":["page"]},{"content":"JAAS","url":"/docs/jetty/12.1/operations-guide/security/jaas-support.html","urlType":"internal","roles":["page"]},{"content":"JASPI","url":"/docs/jetty/12.1/operations-guide/security/jaspi-support.html","urlType":"internal","roles":["page"]},{"content":"OpenID Support","url":"/docs/jetty/12.1/operations-guide/security/openid-support.html","urlType":"internal","roles":["page"]}]},{"content":"JMX Monitoring & Management","url":"/docs/jetty/12.1/operations-guide/jmx/index.html","urlType":"internal","roles":["page"]},{"content":"Jetty Tools","url":"/docs/jetty/12.1/operations-guide/tools/index.html","urlType":"internal","roles":["page"]},{"content":"Troubleshooting","url":"/docs/jetty/12.1/operations-guide/troubleshooting/index.html","urlType":"internal","roles":["page"]},{"content":"Jetty XML","url":"/docs/jetty/12.1/operations-guide/xml/index.html","urlType":"internal","roles":["page"]},{"content":"Glossary","url":"/docs/jetty/12.1/operations-guide/glossary.html","urlType":"internal","roles":["page"]}],"root":true,"order":0},{"content":"Programming Guide","url":"/docs/jetty/12.1/programming-guide/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Client Libraries","url":"/docs/jetty/12.1/programming-guide/client/index.html","urlType":"internal","roles":["page"],"items":[{"content":"HTTP Client","url":"/docs/jetty/12.1/programming-guide/client/http.html","urlType":"internal","roles":["page"]},{"content":"HTTP/2 Client Library","url":"/docs/jetty/12.1/programming-guide/client/http2.html","urlType":"internal","roles":["page"]},{"content":"HTTP/3 Client Library","url":"/docs/jetty/12.1/programming-guide/client/http3.html","urlType":"internal","roles":["page"]},{"content":"WebSocket Client","url":"/docs/jetty/12.1/programming-guide/client/websocket.html","urlType":"internal","roles":["page"]},{"content":"Client I/O Architecture","url":"/docs/jetty/12.1/programming-guide/client/io-arch.html","urlType":"internal","roles":["page"]},{"content":"Client Threading Architecture","url":"/docs/jetty/12.1/programming-guide/client/threads.html","urlType":"internal","roles":["page"]}]},{"content":"Server Libraries","url":"/docs/jetty/12.1/programming-guide/server/index.html","urlType":"internal","roles":["page"],"items":[{"content":"HTTP Server Libraries","url":"/docs/jetty/12.1/programming-guide/server/http.html","urlType":"internal","roles":["page"]},{"content":"HTTP/2 Server Library","url":"/docs/jetty/12.1/programming-guide/server/http2.html","urlType":"internal","roles":["page"]},{"content":"HTTP/3 Server Library","url":"/docs/jetty/12.1/programming-guide/server/http3.html","urlType":"internal","roles":["page"]},{"content":"Server Compliance Modes","url":"/docs/jetty/12.1/programming-guide/server/compliance.html","urlType":"internal","roles":["page"]},{"content":"HTTP Session Management","url":"/docs/jetty/12.1/programming-guide/server/session.html","urlType":"internal","roles":["page"]},{"content":"Web Application Deployment","url":"/docs/jetty/12.1/programming-guide/server/deploy.html","urlType":"internal","roles":["page"]},{"content":"WebSocket Server","url":"/docs/jetty/12.1/programming-guide/server/websocket.html","urlType":"internal","roles":["page"]},{"content":"FastCGI Server Libraries","url":"/docs/jetty/12.1/programming-guide/server/fastcgi.html","urlType":"internal","roles":["page"]},{"content":"Server I/O Architecture","url":"/docs/jetty/12.1/programming-guide/server/io-arch.html","urlType":"internal","roles":["page"]},{"content":"Server Threading Architecture","url":"/docs/jetty/12.1/programming-guide/server/threads.html","urlType":"internal","roles":["page"]}]},{"content":"Maven and Jetty","items":[{"content":"Using Maven","url":"/docs/jetty/12.1/programming-guide/maven-jetty/jetty-maven-helloworld.html","urlType":"internal","roles":["page"]},{"content":"Using the Jetty Maven Plugin","url":"/docs/jetty/12.1/programming-guide/maven-jetty/jetty-maven-plugin.html","urlType":"internal","roles":["page"]},{"content":"Jetty Jspc Maven Plugin","url":"/docs/jetty/12.1/programming-guide/maven-jetty/jetty-jspc-maven-plugin.html","urlType":"internal","roles":["page"]}]},{"content":"Jetty Architecture","items":[{"content":"Jetty Component Architecture","url":"/docs/jetty/12.1/programming-guide/arch/bean.html","urlType":"internal","roles":["page"]},{"content":"Jetty Threading Architecture","url":"/docs/jetty/12.1/programming-guide/arch/threads.html","urlType":"internal","roles":["page"]},{"content":"Jetty I/O Architecture","url":"/docs/jetty/12.1/programming-guide/arch/io.html","urlType":"internal","roles":["page"]},{"content":"Jetty Listeners","url":"/docs/jetty/12.1/programming-guide/arch/listener.html","urlType":"internal","roles":["page"]},{"content":"Jetty JMX Support","url":"/docs/jetty/12.1/programming-guide/arch/jmx.html","urlType":"internal","roles":["page"]}
1,{"content":"Jetty JSON Support","url":"/docs/jetty/12.1/programming-guide/arch/json.html","urlType":"internal","roles":["page"]}]},{"content":"Troubleshooting Jetty","url":"/docs/jetty/12.1/programming-guide/troubleshooting/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Logging","url":"/docs/jetty/12.1/programming-guide/troubleshooting/logging.html","urlType":"internal","roles":["page"]},{"content":"JVM Thread Dump","url":"/docs/jetty/12.1/programming-guide/troubleshooting/thread-dump.html","urlType":"internal","roles":["page"]},{"content":"<code>StateTrackingHandler</code>","url":"/docs/jetty/12.1/programming-guide/troubleshooting/state-tracking.html","urlType":"internal","roles":["page"]},{"content":"Jetty Component Dump","url":"/docs/jetty/12.1/programming-guide/troubleshooting/component-dump.html","urlType":"internal","roles":["page"]},{"content":"Remote Debugging","url":"/docs/jetty/12.1/programming-guide/troubleshooting/debugging.html","urlType":"internal","roles":["page"]}]},{"content":"Jetty Security","url":"/docs/jetty/12.1/programming-guide/security/index.html","urlType":"internal","roles":["page"],"items":[{"content":"SIWE Support","url":"/docs/jetty/12.1/programming-guide/security/siwe-support.html","urlType":"internal","roles":["page"]},{"content":"Limiting Form Content","url":"/docs/jetty/12.1/programming-guide/security/configuring-form-size.html","urlType":"internal","roles":["page"]},{"content":"OpenID Support","url":"/docs/jetty/12.1/programming-guide/security/openid-support.html","urlType":"internal","roles":["page"]}]},{"content":"Migration Guides","items":[{"content":"Migrating from Jetty 9.4.x to Jetty 10.0.x","url":"/docs/jetty/12.1/programming-guide/migration/94-to-10.html","urlType":"internal","roles":["page"]},{"content":"Migrating from Jetty 11.0.x to Jetty 12.0.x","url":"/docs/jetty/12.1/programming-guide/migration/11-to-12.html","urlType":"internal","roles":["page"]},{"content":"Migrating from Jetty 12.0.x to Jetty 12.1.x","url":"/docs/jetty/12.1/programming-guide/migration/12.0-to-12.1.html","urlType":"internal","roles":["page"]}]}],"root":true,"order":1}]},"jetty/12":{"displayVersion":"12","title":"Eclipse Jetty","version":"12","origins":{},"name":"jetty","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"Eclipse Jetty","site-url":"https://jetty.org","experimental":"","idprefix":"","idseparator":"-","page-pagination":"","javadoc-url":"https://javadoc.jetty.org/jetty-12","jetty-home":"/home/ubuntu/.cache/antora/collector/jetty.project@jetty-12.0.39-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-12.0.39@","jetty-version":"12.0.39","ee-all":"ee{8,9,10}","ee-current":"ee10","ee-current-caps":"EE 10","ee-prev":"ee9","ee-prev-caps":"EE 9","run-jetty-classpath":"/home/ubuntu/.m2/repository/org/eclipse/jetty/tests/jetty-testers/12.0.39/jetty-testers-12.0.39.jar:/home/ubuntu/.m2/repository/com/google/code/gson/gson/2.14.0/gson-2.14.0.jar:/home/ubuntu/.m2/repository/com/google/errorprone/error_prone_annotations/2.48.0/error_prone_annotations-2.48.0.jar:/home/ubuntu/.m2/repository/io/netty/netty-common/4.2.17.Final/netty-common-4.2.17.Final.jar:/home/ubuntu/.m2/repository/io/netty/netty-resolver/4.2.17.Final/netty-resolver-4.2.17.Final.jar:/home/ubuntu/.m2/repository/io/netty/netty-buffer/4.2.17.Final/netty-buffer-4.2.17.Final.jar:/home/ubuntu/.m2/repository/io/netty/netty-transport/4.2.17.Final/netty-transport-4.2.17.Final.jar:/home/ubuntu/.m2/repository/io/netty/netty-transport-native-unix-common/4.2.17.Final/netty-transport-native-unix-common-4.2.17.Final.jar:/home/ubuntu/.m2/repository/io/netty/netty-transport-native-epoll/4.2.17.Final/netty-transport-native-epoll-4.2.17.Final-linux-x86_64.jar:/home/ubuntu/.m2/repository/io/netty/netty-transport-classes-epoll/4.2.17.Final/netty-transport-classes-epoll-4.2.17.Final.jar:/home/ubuntu/.m2/repository/io/netty/netty-transport-native-epoll/4.2.17.Final/netty-trans
1port-native-epoll-4.2.17.Final-linux-aarch_64.jar:/home/ubuntu/.m2/repository/org/ow2/asm/asm/9.10.1/asm-9.10.1.jar:/home/ubuntu/.m2/repository/org/slf4j/slf4j-api/2.0.17/slf4j-api-2.0.17.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-model-builder/3.9.16/maven-model-builder-3.9.16.jar:/home/ubuntu/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.29/plexus-interpolation-1.29.jar:/home/ubuntu/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-model/3.9.16/maven-model-3.9.16.jar:/home/ubuntu/.m2/repository/org/codehaus/plexus/plexus-utils/4.1.0/plexus-utils-4.1.0.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-artifact/3.9.16/maven-artifact-3.9.16.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-builder-support/3.9.16/maven-builder-support-3.9.16.jar:/home/ubuntu/.m2/repository/org/eclipse/sisu/org.eclipse.sisu.inject/1.1.0/org.eclipse.sisu.inject-1.1.0.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-supplier/1.9.27/maven-resolver-supplier-1.9.27.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-api/1.9.27/maven-resolver-api-1.9.27.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-spi/1.9.27/maven-resolver-spi-1.9.27.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-named-locks/1.9.27/maven-resolver-named-locks-1.9.27.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-impl/1.9.27/maven-resolver-impl-1.9.27.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-util/1.9.27/maven-resolver-util-1.9.27.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-connector-basic/1.9.27/maven-resolver-connector-basic-1.9.27.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-file/1.9.27/maven-resolver-transport-file-1.9.27.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-http/1.9.27/maven-resolver-transport-http-1.9.27.jar:/home/ubuntu/.m2/repository/org/apache/httpcomponents/httpclient/4.5.14/httpclient-4.5.14.jar:/home/ubuntu/.m2/repository/org/apache/httpcomponents/httpcore/4.4.16/httpcore-4.4.16.jar:/home/ubuntu/.m2/repository/commons-codec/commons-codec/1.22.1/commons-codec-1.22.1.jar:/home/ubuntu/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.36/jcl-over-slf4j-1.7.36.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-resolver-provider/3.9.16/maven-resolver-provider-3.9.16.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-repository-metadata/3.9.16/maven-repository-metadata-3.9.16.jar:/home/ubuntu/.m2/repository/org/awaitility/awaitility/4.3.0/awaitility-4.3.0.jar:/home/ubuntu/.m2/repository/org/codehaus/plexus/plexus-xml/4.2.0/plexus-xml-4.2.0.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-api-xml/4.0.0-rc-6/maven-api-xml-4.0.0-rc-6.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-api-annotations/4.0.0-rc-6/maven-api-annotations-4.0.0-rc-6.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-xml/4.0.0-rc-6/maven-xml-4.0.0-rc-6.jar:/home/ubuntu/.m2/repository/com/fasterxml/woodstox/woodstox-core/7.2.1/woodstox-core-7.2.1.jar:/home/ubuntu/.m2/repository/org/codehaus/woodstox/stax2-api/4.3.0/stax2-api-4.3.0.jar:/home/ubuntu/.m2/repository/org/hamcrest/hamcrest/3.0/hamcrest-3.0.jar:/home/ubuntu/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.14.4/junit-jupiter-api-5.14.4.jar:/home/ubuntu/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/home/ubuntu/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/home/ubuntu/.m2/repository/org/eclipse/jetty/toolchain/jetty-test-helper/6.4/jetty-test-helper-6.4.jar:/home/ubuntu/.m2/repository/org/junit/platform/junit-platform-commons/1.14.4/junit-platform-commons-1.14.4.jar"},"sourcemap":false,"extensions":[{},{},{},{},{},{}]},"nav":["modules/operations-guide/nav.adoc","modules/programming-guide/nav.adoc"],"url":"/docs/jetty/12/index.html","navigation":[{"content":"Operations Guide","url":"/docs/jetty/12/operations-guide/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Getting Started","url":"/docs/jetty/12/operations-guide/begin/index.html","urlType":"internal","roles":["page"]},{"content":"Eclipse Jetty Features","url":"/docs/jetty/12/operations-guide/features/index.html","urlType":"internal","roles":["page"]},{"content":"Eclipse Jetty How-Tos","url":"/docs/jetty/12/operations-guide/howtos/index.html","urlType":"internal","roles":["page"]},{"content":"Architecture Overview","url":"/docs/jetty/12/operations-guide/arch/index.html","urlType":"internal","roles":["page"]},{"content":"Jetty Start Mechanism","url":"/docs/jetty/12/operations-guide/start/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Starting Jetty using JPMS","url":"/docs/jetty/12/operations-guide/start/start-jpms.html","urlType":"internal","roles":["page"]}]},{"content":"Jetty Modules","url":"/docs/jetty/12/operations-guide/modules/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Custom Jetty Modules","url":"/docs/jetty/12/operations-guide/modules/custom.html","urlType":"internal","roles":["page"]},{"content":"Standard Modules","url":"/docs/jetty/12/operations-guide/modules/standard.html","urlType":"internal","roles":["page"]}]},{"content":"Web Application Deployment","url":"/docs/jetty/12/operations-guide/deploy/index.html","urlType":"internal","roles":["page"]},{"content":"Jetty Server","url":"/docs/jetty/12/operations-guide/server/index.html","urlType":"internal","roles":["page"]},{"content":"Jetty Connectors and Protocols","url":"/docs/jetty/12/operations-guide/protocols/index.html","urlType":"internal","roles":["page"]},{"content":"Configuring SSL/TLS KeyStores","url":"/docs/jetty/12/operations-guide/keystore/index.html","urlType":"internal","roles":["page"]},{"content":"HTTP Session Management","url":"/docs/jetty/12/operations-guide/session/index.html","urlType":"internal","roles":["page"]},{"content":"Faster Web Application Deployment","url":"/docs/jetty/12/operations-guide/quickstart/index.html","urlType":"internal","roles":["page"]},{"content":"Annotations","url":"/docs/jetty/12/operations-guide/annotations/index.html","urlType":"internal","roles":["page"]},{"content":"Java Server Pages","url":"/docs/jetty/12/operations-guide/jsp
1/index.html","urlType":"internal","roles":["page"]},{"content":"JavaServer Pages Standard Tag Libraries","url":"/docs/jetty/12/operations-guide/jstl/index.html","urlType":"internal","roles":["page"]},{"content":"JavaServer Faces TagLibs","url":"/docs/jetty/12/operations-guide/jsf-taglibs/index.html","urlType":"internal","roles":["page"]},{"content":"JNDI","url":"/docs/jetty/12/operations-guide/jndi/index.html","urlType":"internal","roles":["page"]},{"content":"Jetty Security","items":[{"content":"Limiting Form Content","url":"/docs/jetty/12/operations-guide/security/configuring-form-size.html","urlType":"internal","roles":["page"]},{"content":"JAAS","url":"/docs/jetty/12/operations-guide/security/jaas-support.html","urlType":"internal","roles":["page"]},{"content":"JASPI","url":"/docs/jetty/12/operations-guide/security/jaspi-support.html","urlType":"internal","roles":["page"]},{"content":"OpenID Support","url":"/docs/jetty/12/operations-guide/security/openid-support.html","urlType":"internal","roles":["page"]}]},{"content":"JMX Monitoring & Management","url":"/docs/jetty/12/operations-guide/jmx/index.html","urlType":"internal","roles":["page"]},{"content":"Jetty Tools","url":"/docs/jetty/12/operations-guide/tools/index.html","urlType":"internal","roles":["page"]},{"content":"Troubleshooting","url":"/docs/jetty/12/operations-guide/troubleshooting/index.html","urlType":"internal","roles":["page"]},{"content":"Jetty XML","url":"/docs/jetty/12/operations-guide/xml/index.html","urlType":"internal","roles":["page"]}],"root":true,"order":0},{"content":"Programming Guide","url":"/docs/jetty/12/programming-guide/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Client Libraries","url":"/docs/jetty/12/programming-guide/client/index.html","urlType":"internal","roles":["page"],"items":[{"content":"I/O Architecture","url":"/docs/jetty/12/programming-guide/client/io-arch.html","urlType":"internal","roles":["page"]},{"content":"HTTP Client","url":"/docs/jetty/12/programming-guide/client/http.html","urlType":"internal","roles":["page"]},{"content":"HTTP/2 Client Library","url":"/docs/jetty/12/programming-guide/client/http2.html","urlType":"internal","roles":["page"]},{"content":"HTTP/3 Client Library","url":"/docs/jetty/12/programming-guide/client/http3.html","urlType":"internal","roles":["page"]},{"content":"WebSocket Client","url":"/docs/jetty/12/programming-guide/client/websocket.html","urlType":"internal","roles":["page"]}]},{"content":"Server Libraries","url":"/docs/jetty/12/programming-guide/server/index.html","urlType":"internal","roles":["page"],"items":[{"content":"HTTP Server Libraries","url":"/docs/jetty/12/programming-guide/server/http.html","urlType":"internal","roles":["page"]},{"content":"HTTP/2 Server Library","url":"/docs/jetty/12/programming-guide/server/http2.html","urlType":"internal","roles":["page"]},{"content":"HTTP/3 Server Library","url":"/docs/jetty/12/programming-guide/server/http3.html","urlType":"internal","roles":["page"]},{"content":"Server Compliance Modes","url":"/docs/jetty/12/programming-guide/server/compliance.html","urlType":"internal","roles":["page"]},{"content":"HTTP Session Management","url":"/docs/jetty/12/programming-guide/server/session.html","urlType":"internal","roles":["page"]},{"content":"WebSocket Server","url":"/docs/jetty/12/programming-guide/server/websocket.html","urlType":"internal","roles":["page"]},{"content":"FastCGI Server Libraries","url":"/docs/jetty/12/programming-guide/server/fastcgi.html","urlType":"internal","roles":["page"]},{"content":"Server I/O Architecture","url":"/docs/jetty/12/programming-guide/server/io-arch.html","urlType":"internal","roles":["page"]}]},{"content":"Maven and Jetty","items":[{"content":"Using Maven","url":"/docs/jetty/12/programming-guide/maven-jetty/jetty-maven-helloworld.html","urlType":"internal","roles":["page"]},{"content":"Using the Jetty Maven Plugin","url":"/docs/jetty/12/programming-guide/maven-jetty/jetty-maven-plugin.html","urlType":"internal","roles":["page"]},{"content":"Jetty Jspc Maven Plugin","url":"/docs/jetty/12/programming-guide/maven-jetty/jetty-jspc-maven-plugin.html","urlType":"internal","roles":["page"]}]},{"content":"Jetty Architecture","items":[{"content":"Jetty Component Architecture","url":"/docs/jetty/12/programming-guide/arch/bean.html","urlType":"internal","roles":["page"]},{"content":"Jetty Threading Architecture","url":"/docs/jetty/12/programming-guide/arch/threads.html","urlType":"internal","roles":["page"]},{"content":"Jetty I/O Architecture","url":"/docs/jetty/12/programming-guide/arch/io.html","urlType":"internal","roles":["page"]},{"content":"Jetty Listeners","url":"/docs/jetty/12/programming-guide/arch/listener.html","urlType":"internal","roles":["page"]},{"content":"Jetty JMX Support","url":"/docs/jetty/12/programming-guide/arch/jmx.html","urlType":"internal","roles":["page"]}]},{"content":"Troubleshooting Jetty","url":"/docs/jetty/12/programming-guide/troubleshooting/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Logging","url":"/docs/jetty/12/programming-guide/troubleshooting/logging.html","urlType":"internal","roles":["page"]},{"content":"JVM Thread Dump","url":"/docs/jetty/12/programming-guide/troubleshooting/thread-dump.html","urlType":"internal","roles":["page"]},{"content":"<code>StateTrackingHandler</code>","url":"/docs/jetty/12/programming-guide/troubleshooting/state-tracking.html","urlType":"internal","roles":["page"]},{"content":"Jetty Component Dump","url":"/docs/jetty/12/programming-guide/troubleshooting/component-dump.html","urlType":"internal","roles":["page"]},{"content":"Remote Debugging","url":"/docs/jetty/12/programming-guide/troubleshooting/debugging.html","urlType":"internal","roles":["page"]}]},{"content":"Jetty Security","items":[{"content":"Limiting Form Content","url":"/docs/jetty/12/programming-guide/security/configuring-form-size.html","urlType":"internal","roles":["page"]},{"content":"OpenID Support","url":"/docs/jetty/12/programming-guide/security/openid-support.html","urlType":"internal","roles":["page"]}]},{"content":"Migration Guides","items":[{"content":"Migrating from Jetty 9.4.x to Jetty 10.0.x","url":"/docs/jetty/12/programming-guide/migration/94-to-10.html","urlType":"internal","roles":["page"]},{"content":"Migrating from Jetty 11.0.x to Jetty 12.0.x","url":"/docs/jetty/12/programming-guide/migration/11-to-12.html","urlType":"internal","roles":["page"]}]}],"root":true,"order":1}]},"jetty/11":{"displayVersion":"11","title":"Eclipse Jetty","version":"11","origins":{},"name":"jetty","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanch
1ors":"","source-highlighter":"highlight.js","site-title":"Eclipse Jetty","site-url":"https://jetty.org","experimental":"","idprefix":"","idseparator":"-","page-pagination":"","javadoc-url":"https://javadoc.jetty.org/jetty-11","jetty-home":"/home/ubuntu/.cache/antora/collector/jetty.project@jetty-11.0.26-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-11.0.26@","jetty-version":"11.0.26","run-jetty-classpath":"/home/ubuntu/.m2/repository/org/eclipse/jetty/tests/jetty-home-tester/11.0.26/jetty-home-tester-11.0.26.jar:/home/ubuntu/.m2/repository/jakarta/inject/jakarta.inject-api/2.0.1/jakarta.inject-api-2.0.1.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-artifact/3.9.9/maven-artifact-3.9.9.jar:/home/ubuntu/.m2/repository/org/codehaus/plexus/plexus-utils/4.0.2/plexus-utils-4.0.2.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-resolver-provider/3.9.9/maven-resolver-provider-3.9.9.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-model/3.9.9/maven-model-3.9.9.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-model-builder/3.9.9/maven-model-builder-3.9.9.jar:/home/ubuntu/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.27/plexus-interpolation-1.27.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-builder-support/3.9.9/maven-builder-support-3.9.9.jar:/home/ubuntu/.m2/repository/org/eclipse/sisu/org.eclipse.sisu.inject/0.9.0.M3/org.e
1clipse.sisu.inject-0.9.0.M3.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-repository-metadata/3.9.9/maven-repository-metadata-3.9.9.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-api/1.9.22/maven-resolver-api-1.9.22.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-connector-basic/1.9.22/maven-resolver-connector-basic-1.9.22.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-impl/1.9.22/maven-resolver-impl-1.9.22.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-named-locks/1.9.22/maven-resolver-named-locks-1.9.22.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-spi/1.9.22/maven-resolver-spi-1.9.22.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-file/1.9.22/maven-resolver-transport-file-1.9.22.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-http/1.9.22/maven-resolver-transport-http-1.9.22.jar:/home/ubuntu/.m2/repository/org/apache/httpcomponents/httpclient/4.5.14/httpclient-4.5.14.jar:/home/ubuntu/.m2/repository/org/apache/httpcomponents/httpcore/4.4.16/httpcore-4.4.16.jar:/home/ubuntu/.m2/repository/commons-codec/commons-codec/1.18.0/commons-codec-1.18.0.jar:/home/ubuntu/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.36/jcl-over-slf4j-1.7.36.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-util/1.9.22/maven-resolver-util-1.9.22.jar:/home/ubuntu/.m2/repository/org/awaitility/awaitility/4.3.0/awaitility-4.3.0.jar:/home/ubuntu/.m2/repository/org/slf4j/slf4j-api/2.0.13/slf4j-api-2.0.13.jar:/home/ubuntu/.m2/repository/org/eclipse/jetty/toolchain/jetty-test-helper/6.3/jetty-test-helper-6.3.jar:/home/ubuntu/.m2/repository/org/hamcrest/hamcrest/3.0/hamcrest-3.0.jar:/home/ubuntu/.m2/repository/org/junit/platform/junit-platform-commons/1.12.2/junit-platform-commons-1.12.2.jar:/home/ubuntu/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar"},"sourcemap":false,"extensions":[{},{},{},{},{},{}]},"nav":["modules/operations-guide/nav.adoc","modules/programming-guide/nav.adoc"],"url":"/docs/jetty/11/index.html","navigation":[{"content":"Operations Guide","url":"/docs/jetty/11/operations-guide/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Getting Started","url":"/docs/jetty/11/operations-guide/begin/index.html","urlType":"internal","roles":["page"]},{"content":"Eclipse Jetty Features","url":"/docs/jetty/11/operations-guide/features/index.html","urlType":"internal","roles":["page"]},{"content":"Eclipse Jetty How-Tos","url":"/docs/jetty/11/operations-guide/howtos/index.html","urlType":"internal","roles":["page"]},{"content":"Architecture Overview","url":"/docs/jetty/11/operations-guide/arch/index.html","urlType":"internal","roles":["page"]},{"content":"Jetty Start Mechanism","url":"/docs/jetty/11/operations-guide/start/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Starting Jetty using JPMS","url":"/docs/jetty/11/operations-guide/start/start-jpms.html","urlType":"internal","roles":["page"]}]},{"content":"Jetty Modules","url":"/docs/jetty/11/operations-guide/modules/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Custom Jetty Modules","url":"/docs/jetty/11/operations-guide/modules/custom.html","urlType":"internal","roles":["page"]},{"content":"Standard Modules","url":"/docs/jetty/11/operations-guide/modules/standard.html","urlType":"internal","roles":["page"]}]},{"content":"Web Application Deployment","url":"/docs/jetty/11/operations-guide/deploy/index.html","urlType":"internal","roles":["page"]},{"content":"Jetty Server","url":"/docs/jetty/11/operations-guide/server/index.html","urlType":"internal","roles":["page"]},{"content":"Jetty Connectors and Protocols","url":"/docs/jetty/11/operations-guide/protocols/index.html","urlType":"internal","roles":["page"]},{"content":"Configuring SSL/TLS KeyStores","url":"/docs/jetty/11/operations-guide/keystore/index.html","urlType":"internal","roles":["page"]},{"content":"HTTP Session Management","url":"/docs/jetty/11/operations-guide/session/index.html","urlType":"internal","roles":["page"]},{"content":"Faster Web Application Deployment","url":"/docs/jetty/11/operations-guide/quickstart/index.html","urlType":"internal","roles":["page"]},{"content":"Annotations","url":"/docs/jetty/11/operations-guide/annotations/index.html","urlType":"internal","roles":["page"]},{"content":"Java Server Pages","url":"/docs/jetty/11/operations-guide/jsp
1/index.html","urlType":"internal","roles":["page"]},{"content":"JavaServer Pages Standard Tag Libraries","url":"/docs/jetty/11/operations-guide/jstl/index.html","urlType":"internal","roles":["page"]},{"content":"JavaServer Faces TagLibs","url":"/docs/jetty/11/operations-guide/jsf-taglibs/index.html","urlType":"internal","roles":["page"]},{"content":"JNDI","url":"/docs/jetty/11/operations-guide/jndi/index.html","urlType":"internal","roles":["page"]},{"content":"JAAS","url":"/docs/jetty/11/operations-guide/jaas/index.html","urlType":"internal","roles":["page"]},{"content":"JASPI","url":"/docs/jetty/11/operations-guide/jaspi/index.html","urlType":"internal","roles":["page"]},{"content":"JMX Monitoring & Management","url":"/docs/jetty/11/operations-guide/jmx/index.html","urlType":"internal","roles":["page"]},{"content":"Troubleshooting","url":"/docs/jetty/11/operations-guide/troubleshooting/index.html","urlType":"internal","roles":["page"]},{"content":"Jetty XML","url":"/docs/jetty/11/operations-guide/xml/index.html","urlType":"internal","roles":["page"]}],"root":true,"order":0},{"content":"Programming Guide","url":"/docs/jetty/11/programming-guide/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Client Libraries","url":"/docs/jetty/11/programming-guide/client/index.html","urlType":"internal","roles":["page"],"items":[{"content":"I/O Architecture","url":"/docs/jetty/11/programming-guide/client/io-arch.html","urlType":"internal","roles":["page"]},{"content":"HTTP Client","url":"/docs/jetty/11/programming-guide/client/http.html","urlType":"internal","roles":["page"]},{"content":"HTTP/2 Client Library","url":"/docs/jetty/11/programming-guide/client/http2.html","urlType":"internal","roles":["page"]},{"content":"HTTP/3 Client Library","url":"/docs/jetty/11/programming-guide/client/http3.html","urlType":"internal","roles":["page"]},{"content":"WebSocket Client","url":"/docs/jetty/11/programming-guide/client/websocket.html","urlType":"internal","roles":["page"]}]},{"content":"Server Libraries","url":"/docs/jetty/11/programming-guide/server/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Server Compliance Modes","url":"/docs/jetty/11/programming-guide/server/compliance.html","urlType":"internal","roles":["page"]},{"content":"HTTP Server Libraries","url":"/docs/jetty/11/programming-guide/server/http.html","urlType":"internal","roles":["page"]},{"content":"HTTP/2 Server Library","url":"/docs/jetty/11/programming-guide/server/http2.html","urlType":"internal","roles":["page"]},{"content":"HTTP/3 Server Library","url":"/docs/jetty/11/programming-guide/server/http3.html","urlType":"internal","roles":["page"]},{"content":"HTTP Session Management","url":"/docs/jetty/11/programming-guide/server/session.html","urlType":"internal","roles":["page"]},{"content":"WebSocket Server","url":"/docs/jetty/11/programming-guide/server/websocket.html","urlType":"internal","roles":["page"]},{"content":"FastCGI Server Libraries","url":"/docs/jetty/11/programming-guide/server/fastcgi.html","urlType":"internal","roles":["page"]},{"content":"Server I/O Architecture","url":"/docs/jetty/11/programming-guide/server/io-arch.html","urlType":"internal","roles":["page"]}]},{"content":"Maven and Jetty","items":[{"content":"Using Maven","url":"/docs/jetty/11/programming-guide/maven-jetty/jetty-maven-helloworld.html","urlType":"internal","roles":["page"]},{"content":"Using the Jetty Maven Plugin","url":"/docs/jetty/11/programming-guide/maven-jetty/jetty-maven-plugin.html","urlType":"internal","roles":["page"]},{"content":"Jetty Jspc Maven Plugin","url":"/docs/jetty/11/programming-guide/maven-jetty/jetty-jspc-maven-plugin.html","urlType":"internal","roles":["page"]}]},{"content":"Jetty Architecture","items":[{"content":"Jetty Component Architecture","url":"/docs/jetty/11/programming-guide/arch/bean.html","urlType":"internal","roles":["page"]},{"content":"Jetty Threading Architecture","url":"/docs/jetty/11/programming-guide/arch/threads.html","urlType":"internal","roles":["page"]},{"content":"Jetty I/O Architecture","url":"/docs/jetty/11/programming-guide/arch/io.html","urlType":"internal","roles":["page"]},{"content":"Jetty Listeners","url":"/docs/jetty/11/programming-guide/arch/listener.html","urlType":"internal","roles":["page"]},{"content":"Jetty JMX Support","url":"/docs/jetty/11/programming-guide/arch/jmx.html","urlType":"internal","roles":["page"]}]},{"content":"Troubleshooting Jetty","url":"/docs/jetty/11/programming-guide/troubleshooting/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Logging","url":"/docs/jetty/11/programming-guide/troubleshooting/logging.html","urlType":"internal","roles":["page"]},{"content":"JVM Thread Dump","url":"/docs/jetty/11/programming-guide/troubleshooting/thread-dump.html","urlType":"internal","roles":["page"]},{"content":"Jetty Component Tree Dump","url":"/docs/jetty/11/programming-guide/troubleshooting/component-dump.html","urlType":"internal","roles":["page"]},{"content":"Debugging","url":"/docs/jetty/11/programming-guide/troubleshooting/debugging.html","urlType":"internal","roles":["page"]}]},{"content":"Migration Guides","items":[{"content":"Migrating from Jetty 9.4.x to Jetty 10.0.x","url":"/docs/jetty/11/programming-guide/migration/94-to-10.html","urlType":"internal","roles":["page"]}]}],"root":true,"order":1}]},"jetty/10":{"displayVersion":"10","title":"Eclipse Jetty","version":"10","origins":{},"name":"jetty","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanch
1ors":"","source-highlighter":"highlight.js","site-title":"Eclipse Jetty","site-url":"https://jetty.org","experimental":"","idprefix":"","idseparator":"-","page-pagination":"","javadoc-url":"https://javadoc.jetty.org/jetty-10","jetty-home":"/home/ubuntu/.cache/antora/collector/jetty.project@jetty-10.0.26-0d7163d445b52d375d8067eaaebde058af22174f/documentation/jetty/target/jetty-home-10.0.26@","jetty-version":"10.0.26","run-jetty-classpath":"/home/ubuntu/.m2/repository/org/eclipse/jetty/tests/jetty-home-tester/10.0.26/jetty-home-tester-10.0.26.jar:/home/ubuntu/.m2/repository/jakarta/inject/jakarta.inject-api/1.0.5/jakarta.inject-api-1.0.5.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-artifact/3.9.9/maven-artifact-3.9.9.jar:/home/ubuntu/.m2/repository/org/codehaus/plexus/plexus-utils/4.0.2/plexus-utils-4.0.2.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-resolver-provider/3.9.9/maven-resolver-provider-3.9.9.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-model/3.9.9/maven-model-3.9.9.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-model-builder/3.9.9/maven-model-builder-3.9.9.jar:/home/ubuntu/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.27/plexus-interpolation-1.27.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-builder-support/3.9.9/maven-builder-support-3.9.9.jar:/home/ubuntu/.m2/repository/org/eclipse/sisu/org.eclipse.sisu.inject/0.9.0.M3/org.e
1clipse.sisu.inject-0.9.0.M3.jar:/home/ubuntu/.m2/repository/org/apache/maven/maven-repository-metadata/3.9.9/maven-repository-metadata-3.9.9.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-api/1.9.22/maven-resolver-api-1.9.22.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-connector-basic/1.9.22/maven-resolver-connector-basic-1.9.22.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-impl/1.9.22/maven-resolver-impl-1.9.22.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-named-locks/1.9.22/maven-resolver-named-locks-1.9.22.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-spi/1.9.22/maven-resolver-spi-1.9.22.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-file/1.9.22/maven-resolver-transport-file-1.9.22.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-http/1.9.22/maven-resolver-transport-http-1.9.22.jar:/home/ubuntu/.m2/repository/org/apache/httpcomponents/httpclient/4.5.14/httpclient-4.5.14.jar:/home/ubuntu/.m2/repository/org/apache/httpcomponents/httpcore/4.4.16/httpcore-4.4.16.jar:/home/ubuntu/.m2/repository/commons-codec/commons-codec/1.18.0/commons-codec-1.18.0.jar:/home/ubuntu/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.36/jcl-over-slf4j-1.7.36.jar:/home/ubuntu/.m2/repository/org/apache/maven/resolver/maven-resolver-util/1.9.22/maven-resolver-util-1.9.22.jar:/home/ubuntu/.m2/repository/org/awaitility/awaitility/4.3.0/awaitility-4.3.0.jar:/home/ubuntu/.m2/repository/org/slf4j/slf4j-api/2.0.13/slf4j-api-2.0.13.jar:/home/ubuntu/.m2/repository/org/eclipse/jetty/toolchain/jetty-test-helper/6.3/jetty-test-helper-6.3.jar:/home/ubuntu/.m2/repository/org/hamcrest/hamcrest/3.0/hamcrest-3.0.jar:/home/ubuntu/.m2/repository/org/junit/platform/junit-platform-commons/1.12.2/junit-platform-commons-1.12.2.jar:/home/ubuntu/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar"},"sourcemap":false,"extensions":[{},{},{},{},{},{}]},"nav":["modules/operations-guide/nav.adoc","modules/programming-guide/nav.adoc"],"url":"/docs/jetty/10/index.html","navigation":[{"content":"Operations Guide","url":"/docs/jetty/10/operations-guide/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Getting Started","url":"/docs/jetty/10/operations-guide/begin/index.html","urlType":"internal","roles":["page"]},{"content":"Eclipse Jetty Features","url":"/docs/jetty/10/operations-guide/features/index.html","urlType":"internal","roles":["page"]},{"content":"Eclipse Jetty How-Tos","url":"/docs/jetty/10/operations-guide/howtos/index.html","urlType":"internal","roles":["page"]},{"content":"Architecture Overview","url":"/docs/jetty/10/operations-guide/arch/index.html","urlType":"internal","roles":["page"]},{"content":"Jetty Start Mechanism","url":"/docs/jetty/10/operations-guide/start/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Starting Jetty using JPMS","url":"/docs/jetty/10/operations-guide/start/start-jpms.html","urlType":"internal","roles":["page"]}]},{"content":"Jetty Modules","url":"/docs/jetty/10/operations-guide/modules/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Custom Jetty Modules","url":"/docs/jetty/10/operations-guide/modules/custom.html","urlType":"internal","roles":["page"]},{"content":"Standard Modules","url":"/docs/jetty/10/operations-guide/modules/standard.html","urlType":"internal","roles":["page"]}]},{"content":"Web Application Deployment","url":"/docs/jetty/10/operations-guide/deploy/index.html","urlType":"internal","roles":["page"]},{"content":"Jetty Server","url":"/docs/jetty/10/operations-guide/server/index.html","urlType":"internal","roles":["page"]},{"content":"Jetty Connectors and Protocols","url":"/docs/jetty/10/operations-guide/protocols/index.html","urlType":"internal","roles":["page"]},{"content":"Configuring SSL/TLS KeyStores","url":"/docs/jetty/10/operations-guide/keystore/index.html","urlType":"internal","roles":["page"]},{"content":"HTTP Session Management","url":"/docs/jetty/10/operations-guide/session/index.html","urlType":"internal","roles":["page"]},{"content":"Faster Web Application Deployment","url":"/docs/jetty/10/operations-guide/quickstart/index.html","urlType":"internal","roles":["page"]},{"content":"Annotations","url":"/docs/jetty/10/operations-guide/annotations/index.html","urlType":"internal","roles":["page"]},{"content":"Java Server Pages","url":"/docs/jetty/10/operations-guide/jsp
1/index.html","urlType":"internal","roles":["page"]},{"content":"JavaServer Pages Standard Tag Libraries","url":"/docs/jetty/10/operations-guide/jstl/index.html","urlType":"internal","roles":["page"]},{"content":"JavaServer Faces TagLibs","url":"/docs/jetty/10/operations-guide/jsf-taglibs/index.html","urlType":"internal","roles":["page"]},{"content":"JNDI","url":"/docs/jetty/10/operations-guide/jndi/index.html","urlType":"internal","roles":["page"]},{"content":"JAAS","url":"/docs/jetty/10/operations-guide/jaas/index.html","urlType":"internal","roles":["page"]},{"content":"JASPI","url":"/docs/jetty/10/operations-guide/jaspi/index.html","urlType":"internal","roles":["page"]},{"content":"JMX Monitoring & Management","url":"/docs/jetty/10/operations-guide/jmx/index.html","urlType":"internal","roles":["page"]},{"content":"Troubleshooting","url":"/docs/jetty/10/operations-guide/troubleshooting/index.html","urlType":"internal","roles":["page"]},{"content":"Jetty XML","url":"/docs/jetty/10/operations-guide/xml/index.html","urlType":"internal","roles":["page"]}],"root":true,"order":0},{"content":"Programming Guide","url":"/docs/jetty/10/programming-guide/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Client Libraries","url":"/docs/jetty/10/programming-guide/client/index.html","urlType":"internal","roles":["page"],"items":[{"content":"I/O Architecture","url":"/docs/jetty/10/programming-guide/client/io-arch.html","urlType":"internal","roles":["page"]},{"content":"HTTP Client","url":"/docs/jetty/10/programming-guide/client/http.html","urlType":"internal","roles":["page"]},{"content":"HTTP/2 Client Library","url":"/docs/jetty/10/programming-guide/client/http2.html","urlType":"internal","roles":["page"]},{"content":"HTTP/3 Client Library","url":"/docs/jetty/10/programming-guide/client/http3.html","urlType":"internal","roles":["page"]},{"content":"WebSocket Client","url":"/docs/jetty/10/programming-guide/client/websocket.html","urlType":"internal","roles":["page"]}]},{"content":"Server Libraries","url":"/docs/jetty/10/programming-guide/server/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Server Compliance Modes","url":"/docs/jetty/10/programming-guide/server/compliance.html","urlType":"internal","roles":["page"]},{"content":"HTTP Server Libraries","url":"/docs/jetty/10/programming-guide/server/http.html","urlType":"internal","roles":["page"]},{"content":"HTTP/2 Server Library","url":"/docs/jetty/10/programming-guide/server/http2.html","urlType":"internal","roles":["page"]},{"content":"HTTP/3 Server Library","url":"/docs/jetty/10/programming-guide/server/http3.html","urlType":"internal","roles":["page"]},{"content":"HTTP Session Management","url":"/docs/jetty/10/programming-guide/server/session.html","urlType":"internal","roles":["page"]},{"content":"WebSocket Server","url":"/docs/jetty/10/programming-guide/server/websocket.html","urlType":"internal","roles":["page"]},{"content":"FastCGI Server Libraries","url":"/docs/jetty/10/programming-guide/server/fastcgi.html","urlType":"internal","roles":["page"]},{"content":"Server I/O Architecture","url":"/docs/jetty/10/programming-guide/server/io-arch.html","urlType":"internal","roles":["page"]}]},{"content":"Maven and Jetty","items":[{"content":"Using Maven","url":"/docs/jetty/10/programming-guide/maven-jetty/jetty-maven-helloworld.html","urlType":"internal","roles":["page"]},{"content":"Using the Jetty Maven Plugin","url":"/docs/jetty/10/programming-guide/maven-jetty/jetty-maven-plugin.html","urlType":"internal","roles":["page"]},{"content":"Jetty Jspc Maven Plugin","url":"/docs/jetty/10/programming-guide/maven-jetty/jetty-jspc-maven-plugin.html","urlType":"internal","roles":["page"]}]},{"content":"Jetty Architecture","items":[{"content":"Jetty Component Architecture","url":"/docs/jetty/10/programming-guide/arch/bean.html","urlType":"internal","roles":["page"]},{"content":"Jetty Threading Architecture","url":"/docs/jetty/10/programming-guide/arch/threads.html","urlType":"internal","roles":["page"]},{"content":"Jetty I/O Architecture","url":"/docs/jetty/10/programming-guide/arch/io.html","urlType":"internal","roles":["page"]},{"content":"Jetty Listeners","url":"/docs/jetty/10/programming-guide/arch/listener.html","urlType":"internal","roles":["page"]},{"content":"Jetty JMX Support","url":"/docs/jetty/10/programming-guide/arch/jmx.html","urlType":"internal","roles":["page"]}]},{"content":"Troubleshooting Jetty","url":"/docs/jetty/10/programming-guide/troubleshooting/index.html","urlType":"internal","roles":["page"],"items":[{"content":"Logging","url":"/docs/jetty/10/programming-guide/troubleshooting/logging.html","urlType":"internal","roles":["page"]},{"content":"JVM Thread Dump","url":"/docs/jetty/10/programming-guide/troubleshooting/thread-dump.html","urlType":"internal","roles":["page"]},{"content":"Jetty Component Tree Dump","url":"/docs/jetty/10/programming-guide/troubleshooting/component-dump.html","urlType":"internal","roles":["page"]},{"content":"Debugging","url":"/docs/jetty/10/programming-guide/troubleshooting/debugging.html","urlType":"internal","roles":["page"]}]},{"content":"Migration Guides","items":[{"content":"Migrating from Jetty 9.4.x to Jetty 10.0.x","url":"/docs/jetty/10/programming-guide/migration/94-to-10.html","urlType":"internal","roles":["page"]}]}],"root":true,"order":1}]}}}})
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.