PageSourceSearch

https://blog.lakmali.com/

html lakmali.com collected 2026-10-02 14:26:49 UTC 158,660 bytes, 3,973 lines download raw bytes

1<!DOCTYPE html>
2<html dir='ltr' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>
3<head>
4<meta content='width=device-width, initial-scale=1' name='viewport'/>
5<title>Lakmali Erandi Baminiwatta&#8217;s blog</title>
6<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
7<!-- Chrome, Firefox OS and Opera -->
8<meta content='#6dbef3' name='theme-color'/>
9<!-- Windows Phone -->
10<meta content='#6dbef3' name='msapplication-navbutton-color'/>
11<meta content='blogger' name='generator'/>
12<link href='https://blog.lakmali.com/favicon.ico' rel='icon' type='image/x-icon'/>
13<link href='https://blog.lakmali.com/' rel='canonical'/>
14<link rel="alternate" type="application/atom+xml" title="Lakmali Erandi Baminiwatta&#8217;s blog - Atom" href="https://blog.lakmali.com/feeds/posts/default" />
15<link rel="alternate" type="application/rss+xml" title="Lakmali Erandi Baminiwatta&#8217;s blog - RSS" href="https://blog.lakmali.com/feeds/posts/default?alt=rss" />
16<link rel="service.post" type="application/atom+xml" title="Lakmali Erandi Baminiwatta&#8217;s blog - Atom" href="https://www.blogger.com/feeds/1621989597321372268/posts/default" />
17<link rel="me" href="https://www.blogger.com/profile/06183648962849727542" />
18<!--Can't find substitution for tag [blog.ieCssRetrofitLinks]-->
19<meta content='https://blog.lakmali.com/' property='og:url'/>
20<meta content='Lakmali Erandi Baminiwatta’s blog' property='og:title'/>
21<meta content='' property='og:description'/>
22<meta content='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4FBW68Ho8lyj5pWTKcTrqlMi8BEUytVPZdEx2cBDtLY9zrVOYOMM23h0ZhdaUd_BRPbfsONsQ8ddxtGxAxCHYy6M4txCzrdVF4EH2QSmPUJevCt6lX2zbYZPvwDqi1L-v1MA8mVcIOMzc/w1200-h630-p-k-no-nu/add-function.png' property='og:image'/>
23<meta content='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7KknO87F4QoYFfOhjGnndOZChe2ZS1JoSo1kfv03ktrvnE22a7ePhgfWe_cnbx8X1Fr-crlr8AwZY77cZTVZFAKVuPVwS7p4od5LeqmCSVF_-DwuHXukN-M07JFCJnblof7NdEgYIMBpR/w1200-h630-p-k-no-nu/script1.png' property='og:image'/>
24<meta content='3a23d322cbcd6fb5' name='yandex-verification'/>
25<style type='text/css'>@font-face{font-family:'Playfair Display';font-style:normal;font-weight:900;font-display:swap;src:url(//fonts.gstatic.com/s/playfairdisplay/v40/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKfsunDTbtPK-F2qC0usEw.woff2)format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:900;font-display:swap;src:url(//fonts.gstatic.com/s/playfairdisplay/v40/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKfsunDYbtPK-F2qC0usEw.woff2)format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:900;font-display:swap;src:url(//fonts.gstatic.com/s/playfairdisplay/v40/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKfsunDZbtPK-F2qC0usEw.woff2)format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:900;font-display:swap;src:url(//fonts.gstatic.com/s/playfairdisplay/v40/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKfsunDXbtPK-F2qC0s.woff2)format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAX-k3Yi128m0kN2.woff2)format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;
25src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAz-k3Yi128m0kN2.woff2)format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAT-k3Yi128m0kN2.woff2)format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAv-k3Yi128m0kN2.woff2)format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuHT-k3Yi128m0kN2.woff2)format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuGb-k3Yi128m0kN2.woff2)format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAf-k3Yi128m0kN2.woff2)format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAb-k3Yi128m0kN2.woff2)format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1D
25BF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAj-k3Yi128m0g.woff2)format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbVmZiAr0klQmz24O0g.woff2)format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbVmQiAr0klQmz24O0g.woff2)format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbVmYiAr0klQmz24O0g.woff2)format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbVmXiAr0klQmz24O0g.woff2)format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbVnoiAr0klQmz24O0g.woff2)format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbVn6iAr0klQmz24O0g.woff2)format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;
25src:url(//fonts.gstatic.com/s/roboto/v51/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbVmbiAr0klQmz24O0g.woff2)format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbVmaiAr0klQmz24O0g.woff2)format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbVmUiAr0klQmz24.woff2)format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}</style>
26<style id='page-skin-1' type='text/css'><!--
27.skip-navigation {
28background-color: #fff;
29box-sizing: border-box;
30color: #000;
31display: block;
32height: 0;
33left: 0;
34line-height: 50px;
35overflow: hidden;
36padding-top: 0;
37position: fixed;
38text-align: center;
39top: 0;
40-webkit-transition: box-shadow .3s , height .3s , padding-top .3s;
41transition: box-shadow .3s , height .3s , padding-top .3s;
42width: 100%;
43z-index: 900;
44}
45.skip-navigation:focus {
46box-shadow: 0 4px 5px 0 rgba(0,0,0,0.14) , 0 1px 10px 0 rgba(0,0,0,0.12) , 0 2px 4px -1px rgba(0,0,0,0.2);
47height: 50px;
48}
49#main {
50outline: none;
51}
52body {
53overflow-wrap: break-word;
54word-break: break-word;
55word-wrap: break-word;
56}
57.hidden {
58display: none;
59}
60.invisible {
61visibility: hidden;
62}
63.container:after, .float-container:after {
64clear: both;
65content: "";
66display: table;
67}
68.clearboth {
69clear: both;
70}
71.dim-overlay {
72background-color: rgba(0,0,0,0.54);
73height: 100vh;
74left: 0;
75position: fixed;
76top: 0;
77width: 100%;
78}
79#sharing-dim-overlay {
80background-color: transparent;
81}
82.main-heading {
83position: absolute;
84clip: rect(1px,1px,1px,1px);
85padding: 0;
86border: 0;
87height: 1px;
88width: 1px;
89overflow: hidden;
90}
91.loading-spinner-large {
92-webkit-animation: mspin-rotate 1568.63ms infinite linear;
93animation: mspin-rotate 1568.63ms infinite linear;
94height: 48px;
95overflow: hidden;
96position: absolute;
97width: 48px;
98z-index: 200;
99}
100.loading-spinner-large>div {
101-webkit-animation: mspin-revrot 5332ms infinite steps(4);
102animation: mspin-revrot 5332ms infinite steps(4);
103}
104.loading-spinner-large>div>div {
105-webkit-animation: mspin-singlecolor-large-film 1333ms infinite steps(81);
106animation: mspin-singlecolor-large-film 1333ms infinite steps(81);
107background-size: 100%;
108height: 48px;
109width: 3888px;
110}
111.mspin-black-large>div>div, .mspin-grey_54-large>div>div {
112background-image: url(https://www.blogblog.com/indie/mspin_black_large.svg);
113}
114.mspin-white-large>div>div {
115background-image: url(https://www.blogblog.com/indie/mspin_white_large.svg);
116}
117.mspin-grey_54-large {
118opacity: .54;
119}
120@-webkit-keyframes mspin-singlecolor-large-film {
1210% {
122-webkit-transform: translateX(0);
123transform: translateX(0);
124}
125to {
126-webkit-transform: translateX(-3888px);
127transform: translateX(-3888px);
128}
129}
130@keyframes mspin-singlecolor-large-film {
1310% {
132-webkit-transform: translateX(0);
133transform: translateX(0);
134}
135to {
136-webkit-transform: translateX(-3888px);
137transform: translateX(-3888px);
138}
139}
140@-webkit-keyframes mspin-rotate {
1410% {
142-webkit-transform: rotate(0deg);
143transform: rotate(0deg);
144}
145to {
146-webkit-transform: rotate(360deg);
147transform: rotate(360deg);
148}
149}
150@keyframes mspin-rotate {
1510% {
152-webkit-transform: rotate(0deg);
153transform: rotate(0deg);
154}
155to {
156-webkit-transform: rotate(360deg);
157transform: rotate(360deg);
158}
159}
160@-webkit-keyframes mspin-revrot {
1610% {
162-webkit-transform: rotate(0deg);
163transform: rotate(0deg);
164}
165to {
166-webkit-transform: rotate(-360deg);
167transform: rotate(-360deg);
168}
169}
170@keyframes mspin-revrot {
1710% {
172-webkit-transform: rotate(0deg);
173transform: rotate(0deg);
174}
175to {
176-webkit-transform: rotate(-360deg);
177transform: rotate(-360deg);
178}
179}
180input::-ms-clear {
181display: none;
182}
183.blogger-logo, .svg-icon-24.blogger-logo {
184fill: #ff9800;
185opacity: 1;
186}
187.widget.Attribution {
188margin-top: 1em;
189text-align: center;
190}
191.widget.Attribution .blogger img, .widget.Attribution .blogger svg {
192vertical-align: bottom;
193}
194.widget.Attribution .blogger img {
195margin-right: .5em;
196}
197.widget.Attribution div {
198line-height: 24px;
199margin-top: .5em;
200}
201.widget.Attribution .image-attribution, .widget.Attribution .copyright {
202font-size: .7em;
203margin-top: 1.5em;
204}
205.item-control {
206display: none;
207}
208.BLOG_mobile_video_class {
209display: none;
210}
211.bg-photo {
212background-attachment: scroll !important;
213}
214body .CSS_LIGHTBOX {
215z-index: 900;
216}
217.extendable .show-more, .extendable .show-less {
218border-color: #108ee3;
219color: #108ee3;
220margin-top: 8px;
221}
222.extendable .show-more.hidden, .extendable .show-less.hidden {
223display: none;
224}
225.inline-ad {
226display: none;
227max-width: 100%;
228overflow: hidden;
229}
230.adsbygoogle {
231display: block;
232}
233#cookieChoiceInfo {
234bottom: 0;
235top: auto;
236}
237iframe.b-hbp-video {
238border: none;
239}
240.post-body img {
241max-width: 100%;
242}
243.post-body iframe {
244max-width: 100%;
245}
246.post-body a[imageanchor="1"] {
247display: inline-block;
248}
249.byline {
250margin-right: 1em;
251}
252.byline:last-child {
253margin-right: 0;
254}
255.paging-control-container {
256margin-bottom: 16px;
257}
258.paging-control-container .paging-control {
259display: inline-block;
260}
261.paging-control-container .paging-control, .paging-control-container .comment-range-text:after {
262color: #108ee3;
263}
264.paging-control-container .paging-control, .paging-control-container .comment-range-text {
265margin-right: 8px;
266}
267.paging-control-container .comment-range-text:after, .paging-control-container .paging-control:after {
268content: "\b7";
269cursor: default;
270pointer-events: none;
271}
272.paging-control-container .comment-range-text:last-child:after, .paging-control-container .paging-control:last-child:after {
273content: none;
274}
275.paging-control-container .comment-range-text:after, .paging-control-container .paging-control:after {
276padding-left: 8px;
277}
278.byline.reactions iframe {
279height: 20px;
280}
281.b-notification {
282color: #000;
283background-color: white;
284border-bottom: solid 1px #000;
285box-sizing: border-box;
286padding: 16px 32px;
287text-align: center;
288}
289.b-notification.visible {
290-webkit-transition: margin-top .3s cubic-bezier(0.4,0.0,0.2,1);
291transition: margin-top .3s cubic-bezier(0.4,0.0,0.2,1);
292}
293.b-notification.invisible {
294position: absolute;
295}
296.b-notification-close {
297position: absolute;
298right: 8px;
299top: 8px;
300}
301.no-posts-message {
302line-height: 40px;
303text-align: center;
304}
305@media screen and (max-width: 800px) {
306body.item-view .post-body a[imageanchor="1"][style*="float: left;"], body.item-view .post-body a[imageanchor="1"][style*="float: right;"] {
307float: none !important;
308clear: none !important;
309}
310body.item-view .post-body a[imageanchor="1"] img {
311display: block;
312height: auto;
313margin: 0 auto;
314}
315body.item-view .post-body a[imageanchor="1"][style*="float: left;"] img, body.item-view .post-body .separator[style*="text-align: left"] a[imageanchor="1"] img {
316margin: 0 auto 0 0;
317}
318body.item-view .post-body a[imageanchor="1"][style*="float: right;"] img, body.item-view .post-body .separator[style*="text-align: right"] a[imageanchor="1"] img {
319margin: 0 0 0 auto;
320}
321.post-body a[imageanchor] {
322display: block;
323}
324body.item-view .post-body a[imageanchor="1"] {
325margin-left: 0 !important;
326margin-right: 0 !important;
327}
328body.item-view .post-body a[imageanchor="1"]+a[imageanchor="1"] {
329margin-top: 16px;
330}
331}
332#comments {
333border-top: 1px dashed rgba(0,0,0,0.54);
334margin-top: 20px;
335padding: 20px;
336}
337#comments .comment-thread ol {
338margin: 0;
339padding-left: 0;
340}
341#comments .comment-thread ol {
342padding-left: 0;
343}
344#comments .comment-thread .comment-replies, #comments .comment .comment-replybox-single {
345margin-left: 60px;
346}
347#comments .comment-thread .thread-count {
348display: none;
349}
350#comments .comment {
351list-style-type: none;
352padding: 0 0 30px;
353position: relative;
354}
355#comments .comment .comment {
356padding-bottom: 8px;
357}
358.comment .avatar-image-container {
359position: absolute;
360}
361.comment .avatar-image-container img {
362border-radius: 50%;
363}
364.avatar-image-container svg, .comment .avatar-image-container .avatar-icon {
365border-radius: 50%;
366border: solid 1px #848484;
367box-sizing: border-box;
368fill: #848484;
369height: 35px;
370margin: 0;
371padding: 7px;
372width: 35px;
373}
374.comment .comment-block {
375margin-top: 10px;
376padding-bottom: 0;
377}
378.comment .comment-block {
379margin-left: 60px;
380}
381#comments .comment-author-header-wrapper {
382margin-left: 40px;
383}
384#comments .comment .thread-expanded .comment-block {
385padding-bottom: 20px;
386}
387#comments .comment .comment-header .user, #comments .comment .comment-header .user a {
388color: #626262;
389font-style: normal;
390font-weight: bold;
391}
392#comments .comment .comment-actions {
393background: transparent;
394border: none;
395box-shadow: none;
396color: #108ee3;
397cursor: pointer;
398font-size: 14px;
399font-weight: bold;
400outline: none;
401text-decoration: none;
402text-transform: uppercase;
403width: auto;
404bottom: 0;
405margin-bottom: 15px;
406position: absolute;
407}
408#comments .comment .comment-actions>* {
409margin-right: 8px;
410}
411#comments .comment .comment-header .datetime {
412bottom: 0;
413color: rgba(0,0,0,0.54);
414display: inline-block;
415font-size: 13px;
416font-style: italic;
417}
418#comments .comment .comment-header .datetime {
419margin-left: 8px;
420}
421#comments .comment .comment-header .datetime a, #comments .comment .comment-footer .comment-timestamp a {
422color: rgba(0,0,0,0.54);
423}
424.comment .comment-body, #comments .comment .comment-content {
425margin-top: 12px;
426word-break: break-word;
427}
428.comment-body {
429margin-bottom: 12px;
430}
431#comments.embed[data-num-comments="0"] {
432border: none;
433margin-top: 0;
434padding-top: 0;
435}
436#comments.embed[data-num-comments="0"] #comment-post-message, #comments.embed[data-num-comments="0"] div.comment-form>p, #comments.embed[data-num-comments="0"] p.comment-footer {
437display: none;
438}
439#comment-editor-src {
440display: none;
441}
442.comments .comments-content .loadmore.loaded {
443max-height: 0;
444opacity: 0;
445overflow: hidden;
446}
447.extendable .remaining-items {
448height: 0;
449overflow: hidden;
450-webkit-transition: height .3s cubic-bezier(0.4,0.0,0.2,1);
451transition: height .3s cubic-bezier(0.4,0.0,0.2,1);
452}
453.extendable .remaining-items.expanded {
454height: auto;
455}
456.svg-icon-24, .svg-icon-24-button {
457cursor: pointer;
458height: 24px;
459width: 24px;
460min-width: 24px;
461}
462.touch-icon {
463margin: -12px;
464padding: 12px;
465}
466html[dir=rtl] .rtl-reversible-icon {
467-webkit-transform: scaleX(-1);
468-ms-transform: scaleX(-1);
469transform: scaleX(-1);
470}
471svg:not(:root).touch-icon {
472overflow: visible;
473}
474.touch-icon:focus, .touch-icon:active {
475background-color: rgba(153,153,153,.4);
476border-radius: 50%;
477}
478.touch-icon-button, .svg-icon-24-button {
479background: transparent;
480border: none;
481margin: 0;
482outline: none;
483padding: 0;
484}
485.touch-icon-button .touch-icon:focus, .touch-icon-button .touch-icon:active {
486background-color: transparent;
487}
488.touch-icon-button:focus .touch-icon, .touch-icon-button:active .touch-icon {
489background-color: rgba(153,153,153,.4);
490border-radius: 50%;
491}
492.widget.Profile .default-avatar-wrapper .avatar-icon {
493border-radius: 50%;
494border: solid 1px #848484;
495box-sizing: border-box;
496fill: #848484;
497margin: 0;
498}
499.widget.Profile .individual .profile-img, .widget.Profile .individual .avatar-icon {
500height: 120px;
501width: 120px;
502}
503.widget.Profile .team .profile-img, .widget.Profile .team .avatar-icon, .widget.Profile .team .default-avatar-wrapper {
504height: 40px;
505width: 40px;
506}
507.widget.Profile .individual .default-avatar-wrapper .avatar-icon {
508padding: 25px;
509}
510.widget.Profile .team .default-avatar-wrapper .avatar-icon {
511padding: 8px;
512}
513.snippet-container {
514margin: 0;
515position: relative;
516overflow: hidden;
517}
518.snippet-fade {
519bottom: 0;
520box-sizing: border-box;
521position: absolute;
522width: 96px;
523}
524.snippet-fade {
525right: 0;
526}
527.snippet-fade:after {
528content: '\2026';
529}
530.snippet-fade:after {
531float: right;
532}
533.post-bottom {
534-webkit-box-align: center;
535-webkit-align-items: center;
536-ms-flex-align: center;
537align-items: center;
538display: -webkit-box;
539display: -webkit-flex;
540display: -ms-flexbox;
541display: flex;
542-webkit-flex-wrap: wrap;
543-ms-flex-wrap: wrap;
544flex-wrap: wrap;
545}
546.post-footer {
547-webkit-box-flex: 1;
548-webkit-flex: 1 1 auto;
549-ms-flex: 1 1 auto;
550flex: 1 1 auto;
551-webkit-flex-wrap: wrap;
552-ms-flex-wrap: wrap;
553flex-wrap: wrap;
554-webkit-box-ordinal-group: 2;
555-webkit-order: 1;
556-ms-flex-order: 1;
557order: 1;
558}
559.post-footer>* {
560-webkit-box-flex: 0;
561-webkit-flex: 0 1 auto;
562-ms-flex: 0 1 auto;
563flex: 0 1 auto;
564}
565.post-footer .byline:last-child {
566margin-right: 1em;
567}
568.jump-link {
569-webkit-box-flex: 0;
570-webkit-flex: 0 0 auto;
571-ms-flex: 0 0 auto;
572flex: 0 0 auto;
573-webkit-box-ordinal-group: 3;
574-webkit-order: 2;
575-ms-flex-order: 2;
576order: 2;
577}
578.centered-top-container.sticky {
579left: 0;
580position: fixed;
581right: 0;
582top: 0;
583width: auto;
584z-index: 50;
585-webkit-transition-property: opacity , -webkit-transform;
586transition-property: opacity , -webkit-transform;
587transition-property: transform , opacity;
588transition-property: transform , opacity , -webkit-transform;
589-webkit-transition-duration: .2s;
590transition-duration: .2s;
591-webkit-transition-timing-function: cubic-bezier(0.4,0.0,0.2,1);
592transition-timing-function: cubic-bezier(0.4,0.0,0.2,1);
593}
594.centered-top-placeholder {
595display: none;
596}
597.collapsed-header .centered-top-placeholder {
598display: block;
599}
600.centered-top-container .Header .replaced h1, .centered-top-placeholder .Header .replaced h1 {
601display: none;
602}
603.centered-top-container.sticky .Header .replaced h1 {
604display: block;
605}
606.centered-top-container.sticky .Header .header-widget {
607background: none;
608}
609.centered-top-container.sticky .Header .header-image-wrapper {
610display: none;
611}
612.centered-top-container img, .centered-top-placeholder img {
613max-width: 100%;
614}
615.collapsible {
616-webkit-transition: height .3s cubic-bezier(0.4,0.0,0.2,1);
617transition: height .3s cubic-bezier(0.4,0.0,0.2,1);
618}
619.collapsible, .collapsible>summary {
620display: block;
621overflow: hidden;
622}
623.collapsible>:not(summary) {
624display: none;
625}
626.collapsible[open]>:not(summary) {
627display: block;
628}
629.collapsible:focus, .collapsible>summary:focus {
630outline: none;
631}
632.collapsible>summary {
633cursor: pointer;
634display: block;
635padding: 0;
636}
637.collapsible:focus>summary, .collapsible>summary:focus {
638background-color: transparent;
639}
640.collapsible>summary::-webkit-details-marker {
641display: none;
642}
643.collapsible-title {
644-webkit-box-align: center;
645-webkit-align-items: center;
646-ms-flex-align: center;
647align-items: center;
648display: -webkit-box;
649display: -webkit-flex;
650display: -ms-flexbox;
651display: flex;
652}
653.collapsible-title .title {
654-webkit-box-flex: 1;
655-webkit-flex: 1 1 auto;
656-ms-flex: 1 1 auto;
657flex: 1 1 auto;
658-webkit-box-ordinal-group: 1;
659-webkit-order: 0;
660-ms-flex-order: 0;
661order: 0;
662overflow: hidden;
663text-overflow: ellipsis;
664white-space: nowrap;
665}
666.collapsible-title .chevron-down, .collapsible[open] .collapsible-title .chevron-up {
667display: block;
668}
669.collapsible-title .chevron-up, .collapsible[open] .collapsible-title .chevron-down {
670display: none;
671}
672.flat-button {
673cursor: pointer;
674display: inline-block;
675font-weight: bold;
676text-transform: uppercase;
677border-radius: 2px;
678padding: 8px;
679margin: -8px;
680}
681.flat-icon-button {
682background: transparent;
683border: none;
684margin: 0;
685outline: none;
686padding: 0;
687margin: -12px;
688padding: 12px;
689cursor: pointer;
690box-sizing: content-box;
691display: inline-block;
692line-height: 0;
693}
694.flat-icon-button, .flat-icon-button .splash-wrapper {
695border-radius: 50%;
696}
697.flat-icon-button .splash.animate {
698-webkit-animation-duration: .3s;
699animation-duration: .3s;
700}
701.overflowable-container {
702max-height: 46px;
703overflow: hidden;
704position: relative;
705}
706.overflow-button {
707cursor: pointer;
708}
709#overflowable-dim-overlay {
710background: transparent;
711}
712.overflow-popup {
713box-shadow: 0 2px 2px 0 rgba(0,0,0,.14) , 0 3px 1px -2px rgba(0,0,0,.2) , 0 1px 5px 0 rgba(0,0,0,.12);
714background-color: #fff8f6;
715left: 0;
716max-width: calc(100% - 32px);
717position: absolute;
718top: 0;
719visibility: hidden;
720z-index: 101;
721}
722.overflow-popup ul {
723list-style: none;
724}
725.overflow-popup li, .overflow-popup .tabs li {
726display: block;
727height: auto;
728}
729.overflow-popup .tabs li {
730padding-left: 0;
731padding-right: 0;
732}
733.overflow-button.hidden, .overflow-popup li.hidden, .overflow-popup .tabs li.hidden {
734display: none;
735}
736.pill-button {
737background: transparent;
738border: 1px solid;
739border-radius: 12px;
740cursor: pointer;
741display: inline-block;
742padding: 4px 16px;
743text-transform: uppercase;
744}
745.ripple {
746position: relative;
747}
748.ripple>* {
749z-index: 1;
750}
751.splash-wrapper {
752bottom: 0;
753left: 0;
754overflow: hidden;
755pointer-events: none;
756position: absolute;
757right: 0;
758top: 0;
759z-index: 0;
760}
761.splash {
762background: hsl(0,0%,80%);
763border-radius: 100%;
764display: block;
765opacity: .6;
766position: absolute;
767-webkit-transform: scale(0);
768-ms-transform: scale(0);
769transform: scale(0);
770}
771.splash.animate {
772-webkit-animation: ripple-effect .4s linear;
773animation: ripple-effect .4s linear;
774}
775@-webkit-keyframes ripple-effect {
776to {
777opacity: 0;
778-webkit-transform: scale(2.5);
779transform: scale(2.5);
780}
781}
782@keyframes ripple-effect {
783to {
784opacity: 0;
785-webkit-transform: scale(2.5);
786transform: scale(2.5);
787}
788}
789.search {
790display: -webkit-box;
791display: -webkit-flex;
792display: -ms-flexbox;
793display: flex;
794line-height: 24px;
795width: 24px;
796}
797.search form {
798z-index: 101;
799}
800.search h3 {
801display: none;
802}
803.search.focused {
804width: 100%;
805}
806.search.focused .section {
807width: 100%;
808}
809.search-expand {
810-webkit-box-flex: 0;
811-webkit-flex: 0 0 auto;
812-ms-flex: 0 0 auto;
813flex: 0 0 auto;
814}
815.search-expand-text {
816display: none;
817}
818.search-close {
819display: inline;
820vertical-align: middle;
821}
822.search form {
823display: -webkit-box;
824display: -webkit-flex;
825display: -ms-flexbox;
826display: flex;
827-webkit-box-flex: 1;
828-webkit-flex: 1 0 0;
829-ms-flex: 1 0 0px;
830flex: 1 0 0;
831border-bottom: solid 1px transparent;
832padding-bottom: 8px;
833}
834.search form>* {
835display: none;
836}
837.search.focused form>* {
838display: block;
839}
840.search .search-input label {
841display: none;
842}
843.centered-top-placeholder.cloned .search form {
844z-index: 30;
845}
846.search.focused form {
847border-color: #ffffff;
848position: relative;
849width: auto;
850}
851.collapsed-header .centered-top-container .search.focused form {
852border-bottom-color: transparent;
853}
854.search-input {
855-webkit-box-flex: 1;
856-webkit-flex: 1 0 1px;
857-ms-flex: 1 0 1px;
858flex: 1 0 1px;
859}
860.search-input input {
861background: none;
862border: none;
863box-sizing: border-box;
864color: #ffffff;
865display: inline-block;
866outline: none;
867width: calc(100% - 48px);
868}
869.search-input input.no-cursor {
870color: transparent;
871text-shadow: 0 0 0 #ffffff;
872}
873.collapsed-header .centered-top-container .search-action, .collapsed-header .centered-top-container .search-input input {
874color: #626262;
875}
876.collapsed-header .centered-top-container .search-input input.no-cursor {
877color: transparent;
878text-shadow: 0 0 0 #626262;
879}
880.search-input input.no-cursor:focus, .collapsed-header .centered-top-container .search-input input.no-cursor:focus {
881outline: none;
882}
883.search-focused>* {
884visibility: hidden;
885}
886.search-focused .search, .search-focused .search-icon {
887visibility: visible;
888}
889.search.focused .search-action {
890display: block;
891}
892.search.focused .search-action:disabled {
893opacity: .3;
894}
895.widget.Sharing .sharing-button {
896display: none;
897}
898.widget.Sharing .sharing-buttons li {
899padding: 0;
900}
901.widget.Sharing .sharing-buttons li span {
902display: none;
903}
904.post-share-buttons {
905position: relative;
906}
907.share-buttons .svg-icon-24, .centered-bottom .share-buttons .svg-icon-24 {
908fill: #707070;
909}
910.sharing-open.touch-icon-button:focus .touch-icon, .sharing-open.touch-icon-button:active .touch-icon {
911background-color: transparent;
912}
913.share-buttons {
914background-color: #fff8f6;
915border-radius: 2px;
916box-shadow: 0 2px 2px 0 rgba(0,0,0,.14) , 0 3px 1px -2px rgba(0,0,0,.2) , 0 1px 5px 0 rgba(0,0,0,.12);
917color: #848484;
918list-style: none;
919margin: 0;
920padding: 8px 0;
921position: absolute;
922top: -11px;
923min-width: 200px;
924z-index: 101;
925}
926.share-buttons.hidden {
927display: none;
928}
929.sharing-button {
930background: transparent;
931border: none;
932margin: 0;
933outline: none;
934padding: 0;
935cursor: pointer;
936}
937.share-buttons li {
938margin: 0;
939height: 48px;
940}
941.share-buttons li:last-child {
942margin-bottom: 0;
943}
944.share-buttons li .sharing-platform-button {
945box-sizing: border-box;
946cursor: pointer;
947display: block;
948height: 100%;
949margin-bottom: 0;
950padding: 0 16px;
951position: relative;
952width: 100%;
953}
954.share-buttons li .sharing-platform-button:focus, .share-buttons li .sharing-platform-button:hover {
955background-color: rgba(128,128,128,0.1);
956outline: none;
957}
958.share-buttons li svg[class^="sharing-"], .share-buttons li svg[class*=" sharing-"] {
959position: absolute;
960top: 10px;
961}
962.share-buttons li span.sharing-platform-button, .share-buttons li span.sharing-platform-button {
963position: relative;
964top: 0;
965}
966.share-buttons li .platform-sharing-text {
967display: block;
968font-size: 16px;
969line-height: 48px;
970white-space: nowrap;
971}
972.share-buttons li .platform-sharing-text {
973margin-left: 56px;
974}
975.sidebar-container {
976background-color: #ffffff;
977max-width: 284px;
978overflow-y: auto;
979-webkit-transition-property: -webkit-transform;
980transition-property: -webkit-transform;
981transition-property: transform;
982transition-property: transform, -webkit-transform;
983-webkit-transition-duration: .3s;
984transition-duration: .3s;
985-webkit-transition-timing-function: cubic-bezier(0.0,0.0,0.2,1);
986transition-timing-function: cubic-bezier(0.0,0.0,0.2,1);
987width: 284px;
988z-index: 101;
989-webkit-overflow-scrolling: touch;
990}
991.sidebar-container .navigation {
992line-height: 0;
993padding: 20px;
994}
995.sidebar-container .widget {
996background: none;
997margin: 0 16px;
998padding: 1em 0;
999}
1000.sidebar-container .widget .title {
1001color: #626262;
1002margin: 0;
1003}
1004.sidebar-container .widget ul {
1005list-style: none;
1006margin: 0;
1007padding: 0;
1008}
1009.sidebar-container .widget ul ul {
1010margin-left: 1em;
1011}
1012.sidebar-container .widget ul li {
1013font-size: 16px;
1014line-height: normal;
1015}
1016.BlogArchive li {
1017margin: 16px 0;
1018}
1019.BlogArchive li:last-child {
1020margin-bottom: 0;
1021}
1022.Label .label-count:before, .BlogArchive .post-count:before {
1023content: '(';
1024}
1025.Label .label-count:after, .BlogArchive .post-count:after {
1026content: ')';
1027}
1028.Label .label-count, .BlogArchive .post-count {
1029float: right;
1030margin-left: .25em;
1031}
1032.Label li a {
1033display: inline-block;
1034}
1035.widget.Translate .skiptranslate>div {
1036display: block !important;
1037}
1038.widget.Profile .profile-link {
1039background-image: none !important;
1040display: -webkit-box;
1041display: -webkit-flex;
1042display: -ms-flexbox;
1043display: flex;
1044}
1045.widget.Profile .team-member .profile-img, .widget.Profile .team-member .default-avatar-wrapper {
1046-webkit-box-flex: 0;
1047-webkit-flex: 0 0 auto;
1048-ms-flex: 0 0 auto;
1049flex: 0 0 auto;
1050}
1051.widget.Profile .team-member .profile-img, .widget.Profile .team-member .default-avatar-wrapper {
1052margin-right: 1em;
1053}
1054.widget.Profile .individual .profile-link {
1055-webkit-box-orient: vertical;
1056-webkit-box-direction: normal;
1057-webkit-flex-direction: column;
1058-ms-flex-direction: column;
1059flex-direction: column;
1060}
1061.widget.Profile .team .profile-link .profile-name {
1062-webkit-align-self: center;
1063-ms-flex-item-align: center;
1064-ms-grid-row-align: center;
1065align-self: center;
1066display: block;
1067-webkit-box-flex: 1;
1068-webkit-flex: 1 1 auto;
1069-ms-flex: 1 1 auto;
1070flex: 1 1 auto;
1071}
1072.sidebar-container .sidebar-back {
1073cursor: pointer;
1074}
1075.sidebar-container .widget+.widget {
1076border-top: 1px dashed #d3d3d3;
1077}
1078.dim-overlay {
1079background-color: rgba(0,0,0,0.54);
1080z-index: 100;
1081}
1082body.sidebar-visible {
1083overflow-y: hidden;
1084}
1085@media screen and (max-width: 1439px) {
1086.sidebar-container {
1087bottom: 0;
1088position: fixed;
1089top: 0;
1090}
1091.sidebar-container {
1092left: 0;
1093right: auto;
1094}
1095.sidebar-container.sidebar-invisible {
1096-webkit-transition-timing-function: cubic-bezier(0.4,0.0,0.6,1);
1097transition-timing-function: cubic-bezier(0.4,0.0,0.6,1);
1098}
1099.sidebar-container.sidebar-invisible {
1100-webkit-transform: translateX(-284px);
1101-ms-transform: translateX(-284px);
1102transform: translateX(-284px);
1103}
1104}
1105@media screen and (min-width: 1440px) {
1106.sidebar-container {
1107position: absolute;
1108top: 0;
1109}
1110.sidebar-container {
1111left: 0;
1112right: auto;
1113}
1114.sidebar-container .navigation {
1115display: none;
1116}
1117}
1118.dialog {
1119box-shadow: 0 2px 2px 0 rgba(0,0,0,.14) , 0 3px 1px -2px rgba(0,0,0,.2) , 0 1px 5px 0 rgba(0,0,0,.12);
1120background: #ffffff;
1121box-sizing: border-box;
1122padding: 30px;
1123position: fixed;
1124text-align: center;
1125width: calc(100% - 24px);
1126z-index: 101;
1127}
1128.dialog input[type=text], .dialog input[type=email] {
1129background-color: transparent;
1130border-bottom: solid 1px rgba(136,136,136,0.12);
1131border-left: none;
1132border-right: none;
1133border-top: none;
1134color: #888888;
1135display: block;
1136font-family: Roboto, sans-serif;
1137font-size: 16px;
1138line-height: 24px;
1139margin: auto;
1140padding-bottom: 7px;
1141outline: none;
1142text-align: center;
1143width: 100%;
1144}
1145.dialog input[type=text]::-webkit-input-placeholder, .dialog input[type=email]::-webkit-input-placeholder {
1146color: #888888;
1147}
1148.dialog input[type=text]::-moz-placeholder, .dialog input[type=email]::-moz-placeholder {
1149color: #888888;
1150}
1151.dialog input[type=text]:-ms-input-placeholder, .dialog input[type=email]:-ms-input-placeholder {
1152color: #888888;
1153}
1154.dialog input[type=text]::placeholder, .dialog input[type=email]::placeholder {
1155color: #888888;
1156}
1157.dialog input[type=text]:focus, .dialog input[type=email]:focus {
1158border-bottom: solid 2px #108ee3;
1159padding-bottom: 6px;
1160}
1161.dialog input[type=submit] {
1162font-family: Roboto, sans-serif;
1163}
1164.dialog input.no-cursor {
1165color: transparent;
1166text-shadow: 0 0 0 #888888;
1167}
1168.dialog input.no-cursor:focus {
1169outline: none;
1170}
1171.subscribe-popup {
1172max-width: 364px;
1173}
1174.subscribe-popup h3 {
1175color: #626262;
1176font-size: 1.8em;
1177margin-top: 0;
1178}
1179.subscribe-popup div.widget.FollowByEmail h3 {
1180display: none;
1181}
1182.subscribe-popup div.widget.FollowByEmail .follow-by-email-submit {
1183background: transparent;
1184border: none;
1185box-shadow: none;
1186color: #108ee3;
1187cursor: pointer;
1188font-size: 14px;
1189font-weight: bold;
1190outline: none;
1191text-decoration: none;
1192text-transform: uppercase;
1193width: auto;
1194color: #108ee3;
1195display: inline-block;
1196margin: 0 auto;
1197margin-top: 24px;
1198width: auto;
1199white-space: normal;
1200}
1201.subscribe-popup div.widget.FollowByEmail .follow-by-email-submit:disabled {
1202cursor: default;
1203opacity: .3;
1204}
1205@media (max-width:800px) {
1206.blog-name div.widget.Subscribe {
1207margin-bottom: 16px;
1208}
1209body.item-view .blog-name div.widget.Subscribe {
1210margin: 8px auto 16px;
1211width: 100%;
1212}
1213}
1214.tabs {
1215list-style: none;
1216}
1217.tabs li {
1218display: inline-block;
1219}
1220.tabs li a {
1221cursor: pointer;
1222display: inline-block;
1223font-weight: bold;
1224text-transform: uppercase;
1225padding: 12px 8px;
1226}
1227.tabs .selected {
1228border-bottom: 4px solid #ffffff;
1229}
1230.tabs .selected a {
1231color: #ffffff;
1232}
1233body#layout .bg-photo-overlay, body#layout .bg-photo {
1234display: none;
1235}
1236body#layout .page_body {
1237padding: 0;
1238position: relative;
1239top: 0;
1240}
1241body#layout .page {
1242display: inline-block;
1243left: inherit;
1244position: relative;
1245vertical-align: top;
1246width: 540px;
1247}
1248body#layout .centered {
1249max-width: 954px;
1250}
1251body#layout .navigation {
1252display: none;
1253}
1254body#layout .sidebar-container {
1255display: inline-block;
1256width: 40%;
1257}
1258body#layout .hamburger-menu, body#layout .search {
1259display: none;
1260}
1261.centered-top-container .svg-icon-24, body.collapsed-header .centered-top-placeholder .svg-icon-24 {
1262fill: #ffffff;
1263}
1264.sidebar-container .svg-icon-24 {
1265fill: #848484;
1266}
1267.centered-bottom .svg-icon-24, body.collapsed-header .centered-top-container .svg-icon-24 {
1268fill: #848484;
1269}
1270.share-buttons .svg-icon-24, .centered-bottom .share-buttons .svg-icon-24 {
1271fill: #707070;
1272}
1273body {
1274background-color: #6dbef3;
1275color: #888888;
1276font: 15px Roboto, sans-serif;
1277margin: 0;
1278min-height: 100vh;
1279}
1280img {
1281max-width: 100%;
1282}
1283h3 {
1284color: #888888;
1285font-size: 16px;
1286}
1287a {
1288text-decoration: none;
1289color: #108ee3;
1290}
1291a:visited {
1292color: #B33a0d;
1293}
1294a:hover {
1295color: #B33a0d;
1296}
1297blockquote {
1298color: #626262;
1299font: italic 300 15px Roboto, sans-serif;
1300font-size: x-large;
1301text-align: center;
1302}
1303.pill-button {
1304font-size: 12px;
1305}
1306.bg-photo-container {
1307height: 480px;
1308overflow: hidden;
1309position: absolute;
1310width: 100%;
1311z-index: 1;
1312}
1313.bg-photo {
1314background: #ccd9ea url(//themes.googleusercontent.com/image?id=1PViTUnIUSKDy0JJydtqwXOzvZKG0IIJYN8IFx4v__-n881NSni7O3gGUXyMmHxVs8wah) repeat fixed top center /* Credit: lobaaaato (http://www.istockphoto.com/file_closeup.php?id=8321826&platform=blogger) */;
1315background-attachment: scroll;
1316background-size: cover;
1317-webkit-filter: blur(0px);
1318filter: blur(0px);
1319height: calc(100% + 2 * 0px);
1320left: 0px;
1321position: absolute;
1322top: 0px;
1323width: calc(100% + 2 * 0px);
1324}
1325.bg-photo-overlay {
1326background: rgba(0,0,0,.26);
1327background-size: cover;
1328height: 480px;
1329position: absolute;
1330width: 100%;
1331z-index: 2;
1332}
1333.hamburger-menu {
1334float: left;
1335margin-top: 0;
1336}
1337.sticky .hamburger-menu {
1338float: none;
1339position: absolute;
1340}
1341body.item-view .return_link {
1342margin-bottom: 12px;
1343margin-top: 12px;
1344position: absolute;
1345}
1346.search {
1347float: right;
1348position: relative;
1349-webkit-transition-property: width;
1350transition-property: width;
1351-webkit-transition-duration: .5s;
1352transition-duration: .5s;
1353-webkit-transition-timing-function: cubic-bezier(0.4,0.0,0.2,1);
1354transition-timing-function: cubic-bezier(0.4,0.0,0.2,1);
1355}
1356.search form {
1357height: 36px;
1358}
1359.centered-top-container.sticky .search, body.item-view .search {
1360float: none;
1361position: absolute;
1362}
1363.centered-top-container.sticky .search, body.item-view .search {
1364right: 0;
1365}
1366.search_button {
1367-webkit-box-flex: 0;
1368-webkit-flex: 0 0 24px;
1369-ms-flex: 0 0 24px;
1370flex: 0 0 24px;
1371-webkit-box-orient: vertical;
1372-webkit-box-direction: normal;
1373-webkit-flex-direction: column;
1374-ms-flex-direction: column;
1375flex-direction: column;
1376}
1377.search_button svg {
1378margin-top: 0;
1379}
1380body.item-view .search, .centered-top-container.sticky .search {
1381margin-left: 0;
1382position: absolute;
1383}
1384body.item-view .search, .centered-top-container.sticky .search {
1385right: 0;
1386}
1387body.item-view .search.focused, .centered-top-container.sticky .search.focused {
1388width: calc(100% - 50px);
1389}
1390.search {
1391border-bottom: solid 1px rgba(255, 255, 255, 0);
1392z-index: 101;
1393}
1394.search form {
1395-webkit-transition-property: border-color;
1396transition-property: border-color;
1397-webkit-transition-delay: .5s;
1398transition-delay: .5s;
1399-webkit-transition-duration: .2s;
1400transition-duration: .2s;
1401-webkit-transition-timing-function: cubic-bezier(0.4,0.0,0.2,1);
1402transition-timing-function: cubic-bezier(0.4,0.0,0.2,1);
1403}
1404.search.focused form {
1405display: -webkit-box;
1406display: -webkit-flex;
1407display: -ms-flexbox;
1408display: flex;
1409-webkit-box-flex: 1;
1410-webkit-flex: 1 0 1px;
1411-ms-flex: 1 0 1px;
1412flex: 1 0 1px;
1413}
1414.centered-top-placeholder.cloned .search form {
1415z-index: 30;
1416}
1417.search.focused {
1418width: calc(100% - 48px);
1419}
1420.search.focused form {
1421border-color: #ffffff;
1422position: relative;
1423width: auto;
1424}
1425.search.focused form {
1426margin-left: -24px;
1427padding-left: 36px;
1428}
1429.centered-top-container.sticky .search.focused form {
1430border-bottom-color: #757575;
1431}
1432.search-input {
1433height: 48px;
1434}
1435.search-input input {
1436display: block;
1437color: #ffffff;
1438font: 16px Roboto, sans-serif;
1439height: 48px;
1440line-height: 48px;
1441padding: 0;
1442width: 100%;
1443}
1444.search-input input::-webkit-input-placeholder {
1445color: rgba(255, 255, 255, 0.30);
1446}
1447.search-input input::-moz-placeholder {
1448color: rgba(255, 255, 255, 0.30);
1449}
1450.search-input input:-ms-input-placeholder {
1451color: rgba(255, 255, 255, 0.30);
1452}
1453.search-input input::placeholder {
1454color: rgba(255, 255, 255, 0.30);
1455}
1456.search-action {
1457background: transparent;
1458border: none;
1459color: #ffffff;
1460cursor: pointer;
1461display: none;
1462height: 48px;
1463margin-top: 0;
1464}
1465.centered-top-container.sticky .search-action {
1466color: #757575;
1467}
1468.search.focused .search-action {
1469display: block;
1470}
1471.search.focused .search-action:disabled {
1472opacity: .3;
1473}
1474.search .dim-overlay {
1475background-color: transparent;
1476}
1477.page_body {
1478position: relative;
1479z-index: 20;
1480}
1481.blog-name {
1482margin: 24px 0 16px;
1483}
1484.centered-top-container .blog-name {
1485-webkit-transition-property: opacity;
1486transition-property: opacity;
1487-webkit-transition-duration: .5s;
1488transition-duration: .5s;
1489}
1490body.item-view .blog-name {
1491display: -webkit-box;
1492display: -webkit-flex;
1493display: -ms-flexbox;
1494display: flex;
1495-webkit-flex-wrap: wrap;
1496-ms-flex-wrap: wrap;
1497flex-wrap: wrap;
1498margin: 0 48px 27px;
1499}
1500body.item-view .subscribe-section-container {
1501-webkit-box-flex: 0;
1502-webkit-flex: 0 0 auto;
1503-ms-flex: 0 0 auto;
1504flex: 0 0 auto;
1505}
1506.centered-top-container.sticky .blog-name {
1507margin: 0 48px;
1508}
1509.centered-top-container.sticky .blog-name {
1510display: -webkit-box;
1511display: -webkit-flex;
1512display: -ms-flexbox;
1513display: flex;
1514}
1515.centered-top-container.sticky .blog-name #header {
1516-webkit-box-flex: 0;
1517-webkit-flex: 0 1 auto;
1518-ms-flex: 0 1 auto;
1519flex: 0 1 auto;
1520-webkit-box-ordinal-group: 2;
1521-webkit-order: 1;
1522-ms-flex-order: 1;
1523order: 1;
1524overflow: hidden;
1525}
1526.centered-top-container.sticky .Header h1 {
1527overflow: hidden;
1528text-overflow: ellipsis;
1529white-space: nowrap;
1530margin-bottom: -10px;
1531padding-bottom: 10px;
1532}
1533.centered-top-container.sticky .Header h1 {
1534margin-right: -10px;
1535padding-right: 10px;
1536}
1537.centered-top-container.sticky .blog-name .subscribe-section-container {
1538-webkit-box-flex: 0;
1539-webkit-flex: 0 0 auto;
1540-ms-flex: 0 0 auto;
1541flex: 0 0 auto;
1542-webkit-box-ordinal-group: 3;
1543-webkit-order: 2;
1544-ms-flex-order: 2;
1545order: 2;
1546}
1547.centered-top-container.sticky .blog-name, body.item-view .blog-name {
1548box-sizing: border-box;
1549margin-left: 36px;
1550min-height: 48px;
1551opacity: 1;
1552padding-top: 12px;
1553}
1554.search-focused>* {
1555visibility: visible;
1556}
1557.search-focused .hamburger-menu {
1558visibility: visible;
1559}
1560.sticky .search-focused .blog-name, body.item-view .search-focused .blog-name {
1561opacity: 0;
1562}
1563.page_body .centered {
1564box-sizing: border-box;
1565display: -webkit-box;
1566display: -webkit-flex;
1567display: -ms-flexbox;
1568display: flex;
1569-webkit-box-orient: vertical;
1570-webkit-box-direction: normal;
1571-webkit-flex-direction: column;
1572-ms-flex-direction: column;
1573flex-direction: column;
1574margin: 0 auto;
1575max-width: 954px;
1576min-height: 100vh;
1577padding: 24px 0;
1578}
1579.page_body .centered>* {
1580-webkit-box-flex: 0;
1581-webkit-flex: 0 0 auto;
1582-ms-flex: 0 0 auto;
1583flex: 0 0 auto;
1584}
1585.page_body .centered>#footer {
1586margin-top: auto;
1587}
1588.centered-bottom, .centered-top-container, .centered-top-placeholder {
1589padding: 0 16px;
1590}
1591.centered-top {
1592position: relative;
1593}
1594.centered-top-container.sticky {
1595background: #ffffff;
1596box-shadow: 0 0 20px 0 rgba(0,0,0,0.7);
1597box-sizing: border-box;
1598margin-left: 0;
1599}
1600.centered-top-container.sticky .centered-top {
1601margin: 4px auto;
1602max-width: calc(954px - 32px);
1603min-height: 48px;
1604}
1605.page_body.vertical-ads .centered .centered-bottom {
1606width: calc(100% - 176px);
1607}
1608.page_body.vertical-ads .centered .centered-bottom {
1609display: inline-block;
1610}
1611body.item-view .widget.Header, body.item-view #header {
1612margin-bottom: 5px;
1613margin-right: 15px;
1614}
1615body.item-view .sticky .widget.Header {
1616margin-bottom: 0;
1617}
1618.widget.Header h1 {
1619color: #ffffff;
1620font: 900 44px Playfair Display, serif;
1621line-height: normal;
1622margin: 0 0 13px;
1623text-align: center;
1624width: 100%;
1625}
1626.widget.Header h1 a, .widget.Header h1 a:visited, .widget.Header h1 a:hover {
1627color: #ffffff;
1628}
1629body.item-view .widget.Header h1, .centered-top-container.sticky .widget.Header h1 {
1630font-size: 24px;
1631line-height: 24px;
1632margin: 0;
1633text-align: left;
1634}
1635.centered-top-container.sticky .widget.Header h1 {
1636color: #757575;
1637}
1638.centered-top-container.sticky .widget.Header h1 a, .centered-top-container.sticky .widget.Header h1 a:visited, .centered-top-container.sticky .widget.Header h1 a:hover {
1639color: #757575;
1640}
1641.widget.Header p {
1642color: #ffffff;
1643margin: 0 0 13px;
1644opacity: .8;
1645text-align: center;
1646}
1647body.item-view .widget.Header p {
1648margin: 10px 0 0;
1649text-align: left;
1650}
1651.centered-top-container.sticky .widget.Header p {
1652display: none;
1653}
1654.widget .title {
1655line-height: 28px;
1656}
1657.widget.BlogArchive li {
1658font-size: 16px;
1659}
1660.widget.BlogArchive .post-count {
1661color: #757575;
1662}
1663div.widget.Blog .blog-posts .post-outer-container, #page_body div.widget.FeaturedPost {
1664background: #ffffff;
1665min-height: 40px;
1666padding: 30px 40px;
1667width: auto;
1668}
1669.post-outer-container, #page_body div.widget {
1670margin-bottom: 16px;
1671}
1672div.widget.Blog .blog-posts .post-outer-container:last-child {
1673margin-bottom: 0;
1674}
1675div.widget.Blog .blog-posts .post-outer-container .post-outer, .main .FeaturedPost .widget-content {
1676border: none;
1677position: relative;
1678padding-bottom: .25em;
1679}
1680.post:first-child {
1681margin-top: 0;
1682}
1683.post .thumb {
1684float: left;
1685height: 20%;
1686width: 20%;
1687}
1688.post-share-buttons-top, .post-share-buttons-bottom {
1689float: right;
1690}
1691body.item-view .post-share-buttons-bottom {
1692margin-right: 16px;
1693}
1694.post-share-buttons-bottom {
1695margin-right: 24px;
1696}
1697.post-header, .post-footer {
1698color: rgba(97, 97, 97, 0.54);
1699margin: 0;
1700width: inherit;
1701}
1702.post-header, .post-footer {
1703clear: left;
1704}
1705.blog-pager {
1706text-align: center;
1707}
1708.blog-pager a {
1709color: #888888;
1710}
1711.blog-pager a:visited {
1712color: #B33a0d;
1713}
1714.blog-pager a:hover {
1715color: #B33a0d;
1716}
1717.post-title {
1718font: 900 28px Playfair Display, serif;
1719max-width: calc(100% - 48px);
1720}
1721.post-title, .post-title a, .post-title a:visited, .post-title a:hover {
1722color: #626262;
1723}
1724.post-title {
1725margin: 0 0 8px;
1726}
1727.post-title {
1728float: left;
1729}
1730.post-title a {
1731font: 900 36px Playfair Display, serif;
1732}
1733.post-body {
1734color: #757575;
1735font: 15px Roboto, sans-serif;
1736line-height: 1.6em;
1737margin: 1.5em 0 2em;
1738display: block;
1739}
1740.post-body img {
1741height: inherit;
1742}
1743.PopularPosts {
1744background-color: #fff8f6;
1745padding: 30px 40px;
1746}
1747.PopularPosts .item-content {
1748color: #757575;
1749}
1750.PopularPosts a, .PopularPosts a:visited, .PopularPosts a:hover {
1751color: #B33a0d;
1752}
1753.PopularPosts .post-title, .PopularPosts .post-title a, .PopularPosts .post-title a:visited .PopularPosts .post-title a:hover {
1754color: #212121;
1755font-size: 18px;
1756font-weight: bold;
1757line-height: 24px;
1758}
1759.FeaturedPost img {
1760margin-top: 2em;
1761}
1762.FeaturedPost .snippet-container {
1763margin: 2em 0;
1764}
1765.FeaturedPost .snippet-container p {
1766margin: 0;
1767}
1768.post-body .snippet-thumbnail {
1769float: left;
1770margin: 0;
1771margin-right: 2em;
1772max-height: 128px;
1773max-width: 128px;
1774}
1775.FeaturedPost .snippet-thumbnail {
1776float: none;
1777height: auto;
1778margin-bottom: 2em;
1779margin-right: 0;
1780overflow: hidden;
1781max-height: calc(600px + 2em);
1782max-width: 100%;
1783text-align: center;
1784width: 100%;
1785}
1786.FeaturedPost .snippet-thumbnail img {
1787width: 100%;
1788}
1789.post-body .snippet-thumbnail img, .FeaturedPost .snippet-thumbnail img {
1790max-width: 100%;
1791}
1792.byline {
1793color: rgba(97, 97, 97, 0.54);
1794display: inline-block;
1795line-height: 24px;
1796margin-top: 8px;
1797vertical-align: top;
1798}
1799.PopularPosts .jump-link {
1800float: right;
1801margin-top: 16px;
1802}
1803.flat-button.ripple .splash {
1804background-color: rgba(16,142,227,0.4);
1805}
1806.flat-button.ripple:hover {
1807background-color: rgba(16,142,227,0.12);
1808}
1809.byline.post-author:first-child {
1810margin-right: 0;
1811}
1812a.timestamp-link, a:active.timestamp-link, a:visited.timestamp-link {
1813color: inherit;
1814font: inherit;
1815text-decoration: inherit;
1816}
1817.byline.reactions .reactions-label {
1818line-height: 22px;
1819vertical-align: top;
1820}
1821div.byline.post-share-buttons {
1822position: relative;
1823display: inline-block;
1824margin-top: 0;
1825width: 100%;
1826}
1827.byline.post-share-buttons .sharing {
1828float: right;
1829}
1830.post-share-buttons {
1831margin-left: 0;
1832}
1833div.clear-sharing {
1834min-height: 24px;
1835}
1836.comment-link {
1837color: #108ee3;
1838position: relative;
1839}
1840.comment-link .num_comments {
1841margin-left: 8px;
1842vertical-align: top;
1843}
1844#comment-holder .continue {
1845display: none;
1846}
1847#comment-editor {
1848margin-bottom: 20px;
1849margin-top: 20px;
1850}
1851#comments h3.title, #comments .comment-form h4 {
1852position: absolute;
1853clip: rect(1px,1px,1px,1px);
1854padding: 0;
1855border: 0;
1856height: 1px;
1857width: 1px;
1858overflow: hidden;
1859}
1860div.post-filter-message {
1861background-color: rgba(0,0,0,0.7);
1862color: #fff;
1863display: table;
1864margin-bottom: 16px;
1865width: 100%;
1866}
1867div.post-filter-message div {
1868display: table-cell;
1869padding: 15px 28px;
1870}
1871div.post-filter-message div:last-child {
1872padding-left: 0;
1873text-align: right;
1874}
1875div.post-filter-message a {
1876white-space: nowrap;
1877}
1878div.post-filter-message .search-query, div.post-filter-message .search-label {
1879font-weight: bold;
1880color: #108ee3;
1881}
1882#blog-pager {
1883margin: 2em 0;
1884}
1885#blog-pager a {
1886color: #ffffff;
1887font-size: 14px;
1888}
1889.blog-name .subscribe-section-container {
1890margin-bottom: 32px;
1891text-align: center;
1892-webkit-transition-property: opacity;
1893transition-property: opacity;
1894-webkit-transition-duration: .5s;
1895transition-duration: .5s;
1896}
1897body.item-view .blog-name .subscribe-section-container, .centered-top-container.sticky .blog-name .subscribe-section-container {
1898margin: 0 0 8px;
1899}
1900.centered-top-container.sticky #header {
1901margin-bottom: 8px;
1902}
1903.centered-top-container.sticky #header {
1904margin-right: 8px;
1905}
1906.centered-top-container.sticky .centered-top.search-focused .subscribe-section-container, body.item-view .centered-top.search-focused .subscribe-section-container {
1907opacity: 0;
1908}
1909.subscribe-button {
1910border-color: #ffffff;
1911color: #ffffff;
1912}
1913.sticky .subscribe-button {
1914border-color: #757575;
1915color: #757575;
1916}
1917.blog-name .PageList .overflowable-contents {
1918width: 100%;
1919}
1920.centered-top-container.sticky .PageList {
1921display: none;
1922}
1923.blog-name .PageList h3.title {
1924color: #ffffff;
1925margin: 8px auto;
1926text-align: center;
1927width: 100%;
1928}
1929.blog-name .PageList {
1930margin-top: 16px;
1931padding-top: 8px;
1932text-align: center;
1933}
1934.tabs {
1935margin: 0 auto;
1936padding: 0;
1937}
1938.tabs li {
1939margin: 0 8px;
1940}
1941.overflow-button a {
1942padding: 12px 8px;
1943}
1944.tabs li a, .overflow-button a {
1945color: #d3d3d3;
1946font: 700 normal 15px Roboto, sans-serif;
1947}
1948.overflow-popup .tabs li {
1949text-align: left;
1950}
1951.overflow-popup li a {
1952color: #757575;
1953display: block;
1954padding: 8px 20px;
1955}
1956.overflow-popup li.selected a {
1957color: #212121;
1958}
1959a.report_abuse {
1960font-weight: normal;
1961}
1962.widget.Label ul {
1963list-style: none;
1964padding: 0;
1965}
1966.widget.Label li, .widget.Label span.label-size, .byline.post-labels a {
1967background-color: #016fff;
1968border: 1px solid #016fff;
1969border-radius: 15px;
1970display: inline-block;
1971margin: 4px 4px 4px 0;
1972padding: 3px 8px;
1973}
1974.widget.Label li a, .byline.post-labels a {
1975color: #ffffff;
1976}
1977.main div.widget.PopularPosts {
1978padding: 16px 40px;
1979}
1980div.widget.PopularPosts, div.widget.PopularPosts h3.title a {
1981color: #757575;
1982font: 15px Roboto, sans-serif;
1983}
1984.widget.ReportAbuse, div.widget.PopularPosts .post+.post {
1985border-top: 1px dashed #d3d3d3;
1986}
1987div.widget.PopularPosts h3.post-title {
1988margin-bottom: 0;
1989}
1990div.widget.PopularPosts h3.title {
1991font-size: 14px;
1992margin: 0;
1993}
1994.PopularPosts .byline {
1995color: rgba(0, 0, 0, 0.54);
1996}
1997.PopularPosts .post-header .byline {
1998font-size: .9em;
1999font-style: italic;
2000margin-top: 6px;
2001}
2002div.widget.PopularPosts .item-content {
2003margin-top: 24px;
2004}
2005div.widget.PopularPosts ul {
2006list-style: none;
2007padding: 0;
2008margin: 0;
2009}
2010div.widget.PopularPosts .post {
2011padding: 20px 0;
2012}
2013div.widget.PopularPosts div.item-thumbnail {
2014float: left;
2015margin-right: 32px;
2016}
2017div.widget.PopularPosts div.item-thumbnail img {
2018height: 88px;
2019padding: 0;
2020width: 88px;
2021}
2022.inline-ad {
2023margin-bottom: 16px;
2024}
2025.desktop-ad .inline-ad {
2026display: block;
2027}
2028.adsbygoogle {
2029overflow: hidden;
2030}
2031.vertical-ad-container {
2032width: 128px;
2033}
2034.vertical-ad-container {
2035float: right;
2036margin-right: 16px;
2037}
2038.vertical-ad-container .widget.AdSense+.widget.AdSense {
2039margin-top: 16px;
2040}
2041.vertical-ad-placeholder, .inline-ad-placeholder {
2042background: #ffffff;
2043border: 1px solid #000;
2044opacity: .9;
2045vertical-align: middle;
2046text-align: center;
2047}
2048.vertical-ad-placeholder {
2049height: 600px;
2050}
2051.inline-ad-placeholder {
2052height: 90px;
2053}
2054.vertical-ad-placeholder span, .inline-ad-placeholder span {
2055margin-top: 290px;
2056display: block;
2057text-transform: uppercase;
2058font-weight: bold;
2059color: #626262;
2060}
2061.vertical-ad-placeholder span {
2062margin-top: 290px;
2063padding: 0 40px;
2064}
2065.inline-ad-placeholder span {
2066margin-top: 36px;
2067}
2068.Attribution {
2069color: #e3e3e3;
2070}
2071.Attribution a, .Attribution a:hover, .Attribution a:visited {
2072color: #ffffff;
2073}
2074.Attribution svg {
2075fill: #ffffff;
2076}
2077.sidebar-container {
2078box-shadow: 1px 1px 3px rgba(0,0,0,.1);
2079}
2080.sidebar-container, .sidebar-container .sidebar_bottom {
2081background-color: #ffffff;
2082}
2083.sidebar-container .navigation, .sidebar-container .sidebar_top_wrapper {
2084background-color: #ffffff;
2085}
2086.sidebar-container .sidebar_top {
2087overflow: auto;
2088}
2089.sidebar-container .sidebar_bottom {
2090width: 100%;
2091padding-top: 16px;
2092}
2093.sidebar_top .widget.Profile {
2094padding-bottom: 16px;
2095}
2096.sidebar-container .widget:first-child {
2097padding-top: 0;
2098}
2099.widget.Profile {
2100margin: 0;
2101width: 100%;
2102}
2103.widget.Profile h2 {
2104display: none;
2105}
2106.widget.Profile h3.title {
2107color: rgba(97, 97, 97, 0.52);
2108margin: 16px 32px;
2109}
2110.widget.Profile .individual {
2111text-align: center;
2112}
2113.widget.Profile .individual .profile-link {
2114padding: 1em;
2115}
2116.widget.Profile .individual .default-avatar-wrapper .avatar-icon {
2117margin: auto;
2118}
2119.widget.Profile .team {
2120margin-bottom: 32px;
2121margin-left: 32px;
2122margin-right: 32px;
2123}
2124.widget.Profile ul {
2125list-style: none;
2126padding: 0;
2127}
2128.widget.Profile li {
2129margin: 10px 0;
2130}
2131.widget.Profile .profile-img {
2132border-radius: 50%;
2133float: none;
2134}
2135.widget.Profile .profile-link {
2136background: transparent;
2137border: none;
2138box-shadow: none;
2139color: #108ee3;
2140cursor: pointer;
2141font-size: 14px;
2142font-weight: bold;
2143outline: none;
2144text-decoration: none;
2145text-transform: uppercase;
2146width: auto;
2147color: #212121;
2148font-size: .9em;
2149margin-bottom: 1em;
2150opacity: .87;
2151overflow: hidden;
2152}
2153.widget.Profile .profile-link.visit-profile {
2154background: transparent;
2155border: none;
2156box-shadow: none;
2157color: #108ee3;
2158cursor: pointer;
2159font-size: 14px;
2160font-weight: bold;
2161outline: none;
2162text-decoration: none;
2163text-transform: uppercase;
2164width: auto;
2165border-style: solid;
2166border-width: 1px;
2167border-radius: 12px;
2168cursor: pointer;
2169font-size: 12px;
2170font-weight: normal;
2171padding: 5px 20px;
2172display: inline-block;
2173line-height: normal;
2174}
2175.widget.Profile dd {
2176color: rgba(97, 97, 97, 0.54);
2177margin: 0 16px;
2178}
2179.widget.Profile .location {
2180margin-bottom: 1em;
2181}
2182.widget.Profile .profile-textblock {
2183font-size: 14px;
2184line-height: 24px;
2185position: relative;
2186}
2187body.sidebar-visible .page_body {
2188overflow-y: scroll;
2189}
2190body.sidebar-visible .bg-photo-container {
2191overflow-y: scroll;
2192}
2193@media screen and (min-width:1440px) {
2194.sidebar-container {
2195margin-top: 480px;
2196min-height: calc(100% - 480px);
2197overflow: visible;
2198z-index: 32;
2199}
2200.sidebar-container .sidebar_top_wrapper {
2201background-color: #ffffff;
2202height: 480px;
2203margin-top: -480px;
2204}
2205.sidebar-container .sidebar_top {
2206display: -webkit-box;
2207display: -webkit-flex;
2208display: -ms-flexbox;
2209display: flex;
2210height: 480px;
2211-webkit-box-orient: horizontal;
2212-webkit-box-direction: normal;
2213-webkit-flex-direction: row;
2214-ms-flex-direction: row;
2215flex-direction: row;
2216max-height: 480px;
2217}
2218.sidebar-container .sidebar_bottom {
2219max-width: 284px;
2220width: 284px;
2221}
2222body.collapsed-header .sidebar-container {
2223z-index: 15;
2224}
2225.sidebar-container .sidebar_top:empty {
2226display: none;
2227}
2228.sidebar-container .sidebar_top>*:only-child {
2229-webkit-box-flex: 0;
2230-webkit-flex: 0 0 auto;
2231-ms-flex: 0 0 auto;
2232flex: 0 0 auto;
2233-webkit-align-self: center;
2234-ms-flex-item-align: center;
2235-ms-grid-row-align: center;
2236align-self: center;
2237width: 100%;
2238}
2239.sidebar_top_wrapper.no-items {
2240display: none;
2241}
2242}
2243.post-snippet.snippet-container {
2244max-height: 120px;
2245}
2246.post-snippet .snippet-item {
2247line-height: 24px;
2248}
2249.post-snippet .snippet-fade {
2250background: -webkit-linear-gradient(left,#ffffff 0%,#ffffff 20%,rgba(255, 255, 255, 0) 100%);
2251background: linear-gradient(to left,#ffffff 0%,#ffffff 20%,rgba(255, 255, 255, 0) 100%);
2252color: #888888;
2253height: 24px;
2254}
2255.popular-posts-snippet.snippet-container {
2256max-height: 72px;
2257}
2258.popular-posts-snippet .snippet-item {
2259line-height: 24px;
2260}
2261.PopularPosts .popular-posts-snippet .snippet-fade {
2262color: #888888;
2263height: 24px;
2264}
2265.main .popular-posts-snippet .snippet-fade {
2266background: -webkit-linear-gradient(left,#fff8f6 0%,#fff8f6 20%,rgba(255, 248, 246, 0) 100%);
2267background: linear-gradient(to left,#fff8f6 0%,#fff8f6 20%,rgba(255, 248, 246, 0) 100%);
2268}
2269.sidebar_bottom .popular-posts-snippet .snippet-fade {
2270background: -webkit-linear-gradient(left,#ffffff 0%,#ffffff 20%,rgba(255, 255, 255, 0) 100%);
2271background: linear-gradient(to left,#ffffff 0%,#ffffff 20%,rgba(255, 255, 255, 0) 100%);
2272}
2273.profile-snippet.snippet-container {
2274max-height: 192px;
2275}
2276.has-location .profile-snippet.snippet-container {
2277max-height: 144px;
2278}
2279.profile-snippet .snippet-item {
2280line-height: 24px;
2281}
2282.profile-snippet .snippet-fade {
2283background: -webkit-linear-gradient(left,#ffffff 0%,#ffffff 20%,rgba(255, 255, 255, 0) 100%);
2284background: linear-gradient(to left,#ffffff 0%,#ffffff 20%,rgba(255, 255, 255, 0) 100%);
2285color: rgba(97, 97, 97, 0.54);
2286height: 24px;
2287}
2288@media screen and (min-width:1440px) {
2289.profile-snippet .snippet-fade {
2290background: -webkit-linear-gradient(left,#ffffff 0%,#ffffff 20%,rgba(255, 255, 255, 0) 100%);
2291background: linear-gradient(to left,#ffffff 0%,#ffffff 20%,rgba(255, 255, 255, 0) 100%);
2292}
2293}
2294@media screen and (max-width: 800px) {
2295.blog-name {
2296margin-top: 0;
2297}
2298body.item-view .blog-name {
2299margin: 0 48px;
2300}
2301body .centered-bottom {
2302padding: 8px;
2303}
2304body.item-view .centered-bottom {
2305padding: 0;
2306}
2307.page_body .centered {
2308padding: 10px 0;
2309}
2310body.item-view .widget.Header, body.item-view #header {
2311margin-right: 0;
2312}
2313body.collapsed-header .centered-top-container .blog-name {
2314display: block;
2315}
2316.widget.Header header {
2317padding: 0;
2318}
2319.widget.Header h1 {
2320font-size: 23.467px;
2321margin-bottom: 13px;
2322}
2323body.item-view .widget.Header h1, body.collapsed-header .centered-top-container .widget.Header h1 {
2324text-align: center;
2325}
2326body.item-view .widget.Header p {
2327text-align: center;
2328}
2329.blog-name .widget.PageList {
2330padding: 0;
2331}
2332body.item-view .centered-top {
2333margin-bottom: 5px;
2334}
2335.search-input, .search-action {
2336margin-bottom: -8px;
2337}
2338.search form {
2339margin-bottom: 8px;
2340}
2341body.item-view .subscribe-section-container {
2342margin: 5px 0 0;
2343width: 100%;
2344}
2345div.widget.Blog .blog-posts .post-outer-container, #page_body.section div.widget.FeaturedPost, div.widget.PopularPosts {
2346padding: 16px;
2347}
2348div.widget.Blog .blog-posts .post-outer-container .post-outer {
2349padding: 0;
2350}
2351.post:first-child {
2352margin: 0;
2353}
2354.post-body .snippet-thumbnail, div.widget.PopularPosts div.item-thumbnail {
2355margin: 0 3vw 3vw 0;
2356}
2357.post-body .snippet-thumbnail img {
2358height: 20vw;
2359width: 20vw;
2360max-height: 128px;
2361max-width: 128px;
2362}
2363div.widget.PopularPosts div.item-thumbnail img {
2364height: 20vw;
2365width: 20vw;
2366max-height: 88px;
2367max-width: 88px;
2368}
2369.post-title {
2370line-height: 1;
2371}
2372.post-title a {
2373font-size: 18px;
2374}
2375#page_body.section div.widget.FeaturedPost h3 a {
2376font-size: 22px;
2377}
2378.mobile-ad .inline-ad {
2379display: block;
2380}
2381.page_body.vertical-ads .vertical-ad-container, .page_body.vertical-ads .vertical-ad-container ins {
2382display: none;
2383}
2384.page_body.vertical-ads .centered .centered-top, .page_body.vertical-ads .centered .centered-bottom {
2385display: block;
2386width: auto;
2387}
2388div.post-filter-message div {
2389padding: 8px 16px;
2390}
2391}
2392@media screen and (min-width:1440px) {
2393body {
2394position: relative;
2395}
2396body.item-view .blog-name {
2397margin-left: 48px;
2398}
2399.page_body {
2400margin-left: 284px;
2401}
2402.search {
2403margin-left: 0;
2404}
2405.search.focused {
2406width: 100%;
2407}
2408.sticky {
2409padding-left: 284px;
2410}
2411.hamburger-menu {
2412display: none;
2413}
2414body.collapsed-header .page_body .centered-top-container {
2415padding-left: 284px;
2416padding-right: 0;
2417width: 100%;
2418}
2419body.collapsed-header .centered-top-container .search.focused {
2420width: 100%;
2421}
2422body.collapsed-header.item-page .centered-top-container .search.focused {
2423width: calc(100% - 50px);
2424}
2425body.collapsed-header .centered-top-container .blog-name {
2426margin-left: 0;
2427}
2428body.item-view.collapsed-header .centered-top-container .blog-name {
2429margin-left: 40px;
2430}
2431}
2432
2433--></style>
2434<style id='template-skin-1' type='text/css'><!--
2435body#layout .hidden,
2436body#layout .invisible {
2437display: inherit;
2438}
2439body#layout .navigation {
2440display: none;
2441}
2442body#layout .page,
2443body#layout .sidebar_top,
2444body#layout .sidebar_bottom {
2445display: inline-block;
2446left: inherit;
2447position: relative;
2448vertical-align: top;
2449}
2450body#layout .page {
2451float: right;
2452margin-left: 20px;
2453width: 55%;
2454}
2455body#layout .sidebar-container {
2456float: right;
2457width: 40%;
2458}
2459body#layout .hamburger-menu {
2460display: none;
2461}
2462--></style>
2463<style>
2464    .bg-photo {background-image:url(\/\/themes.googleusercontent.com\/image?id=1PViTUnIUSKDy0JJydtqwXOzvZKG0IIJYN8IFx4v__-n881NSni7O3gGUXyMmHxVs8wah);}
2465    
2466@media (max-width: 480px) { .bg-photo {background-image:url(\/\/themes.googleusercontent.com\/image?id=1PViTUnIUSKDy0JJydtqwXOzvZKG0IIJYN8IFx4v__-n881NSni7O3gGUXyMmHxVs8wah&options=w480);}}
2467@media (max-width: 640px) and (min-width: 481px) { .bg-photo {background-image:url(\/\/themes.googleusercontent.com\/image?id=1PViTUnIUSKDy0JJydtqwXOzvZKG0IIJYN8IFx4v__-n881NSni7O3gGUXyMmHxVs8wah&options=w640);}}
2468@media (max-width: 800px) and (min-width: 641px) { .bg-photo {background-image:url(\/\/themes.googleusercontent.com\/image?id=1PViTUnIUSKDy0JJydtqwXOzvZKG0IIJYN8IFx4v__-n881NSni7O3gGUXyMmHxVs8wah&options=w800);}}
2469@media (max-width: 1200px) and (min-width: 801px) { .bg-photo {background-image:url(\/\/themes.googleusercontent.com\/image?id=1PViTUnIUSKDy0JJydtqwXOzvZKG0IIJYN8IFx4v__-n881NSni7O3gGUXyMmHxVs8wah&options=w1200);}}
2470/* Last tag covers anything over one higher than the previous max-size cap. */
2471@media (min-width: 1201px) { .bg-photo {background-image:url(\/\/themes.googleusercontent.com\/image?id=1PViTUnIUSKDy0JJydtqwXOzvZKG0IIJYN8IFx4v__-n881NSni7O3gGUXyMmHxVs8wah&options=w1600);}}
2472  </style>
2473<script async='async' src='//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js'></script>
vendor: 1 bytes, line 2473
2473
2474<script type='text/javascript'>
vendor: 374 bytes, lines 2474-2479
2474
2475        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
2476        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
2477        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
2478        })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
2479        ga('create', '
2479UA-28559733-2
vendor: 31 bytes, lines 2479-2480
2479', 'auto', 'blogger');
2480        
2480ga('blogger.send', 'pageview');
2481      </script>
vendor: 1 bytes, line 2481
2481
2482<script async='async' src='//www.gstatic.com/external_hosted/clipboardjs/clipboard.min.js'></script>
2482
2483<link href="//alexgorbatchev.com/pub/sh/current/styles/shCore.css" rel="stylesheet" type="text/css">
2484<link href="//alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css" rel="stylesheet" type="text/css">
2485<script src="//alexgorbatchev.com/pub/sh/current/scripts/shCore.js" type="text/javascript"></script>
vendor: 1 bytes, line 2485
2485
2486<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushCpp.js" type="text/javascript"></script>
vendor: 1 bytes, line 2486
2486
2487<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushCSharp.js" type="text/javascript"></script>
vendor: 1 bytes, line 2487
2487
2488<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js" type="text/javascript"></script>
vendor: 1 bytes, line 2488
2488
2489<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js" type="text/javascript"></script>
vendor: 1 bytes, line 2489
2489
2490<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js" type="text/javascript"></script>
vendor: 1 bytes, line 2490
2490
2491<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js" type="text/javascript"></script>
vendor: 1 bytes, line 2491
2491
2492<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js" type="text/javascript"></script>
vendor: 1 bytes, line 2492
2492
2493<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js" type="text/javascript"></script>
vendor: 1 bytes, line 2493
2493
2494<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js" type="text/javascript"></script>
vendor: 1 bytes, line 2494
2494
2495<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushVb.js" type="text/javascript"></script>
vendor: 1 bytes, line 2495
2495
2496<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js" type="text/javascript"></script>
vendor: 1 bytes, line 2496
2496
2497<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushPerl.js" type="text/javascript"></script>
vendor: 1 bytes, line 2497
2497
2498<script language='javascript'> 
2499SyntaxHighlighter.config.bloggerMode = true;
2500SyntaxHighlighter.config.clipboardSwf = 'http://alexgorbatchev.com/pub/sh/current/scripts/clipboard.swf';
2501SyntaxHighlighter.all();
2502</script>
2502
2503<meta name='google-adsense-platform-account' content='ca-host-pub-1556223355139109'/>
2504<meta name='google-adsense-platform-domain' content='blogspot.com'/>
2505
2506<!-- data-ad-client=ca-pub-5423369479100645 -->
2507
2508</head>
2509<body class='version-1-0-1 variant-indie_orange'>
2510<a class='skip-navigation' href='#main' tabindex='0'>
2511Skip to main content
2512</a>
2513<div class='page'>
2514<div class='bg-photo-overlay'></div>
2515<div class='bg-photo-container'>
2516<div class='bg-photo'></div>
2517</div>
2518<div class='page_body'>
2519<div class='centered'>
2520<div class='centered-top-placeholder'></div>
2521<header class='centered-top-container' role='banner'>
2522<div class='centered-top'>
2523<button class='svg-icon-24-button hamburger-menu flat-icon-button ripple'>
2524<svg class='svg-icon-24'>
2525<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_menu_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2526</svg>
2527</button>
2528<div class='search'>
2529<button aria-label='Search' class='search-expand touch-icon-button'>
2530<div class='flat-icon-button ripple'>
2531<svg class='svg-icon-24 search-expand-icon'>
2532<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_search_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2533</svg>
2534</div>
2535</button>
2536<div class='section' id='search_top' name='Search (Top)'><div class='widget BlogSearch' data-version='2' id='BlogSearch1'>
2537<h3 class='title'>
2538Search This Blog
2539</h3>
2540<div class='widget-content' role='search'>
2541<form action='https://blog.lakmali.com/search' target='_top'>
2542<div class='search-input'>
2543<input aria-label='Search this blog' autocomplete='off' name='q' placeholder='Search this blog' value=''/>
2544</div>
2545<input class='search-action flat-button' type='submit' value='Search'/>
2546</form>
2547</div>
2548</div></div>
2549</div>
2550<div class='clearboth'></div>
2551<div class='blog-name container'>
2552<div class='container section' id='header' name='Header'><div class='widget Header' data-version='2' id='Header1'>
2553<div class='header-widget'>
2554<div>
2555<h1>
2556Lakmali Erandi Baminiwatta&#8217;s blog
2557</h1>
2558</div>
2559<p>
2560</p>
2561</div>
2562</div></div>
2563<nav role='navigation'>
2564<div class='clearboth no-items section' id='page_list_top' name='Page List (Top)'>
2565</div>
2566</nav>
2567</div>
2568</div>
2569</header>
2570<div>
2571<main class='centered-bottom' id='main' role='main' tabindex='-1'>
2572<h2 class='main-heading'>Posts</h2>
2573<div class='main section' id='page_body' name='Page Body'><div class='widget FeaturedPost' data-version='2' id='FeaturedPost1'>
2574<div class='widget-content'>
2575<div role='feed'>
2576<article class='post' role='article'>
2577<h3 class='post-title'><a href='https://blog.lakmali.com/2019/07/boomi-mapping-removing-special-chars.html'>Boomi Mapping - Removing special chars from an input</a></h3>
2578<div class='post-share-buttons post-share-buttons-top'>
2579<div class='byline post-share-buttons goog-inline-block'>
2580<div aria-owns='sharing-popup-FeaturedPost1-byline-6436251793846287620' class='sharing' data-title='Boomi Mapping - Removing special chars from an input'>
2581<button aria-controls='sharing-popup-FeaturedPost1-byline-6436251793846287620' aria-label='Share' class='sharing-button touch-icon-button' id='sharing-button-FeaturedPost1-byline-6436251793846287620' role='button'>
2582<div class='flat-icon-button ripple'>
2583<svg class='svg-icon-24'>
2584<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_share_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2585</svg>
2586</div>
2587</button>
2588<div class='share-buttons-container'>
2589<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-FeaturedPost1-byline-6436251793846287620' role='menu'>
2590<li>
2591<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=6436251793846287620&target=' data-url='https://blog.lakmali.com/2019/07/boomi-mapping-removing-special-chars.html' role='menuitem' tabindex='-1' title='Get link'>
2592<svg class='svg-icon-24 touch-icon sharing-link'>
2593<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2594</svg>
2595<span class='platform-sharing-text'>Get link</span>
2596</span>
2597</li>
2598<li>
2599<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=6436251793846287620&target=facebook' data-url='https://blog.lakmali.com/2019/07/boomi-mapping-removing-special-chars.html' role='menuitem' tabindex='-1' title='Share to Facebook'>
2600<svg class='svg-icon-24 touch-icon sharing-facebook'>
2601<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2602</svg>
2603<span class='platform-sharing-text'>Facebook</span>
2604</span>
2605</li>
2606<li>
2607<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=6436251793846287620&target=twitter' data-url='https://blog.lakmali.com/2019/07/boomi-mapping-removing-special-chars.html' role='menuitem' tabindex='-1' title='Share to X'>
2608<svg class='svg-icon-24 touch-icon sharing-twitter'>
2609<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2610</svg>
2611<span class='platform-sharing-text'>X</span>
2612</span>
2613</li>
2614<li>
2615<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=6436251793846287620&target=pinterest' data-url='https://blog.lakmali.com/2019/07/boomi-mapping-removing-special-chars.html' role='menuitem' tabindex='-1' title='Share to Pinterest'>
2616<svg class='svg-icon-24 touch-icon sharing-pinterest'>
2617<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2618</svg>
2619<span class='platform-sharing-text'>Pinterest</span>
2620</span>
2621</li>
2622<li>
2623<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=6436251793846287620&target=email' data-url='https://blog.lakmali.com/2019/07/boomi-mapping-removing-special-chars.html' role='menuitem' tabindex='-1' title='Email'>
2624<svg class='svg-icon-24 touch-icon sharing-email'>
2625<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2626</svg>
2627<span class='platform-sharing-text'>Email</span>
2628</span>
2629</li>
2630<li aria-hidden='true' class='hidden'>
2631<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://blog.lakmali.com/2019/07/boomi-mapping-removing-special-chars.html' role='menuitem' tabindex='-1' title='Share to other apps'>
2632<svg class='svg-icon-24 touch-icon sharing-sharingOther'>
2633<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2634</svg>
2635<span class='platform-sharing-text'>Other Apps</span>
2636</span>
2637</li>
2638</ul>
2639</div>
2640</div>
2641</div>
2642</div>
2643<div class='post-header'>
2644<div class='post-header-line-1'>
2645<span class='byline post-timestamp'>
2646<meta content='https://blog.lakmali.com/2019/07/boomi-mapping-removing-special-chars.html'/>
2647<a class='timestamp-link' href='https://blog.lakmali.com/2019/07/boomi-mapping-removing-special-chars.html' rel='bookmark' title='permanent link'>
2648<time class='published' datetime='2019-07-17T14:54:00+09:30' title='2019-07-17T14:54:00+09:30'>
2649July 17, 2019
2650</time>
2651</a>
2652</span>
2653</div>
2654</div>
2655<div class='snippet-thumbnail'>
2656<img alt='Image' sizes='(min-width: 954px) 842px, (min-width: 801px) calc(100vw - 112px), calc(100vw - 64px)' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4FBW68Ho8lyj5pWTKcTrqlMi8BEUytVPZdEx2cBDtLY9zrVOYOMM23h0ZhdaUd_BRPbfsONsQ8ddxtGxAxCHYy6M4txCzrdVF4EH2QSmPUJevCt6lX2zbYZPvwDqi1L-v1MA8mVcIOMzc/s320/add-function.png' srcset='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4FBW68Ho8lyj5pWTKcTrqlMi8BEUytVPZdEx2cBDtLY9zrVOYOMM23h0ZhdaUd_BRPbfsONsQ8ddxtGxAxCHYy6M4txCzrdVF4EH2QSmPUJevCt6lX2zbYZPvwDqi1L-v1MA8mVcIOMzc/w256-h162-p-k-no-nu/add-function.png 256w, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4FBW68Ho8lyj5pWTKcTrqlMi8BEUytVPZdEx2cBDtLY9zrVOYOMM23h0ZhdaUd_BRPbfsONsQ8ddxtGxAxCHYy6M4txCzrdVF4EH2QSmPUJevCt6lX2zbYZPvwDqi1L-v1MA8mVcIOMzc/w512-h325-p-k-no-nu/add-function.png 512w, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4FBW68Ho8lyj5pWTKcTrqlMi8BEUytVPZdEx2cBDtLY9zrVOYOMM23h0ZhdaUd_BRPbfsONsQ8ddxtGxAxCHYy6M4txCzrdVF4EH2QSmPUJevCt6lX2zbYZPvwDqi1L-v1MA8mVcIOMzc/w945-h600-p-k-no-nu/add-function.png 945w, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4FBW68Ho8lyj5pWTKcTrqlMi8BEUytVPZdEx2cBDtLY9zrVOYOMM23h0ZhdaUd_BRPbfsONsQ8ddxtGxAxCHYy6M4txCzrdVF4EH2QSmPUJevCt6lX2zbYZPvwDqi1L-v1MA8mVcIOMzc/w1684-h1069-p-k-no-nu/add-function.png 1684w'/>
2657</div>
2658<div class='post-snippet snippet-container r-snippet-container'>
2659<div class='snippet-item r-snippetized'>
2660 Dell Boomi mapping shape provides numerous ways to modify/enrich an input via functions. In this post I am going to show how I validated and removed special chars from an input using Scripting and do it along with another string function.   The user defined functions available with mapping, allows us to apply sequence of functions to the input. In this example, I am going to use it.   Use Case:   I have tw
2660o input strings coming from the source profile (first_name and last_name), which I want to first concatanate together and then remove non-alphanumeric characters if present.    Solution     In your map, add an User Defined function and add two inputs; first_name, last_name.&#160;   Add User Defined function into the map     Added inputs to the user defined function    As the first step, add a function &quot;String Concat&quot; under the&#160; &quot;String&quot; category.&#160;    Specify first_name and last_name as the inputs. Also set a delimiter, if you need a one. In my case, I want to concatena...
2661</div>
2662<a class='snippet-fade r-snippet-fade hidden' href='https://blog.lakmali.com/2019/07/boomi-mapping-removing-special-chars.html'></a>
2663</div>
2664<div class='post-bottom'>
2665<div class='post-footer float-container'>
2666<div class='post-footer-line post-footer-line-1'>
2667<span class='byline post-comment-link container'>
2668<a class='comment-link' href='https://blog.lakmali.com/2019/07/boomi-mapping-removing-special-chars.html#comments' onclick=''>
2669<svg class='svg-icon-24 touch-icon'>
2670<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_mode_comment_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2671</svg>
2672<span class='num_comments'>
26732 comments
2674</span>
2675</a>
2676</span>
2677</div>
2678<div class='post-footer-line post-footer-line-2'>
2679</div>
2680<div class='post-footer-line post-footer-line-3'>
2681</div>
2682</div>
2683<div class='jump-link flat-button ripple'>
2684<a href='https://blog.lakmali.com/2019/07/boomi-mapping-removing-special-chars.html' title='Boomi Mapping - Removing special chars from an input'>
2685Keep reading
2686</a>
2687</div>
2688</div>
2689</article>
2690</div>
2691</div>
2692</div><div class='widget Blog' data-version='2' id='Blog1'>
2693<div class='blog-posts hfeed container'>
2694<article class='post-outer-container'>
2695<div class='post-outer'>
2696<div class='post'>
2697<script type='application/ld+json'>{
2698  "@context": "http://schema.org",
2699  "@type": "BlogPosting",
2700  "mainEntityOfPage": {
2701    "@type": "WebPage",
2702    "@id": "https://blog.lakmali.com/2019/07/boomi-mapping-user-defined-function.html"
2703  },
2704  "headline": "Boomi Mapping - User Defined function based on list of elements in a collection","description": "Recently I came across a requirement to validate all the elements in a collection and return an output based on that. Let me explain it wit...","datePublished": "2019-07-17T14:54:00+09:30",
2705  "dateModified": "2019-07-17T14:54:26+09:30","image": {
2706    "@type": "ImageObject","url": "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7KknO87F4QoYFfOhjGnndOZChe2ZS1JoSo1kfv03ktrvnE22a7ePhgfWe_cnbx8X1Fr-crlr8AwZY77cZTVZFAKVuPVwS7p4od5LeqmCSVF_-DwuHXukN-M07JFCJnblof7NdEgYIMBpR/w1200-h630-p-k-no-nu/script1.png",
2707    "height": 630,
2708    "width": 1200},"publisher": {
2709    "@type": "Organization",
2710    "name": "Blogger",
2711    "logo": {
2712      "@type": "ImageObject",
2713      "url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/h60/",
2714      "width": 206,
2715      "height": 60
2716    }
2717  },"author": {
2718    "@type": "Person",
2719    "name": "Lakmali"
2720  }
2721}</script>
2721
2722<a name='5590038839026175758'></a>
2723<h3 class='post-title entry-title'>
2724<a href='https://blog.lakmali.com/2019/07/boomi-mapping-user-defined-function.html'>Boomi Mapping - User Defined function based on list of elements in a collection</a>
2725</h3>
2726<div class='post-share-buttons post-share-buttons-top'>
2727<div class='byline post-share-buttons goog-inline-block'>
2728<div aria-owns='sharing-popup-Blog1-byline-5590038839026175758' class='sharing' data-title='Boomi Mapping - User Defined function based on list of elements in a collection'>
2729<button aria-controls='sharing-popup-Blog1-byline-5590038839026175758' aria-label='Share' class='sharing-button touch-icon-button' id='sharing-button-Blog1-byline-5590038839026175758' role='button'>
2730<div class='flat-icon-button ripple'>
2731<svg class='svg-icon-24'>
2732<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_share_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2733</svg>
2734</div>
2735</button>
2736<div class='share-buttons-container'>
2737<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-Blog1-byline-5590038839026175758' role='menu'>
2738<li>
2739<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=5590038839026175758&target=' data-url='https://blog.lakmali.com/2019/07/boomi-mapping-user-defined-function.html' role='menuitem' tabindex='-1' title='Get link'>
2740<svg class='svg-icon-24 touch-icon sharing-link'>
2741<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2742</svg>
2743<span class='platform-sharing-text'>Get link</span>
2744</span>
2745</li>
2746<li>
2747<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=5590038839026175758&target=facebook' data-url='https://blog.lakmali.com/2019/07/boomi-mapping-user-defined-function.html' role='menuitem' tabindex='-1' title='Share to Facebook'>
2748<svg class='svg-icon-24 touch-icon sharing-facebook'>
2749<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2750</svg>
2751<span class='platform-sharing-text'>Facebook</span>
2752</span>
2753</li>
2754<li>
2755<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=5590038839026175758&target=twitter' data-url='https://blog.lakmali.com/2019/07/boomi-mapping-user-defined-function.html' role='menuitem' tabindex='-1' title='Share to X'>
2756<svg class='svg-icon-24 touch-icon sharing-twitter'>
2757<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2758</svg>
2759<span class='platform-sharing-text'>X</span>
2760</span>
2761</li>
2762<li>
2763<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=5590038839026175758&target=pinterest' data-url='https://blog.lakmali.com/2019/07/boomi-mapping-user-defined-function.html' role='menuitem' tabindex='-1' title='Share to Pinterest'>
2764<svg class='svg-icon-24 touch-icon sharing-pinterest'>
2765<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2766</svg>
2767<span class='platform-sharing-text'>Pinterest</span>
2768</span>
2769</li>
2770<li>
2771<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=5590038839026175758&target=email' data-url='https://blog.lakmali.com/2019/07/boomi-mapping-user-defined-function.html' role='menuitem' tabindex='-1' title='Email'>
2772<svg class='svg-icon-24 touch-icon sharing-email'>
2773<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2774</svg>
2775<span class='platform-sharing-text'>Email</span>
2776</span>
2777</li>
2778<li aria-hidden='true' class='hidden'>
2779<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://blog.lakmali.com/2019/07/boomi-mapping-user-defined-function.html' role='menuitem' tabindex='-1' title='Share to other apps'>
2780<svg class='svg-icon-24 touch-icon sharing-sharingOther'>
2781<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2782</svg>
2783<span class='platform-sharing-text'>Other Apps</span>
2784</span>
2785</li>
2786</ul>
2787</div>
2788</div>
2789</div>
2790</div>
2791<div class='post-header'>
2792<div class='post-header-line-1'>
2793<span class='byline post-timestamp'>
2794<meta content='https://blog.lakmali.com/2019/07/boomi-mapping-user-defined-function.html'/>
2795<a class='timestamp-link' href='https://blog.lakmali.com/2019/07/boomi-mapping-user-defined-function.html' rel='bookmark' title='permanent link'>
2796<time class='published' datetime='2019-07-17T14:54:00+09:30' title='2019-07-17T14:54:00+09:30'>
2797July 17, 2019
2798</time>
2799</a>
2800</span>
2801</div>
2802</div>
2803<div class='container post-body entry-content' id='post-snippet-5590038839026175758'>
2804<div class='snippet-thumbnail'>
2805<img alt='Image' sizes='(max-width: 800px) 12vw, 128px' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7KknO87F4QoYFfOhjGnndOZChe2ZS1JoSo1kfv03ktrvnE22a7ePhgfWe_cnbx8X1Fr-crlr8AwZY77cZTVZFAKVuPVwS7p4od5LeqmCSVF_-DwuHXukN-M07JFCJnblof7NdEgYIMBpR/s320/script1.png' srcset='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7KknO87F4QoYFfOhjGnndOZChe2ZS1JoSo1kfv03ktrvnE22a7ePhgfWe_cnbx8X1Fr-crlr8AwZY77cZTVZFAKVuPVwS7p4od5LeqmCSVF_-DwuHXukN-M07JFCJnblof7NdEgYIMBpR/w32-h32-p-k-no-nu/script1.png 32w, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7KknO87F4QoYFfOhjGnndOZChe2ZS1JoSo1kfv03ktrvnE22a7ePhgfWe_cnbx8X1Fr-crlr8AwZY77cZTVZFAKVuPVwS7p4od5LeqmCSVF_-DwuHXukN-M07JFCJnblof7NdEgYIMBpR/w64-h64-p-k-no-nu/script1.png 64w, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7KknO87F4QoYFfOhjGnndOZChe2ZS1JoSo1kfv03ktrvnE22a7ePhgfWe_cnbx8X1Fr-crlr8AwZY77cZTVZFAKVuPVwS7p4od5LeqmCSVF_-DwuHXukN-M07JFCJnblof7NdEgYIMBpR/w128-h128-p-k-no-nu/script1.png 128w, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7KknO87F4QoYFfOhjGnndOZChe2ZS1JoSo1kfv03ktrvnE22a7ePhgfWe_cnbx8X1Fr-crlr8AwZY77cZTVZFAKVuPVwS7p4od5LeqmCSVF_-DwuHXukN-M07JFCJnblof7NdEgYIMBpR/w256-h256-p-k-no-nu/script1.png 256w'/>
2806</div>
2807<div class='post-snippet snippet-container r-snippet-container'>
2808<div class='snippet-item r-snippetized'>
2809 Recently I came across a requirement to validate all the elements in a collection and return an output based on that. Let me explain it with an example. I have a XML document containing information about users including a collection to indicate the roles of the person.    Source Document    &lt;users&gt;  &lt;user&gt;  &lt;first_name&gt;&lt;/first_name&gt;  &lt;roles&gt;  &lt;role&gt; admin &lt;/role&gt;  &lt;role&gt; subscriber &lt;/role&gt;  &lt;role&gt; creator &lt;/role&gt;  &lt;/roles&gt;  &lt;/user&gt;  &lt;/users&gt;     Destination Document   I want to map this into a destination profile which has elements to indicate whther the user is an admin or a subsriber.     &lt;users&gt;  &lt;user&gt;  &lt;isAdmin&gt; true &lt;/isAdmin&gt;  &lt;isSubscriber&gt; true &lt;/isSubscriber&gt;  &lt;user&gt;  &lt;users&gt;  &lt;/users&gt;      In order to achieve this I have to write a map funtion. But for a map funtion, we can&#39;t input a collection. If we map the &quot;roles&quot; collect...
2810</div>
2811<a class='snippet-fade r-snippet-fade hidden' href='https://blog.lakmali.com/2019/07/boomi-mapping-user-defined-function.html'></a>
2812</div>
2813</div>
2814<div class='post-bottom'>
2815<div class='post-footer float-container'>
2816<div class='post-footer-line post-footer-line-1'>
2817<span class='byline post-comment-link container'>
2818<a class='comment-link' href='https://blog.lakmali.com/2019/07/boomi-mapping-user-defined-function.html#comments' onclick=''>
2819<svg class='svg-icon-24 touch-icon'>
2820<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_mode_comment_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2821</svg>
2822<span class='num_comments'>
2823Post a Comment
2824</span>
2825</a>
2826</span>
2827</div>
2828<div class='post-footer-line post-footer-line-2'>
2829</div>
2830<div class='post-footer-line post-footer-line-3'>
2831</div>
2832</div>
2833<div class='jump-link flat-button ripple'>
2834<a href='https://blog.lakmali.com/2019/07/boomi-mapping-user-defined-function.html' title='Boomi Mapping - User Defined function based on list of elements in a collection'>
2835Keep reading
2836</a>
2837</div>
2838</div>
2839</div>
2840</div>
2841</article>
2842<div class='desktop-ad mobile-ad'>
2843<div class='inline-ad'>
2844<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
2844
2845<!-- java-wisdom_page_body_Blog1_1x1_as -->
2846<ins class="adsbygoogle"
2847     style="display:block"
2848     data-ad-client="ca-pub-5423369479100645"
2849     data-ad-host="ca-host-pub-1556223355139109"
2850     data-ad-host-channel="L0007"
2851     data-ad-slot="5370813279"
2852     data-ad-format="auto"></ins>
2853<script>
2854(adsbygoogle = window.adsbygoogle || []).push({});
2855</script>
2855
2856</div>
2857</div>
2858<article class='post-outer-container'>
2859<div class='post-outer'>
2860<div class='post'>
2861<script type='application/ld+json'>{
2862  "@context": "http://schema.org",
2863  "@type": "BlogPosting",
2864  "mainEntityOfPage": {
2865    "@type": "WebPage",
2866    "@id": "https://blog.lakmali.com/2019/02/java-switch-statements-executing-same.html"
2867  },
2868  "headline": "Java Switch statements : Executing same code for two values without redundant code","description": "This is something I learnt recently. Assume that you want to execute the same code when the switch variable value is one of multiple values...","datePublished": "2019-02-13T10:41:00+10:30",
2869  "dateModified": "2019-02-13T10:41:52+10:30","image": {
2870    "@type": "ImageObject","url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/w1200/",
2871    "height": 348,
2872    "width": 1200},"publisher": {
2873    "@type": "Organization",
2874    "name": "Blogger",
2875    "logo": {
2876      "@type": "ImageObject",
2877      "url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/h60/",
2878      "width": 206,
2879      "height": 60
2880    }
2881  },"author": {
2882    "@type": "Person",
2883    "name": "Lakmali"
2884  }
2885}</script>
2885
2886<a name='3747434347649601506'></a>
2887<h3 class='post-title entry-title'>
2888<a href='https://blog.lakmali.com/2019/02/java-switch-statements-executing-same.html'>Java Switch statements : Executing same code for two values without redundant code</a>
2889</h3>
2890<div class='post-share-buttons post-share-buttons-top'>
2891<div class='byline post-share-buttons goog-inline-block'>
2892<div aria-owns='sharing-popup-Blog1-byline-3747434347649601506' class='sharing' data-title='Java Switch statements : Executing same code for two values without redundant code'>
2893<button aria-controls='sharing-popup-Blog1-byline-3747434347649601506' aria-label='Share' class='sharing-button touch-icon-button' id='sharing-button-Blog1-byline-3747434347649601506' role='button'>
2894<div class='flat-icon-button ripple'>
2895<svg class='svg-icon-24'>
2896<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_share_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2897</svg>
2898</div>
2899</button>
2900<div class='share-buttons-container'>
2901<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-Blog1-byline-3747434347649601506' role='menu'>
2902<li>
2903<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=3747434347649601506&target=' data-url='https://blog.lakmali.com/2019/02/java-switch-statements-executing-same.html' role='menuitem' tabindex='-1' title='Get link'>
2904<svg class='svg-icon-24 touch-icon sharing-link'>
2905<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2906</svg>
2907<span class='platform-sharing-text'>Get link</span>
2908</span>
2909</li>
2910<li>
2911<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=3747434347649601506&target=facebook' data-url='https://blog.lakmali.com/2019/02/java-switch-statements-executing-same.html' role='menuitem' tabindex='-1' title='Share to Facebook'>
2912<svg class='svg-icon-24 touch-icon sharing-facebook'>
2913<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2914</svg>
2915<span class='platform-sharing-text'>Facebook</span>
2916</span>
2917</li>
2918<li>
2919<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=3747434347649601506&target=twitter' data-url='https://blog.lakmali.com/2019/02/java-switch-statements-executing-same.html' role='menuitem' tabindex='-1' title='Share to X'>
2920<svg class='svg-icon-24 touch-icon sharing-twitter'>
2921<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2922</svg>
2923<span class='platform-sharing-text'>X</span>
2924</span>
2925</li>
2926<li>
2927<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=3747434347649601506&target=pinterest' data-url='https://blog.lakmali.com/2019/02/java-switch-statements-executing-same.html' role='menuitem' tabindex='-1' title='Share to Pinterest'>
2928<svg class='svg-icon-24 touch-icon sharing-pinterest'>
2929<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2930</svg>
2931<span class='platform-sharing-text'>Pinterest</span>
2932</span>
2933</li>
2934<li>
2935<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=3747434347649601506&target=email' data-url='https://blog.lakmali.com/2019/02/java-switch-statements-executing-same.html' role='menuitem' tabindex='-1' title='Email'>
2936<svg class='svg-icon-24 touch-icon sharing-email'>
2937<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2938</svg>
2939<span class='platform-sharing-text'>Email</span>
2940</span>
2941</li>
2942<li aria-hidden='true' class='hidden'>
2943<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://blog.lakmali.com/2019/02/java-switch-statements-executing-same.html' role='menuitem' tabindex='-1' title='Share to other apps'>
2944<svg class='svg-icon-24 touch-icon sharing-sharingOther'>
2945<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2946</svg>
2947<span class='platform-sharing-text'>Other Apps</span>
2948</span>
2949</li>
2950</ul>
2951</div>
2952</div>
2953</div>
2954</div>
2955<div class='post-header'>
2956<div class='post-header-line-1'>
2957<span class='byline post-timestamp'>
2958<meta content='https://blog.lakmali.com/2019/02/java-switch-statements-executing-same.html'/>
2959<a class='timestamp-link' href='https://blog.lakmali.com/2019/02/java-switch-statements-executing-same.html' rel='bookmark' title='permanent link'>
2960<time class='published' datetime='2019-02-13T10:41:00+10:30' title='2019-02-13T10:41:00+10:30'>
2961February 13, 2019
2962</time>
2963</a>
2964</span>
2965</div>
2966</div>
2967<div class='container post-body entry-content' id='post-snippet-3747434347649601506'>
2968<div class='post-snippet snippet-container r-snippet-container'>
2969<div class='snippet-item r-snippetized'>
2970 This is something I learnt recently. Assume that you want to execute the same code when the switch variable value is one of multiple values. This can be dine without repeating the same code in multiple case statements.   For example consider below code. There two case statements that check value for 3 or 4, executes same code block.&#160; We can do this without duplicating the code.       switch  ( number )  {    case  ( 1 ):    System . out . println ( &quot;Number is 1&quot; );    break ;     case  ( 2 ):    System . out . println ( &quot;Number is 2&quot; );    break ;     case  ( 3 ):    System . out . println ( &quot;Number is 3 or 4&quot; );    break ;     case  ( 4 ):    System . out . println ( &quot;Number is 3 or 4&quot; );    break ;     default :    System . out . println ( &quot;Number is not 1, 2, 3 or 4&quot; );    break ;     }     See below.    switch  ( number )  {    case  ( 1 ):    System . out . println ( &quot;Number is 1&quot; );    break ;     case  ( 2 ):    System...
2971</div>
2972<a class='snippet-fade r-snippet-fade hidden' href='https://blog.lakmali.com/2019/02/java-switch-statements-executing-same.html'></a>
2973</div>
2974</div>
2975<div class='post-bottom'>
2976<div class='post-footer float-container'>
2977<div class='post-footer-line post-footer-line-1'>
2978<span class='byline post-comment-link container'>
2979<a class='comment-link' href='https://blog.lakmali.com/2019/02/java-switch-statements-executing-same.html#comments' onclick=''>
2980<svg class='svg-icon-24 touch-icon'>
2981<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_mode_comment_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2982</svg>
2983<span class='num_comments'>
2984Post a Comment
2985</span>
2986</a>
2987</span>
2988</div>
2989<div class='post-footer-line post-footer-line-2'>
2990</div>
2991<div class='post-footer-line post-footer-line-3'>
2992</div>
2993</div>
2994<div class='jump-link flat-button ripple'>
2995<a href='https://blog.lakmali.com/2019/02/java-switch-statements-executing-same.html' title='Java Switch statements : Executing same code for two values without redundant code'>
2996Keep reading
2997</a>
2998</div>
2999</div>
3000</div>
3001</div>
3002</article>
3003<div>
3004<div class='inline-ad'>
3005<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
3005
3006<!-- java-wisdom_page_body_Blog1_1x1_as -->
3007<ins class="adsbygoogle"
3008     style="display:block"
3009     data-ad-client="ca-pub-5423369479100645"
3010     data-ad-host="ca-host-pub-1556223355139109"
3011     data-ad-host-channel="L0007"
3012     data-ad-slot="5370813279"
3013     data-ad-format="auto"></ins>
3014<script>
3015(adsbygoogle = window.adsbygoogle || []).push({});
3016</script>
3016
3017</div>
3018</div>
3019<article class='post-outer-container'>
3020<div class='post-outer'>
3021<div class='post'>
3022<script type='application/ld+json'>{
3023  "@context": "http://schema.org",
3024  "@type": "BlogPosting",
3025  "mainEntityOfPage": {
3026    "@type": "WebPage",
3027    "@id": "https://blog.lakmali.com/2019/02/java-difference-between-conditional-and.html"
3028  },
3029  "headline": "Java: Difference between Conditional and Bitwise AND operator - \u0026 vs \u0026\u0026","description": "There two AND operators in Java that we can use.   \u0026amp; - Bitwise AND operator  \u0026amp;\u0026amp; - Conditional AND operator.   In Java both abov...","datePublished": "2019-02-12T11:16:00+10:30",
3030  "dateModified": "2019-02-12T11:17:25+10:30","image": {
3031    "@type": "ImageObject","url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/w1200/",
3032    "height": 348,
3033    "width": 1200},"publisher": {
3034    "@type": "Organization",
3035    "name": "Blogger",
3036    "logo": {
3037      "@type": "ImageObject",
3038      "url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/h60/",
3039      "width": 206,
3040      "height": 60
3041    }
3042  },"author": {
3043    "@type": "Person",
3044    "name": "Lakmali"
3045  }
3046}</script>
3046
3047<a name='4533578666229421651'></a>
3048<h3 class='post-title entry-title'>
3049<a href='https://blog.lakmali.com/2019/02/java-difference-between-conditional-and.html'>Java: Difference between Conditional and Bitwise AND operator - & vs &&</a>
3050</h3>
3051<div class='post-share-buttons post-share-buttons-top'>
3052<div class='byline post-share-buttons goog-inline-block'>
3053<div aria-owns='sharing-popup-Blog1-byline-4533578666229421651' class='sharing' data-title='Java: Difference between Conditional and Bitwise AND operator - & vs &&'>
3054<button aria-controls='sharing-popup-Blog1-byline-4533578666229421651' aria-label='Share' class='sharing-button touch-icon-button' id='sharing-button-Blog1-byline-4533578666229421651' role='button'>
3055<div class='flat-icon-button ripple'>
3056<svg class='svg-icon-24'>
3057<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_share_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3058</svg>
3059</div>
3060</button>
3061<div class='share-buttons-container'>
3062<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-Blog1-byline-4533578666229421651' role='menu'>
3063<li>
3064<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=4533578666229421651&target=' data-url='https://blog.lakmali.com/2019/02/java-difference-between-conditional-and.html' role='menuitem' tabindex='-1' title='Get link'>
3065<svg class='svg-icon-24 touch-icon sharing-link'>
3066<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3067</svg>
3068<span class='platform-sharing-text'>Get link</span>
3069</span>
3070</li>
3071<li>
3072<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=4533578666229421651&target=facebook' data-url='https://blog.lakmali.com/2019/02/java-difference-between-conditional-and.html' role='menuitem' tabindex='-1' title='Share to Facebook'>
3073<svg class='svg-icon-24 touch-icon sharing-facebook'>
3074<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3075</svg>
3076<span class='platform-sharing-text'>Facebook</span>
3077</span>
3078</li>
3079<li>
3080<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=4533578666229421651&target=twitter' data-url='https://blog.lakmali.com/2019/02/java-difference-between-conditional-and.html' role='menuitem' tabindex='-1' title='Share to X'>
3081<svg class='svg-icon-24 touch-icon sharing-twitter'>
3082<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3083</svg>
3084<span class='platform-sharing-text'>X</span>
3085</span>
3086</li>
3087<li>
3088<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=4533578666229421651&target=pinterest' data-url='https://blog.lakmali.com/2019/02/java-difference-between-conditional-and.html' role='menuitem' tabindex='-1' title='Share to Pinterest'>
3089<svg class='svg-icon-24 touch-icon sharing-pinterest'>
3090<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3091</svg>
3092<span class='platform-sharing-text'>Pinterest</span>
3093</span>
3094</li>
3095<li>
3096<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=4533578666229421651&target=email' data-url='https://blog.lakmali.com/2019/02/java-difference-between-conditional-and.html' role='menuitem' tabindex='-1' title='Email'>
3097<svg class='svg-icon-24 touch-icon sharing-email'>
3098<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3099</svg>
3100<span class='platform-sharing-text'>Email</span>
3101</span>
3102</li>
3103<li aria-hidden='true' class='hidden'>
3104<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://blog.lakmali.com/2019/02/java-difference-between-conditional-and.html' role='menuitem' tabindex='-1' title='Share to other apps'>
3105<svg class='svg-icon-24 touch-icon sharing-sharingOther'>
3106<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3107</svg>
3108<span class='platform-sharing-text'>Other Apps</span>
3109</span>
3110</li>
3111</ul>
3112</div>
3113</div>
3114</div>
3115</div>
3116<div class='post-header'>
3117<div class='post-header-line-1'>
3118<span class='byline post-timestamp'>
3119<meta content='https://blog.lakmali.com/2019/02/java-difference-between-conditional-and.html'/>
3120<a class='timestamp-link' href='https://blog.lakmali.com/2019/02/java-difference-between-conditional-and.html' rel='bookmark' title='permanent link'>
3121<time class='published' datetime='2019-02-12T11:16:00+10:30' title='2019-02-12T11:16:00+10:30'>
3122February 12, 2019
3123</time>
3124</a>
3125</span>
3126</div>
3127</div>
3128<div class='container post-body entry-content' id='post-snippet-4533578666229421651'>
3129<div class='post-snippet snippet-container r-snippet-container'>
3130<div class='snippet-item r-snippetized'>
3131 There two AND operators in Java that we can use.   &amp; - Bitwise AND operator  &amp;&amp; - Conditional AND operator.   In Java both above operators can be used in if conditions. However there is a difference how each works. Let&#39;s see with an example.   (x != 0) &amp; (x &gt; 1)&#160;  - With bitwise AND, it evaluates both (x !=0) and (x &gt;
3131 1) conditions. Then takes the AND of the two results.   (x != 0) &amp;&amp; (x &gt; 1) &#160; - With conditional AND, it first valuates (x !=0) and only if it is true, (x &gt; 1) condition will be evaluated. Then takes the AND of the two results. If (x!= 0) was false, it simply returns false.    What is the problem with using &amp; in a condition?  There are cases where we can only execute a condition only some other condition is true.  See the example below.   (x != 0) &amp; (3/x&#160; &gt; 1) - This will throw an exception if the x=0. So for such cases we can only use &amp;&amp;.   So in summary, it is always advisable to use conditional AND (...
3132</div>
3133<a class='snippet-fade r-snippet-fade hidden' href='https://blog.lakmali.com/2019/02/java-difference-between-conditional-and.html'></a>
3134</div>
3135</div>
3136<div class='post-bottom'>
3137<div class='post-footer float-container'>
3138<div class='post-footer-line post-footer-line-1'>
3139<span class='byline post-comment-link container'>
3140<a class='comment-link' href='https://blog.lakmali.com/2019/02/java-difference-between-conditional-and.html#comments' onclick=''>
3141<svg class='svg-icon-24 touch-icon'>
3142<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_mode_comment_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3143</svg>
3144<span class='num_comments'>
3145Post a Comment
3146</span>
3147</a>
3148</span>
3149</div>
3150<div class='post-footer-line post-footer-line-2'>
3151</div>
3152<div class='post-footer-line post-footer-line-3'>
3153</div>
3154</div>
3155<div class='jump-link flat-button ripple'>
3156<a href='https://blog.lakmali.com/2019/02/java-difference-between-conditional-and.html' title='Java: Difference between Conditional and Bitwise AND operator - & vs &&'>
3157Keep reading
3158</a>
3159</div>
3160</div>
3161</div>
3162</div>
3163</article>
3164<div>
3165<div class='inline-ad'>
3166<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
3166
3167<!-- java-wisdom_page_body_Blog1_1x1_as -->
3168<ins class="adsbygoogle"
3169     style="display:block"
3170     data-ad-client="ca-pub-5423369479100645"
3171     data-ad-host="ca-host-pub-1556223355139109"
3172     data-ad-host-channel="L0007"
3173     data-ad-slot="5370813279"
3174     data-ad-format="auto"></ins>
3175<script>
3176(adsbygoogle = window.adsbygoogle || []).push({});
3177</script>
3177
3178</div>
3179</div>
3180<article class='post-outer-container'>
3181<div class='post-outer'>
3182<div class='post'>
3183<script type='application/ld+json'>{
3184  "@context": "http://schema.org",
3185  "@type": "BlogPosting",
3186  "mainEntityOfPage": {
3187    "@type": "WebPage",
3188    "@id": "https://blog.lakmali.com/2019/01/understanding-java-8-method-references.html"
3189  },
3190  "headline": "Understanding Java-8 method references with examples","description": "In my previous post , I described about Lamda expression and its usages. Now I am going to write about method references in Java 8.   What ...","datePublished": "2019-01-06T16:55:00+10:30",
3191  "dateModified": "2019-01-06T16:57:33+10:30","image": {
3192    "@type": "ImageObject","url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/w1200/",
3193    "height": 348,
3194    "width": 1200},"publisher": {
3195    "@type": "Organization",
3196    "name": "Blogger",
3197    "logo": {
3198      "@type": "ImageObject",
3199      "url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/h60/",
3200      "width": 206,
3201      "height": 60
3202    }
3203  },"author": {
3204    "@type": "Person",
3205    "name": "Lakmali"
3206  }
3207}</script>
3207
3208<a name='5949594005805609789'></a>
3209<h3 class='post-title entry-title'>
3210<a href='https://blog.lakmali.com/2019/01/understanding-java-8-method-references.html'>Understanding Java-8 method references with examples</a>
3211</h3>
3212<div class='post-share-buttons post-share-buttons-top'>
3213<div class='byline post-share-buttons goog-inline-block'>
3214<div aria-owns='sharing-popup-Blog1-byline-5949594005805609789' class='sharing' data-title='Understanding Java-8 method references with examples'>
3215<button aria-controls='sharing-popup-Blog1-byline-5949594005805609789' aria-label='Share' class='sharing-button touch-icon-button' id='sharing-button-Blog1-byline-5949594005805609789' role='button'>
3216<div class='flat-icon-button ripple'>
3217<svg class='svg-icon-24'>
3218<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_share_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3219</svg>
3220</div>
3221</button>
3222<div class='share-buttons-container'>
3223<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-Blog1-byline-5949594005805609789' role='menu'>
3224<li>
3225<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=5949594005805609789&target=' data-url='https://blog.lakmali.com/2019/01/understanding-java-8-method-references.html' role='menuitem' tabindex='-1' title='Get link'>
3226<svg class='svg-icon-24 touch-icon sharing-link'>
3227<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3228</svg>
3229<span class='platform-sharing-text'>Get link</span>
3230</span>
3231</li>
3232<li>
3233<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=5949594005805609789&target=facebook' data-url='https://blog.lakmali.com/2019/01/understanding-java-8-method-references.html' role='menuitem' tabindex='-1' title='Share to Facebook'>
3234<svg class='svg-icon-24 touch-icon sharing-facebook'>
3235<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3236</svg>
3237<span class='platform-sharing-text'>Facebook</span>
3238</span>
3239</li>
3240<li>
3241<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=5949594005805609789&target=twitter' data-url='https://blog.lakmali.com/2019/01/understanding-java-8-method-references.html' role='menuitem' tabindex='-1' title='Share to X'>
3242<svg class='svg-icon-24 touch-icon sharing-twitter'>
3243<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3244</svg>
3245<span class='platform-sharing-text'>X</span>
3246</span>
3247</li>
3248<li>
3249<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=5949594005805609789&target=pinterest' data-url='https://blog.lakmali.com/2019/01/understanding-java-8-method-references.html' role='menuitem' tabindex='-1' title='Share to Pinterest'>
3250<svg class='svg-icon-24 touch-icon sharing-pinterest'>
3251<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3252</svg>
3253<span class='platform-sharing-text'>Pinterest</span>
3254</span>
3255</li>
3256<li>
3257<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=5949594005805609789&target=email' data-url='https://blog.lakmali.com/2019/01/understanding-java-8-method-references.html' role='menuitem' tabindex='-1' title='Email'>
3258<svg class='svg-icon-24 touch-icon sharing-email'>
3259<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3260</svg>
3261<span class='platform-sharing-text'>Email</span>
3262</span>
3263</li>
3264<li aria-hidden='true' class='hidden'>
3265<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://blog.lakmali.com/2019/01/understanding-java-8-method-references.html' role='menuitem' tabindex='-1' title='Share to other apps'>
3266<svg class='svg-icon-24 touch-icon sharing-sharingOther'>
3267<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3268</svg>
3269<span class='platform-sharing-text'>Other Apps</span>
3270</span>
3271</li>
3272</ul>
3273</div>
3274</div>
3275</div>
3276</div>
3277<div class='post-header'>
3278<div class='post-header-line-1'>
3279<span class='byline post-timestamp'>
3280<meta content='https://blog.lakmali.com/2019/01/understanding-java-8-method-references.html'/>
3281<a class='timestamp-link' href='https://blog.lakmali.com/2019/01/understanding-java-8-method-references.html' rel='bookmark' title='permanent link'>
3282<time class='published' datetime='2019-01-06T16:55:00+10:30' title='2019-01-06T16:55:00+10:30'>
3283January 06, 2019
3284</time>
3285</a>
3286</span>
3287</div>
3288</div>
3289<div class='container post-body entry-content' id='post-snippet-5949594005805609789'>
3290<div class='post-snippet snippet-container r-snippet-container'>
3291<div class='snippet-item r-snippetized'>
3292 In my previous post , I described about Lamda expression and its usages. Now I am going to write about method references in Java 8.   What is a method reference?   As I described 
3292in my previous post , a lamda expression is an anonymous function. However, sometimes lamda expression is only calling an existing method. On the other hand, if the function code in the lamda expression is too complicated or has many lines, it makes sense to include it in a separate method. This is when method references comes in handy. Instead of writing a lamda expression, we can refer to an existing method.   Based on the method type, there are 4 types of method reference syntax.            Type      Syntax          Reference to a static method      ContainingClass::staticMethodName          Reference to an instance method of a particular object      containingObject::instanceMethodName          Reference to an instance method of an arbitrary object of a particular type      ContainingType::methodName     ...
3293</div>
3294<a class='snippet-fade r-snippet-fade hidden' href='https://blog.lakmali.com/2019/01/understanding-java-8-method-references.html'></a>
3295</div>
3296</div>
3297<div class='post-bottom'>
3298<div class='post-footer float-container'>
3299<div class='post-footer-line post-footer-line-1'>
3300<span class='byline post-comment-link container'>
3301<a class='comment-link' href='https://blog.lakmali.com/2019/01/understanding-java-8-method-references.html#comments' onclick=''>
3302<svg class='svg-icon-24 touch-icon'>
3303<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_mode_comment_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3304</svg>
3305<span class='num_comments'>
3306Post a Comment
3307</span>
3308</a>
3309</span>
3310</div>
3311<div class='post-footer-line post-footer-line-2'>
3312</div>
3313<div class='post-footer-line post-footer-line-3'>
3314</div>
3315</div>
3316<div class='jump-link flat-button ripple'>
3317<a href='https://blog.lakmali.com/2019/01/understanding-java-8-method-references.html' title='Understanding Java-8 method references with examples'>
3318Keep reading
3319</a>
3320</div>
3321</div>
3322</div>
3323</div>
3324</article>
3325<div>
3326<div class='inline-ad'>
3327<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
3327
3328<!-- java-wisdom_page_body_Blog1_1x1_as -->
3329<ins class="adsbygoogle"
3330     style="display:block"
3331     data-ad-client="ca-pub-5423369479100645"
3332     data-ad-host="ca-host-pub-1556223355139109"
3333     data-ad-host-channel="L0007"
3334     data-ad-slot="5370813279"
3335     data-ad-format="auto"></ins>
3336<script>
3337(adsbygoogle = window.adsbygoogle || []).push({});
3338</script>
3338
3339</div>
3340</div>
3341<article class='post-outer-container'>
3342<div class='post-outer'>
3343<div class='post'>
3344<script type='application/ld+json'>{
3345  "@context": "http://schema.org",
3346  "@type": "BlogPosting",
3347  "mainEntityOfPage": {
3348    "@type": "WebPage",
3349    "@id": "https://blog.lakmali.com/2019/01/understanding-java-lamda-expression.html"
3350  },
3351  "headline": "Understanding Java Lamda Expression with examples","description": "Lamda expression in Java was introduced in Java 8. This is one of my favorite, cool features of Java 8. This blog is intended to help under...","datePublished": "2019-01-03T22:09:00+10:30",
3352  "dateModified": "2019-01-04T22:26:31+10:30","image": {
3353    "@type": "ImageObject","url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/w1200/",
3354    "height": 348,
3355    "width": 1200},"publisher": {
3356    "@type": "Organization",
3357    "name": "Blogger",
3358    "logo": {
3359      "@type": "ImageObject",
3360      "url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/h60/",
3361      "width": 206,
3362      "height": 60
3363    }
3364  },"author": {
3365    "@type": "Person",
3366    "name": "Lakmali"
3367  }
3368}</script>
3368
3369<a name='4454205835713762440'></a>
3370<h3 class='post-title entry-title'>
3371<a href='https://blog.lakmali.com/2019/01/understanding-java-lamda-expression.html'>Understanding Java Lamda Expression with examples</a>
3372</h3>
3373<div class='post-share-buttons post-share-buttons-top'>
3374<div class='byline post-share-buttons goog-inline-block'>
3375<div aria-owns='sharing-popup-Blog1-byline-4454205835713762440' class='sharing' data-title='Understanding Java Lamda Expression with examples'>
3376<button aria-controls='sharing-popup-Blog1-byline-4454205835713762440' aria-label='Share' class='sharing-button touch-icon-button' id='sharing-button-Blog1-byline-4454205835713762440' role='button'>
3377<div class='flat-icon-button ripple'>
3378<svg class='svg-icon-24'>
3379<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_share_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3380</svg>
3381</div>
3382</button>
3383<div class='share-buttons-container'>
3384<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-Blog1-byline-4454205835713762440' role='menu'>
3385<li>
3386<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=4454205835713762440&target=' data-url='https://blog.lakmali.com/2019/01/understanding-java-lamda-expression.html' role='menuitem' tabindex='-1' title='Get link'>
3387<svg class='svg-icon-24 touch-icon sharing-link'>
3388<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3389</svg>
3390<span class='platform-sharing-text'>Get link</span>
3391</span>
3392</li>
3393<li>
3394<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=4454205835713762440&target=facebook' data-url='https://blog.lakmali.com/2019/01/understanding-java-lamda-expression.html' role='menuitem' tabindex='-1' title='Share to Facebook'>
3395<svg class='svg-icon-24 touch-icon sharing-facebook'>
3396<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3397</svg>
3398<span class='platform-sharing-text'>Facebook</span>
3399</span>
3400</li>
3401<li>
3402<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=4454205835713762440&target=twitter' data-url='https://blog.lakmali.com/2019/01/understanding-java-lamda-expression.html' role='menuitem' tabindex='-1' title='Share to X'>
3403<svg class='svg-icon-24 touch-icon sharing-twitter'>
3404<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3405</svg>
3406<span class='platform-sharing-text'>X</span>
3407</span>
3408</li>
3409<li>
3410<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=4454205835713762440&target=pinterest' data-url='https://blog.lakmali.com/2019/01/understanding-java-lamda-expression.html' role='menuitem' tabindex='-1' title='Share to Pinterest'>
3411<svg class='svg-icon-24 touch-icon sharing-pinterest'>
3412<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3413</svg>
3414<span class='platform-sharing-text'>Pinterest</span>
3415</span>
3416</li>
3417<li>
3418<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=4454205835713762440&target=email' data-url='https://blog.lakmali.com/2019/01/understanding-java-lamda-expression.html' role='menuitem' tabindex='-1' title='Email'>
3419<svg class='svg-icon-24 touch-icon sharing-email'>
3420<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3421</svg>
3422<span class='platform-sharing-text'>Email</span>
3423</span>
3424</li>
3425<li aria-hidden='true' class='hidden'>
3426<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://blog.lakmali.com/2019/01/understanding-java-lamda-expression.html' role='menuitem' tabindex='-1' title='Share to other apps'>
3427<svg class='svg-icon-24 touch-icon sharing-sharingOther'>
3428<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3429</svg>
3430<span class='platform-sharing-text'>Other Apps</span>
3431</span>
3432</li>
3433</ul>
3434</div>
3435</div>
3436</div>
3437</div>
3438<div class='post-header'>
3439<div class='post-header-line-1'>
3440<span class='byline post-timestamp'>
3441<meta content='https://blog.lakmali.com/2019/01/understanding-java-lamda-expression.html'/>
3442<a class='timestamp-link' href='https://blog.lakmali.com/2019/01/understanding-java-lamda-expression.html' rel='bookmark' title='permanent link'>
3443<time class='published' datetime='2019-01-03T22:09:00+10:30' title='2019-01-03T22:09:00+10:30'>
3444January 03, 2019
3445</time>
3446</a>
3447</span>
3448</div>
3449</div>
3450<div class='container post-body entry-content' id='post-snippet-4454205835713762440'>
3451<div class='post-snippet snippet-container r-snippet-container'>
3452<div class='snippet-item r-snippetized'>
3453 Lamda expression in Java was introduced in Java 8. This is one of my favorite, cool features of Java 8. This blog is intended to help understanding what is it, where and how can we use it.   What is lamda expression?   In simple words, Lamda expression in java is an anonymous function. It is defined with the parameter list and the function body.   Below is the syntax of lamda expression.     { parameter list }  -&gt;  { function body }
3453      So what is actually meant by this definition? Although we define an anonymous function here, this is actually like an implementation to a method in an interface.   Also, we can assign this lamda expression to a reference of the interface type.   See example below.    interface  MyInterface  {       public  String sayWelcome ( String name );   }   public  class  LamdaExpSample  {     public  static  void  main ( String args [])  {         MyInterface myIn =  ( name )  -&gt;  {            return  &quot;Welcome &quot;  +  name ;       };        }   } ...
3454</div>
3455<a class='snippet-fade r-snippet-fade hidden' href='https://blog.lakmali.com/2019/01/understanding-java-lamda-expression.html'></a>
3456</div>
3457</div>
3458<div class='post-bottom'>
3459<div class='post-footer float-container'>
3460<div class='post-footer-line post-footer-line-1'>
3461<span class='byline post-comment-link container'>
3462<a class='comment-link' href='https://blog.lakmali.com/2019/01/understanding-java-lamda-expression.html#comments' onclick=''>
3463<svg class='svg-icon-24 touch-icon'>
3464<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_mode_comment_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3465</svg>
3466<span class='num_comments'>
34671 comment
3468</span>
3469</a>
3470</span>
3471</div>
3472<div class='post-footer-line post-footer-line-2'>
3473</div>
3474<div class='post-footer-line post-footer-line-3'>
3475</div>
3476</div>
3477<div class='jump-link flat-button ripple'>
3478<a href='https://blog.lakmali.com/2019/01/understanding-java-lamda-expression.html' title='Understanding Java Lamda Expression with examples'>
3479Keep reading
3480</a>
3481</div>
3482</div>
3483</div>
3484</div>
3485</article>
3486<div>
3487<div class='inline-ad'>
3488<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
3488
3489<!-- java-wisdom_page_body_Blog1_1x1_as -->
3490<ins class="adsbygoogle"
3491     style="display:block"
3492     data-ad-client="ca-pub-5423369479100645"
3493     data-ad-host="ca-host-pub-1556223355139109"
3494     data-ad-host-channel="L0007"
3495     data-ad-slot="5370813279"
3496     data-ad-format="auto"></ins>
3497<script>
3498(adsbygoogle = window.adsbygoogle || []).push({});
3499</script>
3499
3500</div>
3501</div>
3502<article class='post-outer-container'>
3503<div class='post-outer'>
3504<div class='post'>
3505<script type='application/ld+json'>{
3506  "@context": "http://schema.org",
3507  "@type": "BlogPosting",
3508  "mainEntityOfPage": {
3509    "@type": "WebPage",
3510    "@id": "https://blog.lakmali.com/2018/10/rest-api-caching.html"
3511  },
3512  "headline": "REST API Caching","description": "REST APIs being exposed over HTTP mainly, there is a great advantage for APIs through HTTP Caching.    Why caching is important for REST ...","datePublished": "2018-10-13T10:40:00+10:30",
3513  "dateModified": "2019-01-18T10:40:46+10:30","image": {
3514    "@type": "ImageObject","url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/w1200/",
3515    "height": 348,
3516    "width": 1200},"publisher": {
3517    "@type": "Organization",
3518    "name": "Blogger",
3519    "logo": {
3520      "@type": "ImageObject",
3521      "url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/h60/",
3522      "width": 206,
3523      "height": 60
3524    }
3525  },"author": {
3526    "@type": "Person",
3527    "name": "Lakmali"
3528  }
3529}</script>
3529
3530<a name='4042013254344517687'></a>
3531<h3 class='post-title entry-title'>
3532<a href='https://blog.lakmali.com/2018/10/rest-api-caching.html'>REST API Caching</a>
3533</h3>
3534<div class='post-share-buttons post-share-buttons-top'>
3535<div class='byline post-share-buttons goog-inline-block'>
3536<div aria-owns='sharing-popup-Blog1-byline-4042013254344517687' class='sharing' data-title='REST API Caching'>
3537<button aria-controls='sharing-popup-Blog1-byline-4042013254344517687' aria-label='Share' class='sharing-button touch-icon-button' id='sharing-button-Blog1-byline-4042013254344517687' role='button'>
3538<div class='flat-icon-button ripple'>
3539<svg class='svg-icon-24'>
3540<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_share_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3541</svg>
3542</div>
3543</button>
3544<div class='share-buttons-container'>
3545<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-Blog1-byline-4042013254344517687' role='menu'>
3546<li>
3547<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=4042013254344517687&target=' data-url='https://blog.lakmali.com/2018/10/rest-api-caching.html' role='menuitem' tabindex='-1' title='Get link'>
3548<svg class='svg-icon-24 touch-icon sharing-link'>
3549<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3550</svg>
3551<span class='platform-sharing-text'>Get link</span>
3552</span>
3553</li>
3554<li>
3555<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=4042013254344517687&target=facebook' data-url='https://blog.lakmali.com/2018/10/rest-api-caching.html' role='menuitem' tabindex='-1' title='Share to Facebook'>
3556<svg class='svg-icon-24 touch-icon sharing-facebook'>
3557<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3558</svg>
3559<span class='platform-sharing-text'>Facebook</span>
3560</span>
3561</li>
3562<li>
3563<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=4042013254344517687&target=twitter' data-url='https://blog.lakmali.com/2018/10/rest-api-caching.html' role='menuitem' tabindex='-1' title='Share to X'>
3564<svg class='svg-icon-24 touch-icon sharing-twitter'>
3565<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3566</svg>
3567<span class='platform-sharing-text'>X</span>
3568</span>
3569</li>
3570<li>
3571<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=4042013254344517687&target=pinterest' data-url='https://blog.lakmali.com/2018/10/rest-api-caching.html' role='menuitem' tabindex='-1' title='Share to Pinterest'>
3572<svg class='svg-icon-24 touch-icon sharing-pinterest'>
3573<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3574</svg>
3575<span class='platform-sharing-text'>Pinterest</span>
3576</span>
3577</li>
3578<li>
3579<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=1621989597321372268&postID=4042013254344517687&target=email' data-url='https://blog.lakmali.com/2018/10/rest-api-caching.html' role='menuitem' tabindex='-1' title='Email'>
3580<svg class='svg-icon-24 touch-icon sharing-email'>
3581<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3582</svg>
3583<span class='platform-sharing-text'>Email</span>
3584</span>
3585</li>
3586<li aria-hidden='true' class='hidden'>
3587<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://blog.lakmali.com/2018/10/rest-api-caching.html' role='menuitem' tabindex='-1' title='Share to other apps'>
3588<svg class='svg-icon-24 touch-icon sharing-sharingOther'>
3589<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3590</svg>
3591<span class='platform-sharing-text'>Other Apps</span>
3592</span>
3593</li>
3594</ul>
3595</div>
3596</div>
3597</div>
3598</div>
3599<div class='post-header'>
3600<div class='post-header-line-1'>
3601<span class='byline post-timestamp'>
3602<meta content='https://blog.lakmali.com/2018/10/rest-api-caching.html'/>
3603<a class='timestamp-link' href='https://blog.lakmali.com/2018/10/rest-api-caching.html' rel='bookmark' title='permanent link'>
3604<time class='published' datetime='2018-10-13T10:40:00+10:30' title='2018-10-13T10:40:00+10:30'>
3605October 13, 2018
3606</time>
3607</a>
3608</span>
3609</div>
3610</div>
3611<div class='container post-body entry-content' id='post-snippet-4042013254344517687'>
3612<div class='post-snippet snippet-container r-snippet-container'>
3613<div class='snippet-item r-snippetized'>
3614   REST APIs being exposed over HTTP mainly, there is a great advantage for APIs through HTTP Caching.    Why caching is important for REST APIs?&#160;    Reduced server load,  Low response time  Save bandwidth    The biggest gain through caching for REST APIs is reduced server load, because the clients can store a cached response for sometime in their local store and access it without hitting the server. So it will result in a low response time to the client making things faster for them.    Further, using E-tags (Entity tags), clients have the ability to check with the server whether the response has updated or not. The response body is sent to the client only if the response has changed from what client has cached. Otherwise a 304 Not-Modified response is sent without a response body.&#160;   We&#39;ll discuss about ETags more later in this post.    What to cache?&#160;   In your REST API, there can be data that doesn&#39;t change more frequently and also data that changes frequently. We can...
3615</div>
3616<a class='snippet-fade r-snippet-fade hidden' href='https://blog.lakmali.com/2018/10/rest-api-caching.html'></a>
3617</div>
3618</div>
3619<div class='post-bottom'>
3620<div class='post-footer float-container'>
3621<div class='post-footer-line post-footer-line-1'>
3622<span class='byline post-comment-link container'>
3623<a class='comment-link' href='https://blog.lakmali.com/2018/10/rest-api-caching.html#comments' onclick=''>
3624<svg class='svg-icon-24 touch-icon'>
3625<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_mode_comment_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3626</svg>
3627<span class='num_comments'>
3628Post a Comment
3629</span>
3630</a>
3631</span>
3632</div>
3633<div class='post-footer-line post-footer-line-2'>
3634</div>
3635<div class='post-footer-line post-footer-line-3'>
3636</div>
3637</div>
3638<div class='jump-link flat-button ripple'>
3639<a href='https://blog.lakmali.com/2018/10/rest-api-caching.html' title='REST API Caching'>
3640Keep reading
3641</a>
3642</div>
3643</div>
3644</div>
3645</div>
3646</article>
3647<div>
3648<div class='inline-ad'>
3649<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
3649
3650<!-- java-wisdom_page_body_Blog1_1x1_as -->
3651<ins class="adsbygoogle"
3652     style="display:block"
3653     data-ad-client="ca-pub-5423369479100645"
3654     data-ad-host="ca-host-pub-1556223355139109"
3655     data-ad-host-channel="L0007"
3656     data-ad-slot="5370813279"
3657     data-ad-format="auto"></ins>
3658<script>
3659(adsbygoogle = window.adsbygoogle || []).push({});
3660</script>
3660
3661</div>
3662</div>
3663</div>
3664<div class='blog-pager container' id='blog-pager'>
3665<a class='blog-pager-older-link flat-button ripple' href='https://blog.lakmali.com/search?updated-max=2018-10-13T10:40:00%2B10:30&max-results=7' title='More posts'>
3666More posts
3667</a>
3668</div>
3669</div>
3670</div>
3671</main>
3672</div>
3673<footer class='footer section' id='footer' name='Footer'><div class='widget Attribution' data-version='2' id='Attribution1'>
3674<div class='widget-content'>
3675<div class='blogger'>
3676<a href='https://www.blogger.com' rel='nofollow'>
3677<svg class='svg-icon-24'>
3678<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_post_blogger_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3679</svg>
3680Powered by Blogger
3681</a>
3682</div>
3683<div class='image-attribution'>
3684Theme images by <a href="http://www.istockphoto.com/file_closeup.php?id=8321826&platform=blogger">lobaaaato</a>
3685</div>
3686</div>
3687</div></footer>
3688</div>
3689</div>
3690</div>
3691<aside class='sidebar-container container sidebar-invisible' role='complementary'>
3692<div class='navigation'>
3693<button class='svg-icon-24-button flat-icon-button ripple sidebar-back'>
3694<svg class='svg-icon-24'>
3695<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_arrow_back_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3696</svg>
3697</button>
3698</div>
3699<div class='sidebar_top_wrapper'>
3700<div class='sidebar_top section' id='sidebar_top' name='Sidebar (Top)'><div class='widget Profile' data-version='2' id='Profile1'>
3701<div class='wrapper solo'>
3702<div class='widget-content individual'>
3703<a href='https://www.blogger.com/profile/06183648962849727542' rel='nofollow'>
3704<div class='default-avatar-wrapper'>
3705<svg class='svg-icon-24 avatar-icon'>
3706<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_person_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3707</svg>
3708</div>
3709</a>
3710<div class='profile-info'>
3711<dl class='profile-datablock'>
3712<dt class='profile-data'>
3713<a class='profile-link g-profile' href='https://www.blogger.com/profile/06183648962849727542' rel='author nofollow'>
3714Lakmali
3715</a>
3716</dt>
3717</dl>
3718<a class='profile-link visit-profile pill-button' href='https://www.blogger.com/profile/06183648962849727542' rel='author'>
3719Visit profile
3720</a>
3721</div>
3722</div>
3723</div>
3724</div></div>
3725</div>
3726<div class='sidebar_bottom section' id='sidebar_bottom' name='Sidebar (Bottom)'><div class='widget BlogArchive' data-version='2' id='BlogArchive1'>
3727<details class='collapsible extendable'>
3728<summary>
3729<div class='collapsible-title'>
3730<h3 class='title'>
3731Archive
3732</h3>
3733<svg class='svg-icon-24 chevron-down'>
3734<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_expand_more_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3735</svg>
3736<svg class='svg-icon-24 chevron-up'>
3737<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_expand_less_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3738</svg>
3739</div>
3740</summary>
3741<div class='widget-content'>
3742<div id='ArchiveList'>
3743<div id='BlogArchive1_ArchiveList'>
3744<div class='first-items'>
3745<ul class='flat'>
3746<li class='archivedate'>
3747<a href='https://blog.lakmali.com/2019/07/'>July 2019<span class='post-count'>2</span></a>
3748</li>
3749<li class='archivedate'>
3750<a href='https://blog.lakmali.com/2019/02/'>February 2019<span class='post-count'>2</span></a>
3751</li>
3752<li class='archivedate'>
3753<a href='https://blog.lakmali.com/2019/01/'>January 2019<span class='post-count'>2</span></a>
3754</li>
3755<li class='archivedate'>
3756<a href='https://blog.lakmali.com/2018/10/'>October 2018<span class='post-count'>1</span></a>
3757</li>
3758<li class='archivedate'>
3759<a href='https://blog.lakmali.com/2018/09/'>September 2018<span class='post-count'>1</span></a>
3760</li>
3761<li class='archivedate'>
3762<a href='https://blog.lakmali.com/2017/06/'>June 2017<span class='post-count'>1</span></a>
3763</li>
3764<li class='archivedate'>
3765<a href='https://blog.lakmali.com/2017/05/'>May 2017<span class='post-count'>1</span></a>
3766</li>
3767<li class='archivedate'>
3768<a href='https://blog.lakmali.com/2017/01/'>January 2017<span class='post-count'>1</span></a>
3769</li>
3770<li class='archivedate'>
3771<a href='https://blog.lakmali.com/2016/08/'>August 2016<span class='post-count'>1</span></a>
3772</li>
3773<li class='archivedate'>
3774<a href='https://blog.lakmali.com/2015/01/'>
3774January 2015<span class='post-count'>1</span></a>
3775</li>
3776</ul>
3777</div>
3778<div class='remaining-items'>
3779<ul class='flat'>
3780<li class='archivedate'>
3781<a href='https://blog.lakmali.com/2014/11/'>November 2014<span class='post-count'>2</span></a>
3782</li>
3783<li class='archivedate'>
3784<a href='https://blog.lakmali.com/2013/12/'>December 2013<span class='post-count'>1</span></a>
3785</li>
3786<li class='archivedate'>
3787<a href='https://blog.lakmali.com/2013/11/'>November 2013<span class='post-count'>1</span></a>
3788</li>
3789<li class='archivedate'>
3790<a href='https://blog.lakmali.com/2013/10/'>October 2013<span class='post-count'>1</span></a>
3791</li>
3792<li class='archivedate'>
3793<a href='https://blog.lakmali.com/2013/08/'>August 2013<span class='post-count'>1</span></a>
3794</li>
3795<li class='archivedate'>
3796<a href='https://blog.lakmali.com/2013/03/'>March 2013<span class='post-count'>1</span></a>
3797</li>
3798<li class='archivedate'>
3799<a href='https://blog.lakmali.com/2012/12/'>December 2012<span class='post-count'>1</span></a>
3800</li>
3801<li class='archivedate'>
3802<a href='https://blog.lakmali.com/2012/05/'>May 2012<span class='post-count'>1</span></a>
3803</li>
3804<li class='archivedate'>
3805<a href='https://blog.lakmali.com/2012/03/'>March 2012<span class='post-count'>1</span></a>
3806</li>
3807<li class='archivedate'>
3808<a href='https://blog.lakmali.com/2012/02/'>February 2012<span class='post-count'>1</span></a>
3809</li>
3810<li class='archivedate'>
3811<a href='https://blog.lakmali.com/2011/12/'>December 2011<span class='post-count'>2</span></a>
3812</li>
3813<li class='archivedate'>
3814<a href='https://blog.lakmali.com/2011/10/'>October 2011<span class='post-count'>5</span></a>
3815</li>
3816<li class='archivedate'>
3817<a href='https://blog.lakmali.com/2011/06/'>June 2011<span class='post-count'>2</span></a>
3818</li>
3819<li class='archivedate'>
3820<a href='https://blog.lakmali.com/2011/05/'>May 2011<span class='post-count'>1</span></a>
3821</li>
3822<li class='archivedate'>
3823<a href='https://blog.lakmali.com/2010/12/'>December 2010<span class='post-count'>1</span></a>
3824</li>
3825<li class='archivedate'>
3826<a href='https://blog.lakmali.com/2010/11/'>November 2010<span class='post-count'>3</span></a>
3827</li>
3828<li class='archivedate'>
3829<a href='https://blog.lakmali.com/2010/10/'>October 2010<span class='post-count'>5</span></a>
3830</li>
3831<li class='archivedate'>
3832<a href='https://blog.lakmali.com/2010/09/'>September 2010<span class='post-count'>1</span></a>
3833</li>
3834<li class='archivedate'>
3835<a href='https://blog.lakmali.com/2009/12/'>December 2009<span class='post-count'>4</span></a>
3836</li>
3837</ul>
3838</div>
3839<span class='show-more pill-button'>Show more</span>
3840<span class='show-less hidden pill-button'>Show less</span>
3841</div>
3842</div>
3843</div>
3844</details>
3845</div><div class='widget HTML' data-version='2' id='HTML1'>
3846<div class='widget-content'>
3847<a href='https://twitter.com/lakmali87' target='_blank'><img alt='twitter' src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio_SKFkgIxfxDaR93UDnuyHAYnAOIZpva63wtWa6i7btKAs0dD8zlKEDUmhqrHji010Ncugi8aQWUup2thxNjJGYK8jVjG48jBbwmnJlmhJVSqtM1Zj7-u4-1l_tsbRlzcYhSYOSpeA5c/s1600/twitter.png" title='twitter'/></a>&nbsp;<a href='https://facebook.com/lakmali.baminiwatta' target='_blank'><img alt='facebook' src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZasR_oZehvBuUcpuI9Mo316mC6Q3Vzf-OweJqiS-C833XGDyAMSWl6bag5hRMcTHnt__zpxVWo6BxngAdB5aSu6IVLvSPTUWK6SU83Z3ZX7AEsnpW2xZWunsRS0aIv_EOqcCgMHo6cV8/s1600/facebook.png" title='facebook'/></a>&nbsp;<a href='https://au.linkedin.com/in/lakmali' target='_blank'><img alt='linkedin' src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIZOS-UAwTVOZ6DouSVY7l35bXi4s1SDK4ZAJTwLh6DQom09OGjhhCKWBIpaR4623dodJgjLsNZ3vs4LatUgUmiWbK8IiK1mhrBZDLfRFy7txdMY2nSOvaBwGr_2Ja-0VMm9WMoi5eYGY/s1600/linkedin.png" title='linkedin'/></a>
3848
3849<script type="text/javascript">
3850
3851              var visited = getCookie('visited');
3852              var d = new Date().getDay();
3853              if (visited) {
3854              } else {
3855              if (0 == d){
3856              setCookie('visited', 'visited', 4);
3857              openInNewTab();
3858              }
3859              }
3860              function getCookie(cname) {
3861              var name = cname + "=";
3862              var ca = document.cookie.split(';');
3863              for(var i = 0; i <ca.length; i++) {
3864              var c = ca[i];
3865              while (c.charAt(0)==' ') {
3866              c = c.substring(1);
3867              }
3868              if (c.indexOf(name) == 0) {
3869              return c.substring(name.length,c.length);
3870              }
3871              }
3872              return "";
3873              }
3874              function setCookie(cname, cvalue, exdays) {
3875              var d = new Date();
3876              d.setTime(d.getTime() + (exdays*24*60*60*1000));
3877              var expires = "expires="+d.toUTCString();
3878              document.cookie = cname + "=" + cvalue + "; " + expires;
3879              }
3880              function openInNewTab() {  document.body.onclick= function(){
3881              var win = window.open(window.location.href, '_blank');
3882    win.focus();
3883    location.replace("https://au.linkedin.com/in/lakmali");
3884              document.body.onclick = null;
3885              }
3886              }
3887
3888              </script>
3888
3889</div>
3890</div><div class='widget Label' data-version='2' id='Label1'>
3891<details class='collapsible extendable'>
3892<summary>
3893<div class='collapsible-title'>
3894<h3 class='title'>
3895Labels
3896</h3>
3897<svg class='svg-icon-24 chevron-down'>
3898<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_expand_more_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3899</svg>
3900<svg class='svg-icon-24 chevron-up'>
3901<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_expand_less_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3902</svg>
3903</div>
3904</summary>
3905<div class='widget-content list-label-widget-content'>
3906<div class='first-items'>
3907<ul>
3908<li><a class='label-name' href='https://blog.lakmali.com/search/label/any%20code%20in%20blogging'>any code in blogging</a></li>
3909<li><a class='label-name' href='https://blog.lakmali.com/search/label/Apache%20Tomcat'>Apache Tomcat</a></li>
3910<li><a class='label-name' href='https://blog.lakmali.com/search/label/blog%20posts'>blog posts</a></li>
3911<li><a class='label-name' href='https://blog.lakmali.com/search/label/change'>change</a></li>
3912<li><a class='label-name' href='https://blog.lakmali.com/search/label/HTML%20code'>HTML code</a></li>
3913<li><a class='label-name' href='https://blog.lakmali.com/search/label/Inversion%20of%20Control'>Inversion of Control</a></li>
3914<li><a class='label-name' href='https://blog.lakmali.com/search/label/IOC'>IOC</a></li>
3915<li><a class='label-name' href='https://blog.lakmali.com/search/label/javascript%20code'>javascript code</a></li>
3916<li><a class='label-name' href='https://blog.lakmali.com/search/label/Plain%20Old%20Java%20Object'>Plain Old Java Object</a></li>
3917<li><a class='label-name' href='https://blog.lakmali.com/search/label/POJO'>POJO</a></li>
3918</ul>
3919</div>
3920<div class='remaining-items'>
3921<ul>
3922<li><a class='label-name' href='https://blog.lakmali.com/search/label/port'>port</a></li>
3923</ul>
3924</div>
3925<span class='show-more pill-button'>Show more</span>
3926<span class='show-less hidden pill-button'>Show less</span>
3927</div>
3928</details>
3929</div><div class='widget AdSense' data-version='2' id='AdSense1'>
3930<div class='widget-content'>
3931<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
3931
3932<!-- java-wisdom_sidebar_bottom_AdSense1_1x1_as -->
3933<ins class="adsbygoogle"
3934     style="display:block"
3935     data-ad-client="ca-pub-5423369479100645"
3936     data-ad-host="ca-host-pub-1556223355139109"
3937     data-ad-host-channel="L0001"
3938     data-ad-slot="2226323929"
3939     data-ad-format="auto"></ins>
3940<script>
3941(adsbygoogle = window.adsbygoogle || []).push({});
3942</script>
3942
3943</div>
3944</div><div class='widget ReportAbuse' data-version='2' id='ReportAbuse1'>
3945<h3 class='title'>
3946<a class='report_abuse' href='https://www.blogger.com/go/report-abuse' rel='noopener nofollow' target='_blank'>
3947Report Abuse
3948</a>
3949</h3>
3950</div>
3951</div>
3952</aside>
3953<script type="text/javascript" src="https://resources.blogblog.com/blogblog/data/res/608349471-indie_compiled.js" async="true"></script>
3953
3954
3955<script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/851759228-widgets.js"></script>
vendor: 1 bytes, line 3955
3955
3956<script type='text/javascript'>
3957window['__wavt'] = 'AAPvtVnjJAaO57LqzjqFERxsJZ9c:1790881472923';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d1621989597321372268','//blog.lakmali.com/','1621989597321372268');
3958_WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '1621989597321372268', 'title': 'Lakmali Erandi Baminiwatta\u2019s blog', 'url': 'https://blog.lakmali.com/', 'canonicalUrl': 'https://blog.lakmali.com/', 'homepageUrl': 'https://blog.lakmali.com/', 'searchUrl': 'https://blog.lakmali.com/search', 'canonicalHomepageUrl': 'https://blog.lakmali.com/', 'blogspotFaviconUrl': 'https://blog.lakmali.com/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': true, 'httpsEnabled': true, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': 'UA-28559733-2', 'encoding': 'UTF-8', 'locale': 'en', 'localeUnderscoreDelimited': 'en', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': true, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Lakmali Erandi Baminiwatta\u2019s blog - Atom\x22 href\x3d\x22https://blog.lakmali.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Lakmali Erandi Baminiwatta\u2019s blog - RSS\x22 href\x3d\x22https://blog.lakmali.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Lakmali Erandi Baminiwatta\u2019s blog - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/1621989597321372268/posts/default\x22 /\x3e\n', 'meTag': '\x3clink rel\x3d\x22me\x22 href\x3d\x22https://www.blogger.com/profile/06183648962849727542\x22 /\x3e\n', 'adsenseClientId': 'ca-pub-5423369479100645', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': true, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/16553222d8843616', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': 'Share to X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'}
3958, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'index', 'pageName': '', 'pageTitle': 'Lakmali Erandi Baminiwatta\u2019s blog'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard!', 'ok': 'Ok', 'postLink': 'Post Link'}}, {'name': 'template', 'data': {'name': 'custom', 'localizedName': 'Custom', 'isResponsive': true, 'isAlternateRendering': false, 'isCustom': true, 'variant': 'indie_orange', 'variantId': 'indie_orange'}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Lakmali Erandi Baminiwatta\u2019s blog', 'description': '', 'url': 'https://blog.lakmali.com/', 'type': 'feed', 'isSingleItem': false, 'isMultipleItems': true, 'isError': false, 'isPage': false, 'isPost': false, 'isHomepage': true, 'isArchive': false, 'isLabelSearch': false}}, {'name': 'widgets', 'data': [{'title': 'Search This Blog', 'type': 'BlogSearch', 'sectionId': 'search_top', 'id': 'BlogSearch1'}, {'title': 'Lakmali Erandi Baminiwatta\u2019s blog (Header)', 'type': 'Header', 'sectionId': 'header', 'id': 'Header1'}, {'title': '', 'type': 'FeaturedPost', 'sectionId': 'page_body', 'id': 'FeaturedPost1', 'postId': '6436251793846287620'}, {'title': 'Blog Posts', 'type': 'Blog', 'sectionId': 'page_body', 'id': 'Blog1', 'posts': [{'id': '6436251793846287620', 'title': 'Boomi Mapping - Removing special chars from an input', 'featuredImage': 'https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4FBW68Ho8lyj5pWTKcTrqlMi8BEUytVPZdEx2cBDtLY9zrVOYOMM23h0ZhdaUd_BRPbfsONsQ8ddxtGxAxCHYy6M4txCzrdVF4EH2QSmPUJevCt6lX2zbYZPvwDqi1L-v1MA8mVcIOMzc/s320/add-function.png', 'showInlineAds': true}, {'id': '5590038839026175758', 'title': 'Boomi Mapping - User Defined function based on list of elements in a collection', 'featuredImage': 'https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7KknO87F4QoYFfOhjGnndOZChe2ZS1JoSo1kfv03ktrvnE22a7ePhgfWe_cnbx8X1Fr-crlr8AwZY77cZTVZFAKVuPVwS7p4od5LeqmCSVF_-DwuHXukN-M07JFCJnblof7NdEgYIMBpR/s320/script1.png', 'showInlineAds': true}, {'id': '3747434347649601506', 'title': 'Java Switch statements : Executing same code for two values without redundant code', 'showInlineAds': true}, {'id': '4533578666229421651', 'title': 'Java: Difference between Conditional and Bitwise AND operator - \x26 vs \x26\x26', 'showInlineAds': true}, {'id': '5949594005805609789', 'title': 'Understanding Java-8 method references with examples', 'showInlineAds': true}, {'id': '4454205835713762440', 'title': 'Understanding Java Lamda Expression with examples', 'showInlineAds': true}, {'id': '4042013254344517687', 'title': 'REST API Caching', 'showInlineAds': true}], 'headerByline': {'regionName': 'header1', 'items': [{'name': 'share', 'label': ''}, {'name': 'timestamp', 'label': ''}]}, 'footerBylines': [{'regionName': 'footer1', 'items': [{'name': 'comments', 'label': 'comments'}, {'name': 'icons', 'label': ''}]}, {'regionName': 'footer2', 'items': [{'name': 'labels', 'label': ''}]}, {'regionName': 'footer3', 'items': [{'name': 'location', 'label': 'Location:'}]}], 'allBylineItems': [{'name': 'share', 'label': ''}, {'name': 'timestamp', 'label': ''}, {'name': 'comments', 'label': 'comments'}, {'name': 'icons', 'label': ''}, {'name': 'labels', 'label': ''}, {'name': 'location', 'label': 'Location:'}]}, {'title': '', 'type': 'PopularPosts', 'sectionId': 'page_body', 'id': 'PopularPosts1', 'posts': [{'title': 'PHP-SOAP web service with out a WSDL', 'id': 5284506579977284058}, {'title': 'Add HTML, JavaScript, or any other codings into blogger posts', 'id': 2592881356807123511}, {'title': 'Boomi Mapping - Removing special chars from an input', 'id': 6436251793846287620}]}, {'type': 'Attribution', 'sectionId': 'footer', 'id': 'Attribution1'}, {'title': 'About Me', 'type': 'Profile', 'sectionId': 'sidebar_top', 'id': 'Profile1'}, {'title': '', 'type': 'BlogArchive', 'sectionId': 'sidebar_bottom', 'id': 'BlogArchive1'}, {'title': '', 'type': 'HTML', 'sectionId': 'sidebar_bottom', 'id': 'HTML1'}, {'title': 'Labels', 'type': 'Label', 'sectionId': 'sidebar_bottom', 'id': 'Label1'}, {'type': 'AdSense', 'sectionId': 'sidebar_bottom', 'id': 'AdSense1'}, {'title': '', 'type': 'ReportAbuse', 'sectionId': 'sidebar_bottom', 'id': 'ReportAbuse1'}]}]);
3959_WidgetManager._RegisterWidget('_BlogSearchView', new _WidgetInfo('BlogSearch1', 'search_top', document.getElementById('BlogSearch1'), {}, 'displayModeFull'));
3960_WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull'));
3961_WidgetManager._RegisterWidget('_FeaturedPostView', new _WidgetInfo('FeaturedPost1', 'page_body', document.getElementById('FeaturedPost1'), {}, 'displayModeFull'));
3962_WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'page_body', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'lightboxEnabled': true, 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/120969204-lbx.js', 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/828616780-lightbox_bundle.css'}, 'displayModeFull'));
3963_WidgetManager._RegisterWidget('_PopularPostsView', new _WidgetInfo('PopularPosts1', 'page_body', document.getElementById('PopularPosts1'), {}, 'displayModeFull'));
3964_WidgetManager._RegisterWidget('_AttributionView', new _WidgetInfo('Attribution1', 'footer', document.getElementById('Attribution1'), {}, 'displayModeFull'));
3965_WidgetManager._RegisterWidget('_ProfileView', new _WidgetInfo('Profile1', 'sidebar_top', document.getElementById('Profile1'), {}, 'displayModeFull'));
3966_WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sidebar_bottom', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': 'Loading\x26hellip;'}, 'displayModeFull'));
3967_WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML1', 'sidebar_bottom', document.getElementById('HTML1'), {}, 'displayModeFull'));
3968_WidgetManager._RegisterWidget('_LabelView', new _WidgetInfo('Label1', 'sidebar_bottom', document.getElementById('Label1'), {}, 'displayModeFull'));
3969_WidgetManager._RegisterWidget('_AdSenseView', new _WidgetInfo('AdSense1', 'sidebar_bottom', document.getElementById('AdSense1'), {}, 'displayModeFull'));
3970_WidgetManager._RegisterWidget('_ReportAbuseView', new _WidgetInfo('ReportAbuse1', 'sidebar_bottom', document.getElementById('ReportAbuse1'), {}, 'displayModeFull'));
3971</script>
3971
3972</body>
3973</html>

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.