blob: 7e5803431be4a451386fc9d085ad8886ae101566 [file] [log] [blame]
/*
* Copyright 2022 GlobalFoundries PDK Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
cell(gf180mcu_fd_sc_mcu7t5v0__and2_4) {
area : 37.318400 ;
leakage_power() {
related_pg_pin : "VDD" ;
when : "!A1&!A2" ;
value : "7.3791e-05" ;
}
leakage_power() {
related_pg_pin : "VDD" ;
when : "!A1&A2" ;
value : "7.3791e-05" ;
}
leakage_power() {
related_pg_pin : "VDD" ;
when : "A1&!A2" ;
value : "9.7389e-05" ;
}
leakage_power() {
related_pg_pin : "VDD" ;
when : "A1&A2" ;
value : "9.1719e-05" ;
}
leakage_power() {
related_pg_pin : "VDD" ;
value : "9.7389e-05" ;
}
pg_pin(VDD) {
voltage_name : VDD ;
pg_type : primary_power ;
}
pg_pin(VSS) {
voltage_name : VSS ;
pg_type : primary_ground ;
}
pin(A1) {
capacitance : 0.008604 ;
direction : input ;
driver_waveform_rise : driver_waveform_default_rise ;
driver_waveform_fall : driver_waveform_default_fall ;
input_voltage : default ;
max_transition : 11 ;
related_ground_pin : VSS ;
related_power_pin : VDD ;
internal_power() {
when : "!A2" ;
fall_power(pwr_tin_10) {
index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
values("0.02706, 0.02702, 0.02693, 0.02693, 0.02691, 0.02695, 0.02696, \
0.02698, 0.02696, 0.02696");
}
rise_power(pwr_tin_10) {
index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
values("-0.01966, -0.01964, -0.01963, -0.01967, -0.01968, -0.01974, -0.01975, \
-0.01977, -0.0198, -0.01985");
}
}
}
pin(A2) {
capacitance : 0.008902 ;
direction : input ;
driver_waveform_rise : driver_waveform_default_rise ;
driver_waveform_fall : driver_waveform_default_fall ;
input_voltage : default ;
max_transition : 11 ;
related_ground_pin : VSS ;
related_power_pin : VDD ;
internal_power() {
when : "!A1" ;
fall_power(pwr_tin_10) {
index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
values("0.02565, 0.02388, 0.02379, 0.02376, 0.02375, 0.0238, 0.02381, \
0.0238, 0.0238, 0.0238");
}
rise_power(pwr_tin_10) {
index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
values("-0.02378, -0.02378, -0.02372, -0.02371, -0.02369, -0.02372, -0.02373, \
-0.02377, -0.02373, -0.02377");
}
}
}
pin(Z) {
direction : output ;
function : "(A1&A2)" ;
max_capacitance : 1.427 ;
max_transition : 11 ;
min_capacitance : 0.001 ;
output_voltage : default ;
related_ground_pin : VSS ;
related_power_pin : VDD ;
internal_power() {
related_pin : "A1" ;
when : "A2" ;
fall_power(pwr_tin_oload_10x10) {
index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
index_2("0.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
values("0.1893, 0.1902, 0.193, 0.1952, 0.1963, 0.197, 0.1973, 0.1976, 0.1977, 0.1978",\
"0.1875, 0.1885, 0.1912, 0.1936, 0.1947, 0.1953, 0.1957, 0.1959, 0.196, 0.196",\
"0.1849, 0.1853, 0.1878, 0.1905, 0.1919, 0.1926, 0.1929, 0.1932, 0.1935, 0.1934",\
"0.189, 0.1884, 0.1889, 0.1913, 0.1928, 0.1938, 0.1943, 0.1946, 0.1949, 0.195",\
"0.2, 0.198, 0.1969, 0.1977, 0.1992, 0.2001, 0.2007, 0.201, 0.2014, 0.2014",\
"0.2166, 0.2127, 0.2099, 0.21, 0.2109, 0.2115, 0.2123, 0.2127, 0.213, 0.2132",\
"0.2393, 0.2339, 0.2292, 0.2277, 0.228, 0.2287, 0.2292, 0.2296, 0.2299, 0.2301",\
"0.2688, 0.2616, 0.2548, 0.2522, 0.2516, 0.2517, 0.252, 0.2523, 0.2526, 0.2527",\
"0.3054, 0.2967, 0.2876, 0.2832, 0.2816, 0.2812, 0.2811, 0.2814, 0.2816, 0.2817",\
"0.3494, 0.3389, 0.3275, 0.3212, 0.3186, 0.3176, 0.3171, 0.3172, 0.3173, 0.3175");
}
rise_power(pwr_tin_oload_10x10) {
index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
index_2("0.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
values("0.1116, 0.1117, 0.1141, 0.1173, 0.1206, 0.1229, 0.1265, 0.1284, 0.1341, 0.1754",\
"0.1107, 0.1109, 0.113, 0.1161, 0.1193, 0.122, 0.1247, 0.1275, 0.1327, 0.1723",\
"0.1093, 0.109, 0.1108, 0.1136, 0.1169, 0.1196, 0.1226, 0.1254, 0.1324, 0.1726",\
"0.1128, 0.112, 0.1123, 0.1141, 0.1177, 0.1205, 0.1229, 0.1278, 0.1336, 0.182",\
"0.1216, 0.1198, 0.1179, 0.12, 0.122, 0.1238, 0.1274, 0.1305, 0.1365, 0.1955",\
"0.1355, 0.133, 0.1296, 0.1288, 0.1323, 0.134, 0.1364, 0.1392, 0.1494, 0.2215",\
"0.1551, 0.1516, 0.1471, 0.1453, 0.1457, 0.1508, 0.1529, 0.1553, 0.1635, 0.258",\
"0.1811, 0.1767, 0.1703, 0.1682, 0.1665, 0.1682, 0.1742, 0.1767, 0.189, 0.3213",\
"0.2134, 0.2075, 0.2001, 0.1958, 0.1949, 0.1934, 0.197, 0.2056, 0.2287, 0.4284",\
"0.2524, 0.2452, 0.2363, 0.2311, 0.2284, 0.2282, 0.2282, 0.2347, 0.2887, 0.606");
}
}
internal_power() {
related_pin : "A2" ;
when : "A1" ;
fall_power(pwr_tin_oload_10x10) {
index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
index_2("0.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
values("0.2099, 0.2103, 0.2125, 0.2147, 0.216, 0.2166, 0.2171, 0.2173, 0.2175, 0.2176",\
"0.2082, 0.2084, 0.2108, 0.213, 0.2143, 0.215, 0.2155, 0.2157, 0.2159, 0.216",\
"0.2068, 0.2068, 0.2089, 0.2112, 0.2127, 0.2134, 0.2139, 0.2142, 0.2144, 0.2145",\
"0.2112, 0.2102, 0.2109, 0.2127, 0.2142, 0.2152, 0.2158, 0.2162, 0.2165, 0.2166",\
"0.2228, 0.2204, 0.219, 0.2196, 0.2209, 0.2218, 0.2225, 0.2229, 0.2231, 0.2234",\
"0.2406, 0.2364, 0.2335, 0.2324, 0.2332, 0.2339, 0.2345, 0.2349, 0.2352, 0.2354",\
"0.2639, 0.2582, 0.2532, 0.2514, 0.2514, 0.2517, 0.2522, 0.2525, 0.2528, 0.2531",\
"0.2939, 0.2871, 0.28, 0.2765, 0.2757, 0.2758, 0.276, 0.2764, 0.2765, 0.2768",\
"0.3313, 0.3227, 0.3136, 0.3086, 0.3069, 0.3066, 0.3065, 0.3065, 0.3068, 0.3068",\
"0.3762, 0.3664, 0.3548, 0.3485, 0.3454, 0.3441, 0.3436, 0.3436, 0.3436, 0.3437");
}
rise_power(pwr_tin_oload_10x10) {
index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
index_2("0.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
values("0.1117, 0.1118, 0.114, 0.1173, 0.1208, 0.1235, 0.125, 0.1284, 0.1344, 0.1763",\
"0.1107, 0.1108, 0.1133, 0.1164, 0.1199, 0.1223, 0.1241, 0.1275, 0.1339, 0.1721",\
"0.1088, 0.1088, 0.1106, 0.1139, 0.1173, 0.1202, 0.1226, 0.1251, 0.1324, 0.1777",\
"0.1107, 0.1101, 0.1111, 0.1135, 0.1167, 0.1196, 0.1217, 0.1254, 0.131, 0.1801",\
"0.1176, 0.1163, 0.1151, 0.1178, 0.12, 0.1229, 0.1253, 0.1287, 0.1341, 0.1921",\
"0.1303, 0.1278, 0.1255, 0.1257, 0.1297, 0.131, 0.134, 0.1368, 0.1436, 0.2137",\
"0.1492, 0.1463, 0.1425, 0.1411, 0.1416, 0.1472, 0.1493, 0.1514, 0.1596, 0.2571",\
"0.174, 0.1701, 0.1653, 0.163, 0.1626, 0.1643, 0.1706, 0.1731, 0.185, 0.3138",\
"0.2058, 0.2005, 0.1948, 0.1916, 0.1891, 0.1889, 0.1931, 0.2023, 0.224, 0.4133",\
"0.2443, 0.2378, 0.2302, 0.2262, 0.2238, 0.2243, 0.2231, 0.2306, 0.2822, 0.5868");
}
}
timing() {
related_pin : "A1" ;
timing_sense : positive_unate ;
timing_type : combinational ;
cell_fall(tmg_ntin_oload_10x10) {
index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
index_2("0.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
values("0.3167, 0.3675, 0.4905, 0.6772, 0.9506, 1.331, 1.83, 2.459, 3.228, 4.143",\
"0.3412, 0.3919, 0.5148, 0.7017, 0.9749, 1.355, 1.854, 2.483, 3.252, 4.168",\
"0.4346, 0.4851, 0.6076, 0.7947, 1.068, 1.448, 1.948, 2.577, 3.346, 4.26",\
"0.6034, 0.6573, 0.7837, 0.9718, 1.245, 1.625, 2.125, 2.754, 3.522, 4.438",\
"0.7944, 0.8556, 0.9942, 1.189, 1.464, 1.844, 2.343, 2.972, 3.74, 4.654",\
"1.004, 1.073, 1.224, 1.426, 1.704, 2.085, 2.584, 3.212, 3.981, 4.897",\
"1.243, 1.317, 1.481, 1.691, 1.971, 2.352, 2.852, 3.481, 4.248, 5.163",\
"1.513, 1.592, 1.769, 1.989, 2.272, 2.653, 3.152, 3.781, 4.549, 5.464",\
"1.813, 1.898, 2.089, 2.321, 2.609, 2.991, 3.49, 4.119, 4.886, 5.801",\
"2.144, 2.233, 2.439, 2.687, 2.984, 3.367, 3.866, 4.494, 5.262, 6.177");
}
cell_rise(tmg_ntin_oload_10x10) {
index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
index_2("0.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
values("0.3278, 0.3897, 0.5608, 0.8614, 1.324, 1.972, 2.822, 3.894, 5.205, 6.766",\
"0.3458, 0.4076, 0.5788, 0.8793, 1.342, 1.99, 2.842, 3.914, 5.222, 6.778",\
"0.4149, 0.4764, 0.6472, 0.9475, 1.41, 2.059, 2.908, 3.982, 5.286, 6.85",\
"0.5174, 0.5819, 0.7549, 1.055, 1.517, 2.164, 3.016, 4.09, 5.4, 6.957",\
"0.6017, 0.6704, 0.8479, 1.149, 1.612, 2.258, 3.111, 4.183, 5.491, 7.05",\
"0.6644, 0.7389, 0.9215, 1.222, 1.684, 2.333, 3.183, 4.256, 5.563, 7.126",\
"0.7072, 0.7865, 0.9773, 1.278, 1.739, 2.386, 3.238, 4.309, 5.617, 7.175",\
"0.7262, 0.8116, 1.012, 1.315, 1.774, 2.42, 3.271, 4.343, 5.651, 7.208",\
"0.719, 0.8092, 1.022, 1.329, 1.79, 2.434, 3.285, 4.356, 5.664, 7.222",\
"0.6827, 0.778, 1.004, 1.32, 1.78, 2.426, 3.275, 4.346, 5.654, 7.212");
}
fall_transition(tmg_ntin_oload_10x10) {
index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
index_2("0.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
values("0.0981, 0.1451, 0.2822, 0.5454, 0.979, 1.603, 2.424, 3.463, 4.73, 6.245",\
"0.0983, 0.1451, 0.282, 0.545, 0.9792, 1.601, 2.427, 3.465, 4.73, 6.243",\
"0.0982, 0.1456, 0.2823, 0.5458, 0.9794, 1.602, 2.427, 3.461, 4.73, 6.233",\
"0.1126, 0.1586, 0.289, 0.548, 0.9798, 1.603, 2.427, 3.466, 4.735, 6.236",\
"0.1368, 0.1882, 0.3142, 0.561, 0.9848, 1.604, 2.424, 3.468, 4.733, 6.237",\
"0.1592, 0.216, 0.3428, 0.5798, 0.9924, 1.606, 2.427, 3.46, 4.728, 6.244",\
"0.18, 0.2418, 0.373, 0.5992, 1.001, 1.611, 2.43, 3.463, 4.724, 6.242",\
"0.203, 0.268, 0.407, 0.6224, 1.013, 1.615, 2.432, 3.466, 4.727, 6.237",\
"0.2278, 0.2972, 0.446, 0.6534, 1.03, 1.62, 2.436, 3.466, 4.73, 6.236",\
"0.2538, 0.3268, 0.4886, 0.6922, 1.053, 1.633, 2.438, 3.47, 4.732, 6.238");
}
rise_transition(tmg_ntin_oload_10x10) {
index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
index_2("0.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
values("0.1149, 0.1873, 0.4298, 0.9254, 1.714, 2.82, 4.282, 6.117, 8.355, 11.03",\
"0.1161, 0.1866, 0.4298, 0.9252, 1.713, 2.821, 4.279, 6.115, 8.367, 11.02",\
"0.1154, 0.1872, 0.4299, 0.9265, 1.713, 2.82, 4.282, 6.109, 8.361, 11.04",\
"0.1268, 0.197, 0.435, 0.9266, 1.712, 2.822, 4.279, 6.121, 8.358, 11.02",\
"0.1438, 0.215, 0.4446, 0.9326, 1.715, 2.819, 4.275, 6.108, 8.352, 11.02",\
"0.1614, 0.2342, 0.4552, 0.9356, 1.718, 2.821, 4.272, 6.104, 8.359, 11.02",\
"0.1786, 0.2564, 0.4692, 0.9362, 1.721, 2.823, 4.274, 6.109, 8.35, 11.02",\
"0.1984, 0.281, 0.4894, 0.943, 1.718, 2.822, 4.278, 6.102, 8.335, 11.02",\
"0.2184, 0.3064, 0.5166, 0.953, 1.724, 2.825, 4.279, 6.106, 8.337, 11.01",\
"0.2406, 0.3318, 0.5486, 0.9712, 1.732, 2.828, 4.276, 6.104, 8.34, 11");
}
}
timing() {
related_pin : "A2" ;
timing_sense : positive_unate ;
timing_type : combinational ;
cell_fall(tmg_ntin_oload_10x10) {
index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
index_2("0.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
values("0.3505, 0.4021, 0.5264, 0.714, 0.9877, 1.368, 1.868, 2.497, 3.264, 4.179",\
"0.3752, 0.427, 0.5514, 0.7389, 1.013, 1.393, 1.892, 2.521, 3.289, 4.204",\
"0.471, 0.5227, 0.6468, 0.8347, 1.108, 1.489, 1.988, 2.618, 3.385, 4.3",\
"0.6505, 0.7043, 0.8302, 1.019, 1.293, 1.673, 2.172, 2.802, 3.569, 4.484",\
"0.8596, 0.9211, 1.059, 1.252, 1.528, 1.908, 2.407, 3.036, 3.804, 4.718",\
"1.089, 1.158, 1.307, 1.509, 1.786, 2.167, 2.666, 3.295, 4.063, 4.978",\
"1.349, 1.423, 1.585, 1.794, 2.074, 2.455, 2.954, 3.584, 4.351, 5.266",\
"1.643, 1.722, 1.897, 2.114, 2.396, 2.778, 3.277, 3.906, 4.673, 5.588",\
"1.974, 2.059, 2.246, 2.473, 2.759, 3.141, 3.64, 4.269, 5.037, 5.952",\
"2.343, 2.432, 2.632, 2.872, 3.165, 3.548, 4.047, 4.676, 5.443, 6.357");
}
cell_rise(tmg_ntin_oload_10x10) {
index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
index_2("0.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
values("0.3438, 0.4056, 0.5768, 0.8774, 1.34, 1.988, 2.839, 3.909, 5.221, 6.778",\
"0.3615, 0.4235, 0.5947, 0.8953, 1.358, 2.005, 2.857, 3.928, 5.239, 6.798",\
"0.4109, 0.4725, 0.6434, 0.9438, 1.406, 2.054, 2.906, 3.978, 5.288, 6.843",\
"0.4849, 0.5496, 0.7231, 1.023, 1.486, 2.134, 2.985, 4.056, 5.367, 6.929",\
"0.5511, 0.6202, 0.7984, 1.1, 1.563, 2.209, 3.061, 4.135, 5.439, 6.999",\
"0.5977, 0.6712, 0.8565, 1.158, 1.621, 2.268, 3.119, 4.191, 5.5, 7.057",\
"0.6215, 0.7011, 0.8936, 1.197, 1.658, 2.305, 3.156, 4.227, 5.535, 7.094",\
"0.6175, 0.7028, 0.9067, 1.213, 1.674, 2.32, 3.171, 4.241, 5.548, 7.106",\
"0.584, 0.6738, 0.8907, 1.203, 1.664, 2.31, 3.161, 4.231, 5.539, 7.096",\
"0.5179, 0.6128, 0.8419, 1.163, 1.628, 2.275, 3.124, 4.194, 5.501, 7.059");
}
fall_transition(tmg_ntin_oload_10x10) {
index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
index_2("0.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
values("0.1025, 0.1492, 0.2847, 0.5472, 0.9793, 1.603, 2.425, 3.465, 4.734, 6.241",\
"0.1025, 0.1491, 0.2848, 0.5459, 0.9793, 1.602, 2.424, 3.464, 4.733, 6.243",\
"0.1025, 0.1491, 0.2852, 0.5468, 0.979, 1.602, 2.427, 3.467, 4.734, 6.235",\
"0.113, 0.158, 0.2896, 0.5484, 0.9796, 1.602, 2.427, 3.467, 4.73, 6.239",\
"0.1378, 0.1872, 0.3126, 0.561, 0.984, 1.602, 2.428, 3.464, 4.733, 6.243",\
"0.162, 0.2156, 0.3396, 0.5778, 0.9922, 1.606, 2.426, 3.461, 4.73, 6.235",\
"0.1836, 0.2418, 0.3694, 0.596, 1, 1.61, 2.429, 3.463, 4.727, 6.241",\
"0.2044, 0.2662, 0.4002, 0.6176, 1.01, 1.614, 2.43, 3.465, 4.727, 6.237",\
"0.2278, 0.2932, 0.4334, 0.6418, 1.023, 1.619, 2.435, 3.467, 4.731, 6.234",\
"0.2514, 0.3208, 0.4714, 0.6744, 1.042, 1.627, 2.436, 3.472, 4.732, 6.238");
}
rise_transition(tmg_ntin_oload_10x10) {
index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
index_2("0.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
values("0.1151, 0.1874, 0.4298, 0.9254, 1.714, 2.821, 4.279, 6.119, 8.365, 11.04",\
"0.1153, 0.1875, 0.4298, 0.9255, 1.713, 2.822, 4.276, 6.117, 8.356, 11.04",\
"0.1154, 0.187, 0.4298, 0.9266, 1.712, 2.822, 4.275, 6.11, 8.368, 11.04",\
"0.1249, 0.1968, 0.4344, 0.9252, 1.714, 2.817, 4.278, 6.118, 8.366, 11.04",\
"0.1382, 0.2114, 0.444, 0.9294, 1.715, 2.82, 4.28, 6.106, 8.36, 11.03",\
"0.1544, 0.2298, 0.4558, 0.9328, 1.717, 2.817, 4.273, 6.107, 8.355, 11.03",\
"0.1716, 0.251, 0.4708, 0.9376, 1.719, 2.819, 4.27, 6.108, 8.349, 11.03",\
"0.1906, 0.2744, 0.491, 0.9448, 1.717, 2.821, 4.271, 6.101, 8.332, 11.01",\
"0.2096, 0.2992, 0.5182, 0.9592, 1.725, 2.825, 4.278, 6.1, 8.333, 11",\
"0.2288, 0.3226, 0.5484, 0.9782, 1.736, 2.829, 4.276, 6.1, 8.336, 10.99");
}
}
}
}