PageSourceSearch

https://stores.itoyokado.co.jp/_next/static/chunks/129.5246409c80cf3312.js

js itoyokado.co.jp collected 2026-09-24 08:54:21 UTC 18,181 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[129],{129:function(e,t,n){"use strict";n.r(t),n.d(t,{LeafletMap:function(){return LeafletMap},default:function(){return L}});var r=n(7294);let o=(0,r.createContext)(null),u=o.Provider;function useLeafletContext(){let e=(0,r.useContext)(o);if(null==e)throw Error("No context provided: useLeafletContext() can only be used in a descendant of <MapContainer>");return e}var a=n(5243),l=n.n(a);function _extends(){return(_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}let i=(0,r.forwardRef)(function({bounds:e,boundsOptions:t,center:n,children:o,className:l,id:i,placeholder:c,style:s,whenReady:p,zoom:f,...d},m){let[v]=(0,r.useState)({className:l,id:i,style:s}),[g,b]=(0,r.useState)(null);(0,r.useImperativeHandle)(m,()=>g?.map??null,[g]);let h=(0,r.useCallback)(r=>{if(null!==r&&null===g){let o=new a.Map(r,d);null!=n&&null!=f?o.setView(n,f):null!=e&&o.fitBounds(e,t),null!=p&&o.whenReady(p),b(Object.freeze({__version:1,map:o}))}},[]);(0,r.useEffect)(()=>()=>{g?.map.remove()},[g]);let w=g?r.createElement(u,{value:g},o):c??null;return r.createElement("div",_extends({},v,{ref:h}),w)});function useMap(){return useLeafletContext().map}function useMapEvent(e,t){let n=useMap();return(0,r.useEffect)(function(){return n.on(e,t),function(){n.off(e,t)}},[n,e,t]),n}var c=n(3935);function createLeafComponent(e){return(0,r.forwardRef)(function(t,n){let{instance:o}=e(t).current;return(0,r.useImperativeHandle)(n,()=>o),null})}function createElementObject(e,t,n){return Object.freeze({instance:e,context:t,container:n})}function element_createElementHook(e,t){return null==t?function(t,n){let o=(0,r.useRef)();return o.current||(o.current=e(t,n)),o}:function(n,o){let u=(0,r.useRef)();u.current||(u.current=e(n,o));let a=(0,r.useRef)(n),{instance:l}=u.current;return(0,r.useEffect)(function(){a.current!==n&&(t(l,n,a.current),a.current=n)},[l,n,o]),u}}function useAttribution(e,t){let n=(0,r.useRef)(t);(0,r.useEffect)(function(){t!==n.current&&null!=e.attributionControl&&(null!=n.current&&e.attributionControl.removeAttribution(n.current),null!=t&&e.attributionControl.addAttribution(t)),n.current=t},[e,t])}function useEventHandlers(e,t){let n=(0,r.useRef)();(0,r.useEffect)(function(){return null!=t&&e.instance.on(t),n.current=t,function(){null!=n.current&&e.instance.off(n.current),n.current=null}},[e,t])}function withPane(e,t){let n=e.pane??t.pane;return n?{...e,pane:n}:e}function createLayerHook(e){return function(t){var n;let o=useLeafletContext(),u=e(withPane(t,o),o);return useAttribution(o.map,t.attribution),useEventHandlers(u.current,t.eventHandlers),n=u.current,(0,r.useEffect)(function(){let e=o.layerContainer??o.map;return e.addLayer(n.instance),function(){o.layerContainer?.removeLayer(n.instance),o.map.removeLayer(n.instance)}},[o,n]),u}}let s=function(e,t){let n=element_createElementHook(e,t),r=createLayerHook(n);return createLeafComponent(r)}(function({url:e,...t},n){let r=new a.TileLayer(e,withPane(t,n));return createElementObject(r,n)},function(e,t,n){!function(e,t,n){let{opacity:r,zIndex:o}=t;null!=r&&r!==n.opacity&&e.setOpacity(r),null!=o&&o!==n.zIndex&&e.setZIndex(o)}(e,t,n);let{url:r}=t;null!=r&&r!==n.url&&e.setUrl(r)}),p=function(e){let t=element_createElementHook(function(t,n){return createElementObject(e(t),n)});return createLeafComponent(function(e){let n=useLeafletContext(),o=t(e,n),{instance:u}=o.current,a=(0,r.useRef)(e.position),{position:l}=e;return(0,r.useEffect)(function(){return u.addTo(n.map),function(){u.remove()}},[n.map,u]),(0,r.useEffect)(function(){null!=l&&l!==a.current&&(u.setPosition(l),a.current=l)},[u,l]),o})}(function(e){return new a.Control.Attribution(e)});var f=n(9499),d=n(967);let m=function(e,t){let n=element_createElementHook(e,t),o=createLayerHook(n);return(0,r.forwardRef)(function(e,t){let{instance:n,context:a}=o(e).current;return(0,r.useImperativeHandle)(t,()=>n),null==e.children?null:r.createElement(u,{value:a},e.children)})}(function({position:e,...t},n){let r=new a.Marker(e,t);return createElementObject(r,Object.freeze({...n,overlayContainer:r}))},function(e,t,n){t.position!==n.position&&e.setLatLng(t.position),null!=t.icon&&t.icon!==n.icon&&e.setIcon(t.icon),null!=t.zIndexOffset&&t.zIndexOffset!==n.zIndexOffset&&e.setZIndexOffset(t.zIndexOffset),null!=t.opacity&&t.opacity!==n.opacity&&e.setOpacity(t.opacity),null!=e.dragging&&t.draggable!==n.draggable&&(!0===t.draggable?e.dragging.enable():e.dragging.disable())}),v=function(e,t){var n;let o=element_createElementHook(e);return n=function(e,n){let r=useLeafletContext(),u=o(withPane(e,r),r);return useAttribution(r.map,e.attribution),useEventHandlers(u.current,e.eventHandlers),t(u.current,r,e,n),u},(0,r.forwardRef)(function(e,t){let[o,u]=(0,r.useState)(!1),{instance:a}=n(e,u).current;(0,r.useImperativeHandle)(t,()=>a),(0,r.useEffect)(function(){o&&a.update()},[a,o,e.children]);let l=a._contentNode;return l?(0,c.createPortal)(e.children,l):null})}(function(e,t){let n=new a.Popup(e,t.overlayContainer);return createElementObject(n,t)},function(e,t,{position:n},o){(0,r.useEffect)(function(){let{instance:r}=e;
1function onPopupOpen(e){e.popup===r&&(r.update(),o(!0))}function onPopupClose(e){e.popup===r&&o(!1)}return t.map.on({popupopen:onPopupOpen,popupclose:onPopupClose}),null==t.overlayContainer?(null!=n&&r.setLatLng(n),r.openOn(t.map)):t.overlayContainer.bindPopup(r),function(){t.map.off({popupopen:onPopupOpen,popupclose:onPopupClose}),t.overlayContainer?.unbindPopup(),t.map.removeLayer(r)}},[e,t,o,n])});var g=n(6010),b=n(1227),h=n(2725),w=n(5012),C=n(5893);function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach(function(t){(0,f.Z)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var BrandPin=function(e){var t=e.shop,n=e.setIsShownPopup,r=e.setShownPopupStoreCode,o=useMap(),u=o.getZoom(),a=t.latitude,l=t.longitude,i=t.brand;if(!a||!l)return null;var c=i.img;if(!c)return null;var s=parseFloat(a),p=parseFloat(l);return(0,C.jsx)(m,{icon:imgIcon(c),position:[s,p],eventHandlers:{click:function(e){var a=e.latlng;n(),r(t.storeCode);var l=b.v.getSystemSettingValue().mapDefaultZoom,i=null!=u?u:l,c=h.P/Math.pow(2,null!=i?i:0),s=a.lat,p=a.lng;o.flyTo({lat:s+100*(1/3600/(30.8/c)),lng:p},i)}},zIndexOffset:0,children:(0,C.jsx)(v,{closeButton:!1,children:(0,C.jsx)(d.G,_objectSpread(_objectSpread({},t),{},{brandImg:c,hasHoverHighlight:w.zT,attachedStore:t.attachedStore?{businessHours:t.attachedStore.businessHours,additionalBusinessHours:t.attachedStore.additionalBusinessHours,openStatus:t.attachedStore.openStatus,establishmentDate:t.attachedStore.establishmentDate,baseInfoBusinessHours:t.attachedStore.baseInfoBusinessHours}:void 0,className:"!px-4 !py-4"}))})})},imgIcon=function(e){var t=b.v.getSystemSettingValue().mapMarkerShape;return new(l()).DivIcon({html:'\n        <div class="'.concat((0,g.Z)("absolute bottom-0 grid w-min justify-items-center transition-all hover:z-mapUI hover:scale-110 hover:cursor-pointer"),'">\n          <img\n            src=').concat(e,'\n            class="').concat((0,g.Z)("h-12 !w-12 border border-[#ccc] bg-white object-cover drop-shadow-mappin","square"===t?"rounded":"rounded-3xl"),'"\n            alt=""\n          />\n          <div class="').concat((0,g.Z)("grid justify-center"),'">\n            <div class="').concat((0,g.Z)("h-3 w-1 bg-[#434343]"),'"></div>\n            <div class="').concat((0,g.Z)("w-1 border-x-2 border-b-0 border-t-4 border-x-transparent border-b-transparent border-t-[#434343]"),'"></div>\n          </div>\n        </div>\n      </div>\n      '),iconSize:[48,64],iconAnchor:[24,64],popupAnchor:[.5,-70],className:(0,g.Z)("w-12 hover:!z-mapUI")})},S=n(8583),y=n(9128),CurrentLocationPin=function(){var e=(0,S.Dv)(y.Gz);if(!(null!=e&&e.lat)||!(null!=e&&e.lng))return null;var t=new(l()).DivIcon({html:'\n              <div class="'.concat((0,g.Z)("relative flex items-center justify-center"),'">\n          <div class="').concat((0,g.Z)("h-6 w-6 rounded-full border-[2.5px] border-blue-map-pin bg-white shadow-lg","z-map flex items-center justify-center"),'">\n            <div class="').concat((0,g.Z)("h-3 w-3 rounded-full bg-blue-map-pin"),'"></div>\n          </div>\n          <div class="').concat((0,g.Z)("absolute z-map h-10 w-10 rounded-full bg-blue-map-pin/30"),'"></div>\n        </div>\n    '),iconSize:[40,40],iconAnchor:[20,20],className:(0,g.Z)("current-location-marker")});return(0,C.jsx)(m,{position:[e.lat,e.lng],icon:t,zIndexOffset:-1e3})};n(6904);var AreaPin=function(e){var t=e.lat,n=e.lng,r=e.label,o=e.count,u=e.allocateZoom,a=useMap();return(0,C.jsx)(m,{icon:createIcon({label:r,count:o}),position:[t,n],eventHandlers:{click:function(){a.flyTo({lat:t,lng:n},u)}}})},createIcon=function(e){var t=e.label,n=e.count;return new(l()).DivIcon({html:'\n      <div class="relative grid hover:cursor-pointer">\n      <div class="hover:group absolute bottom-0 grid w-max translate-x-[-50%] content-center transition-all hover:scale-110">\n        <div class="flex content-center justify-items-center overflow-hidden rounded-full border-[1px] border-[#ccc] bg-white pl-2.5 text-base leading-none drop-shadow-mappin">\n          <p class="flex content-center py-2 pr-2 transition-opacity group-hover:opacity-50 text-text translate-y-[0.5px]">\n            '.concat(t,'\n          </p>\n          <p class="flex content-center bg-primary px-2.5 py-2 pl-2 text-white transition-opacity group-hover:opacity-50">\n            ').concat(n,"\n          </p>\n        </div>\n      </div>\n    </div>\n      "),className:(0,g.Z)("w-12 hover:!z-mapUI")})},x=n(6835),useLeafletLogic=function(e){var t=e.shownPopupStoreCode,n=b.v.isClusterFromMap(),o=b.v.getShopStartZoomLevelFromMap(),u=(0,S.Dv)(y.eK)({isCluster:n,shopStartZoomLevel:o,shownPopupStoreCodeForLeaflet:t}),a=useMap(),l=(0,S.KO)(y.ht),i=(0,x.Z)(l,2),c=i[0],s=i[1],p=(0,S.KO)(y.MY),f=(0,x.Z)(p,2),d=f[0],m=f[1],v=(0,S.KO)(y.KU),g=(0,x.Z)(v,2),w=g[0],C=w.center,M=w.zoom,E=g[1];c||s(a.getBounds());var P=d&&d.flat().every(function(e){return Number.isFinite(e)}
1),L=n?o:Math.max(b.v.getSystemSettingValue().mapDefaultZoom,h.g);if(P){var O=d[0],Z=d[1];O[0]===Z[0]&&O[1]===Z[1]?a.flyTo(O,L,{animate:!1}):a.fitBounds(d,{maxZoom:L}),m(void 0)}var j=(0,S.KO)(y.Z4),k=(0,x.Z)(j,2),_=k[0],F=k[1];_&&((null==C?void 0:C.lat)!=null&&(null==C?void 0:C.lng)!=null&&(a.closePopup(),a.flyTo([C.lat,C.lng],null!=M?M:b.v.getSystemSettingValue().mapDefaultZoom,{animate:!1})),F(!1));var z=(0,r.useCallback)(function(e){return null!=e&&"ne"in e},[]),I=(0,r.useCallback)(function(e){return!!z(c)&&(c.ne.lat!=e.getNorthEast().lat||c.ne.lng!=e.getNorthEast().lng||c.nw.lat!=e.getNorthWest().lat||c.nw.lng!=e.getNorthWest().lng||c.se.lat!=e.getSouthEast().lat||c.se.lng!=e.getSouthEast().lng||c.sw.lat!=e.getSouthWest().lat||c.sw.lng!=e.getSouthWest().lng)},[z,c]),H=(0,r.useCallback)(function(){var e=a.getBounds();I(e)&&(s(e),E({center:a.getCenter(),zoom:a.getZoom()}))},[I,s,a,E]),A=(0,r.useCallback)(function(){a.closePopup()},[a]);return{sortedShopsByLng:(0,r.useMemo)(function(){return null==u?void 0:u.slice().sort(function(e,t){return e.latitude&&t.latitude?Number(e.latitude)>Number(t.latitude)?-1:1:0})},[u]),isChangedBounds:I,onMoveEnd:H,onDragEnd:A}},M=n(9691),E=n(5386),useLeafletLogicForCluster=function(e){var t=e.isChangedBounds,n=b.v.isClusterFromMap(),o=b.v.getMiddleAreaEndZoomLevelFromMap(),u=b.v.getShopStartZoomLevelFromMap(),a=(0,S.KO)(y.Tn),l=(0,x.Z)(a,2),i=l[0],c=l[1],s=(0,S.KO)(y.KU),p=(0,x.Z)(s,2),f=p[0],d=p[1],m=(0,S.b9)(y.ht),v=(0,S.b9)(y.Ey),g=(0,S.b9)(y.nF),h=(0,S.b9)(y.lh),w=(0,S.b9)(y.L5),C=(0,S.b9)(y.Og),P=(0,S.b9)(y.b2),L=(0,S.Dv)(y.z4),O=(0,S.Dv)(y.$N),Z=(0,S.Dv)(y.RG),j=(0,S.Dv)(y.C_),k=(0,r.useState)(!1),_=k[0],F=k[1],z=(0,r.useState)(!1),I=z[0],H=z[1];(0,E.Z)(function(){H(_)},250,[_]);var A=useMap(),D=A.getZoom(),B=Math.ceil(D),R=(0,r.useMemo)(function(){return!_&&B>=u},[_,B,u]),N=(0,r.useMemo)(function(){return!_&&D&&D<=o},[_,o,D]),T=(0,r.useMemo)(function(){return!_&&D&&D<u&&D>o},[_,D,u,o]);(0,r.useEffect)(function(){G.current=null,$.current=null},[j]);var K=(0,r.useCallback)(function(){var e=!1,t=A.getSize(),n=A.latLngToContainerPoint(f.center),r=A.latLngToContainerPoint(A.getCenter());return(Math.abs(n.x-r.x)>.25*t.x||Math.abs(n.y-r.y)>.25*t.y)&&(e=!0),e},[A,f]),U=(0,r.useRef)(0),V=(0,r.useRef)(0),W=(0,r.useRef)(0),G=(0,r.useRef)(null),$=(0,r.useRef)(null),q=(0,r.useCallback)(function(){var e=A.getBounds(),t=A.getCenter(),n=A.getZoom(),r=(0,M.Ah)({bounds:e,center:t}),o=(0,x.Z)(r,3),u=o[0],a=o[1],l=o[2],i=(0,M.Re)({zoom:n}),c=(0,M.Rl)({zoom:n}),s=(0,M.u2)({zoom:n});if(i){var p=(0,M.Lv)(G.current,u);G.current=u,U.current=window.setTimeout(function(){!p&&!L&&(h(G.current),!G.current&&a&&l&&K()&&C((0,M.F$)([a,l]))),g("shops")},250)}else if(s){var f=(0,M.Lv)($.current,u);$.current=u,V.current=window.setTimeout(function(){!f&&(w($.current),!$.current&&a&&l&&K()&&P((0,M.F$)([a,l]))),g("smallAreas")},250)}else c&&(W.current=window.setTimeout(function(){g("middleAreas")},250));m(e),d({center:t,zoom:n}),v(!1)},[A,m,d,L,h,w,v,g,C,P,K]);(0,r.useEffect)(function(){q()},[]),(0,r.useEffect)(function(){I||v(!1)},[I,v]);var J=(0,r.useCallback)(function(){t(null==A?void 0:A.getBounds())&&q()},[t,q,A]),Y=(0,r.useCallback)(function(){clearTimeout(U.current),clearTimeout(V.current),clearTimeout(W.current),i||c(!0)},[i,c]),Q=(0,r.useCallback)(function(){A.closePopup(),c(!1)},[c,A]),X=(0,r.useCallback)(function(){v(!0),F(!0)},[v]),ee=(0,r.useCallback)(function(){F(!1)},[]);return{sortedSmallAreasByLng:(0,r.useMemo)(function(){return n?null==Z?void 0:Z.slice().sort(function(e,t){return e.latitude&&t.latitude?Number(e.latitude)>Number(t.latitude)?-1:1:0}):[]},[Z,n]),sortedMiddleAreasByLng:(0,r.useMemo)(function(){return n?null==O?void 0:O.slice().sort(function(e,t){return e.latitude&&t.latitude?Number(e.latitude)>Number(t.latitude)?-1:1:0}):[]},[O,n]),isShownShopPinForCluster:R,isShownSmallAreaPinForCluster:T,isShownMiddleAreaPinForCluster:N,onMoveEndForCluster:J,onDragStartForCluster:Y,onDragEndForCluster:Q,onZoomStartForCluster:X,onZoomEndForCluster:ee}},P=n(4770),LeafletMap=function(e){var t,n,o,u,a=e.defaultMapParams,l=e.setIsMapLoaded,c=(0,S.Dv)(y.KU),s=c.center,p=c.zoom,f=null!==(t=null==s?void 0:s.lat)&&void 0!==t?t:null===(n=a.center)||void 0===n?void 0:n.lat,d=null!==(o=null==s?void 0:s.lng)&&void 0!==o?o:null===(u=a.center)||void 0===u?void 0:u.lng,m=null!=p?p:a.zoom,v=(0,r.useCallback)(function(){l(!0)},[l]);return f&&d&&m?(0,C.jsx)(i,{className:(0,g.Z)("[&_.leaflet-popup-content-wrapper]:rounded","[&_.leaflet-popup-content-wrapper]:bg-background-color [&_.leaflet-popup-tip]:bg-background-color","[&_.leaflet-popup-content]:m-0 [&_.leaflet-popup-content]:w-[min(100vw-64px,300px)]","[&.leaflet-container_a]:text-primary","[&_.leaflet-popup-content_p+p]:mt-0.5 [&_.leaflet-popup-content_p]:m-0 [&_.leaflet-popup-content_p]:text-sm"),center:[f,d],zoom:m,minZoom:3,maxZoom:18,style:{height:"100%",width:"100%"},inertiaMaxSpeed:200,bounceAtZoomLimits:!0,attributionControl:!1,preferCanvas:!0,whenReady:v,children:(0,C.jsx)(Map_Map,{})}):null},L=LeafletMap,Map_Map=function(){var e=(0,r.useRef)(void 0),setShownPopupStoreCode=function(t){e.current=t},t=useLeafletLogic({shownPopupStoreCode:e.current}),n=t.sortedShopsByLng,o=t.isChangedBounds,u=t.onMoveEnd,a=t.onDragEnd,l=useLeafletLogicForCluster({isChangedBounds:o}),i=l.sortedSmallAreasByLng,c=l.sortedMiddleAreasByLng,f=l.isShownShopPinForCluster,d=l.isShownSmallAreaPinFor
1Cluster,m=l.isShownMiddleAreaPinForCluster,v=l.onMoveEndForCluster,g=l.onDragStartForCluster,h=l.onDragEndForCluster,w=l.onZoomStartForCluster,S=l.onZoomEndForCluster,y=b.v.isClusterFromMap(),x=b.v.getSmallAreaStartZoomLevelFromMap(),M=b.v.getShopStartZoomLevelFromMap(),E=(0,r.useMemo)(function(){return!y||f},[y,f]),L=(0,r.useMemo)(function(){return!!y&&d},[y,d]),O=(0,r.useMemo)(function(){return!!y&&m},[y,m]),Z=(0,r.useRef)(!1),setIsShownPopup=function(){Z.current=!0},j=(0,r.useRef)(0);return useMapEvent("movestart",function(){clearTimeout(j.current)}),useMapEvent("moveend",function(){clearTimeout(j.current),j.current=window.setTimeout(function(){y?v():u(),Z.current=!1},250)}),useMapEvent("dragstart",function(){y&&g()}),useMapEvent("dragend",function(){y?h():a(),setShownPopupStoreCode(void 0)}),useMapEvent("zoomstart",function(){y&&!Z.current&&w()}),useMapEvent("zoomend",function(){y&&!Z.current&&S()}),(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{attribution:'<div className="credit"><a href="https://leafletjs.com" title="A JS library for interactive maps" target="_blank" rel="noopener noreferrer">Leaflet</a> | \xa9 <a href="https://www.openstreetmap.org/copyright" target="_blank" rel="noopener noreferrer">OpenStreetMap</a> contributions | 地図修正は<a href="https://www.openstreetmap.org/fixthemap" target="_blank" rel="noopener noreferrer">こちら</a></div>',url:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"}),(0,C.jsx)(p,{prefix:!1}),(0,C.jsx)(CurrentLocationPin,{}),O&&(null==c?void 0:c.map(function(e){var t=e.latitude,n=e.longitude,r=e.label,o=e.count;return(0,C.jsx)(AreaPin,{lat:t,lng:n,label:r,count:o,allocateZoom:x},(0,P.H)({latitude:t,longitude:n,label:r}))})),L&&(null==i?void 0:i.map(function(e){var t=e.latitude,n=e.longitude,r=e.label,o=e.count;return(0,C.jsx)(AreaPin,{lat:t,lng:n,label:r,count:o,allocateZoom:M},(0,P.H)({latitude:t,longitude:n,label:r}))})),E&&(null==n?void 0:n.map(function(e){var t=e.storeCode;return(0,C.jsx)(BrandPin,{shop:e,setIsShownPopup:setIsShownPopup,setShownPopupStoreCode:setShownPopupStoreCode},t)}))]})}},6904:function(){}}]);

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.