Changes for page Public Web Site

Last modified by Agnease on 2026/05/30 16:24

From version 10.13
edited by Agnease
on 2026/05/19 06:15
Change comment: There is no comment for this version
To version 7.16
edited by Agnease
on 2026/05/12 20:12
Change comment: There is no comment for this version

Summary

Details

XWiki.StyleSheetExtension[0]
code
... ... @@ -599,31 +599,6 @@
599 599   }
600 600  }
601 601  
602 -.resource-content {
603 - order: 1;
604 -}
605 -
606 -.resource-sidebar {
607 - order: 2;
608 -}
609 -
610 -@media (max-width: 767px) {
611 - .resource-layout {
612 - display: flex;
613 - flex-direction: column;
614 - }
615 -
616 - .resource-sidebar {
617 - order: 0;
618 - position: static;
619 - width: 100%;
620 - }
621 -
622 - .resource-content {
623 - order: 1;
624 - }
625 -}
626 -
627 627  /* ========== CTA ========== */
628 628  
629 629  .cta-section {
... ... @@ -761,10 +761,24 @@
761 761   padding: 40px 0 30px;
762 762   border-top: none;
763 763   background:
764 - radial-gradient(50rem 18rem at 50% -10%, @brand-soft 0%, transparent 60%),
765 - radial-gradient(50rem 18rem at 50% 0%, #E8F6F3 0%, transparent 60%);
739 + radial-gradient(42rem 14rem at 50% 0%, @brand-bg 0%, transparent 70%);
766 766  
741 + .resource-kicker {
742 + display: inline-flex;
743 + align-items: center;
744 + gap: 8px;
745 + color: @brand;
746 + background: fade(@brand, 8%);
747 + border: 1px solid fade(@brand, 18%);
748 + border-radius: 999px;
749 + padding: 6px 12px;
750 + margin-bottom: 14px;
751 + font-size: 13px;
752 + font-weight: 700;
753 + }
754 +
767 767   h1 {
756 + max-width: 820px;
768 768   margin: 0 auto 14px;
769 769   text-align: center;
770 770   line-height: 1.18;
... ... @@ -911,403 +911,215 @@
911 911   position: static;
912 912   }
913 913  }
914 -/* ========== Products / Extensions Pages ========== */
903 +.agnease-product-page {
904 + color: @text;
915 915  
916 -.product-index-section {
917 - padding: 52px 0 56px;
918 -
919 - h2 {
920 - margin-bottom: 10px;
906 + .container {
907 + max-width: 1040px;
921 921   }
922 -}
923 923  
924 -.product-card-grid {
925 - max-width: 840px;
926 - margin: 28px auto 0;
927 - display: grid;
928 - grid-template-columns: 1fr;
929 - grid-gap: 18px;
930 -}
931 -
932 -.product-card {
933 - background: #fff;
934 - border: 1px solid @line;
935 - border-radius: @radius;
936 - box-shadow: @shadow-sm;
937 - padding: 28px;
938 - display: grid;
939 - grid-template-columns: 68px 1fr;
940 - grid-gap: 22px;
941 - align-items: start;
942 - transition: transform .18s ease, box-shadow .18s ease;
943 -
944 - &:hover {
945 - transform: translateY(-2px);
946 - box-shadow: @shadow;
910 + .product-index-hero {
911 + padding: 56px 0 48px;
912 + text-align: center;
913 + background:
914 + radial-gradient(42rem 16rem at 50% -10%, @brand-soft 0%, transparent 65%),
915 + radial-gradient(42rem 16rem at 50% 0%, #E8F6F3 0%, transparent 60%);
916 + border-bottom: 1px solid @line;
947 947   }
948 948  
949 - .product-card-icon {
950 - width: 58px;
951 - height: 58px;
952 - border-radius: 50%;
953 - background: fade(@brand, 10%);
954 - border: 1px solid fade(@brand, 20%);
919 + .page-eyebrow {
955 955   color: @brand;
956 - display: flex;
957 - align-items: center;
958 - justify-content: center;
959 - font-size: 22px;
960 - flex-shrink: 0;
921 + font-size: 13px;
922 + font-weight: 800;
923 + text-transform: uppercase;
924 + letter-spacing: .06em;
925 + margin: 0 0 10px;
961 961   }
962 962  
963 - h3 {
964 - margin: 0 0 10px;
928 + h1 {
929 + margin: 0;
965 965   color: @text;
966 - font-size: 23px;
967 - line-height: 1.25;
968 - font-weight: 800;
931 + font-size: 36px;
932 + line-height: 1.2;
933 + font-weight: 700;
969 969   }
970 970  
971 - p {
936 + .page-lead {
937 + max-width: 760px;
938 + margin: 14px auto 0;
972 972   color: @muted;
973 - line-height: 1.6;
940 + font-size: 18px;
941 + line-height: 1.55;
974 974   }
975 975  
976 - .card-link {
977 - margin: 0;
944 + .product-index-section {
945 + padding: 52px 0 56px;
978 978  
979 - a {
980 - font-weight: 700;
947 + h2 {
948 + text-align: center;
949 + margin: 0 0 10px;
950 + color: @text;
951 + font-size: 28px;
952 + line-height: 1.25;
953 + font-weight: 600;
981 981   }
982 982   }
983 -}
984 984  
985 -.product-card-kicker {
986 - margin-bottom: 10px;
987 - padding: 5px 10px;
988 - font-size: 12px;
989 - text-transform: uppercase;
990 - letter-spacing: .04em;
991 -}
992 -
993 -.product-highlights {
994 - margin: 14px 0 20px;
995 - padding-left: 18px;
996 - color: @muted;
997 -
998 - li {
999 - margin: 6px 0;
1000 - line-height: 1.45;
1001 - }
1002 -}
1003 -
1004 -/* ========== Individual Product Pages ========== */
1005 -
1006 -.product-layout {
1007 - display: grid;
1008 - grid-template-columns: 1.1fr .9fr;
1009 - grid-gap: 36px;
1010 - max-width: 1040px;
1011 - margin: 0 auto;
1012 - align-items: start;
1013 -}
1014 -
1015 -.product-summary-card,
1016 -.product-info-card,
1017 -.product-gallery-panel {
1018 - background: #fff;
1019 - border: 1px solid @line;
1020 - border-radius: @radius;
1021 - box-shadow: @shadow-sm;
1022 -}
1023 -
1024 -.product-summary-card {
1025 - padding: 26px;
1026 -
1027 - h2 {
1028 - text-align: left;
1029 - margin-top: 0;
1030 - }
1031 -
1032 - p {
957 + .section-intro {
958 + max-width: 760px;
959 + margin: 0 auto 26px;
960 + text-align: center;
1033 1033   color: @muted;
1034 - line-height: 1.6;
962 + font-size: 16px;
963 + line-height: 1.55;
1035 1035   }
1036 1036  
1037 - p:last-child {
1038 - margin-bottom: 0;
966 + .product-card-grid {
967 + max-width: 840px;
968 + margin: 0 auto;
969 + display: grid;
970 + grid-template-columns: 1fr;
971 + grid-gap: 18px;
1039 1039   }
1040 -}
1041 1041  
1042 -.product-info-card {
1043 - padding: 22px;
1044 -
1045 - h3 {
1046 - margin-top: 0;
1047 - margin-bottom: 12px;
974 + .product-card {
975 + background: #fff;
976 + border: 1px solid @line;
977 + border-radius: @radius;
978 + box-shadow: @shadow-sm;
979 + padding: 28px;
980 + display: grid;
981 + grid-template-columns: 68px 1fr;
982 + grid-gap: 22px;
983 + align-items: start;
1048 1048   }
1049 1049  
1050 - ul {
1051 - margin: 0;
1052 - padding-left: 20px;
1053 - color: @muted;
1054 - }
1055 -
1056 - li {
1057 - margin: 8px 0;
1058 - line-height: 1.45;
1059 - }
1060 -}
1061 -
1062 -.product-feature-grid {
1063 - display: grid;
1064 - grid-template-columns: repeat(3, minmax(0, 1fr));
1065 - grid-gap: 18px;
1066 - max-width: 1040px;
1067 - margin: 26px auto 0;
1068 -}
1069 -
1070 -.product-feature {
1071 - background: #fff;
1072 - border: 1px solid @line;
1073 - border-radius: @radius;
1074 - box-shadow: @shadow-sm;
1075 - padding: 22px;
1076 - transition: transform .18s ease, box-shadow .18s ease;
1077 -
1078 - &:hover {
1079 - transform: translateY(-2px);
1080 - box-shadow: @shadow;
1081 - }
1082 -
1083 - .feature-icon {
1084 - width: 46px;
1085 - height: 46px;
986 + .product-card-icon {
987 + width: 58px;
988 + height: 58px;
1086 1086   border-radius: 50%;
1087 1087   background: fade(@brand, 10%);
991 + border: 1px solid fade(@brand, 20%);
1088 1088   color: @brand;
1089 1089   display: flex;
1090 1090   align-items: center;
1091 1091   justify-content: center;
1092 - margin-bottom: 14px;
1093 - font-size: 18px;
996 + font-size: 22px;
1094 1094   }
1095 1095  
1096 - h3 {
999 + .product-label {
1000 + display: inline-flex;
1097 1097   margin: 0 0 8px;
1002 + padding: 5px 10px;
1003 + border-radius: 999px;
1004 + color: @brand;
1005 + background: fade(@brand, 8%);
1006 + border: 1px solid fade(@brand, 18%);
1007 + font-size: 12px;
1008 + font-weight: 800;
1009 + text-transform: uppercase;
1010 + letter-spacing: .04em;
1011 + }
1012 +
1013 + .product-card h3 {
1014 + margin: 0 0 10px;
1098 1098   color: @text;
1099 - font-size: 18px;
1016 + font-size: 23px;
1100 1100   line-height: 1.25;
1018 + font-weight: 600;
1101 1101   }
1102 1102  
1103 - p {
1104 - margin: 0;
1021 + .product-card p {
1105 1105   color: @muted;
1106 - line-height: 1.5;
1023 + line-height: 1.6;
1107 1107   }
1108 -}
1109 1109  
1110 -.product-gallery-panel {
1111 - max-width: 1040px;
1112 - margin: 20px auto 0;
1113 - padding: 26px;
1026 + .product-highlights {
1027 + margin: 14px 0 20px;
1028 + padding-left: 18px;
1029 + color: @muted;
1114 1114  
1115 - h2 {
1116 - margin-top: 0;
1117 - text-align: center;
1031 + li {
1032 + margin: 6px 0;
1033 + line-height: 1.45;
1034 + }
1118 1118   }
1119 1119  
1120 - .gallery-note {
1121 - max-width: 700px;
1122 - margin: 0 auto 18px;
1123 - color: @muted;
1124 - text-align: center;
1125 - line-height: 1.55;
1037 + .card-link {
1038 + margin: 0;
1126 1126   }
1127 -}
1128 1128  
1129 -.product-gallery-placeholder {
1130 - min-height: 260px;
1131 - padding: 28px;
1132 - border: 1px dashed fade(@brand, 40%);
1133 - border-radius: @radius;
1134 - background: fade(@brand, 5%);
1135 - color: @muted;
1136 - text-align: center;
1137 - display: flex;
1138 - align-items: center;
1139 - justify-content: center;
1140 -}
1041 + .btn-secondary {
1042 + color: @brand;
1043 + background: #fff;
1044 + border: 1px solid fade(@brand, 35%);
1141 1141  
1142 -.product-section-muted {
1143 - background:
1144 - radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 65%);
1145 -}
1046 + &:hover,
1047 + &:focus {
1048 + color: @brand-strong;
1049 + border-color: @brand;
1050 + background: @brand-bg;
1051 + text-decoration: none;
1052 + }
1053 + }
1146 1146  
1147 -@media (max-width: 980px) {
1148 - .product-layout,
1149 - .product-feature-grid {
1150 - grid-template-columns: 1fr;
1055 + .product-cta-section {
1056 + padding: 0 0 56px;
1151 1151   }
1152 1152  
1153 - .product-summary-card h2 {
1059 + .product-cta-panel {
1060 + max-width: 860px;
1061 + margin: 0 auto;
1062 + padding: 32px;
1063 + border-radius: @radius;
1064 + border: 1px solid fade(@brand, 20%);
1065 + background:
1066 + radial-gradient(34rem 12rem at 50% 0%, @brand-soft 0%, #fff 70%);
1067 + box-shadow: @shadow-sm;
1154 1154   text-align: center;
1155 - }
1156 -}
1157 1157  
1158 -@media (max-width: 640px) {
1159 - .product-card {
1160 - grid-template-columns: 1fr;
1161 - padding: 22px;
1162 - text-align: left;
1070 + h2 {
1071 + margin: 0 0 12px;
1072 + color: @text;
1073 + font-size: 26px;
1074 + line-height: 1.25;
1075 + }
1163 1163  
1164 - .product-card-icon {
1165 - margin-bottom: 2px;
1077 + p {
1078 + max-width: 680px;
1079 + margin: 0 auto 18px;
1080 + color: @muted;
1081 + line-height: 1.55;
1166 1166   }
1167 1167   }
1168 -
1169 - .product-summary-card,
1170 - .product-info-card,
1171 - .product-feature,
1172 - .product-gallery-panel {
1173 - padding: 20px;
1174 - }
1175 1175  }
1176 -/* ========== Resources Index ========== */
1177 1177  
1178 -.resources-index-page {
1179 - padding: 56px 0 72px;
1180 - background: @brand-bg;
1181 -}
1182 -
1183 -.resources-intro {
1184 - max-width: 820px;
1185 - margin: 0 auto 32px;
1186 - text-align: center;
1187 -}
1188 -
1189 -.resources-intro p {
1190 - color: @muted;
1191 - font-size: 17px;
1192 - line-height: 1.7;
1193 - margin: 0;
1194 -}
1195 -
1196 -.resources-grid {
1197 - display: grid;
1198 - grid-template-columns: repeat(2, minmax(0, 1fr));
1199 - gap: 24px;
1200 - margin-bottom: 36px;
1201 -}
1202 -
1203 -.resource-card {
1204 - display: flex;
1205 - gap: 18px;
1206 - background: #fff;
1207 - border: 1px solid @line;
1208 - border-radius: @radius;
1209 - box-shadow: @shadow-sm;
1210 - padding: 24px;
1211 -}
1212 -
1213 -.resource-card-icon {
1214 - flex: 0 0 46px;
1215 - width: 46px;
1216 - height: 46px;
1217 - border-radius: 14px;
1218 - background: @brand-soft;
1219 - color: @brand-strong;
1220 - display: flex;
1221 - align-items: center;
1222 - justify-content: center;
1223 - font-size: 20px;
1224 -}
1225 -
1226 -.resource-card-label {
1227 - color: @brand-strong;
1228 - font-size: 13px;
1229 - font-weight: 700;
1230 - text-transform: uppercase;
1231 - letter-spacing: .04em;
1232 - margin-bottom: 8px;
1233 -}
1234 -
1235 -.resource-card h2 {
1236 - font-size: 22px;
1237 - line-height: 1.25;
1238 - margin: 0 0 12px;
1239 -}
1240 -
1241 -.resource-card h2 a {
1242 - color: @text;
1243 - text-decoration: none;
1244 -}
1245 -
1246 -.resource-card h2 a:hover {
1247 - color: @brand-strong;
1248 - text-decoration: none;
1249 -}
1250 -
1251 -.resource-card p {
1252 - color: @muted;
1253 - font-size: 15px;
1254 - line-height: 1.65;
1255 - margin: 0 0 16px;
1256 -}
1257 -
1258 -.resource-card-link {
1259 - color: @brand-strong;
1260 - font-weight: 700;
1261 - text-decoration: none;
1262 -}
1263 -
1264 -.resource-card-link:hover {
1265 - color: @brand;
1266 - text-decoration: none;
1267 -}
1268 -
1269 -.resources-next {
1270 - max-width: 820px;
1271 - margin: 0 auto 32px;
1272 - text-align: center;
1273 -}
1274 -
1275 -.resources-next h2 {
1276 - font-size: 26px;
1277 - margin: 0 0 10px;
1278 -}
1279 -
1280 -.resources-next p {
1281 - color: @muted;
1282 - font-size: 16px;
1283 - line-height: 1.7;
1284 - margin: 0;
1285 -}
1286 -
1287 1287  @media (max-width: 767px) {
1288 - .resources-index-page {
1289 - padding: 36px 0 52px;
1290 - }
1087 + .agnease-product-page {
1088 + .product-index-hero {
1089 + padding: 38px 0 34px;
1090 + }
1291 1291  
1292 - .resources-intro {
1293 - text-align: left;
1294 - margin-bottom: 24px;
1295 - }
1092 + h1 {
1093 + font-size: 30px;
1094 + }
1296 1296  
1297 - .resources-grid {
1298 - grid-template-columns: 1fr;
1299 - gap: 18px;
1300 - }
1096 + .page-lead {
1097 + font-size: 16px;
1098 + }
1301 1301  
1302 - .resource-card {
1303 - padding: 20px;
1304 - }
1100 + .product-card {
1101 + grid-template-columns: 1fr;
1102 + padding: 22px;
1103 + text-align: left;
1104 + }
1305 1305  
1306 - .resource-card h2 {
1307 - font-size: 20px;
1308 - }
1106 + .product-card-icon {
1107 + margin-bottom: 2px;
1108 + }
1309 1309  
1310 - .resources-next {
1311 - text-align: left;
1110 + .product-cta-panel {
1111 + padding: 24px;
1112 + }
1312 1312   }
1313 1313  }
XWiki.StyleSheetExtension[1]
code
... ... @@ -1,6 +1,16 @@
1 1  /* ========== Agnease Public Top Menu ========== */
2 2  
3 -.agnease-menu-item {
3 +@brand: #00937D;
4 +@brand-strong: #007B6A;
5 +@text: #2D3A34;
6 +@muted: #5B6B64;
7 +@line: #E4ECE9;
8 +@brand-bg: #F4FCFA;
9 +
10 +/* Top-level menu items */
11 +
12 +.agnease-services-menu,
13 +.agnease-products-menu {
4 4   .dropdown-toggle {
5 5   font-weight: inherit;
6 6   font-size: inherit;
... ... @@ -8,8 +8,6 @@
8 8  
9 9   .caret {
10 10   margin-left: 4px;
11 - border-top-color: @brand;
12 - border-bottom-color: @brand;
13 13   }
14 14  
15 15   &.open > .dropdown-toggle,
... ... @@ -20,131 +20,129 @@
20 20   background-color: transparent;
21 21   box-shadow: none;
22 22   }
31 +}
23 23  
24 - &.open > .dropdown-toggle .caret,
25 - .dropdown-toggle:hover .caret,
26 - .dropdown-toggle:focus .caret {
27 - border-top-color: @brand-strong;
28 - border-bottom-color: @brand-strong;
29 - }
33 +/* Keep Agnease public top-level menu visually clean when hovered/open/focused */
34 +
35 +.navbar-nav > li.agnease-services-menu > a,
36 +.navbar-nav > li.agnease-products-menu > a,
37 +.navbar-nav > li.agnease-services-menu > a:hover,
38 +.navbar-nav > li.agnease-products-menu > a:hover,
39 +.navbar-nav > li.agnease-services-menu > a:focus,
40 +.navbar-nav > li.agnease-products-menu > a:focus,
41 +.navbar-nav > li.agnease-services-menu.open > a,
42 +.navbar-nav > li.agnease-products-menu.open > a,
43 +.navbar-nav > li.agnease-services-menu.open > a:hover,
44 +.navbar-nav > li.agnease-products-menu.open > a:hover,
45 +.navbar-nav > li.agnease-services-menu.open > a:focus,
46 +.navbar-nav > li.agnease-products-menu.open > a:focus {
47 + background: transparent;
48 + background-color: transparent;
49 + color: @brand-strong;
50 + box-shadow: none;
30 30  }
31 31  
32 32  /* Dropdown panels */
33 33  
34 -.agnease-dropdown {
35 - min-width: 270px;
36 - padding: 8px;
37 - border: 1px solid fade(@brand, 18%);
55 +.agnease-services-dropdown,
56 +.agnease-products-dropdown {
57 + min-width: 360px;
58 + padding: 10px;
59 + border: 1px solid @line;
38 38   border-radius: 12px;
39 - background: #fff;
40 - box-shadow: 0 12px 32px fade(@brand-strong, 12%);
61 + box-shadow: 0 12px 36px rgba(0, 0, 0, .10);
41 41  
42 42   > li > a {
43 43   display: flex;
44 - align-items: center;
45 - gap: 10px;
46 - padding: 9px 11px;
47 - border-radius: 9px;
48 - color: @brand;
49 - background: transparent;
50 - white-space: nowrap;
51 - font-size: 14px;
52 - font-weight: 700;
53 - line-height: 1.25;
65 + align-items: flex-start;
66 + gap: 12px;
67 + padding: 10px 12px;
68 + border-radius: 10px;
69 + color: @text;
70 + white-space: normal;
54 54  
55 - i {
56 - width: 18px;
57 - flex: 0 0 18px;
58 - color: @brand;
59 - text-align: center;
60 - font-size: 14px;
61 - }
62 -
63 63   &:hover,
64 - &:focus,
65 - &:active {
73 + &:focus {
66 66   color: @brand-strong;
67 - background: fade(@brand, 8%);
75 + background: @brand-bg;
68 68   text-decoration: none;
69 - outline: none;
70 70  
71 - i {
78 + .menu-icon {
72 72   color: @brand-strong;
80 + background: fade(@brand, 14%);
81 + border-color: fade(@brand, 28%);
73 73   }
74 - }
75 - }
76 76  
77 - > .active > a,
78 - > .active > a:hover,
79 - > .active > a:focus {
80 - color: @brand-strong;
81 - background: fade(@brand, 10%);
82 - text-decoration: none;
84 + strong {
85 + color: @brand-strong;
86 + }
83 83  
84 - i {
85 - color: @brand-strong;
88 + small {
89 + color: @muted;
90 + }
86 86   }
87 87   }
88 88  
89 89   .divider {
90 - margin: 7px 0;
91 - background-color: fade(@brand, 16%);
95 + margin: 8px 0;
96 + background-color: @line;
92 92   }
93 -}
94 94  
95 -.agnease-products-dropdown,
96 -.agnease-resources-dropdown {
97 - min-width: 260px;
99 + .menu-icon {
100 + width: 34px;
101 + height: 34px;
102 + border-radius: 50%;
103 + background: fade(@brand, 8%);
104 + border: 1px solid fade(@brand, 18%);
105 + color: @brand;
106 + display: flex;
107 + align-items: center;
108 + justify-content: center;
109 + flex-shrink: 0;
110 + transition: color .15s ease, background .15s ease, border-color .15s ease;
111 + }
112 +
113 + .menu-text {
114 + display: flex;
115 + flex-direction: column;
116 + line-height: 1.25;
117 +
118 + strong {
119 + color: @brand;
120 + font-size: 14px;
121 + font-weight: 600;
122 + }
123 +
124 + small {
125 + color: @muted;
126 + font-size: 12px;
127 + margin-top: 2px;
128 + font-weight: 400;
129 + }
130 + }
98 98  }
99 99  
100 -/* Remove gray Bootstrap dropdown item states */
101 -.dropdown-menu > li > a:hover,
102 -.dropdown-menu > li > a:focus {
103 - background-image: none;
133 +/* Products dropdown can be slightly narrower for now */
134 +
135 +.agnease-products-dropdown {
136 + min-width: 340px;
104 104  }
105 105  
106 -/* ========== Mobile Menu ========== */
139 +/* Mobile */
107 107  
108 108  @media (max-width: 767px) {
109 - .navbar-nav > li.agnease-menu-item > a,
110 - .navbar-nav > li > a {
111 - padding-top: 8px;
112 - padding-bottom: 8px;
113 - font-size: 14px;
114 - }
115 -
116 - .agnease-dropdown {
142 + .agnease-services-dropdown,
143 + .agnease-products-dropdown {
117 117   min-width: 0;
118 118   width: 100%;
119 - padding: 4px 8px 8px 18px;
120 - border: 0;
146 + padding: 6px;
121 121   border-radius: 0;
148 + border-left: 0;
149 + border-right: 0;
122 122   box-shadow: none;
123 - background: #fff;
124 124  
125 125   > li > a {
126 - padding: 8px 10px;
127 - white-space: normal;
128 - font-size: 14px;
129 - border-radius: 8px;
130 - color: @brand;
131 -
132 - i {
133 - width: 16px;
134 - flex-basis: 16px;
135 - }
136 -
137 - &:hover,
138 - &:focus,
139 - &:active {
140 - color: @brand-strong;
141 - background: fade(@brand, 8%);
142 - }
153 + padding: 10px;
143 143   }
144 -
145 - .divider {
146 - margin: 5px 0;
147 - background-color: fade(@brand, 16%);
148 - }
149 149   }
150 150  }