An error occurred while processing the template.
An error has occurred when reading existing sub-variable "iterator"; see cause exception! The type of the containing value was: extended_hash+string (org.json.JSONObject wrapped into f.e.b.StringModel)

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #list images.iterator() as imgObj  [in template "227222" in macro "imageZoom" at line 359, column 9]
	- Reached through: @imageZoom id=variant.id cssClasses="...  [in template "20116#20152#253374" at line 94, column 25]
----
1<#if cmsEntity?has_content> 
2<#include "${templatesPath}/227222" /> <@sectionHeader title="${title}" menuTitle="${menuTitle}" cssClasses="bg-white" id="discontinued-section-main"/> 
3<#assign ns = themeDisplay.portletDisplay.getId() > 
4 
5<#assign iconSetPath ="/o/genelec-site-theme/images/icons/symbol-defs.svg"> 
6<#if cmsEntity.getField(profile, "/entity/relationships/variants")?has_content> 
7    <#assign variants = cmsEntity.getField(profile, "/entity/relationships/variants") > 
8</#if> 
9<#if cmsEntity.getField(profile, "/entity/fields")?has_content> 
10    <#assign fields = cmsEntity.getField(profile, "/entity/fields") >  
11</#if> 
12<#if cmsEntity.getLocalizedField(profile, "/entity/fields/title")?has_content> 
13    <#assign productTitle = cmsEntity.getLocalizedField(profile, "/entity/fields/title")> 
14</#if> 
15<#if cmsEntity.getField(profile, "/entity/relationships/awards")?has_content> 
16    <#assign awards = cmsEntity.getField(profile, "/entity/relationships/awards") > 
17</#if> 
18 
19 
20<#if cmsEntity.getLocalizedField(profile, "/entity/fields/content")?has_content > 
21    <#assign content = cmsContentFormatterService.getMarkdown(cmsEntity.getLocalizedField(profile, "/entity/fields/content"))> 
22</#if> 
23<#if cmsEntity.getField(profile, "/entity/fields/summary")?has_content > 
24    <#assign summary = cmsContentFormatterService.getMarkdown(cmsEntity.getLocalizedField(profile, "/entity/fields/summary"))> 
25</#if> 
26 
27<#assign portalUrl = themeDisplay.getPortalURL() > 
28<#assign currentURL = portalUrl + themeDisplay.getURLCurrent()  > 
29<@appendHTMLMetas currentURL cmsEntity "product" /> 
30 
31        <div class="row"> 
32            <div class="col-lg-6"> 
33                <div class="product-page-heading"> 
34                    <h1>${productTitle}</h1> 
35                    <#if cmsEntity.getLocalizedField(profile, "/entity/fields/subtitle")?has_content> 
36                        <h1 class="subtitle">${cmsEntity.getLocalizedField(profile, "/entity/fields/subtitle")}</h1> 
37                    </#if> 
38                </div> 
39                <div class="row justify-content-between"> 
40                    <div class="col-lg-12 article-content"> 
41                    <div class="product-page-intro"> 
42                    <#if cmsEntity.getField(profile, "/entity/relationships/discontinuedProductReplacedBy")?has_content> 
43                    <#assign replacedBys = cmsEntity.getField(profile, "/entity/relationships/discontinuedProductReplacedBy")> 
44                        <#list replacedBys.iterator() as replacedBy> 
45                            <#assign replacedByName = localizeField(replacedBy.properties.title, profile.getCMSLangCode())> 
46                            <#if replacedBy?index == 0 && replacedBy?is_last> 
47                                <@liferay.language key="replaced-by"/> ${replacedByName}  
48                            <#elseif replacedBy?index == 0 && replacedBy?is_first> 
49                                <@liferay.language key="replaced-byMulti"/> ${replacedByName}<#sep>, 
50                            <#else> 
51                                ${replacedByName}<#sep>, 
52                            </#if> 
53                        </#list> 
54                        </#if> 
55                        </div> 
56                    </div> 
57                </div> 
58                <div class="row"> 
59                    <div class="col-lg-12">   
60                    <p> 
61                        <#if awards?has_content> 
62                            <#list awards.iterator() as award> 
63                                <#assign awardIndex = award?index> 
64                                <#if !award.assets.isNull("image")> 
65                                    <#assign awardImage = award.assets.image.url > 
66                                    <a href="#/" onClick="openPopup(9)"> 
67                                        <@imageThumbnail src="${awardImage}" id="" cssClasses="award-img" thumbnail="awardImg" alt="${localizeField(award.properties.title, profile.getCMSLangCode())}"/> 
68                                    </a> 
69                                </#if> 
70                            </#list> 
71                            <#if awardIndex gt -1> 
72                                <i class="award-icon default-icon icon-plus-sign" onClick="openPopup(9)" title="<@liferay.language key="more-info"/>"></i> 
73                            </#if> 
74                        </#if> 
75                    <p> 
76                    <hr> 
77                    </div> 
78                </div>  
79                <div class="row"> 
80                    <div class="col-lg-12"> 
81                        <#if summary?has_content> 
82                            <div class="product-page-intro">${summary}</div> 
83                        </#if> 
84                        <#if content?has_content> 
85                            <p>${content}</p>  
86                        </#if> 
87                    </div> 
88                </div>   
89            </div> 
90            <#if variants?has_content> 
91            <div class="col-lg-6"> 
92                <#list variants.iterator() as variant> 
93                    <#if variant?index = 0> 
94                        <@imageZoom  
95                            id=variant.id  
96                            cssClasses="zoom-gallery-slide active"  
97                            images=variant.relationships.images  
98                            carouselCss="discontinued-carousel owl-carousel owl-theme image-carousel-container"  
99                            zoomCss="MagicZoom discontinued-page-product-image" 
100                            videoCss="discontinued-section-video" 
101                        /> 
102                    <#else> 
103                        <@imageZoom  
104                            id=variant.id  
105                            variantCss="variant-gallery"  
106                            cssClasses="zoom-gallery-slide active"  
107                            images=variant.relationships.images  
108                            carouselCss="discontinued-carousel owl-carousel owl-theme image-carousel-container"  
109                            zoomCss="MagicZoom discontinued-page-product-image" 
110                            videoCss="discontinued-section-video" 
111                        /> 
112                    </#if> 
113                </#list> 
114                 <#list variants.iterator() as variant> 
115                    <#if !variant.properties.isNull("colorCode")> 
116                        <#if variant?index == 0> 
117                            <div class="text-bold"><@liferay.language key="color-options"/></div> 
118                        </#if> 
119                        <#assign color = "${variant.properties.colorCode}"> 
120                        <#if !variant.properties.isNull("sku")> 
121                            <#assign sku = variant.properties.sku> 
122                        <#else> 
123                            <#assign sku = ""> 
124                        </#if> 
125                    <#if variant?index = 0> 
126                        <@variantChange id=variant.id checked="checked" color=color sku=sku/> 
127                    <#else> 
128                        <@variantChange id=variant.id color=color sku=sku/> 
129                    </#if> 
130                    </#if> 
131                </#list> 
132            </div> 
133            </#if> 
134        </div> 
135 <@sectionFooter/> 
136 
137<#--  Popup  --> 
138<div id="theme-popup9" class="popup product-page-media"> 
139    <div class="close-button-container"> 
140        <span class="close" onClick="closePopup(9)"></span> 
141    </div> 
142    <div class="panel popup-content" id="popupContentAwards"> 
143        <div class="panel-body"> 
144 
145            <h3 class="section-heading text-bolder"> 
146                ${productTitle}<br> 
147                Awards   
148            </h3> 
149 
150            <#if awards?has_content> 
151                <div class="row"> 
152                    <#list awards.iterator() as award> 
153                        <div class="col-12 col-md-6 col-xl-3 award-card"> 
154                            <#if !award.assets.isNull("image")> 
155                                <#assign awardImage = award.assets.image.url > 
156                                <div class="aspect-ratio aspect-ratio-4-to-3">  
157                                        <@imageThumbnail data="${awardImage}" id="" cssClasses="aspect-ratio-item-fluid aspect-ratio-item-center-middle lazy" thumbnail="awardImgPopup" alt="${localizeField(award.properties.title, profile.getCMSLangCode())}"/> 
158                                </div> 
159                            <#else> 
160                                <div class="aspect-ratio aspect-ratio-4-to-3">  
161                                </div> 
162                            </#if> 
163                                <p> 
164                                    <span class="text-medium text-bolder">${localizeField(award.properties.title, profile.getCMSLangCode())}</span><br> 
165                                </p> 
166                                <p> 
167                                    <span class="small"> 
168                                        <#if !award.properties.isNull("content")> 
169                                        <#assign awardContent = cmsContentFormatterService.getMarkdown(localizeField(award.properties.content, profile.getCMSLangCode()))> 
170                                        ${awardContent} 
171                                        </#if> 
172                                    </span> 
173                                </p> 
174                        </div> 
175                    </#list>    
176                </div> 
177            </#if>  
178        </div> 
179    </div> 
180</div> 
181 
182<style> 
183 
184    .product-page-product-title { 
185        font-weight: 600; 
186        margin-bottom: 0; 
187
188 
189    .product-page-form { 
190        margin-bottom: 15px; 
191
192 
193    .btn-product-page-buy { 
194        width: 40%; 
195        min-width: 250px;  
196
197 
198    .btn-bold { 
199        border-width: 2px; 
200        text-transform: uppercase; 
201        font-weight: 800; 
202
203 
204    .buy-product-dropdown { 
205        margin-left: -4px; 
206        border-left: none; 
207        padding: 0; 
208        width: 11%; 
209        height: 43px 
210
211 
212    .buy-product-dropdown h3 { 
213        display: inline; 
214        vertical-align: middle; 
215
216 
217    .buy-product-dropdown svg { 
218        width: 20px; 
219        line-height: .2; 
220        vertical-align: middle; 
221
222    
223 
224    .product-page-form input { 
225        position: absolute; 
226        opacity: 0; 
227        cursor: pointer; 
228
229 
230    .container-first-section { 
231        padding-bottom: 0px; 
232
233 
234    .container-last-section { 
235        padding-top: 0px; 
236
237 
238 
239i.award-icon { 
240    color: #CCC; 
241
242i.award-icon:hover { 
243    cursor: pointer; 
244    color: #6daa41; 
245
246.discontinued-carousel .owl-prev { 
247    width: 17px; 
248    height: 100px; 
249    position: absolute; 
250    left: -20px; 
251    top: 47%; 
252    transform: translateY(-50%); 
253    display: block !important; 
254    border:0px solid black; 
255    font-size: 2em !important; 
256
257 
258.discontinued-carousel .owl-next { 
259    width: 17px; 
260    height: 100px; 
261    position: absolute; 
262    right: -20px; 
263    top: 47%; 
264    transform: translateY(-50%); 
265    display: block !important; 
266    border:0px solid black; 
267    font-size: 2em !important; 
268
269.award-img{ 
270max-width: 180px; 
271
272 
273</style> 
274 
275<script> 
276    $('.discontinued-carousel').owlCarousel({ 
277    loop:false, 
278    nav:true, 
279    dots:false, 
280    margin:5, 
281    lazyLoad:true, 
282    navText : ['<i class="icon-angle-left">','<i class="icon-angle-right">'], 
283    responsive:{ 
284        0:{items:3, slideBy:3}, 
285        600:{items:5, slideBy:5}, 
286        1000:{items:7, slideBy:7} 
287     }, 
288}); 
289 
290$(document).mouseup(function (e) { 
291    if(!$('#popupContent'+"Awards").is(e.target) &&  
292        $('#popupContent'+"Awards").has(e.target).length == 0 &&  
293        $(e.target).attr('class') != 'close' && 
294        $('#theme-popup'+"9").css("display") == "block"){ 
295        closePopup(9); 
296
297}) 
298 
299</script> 
300</#if> 

Technical Specifications

SPL

93 dB

Amplifier Power

12 W Bass (Class AB) + 12 W Treble (Class AB)

Frequency Response

67 Hz - 25 kHz ("-6 dB")

Accuracy of Frequency Response

± 2.5 dB (74 Hz - 20 kHz)

Driver Dimensions

76 mm Bass (view in inches)

Dimensions

H 195 x W 121 x D 115 mm, with Iso-Pod™ (view in inches)

Weight

1.4 kg / 3.1 lb

Connections

1 x RCA Analog Input



Key Technologies

Active Crossovers

Directivity Control Waveguide (DCW™) Technology

Intelligent Signal Sensing (ISS™) Technology

Iso-Pod™ Stand

Minimum Diffraction Enclosure (MDE™) Technology

Optimised Amplifiers

Protection Circuitry

Reflex Port Design

Room Response Compensation

Versatile Mountings