এইচটিএমএল 5 ইমেল বৈধকরণ


102

বলা হয় "এইচটিএমএল 5 এর সাথে ব্যবহারকারীর ইনপুটটি কোনও বৈধ ইমেল বা url ঠিকানা কিনা তা পরীক্ষা করার জন্য আমাদের আর জেএস বা সার্ভার সাইড কোডের প্রয়োজন নেই"

কোনও ব্যবহারকারী প্রবেশের পরে আমি কীভাবে ইমেলকে বৈধতা দিতে পারি? এবং জেএস ছাড়াই কীভাবে কোনও বার্তা প্রদর্শিত হবে যদি ব্যবহারকারী তার / তার ইমেল ঠিকানার একটি ভুল ফর্মটি প্রবেশ করে।

<input type="email" pattern="[^ @]*@[^ @]*" placeholder="Enter your email">
<input type="submit" value="Submit">

49
আপনার সর্বদা সার্ভারের পাশ দিয়ে যাচাই করা দরকার। একজন চৌকস ক্লায়েন্ট যেকোন ক্লায়েন্টের পক্ষ থেকে সুরক্ষা পরিমাপকে বাইপাস করতে পারে।
বেনজামিন গ্রুয়েনবুম

এই উত্তরটি HTML5 ফর্ম বৈধতা সেট আপ করার চেষ্টা করতে সহায়তা করতে পারে। অবশ্যই আপনার এখনও যদিও সার্ভার-সাইডের বৈধতা প্রয়োজন।
জোয়েজিজে 50

2
রেজেক্স ইমেল বৈধতা কোনও পরিস্থিতিতে কখনও ব্যবহার করা উচিত নয়। রেজেক্স চেকগুলির অনেকগুলি ত্রুটি রয়েছে। কোনও ইমেল ঠিকানাগুলিকে "বৈধতা দেওয়ার" সর্বোত্তম উপায় হ'ল এগুলিকে কেবল এটি টাইপ করুন এবং একটি রেইজেক্স চেক চালান যা ব্যবহারকারীকে একটি সতর্কতা দেয় যে এটি কোনও বৈধ ইমেল ঠিকানার মতো দেখাচ্ছে না যদি এটি প্যাটার্নটির সাথে মেলে না এবং ব্যবহারকারীকে চেক ডাবল করতে বলছে। এইভাবে, যদি এটি আসলে বৈধ হয় তবে রেজেেক্স ব্যর্থ হয় (এটি প্রায়শই এর মতো হয়) ব্যবহারকারী কেবল স্বীকার করতে পারেন যে তারা জানেন যে এটি বৈধ এবং এটি অবিরত রয়েছে। অনেক বেশি সাইট রেগেক্স বৈধতা ব্যবহার করে এবং এটি অনেক ব্যবহারকারীর জন্য হতাশাজনক।
সাউন্ডফএক্স 4

আমি এই নিবন্ধটি চেক করার পরামর্শ দিচ্ছি: debounce.io/blog/articles/email-ediaation-for-html5-forms
হেজাজি

একই ইমেল ঠিকানাটি দু'বার ইনপুট করতে ব্যবহারকারীকে জিজ্ঞাসা করা অকেজো। আপনি যদি তাদের ইমেল ঠিকানাটি না জানেন, তবে এটিতে দুবার টাইপ করতে বললে প্রতিক্রিয়া উন্নত হয় না। যদি তারা তাদের ইমেল ঠিকানা জানে তবে এটিকে দু'বার টাইপ করতে বলা কেবলমাত্র দুর্বল UI।
মিক্কো রেন্টালাইনেন

উত্তর:


120

এইচটিএমএল 5 এ আপনি এটি করতে পারেন:

<form>
<input type="email" placeholder="Enter your email">
<input type="submit" value="Submit">
</form>

এবং যখন ব্যবহারকারী জমা দিন টিপুন, এটি স্বয়ংক্রিয়ভাবে একটি ত্রুটি বার্তা প্রদর্শন করে:

ভুল বার্তা


3
এখানে প্যাটার্নটির সুবিধা কী? ইমেল হিসাবে প্রকার উল্লেখ করে এটি নির্ধারণের জন্য ইতিমধ্যে একটি বিল্ট ইন প্যাটার্ন অন্তর্ভুক্ত রয়েছে।
ধনী ব্র্যাডশো

3
@ রিচব্রেডশো: হ্যাঁ, আপনি ঠিক বলেছেন। প্যাটার্ন নির্দিষ্ট করার দরকার নেই (আমি কেবল ওপি থেকে কোডটি অনুলিপি করেছি, আমি এখনই সংশোধন করেছি :))
মিডহান এমপি


29
ইমেলটি কোনও ইমেলের জন্য যাচাই করে না .com। এটি কেবলমাত্র @ সাইন পরীক্ষা করে। যাত্রা। আমি example@gmailফর্মটি প্রবেশ করে সংরক্ষণ করতে পারি । যদিও এটি কোনও বৈধ ইমেল ঠিকানা নয়। সঠিকভাবে যাচাই করার জন্য কি কাজ করার চেষ্টা আছে example@gmail.com?
রুচিকা

9
@Liz। example@gmailকোনও বৈধ ইমেল নাও হতে পারে তবে এটি একটি বৈধ ইমেল ঠিকানা ফর্ম্যাট।
পাজা

47

input type=emailপৃষ্ঠার www.w3.org সাইটে নোট একটি ইমেল ঠিকানা কোন স্ট্রিং নিম্নলিখিত রেগুলার এক্সপ্রেশনের সাথে মেলে যে:

/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/

রেগেক্স প্যাটার্নটির সাথে মানটির জন্য মানটির প্রয়োজনের জন্য বিশিষ্টতা requiredএবং একটি patternবৈশিষ্ট্য ব্যবহার করুন ।

<input
    type="text"
    pattern="/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/"
    required
>

14
আপনাকে অবশ্যই দুটি '/' ছাড়াই প্যাটার্নটি সন্নিবেশ করানো উচিত এবং '^' এবং শেষ '$' চিহ্নটি শুরু করুন। এগুলির মতো[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*
ভিক্টর

4
@ ভিক্টর দুঃখিত, তবে আপনি আংশিক ভুল করেছেন। এই চিহ্নগুলি এগুলি ব্যতীত গুরুত্বপূর্ণ, প্যাটার্নটি স্ট্রিংয়ের যে কোনও জায়গায় মিলতে শুরু করবে এবং এটি অকেজো করে তুলবে। যেখানে আপনি সঠিক তা স্ল্যাশগুলি বেরোতে দিচ্ছেন।
হেক্সডাস

@ ভিক্টর আপনার উত্তর আমার পক্ষে কাজ করেছে। ওপি-র রেজেক্স আমাকে বৈধ ইমেল ঠিকানা এমনকি ফর্মের প্রয়োজনীয়তার সাথে মেলে দেওয়ার জন্য একটি মিথ্যা ইতিবাচক বক্তব্য দিয়েছে। সম্ভবত এটি হ'ল আমি নিয়মিত এইচটিএমএল ব্যবহার করছি না, তবে এইচটিএমএল ফর্মটি রেন্ডার করতে প্রতিক্রিয়া জেএস ব্যবহার করছি।
কা মোক

আমি প্রায় এটিকে ভোট দিয়েছি কারণ সঠিক উত্তরটি ডমনোডে বুলিয়ান সম্পত্তি ব্যবহার type="email"এবং পরীক্ষা করা valid- অন্তর্নিহিত রেজেক্স পুনরাবৃত্তি করার প্রয়োজন নেই
ডমিনিক

এটি উল্লেখ করার জন্য আপনাকে ধন্যবাদ।
স্টেফান সিপরিয়ান হটোলিয়ানু

17

/ এর [a-zA-Z0-9.-_]{1,}@[a-zA-Z.-]{2,}[.]{1}[a-zA-Z]{2,}জন্য ব্যবহারsomemail@email.comsomemail@email.com.vn


4
এই রেইজেক্সটি ইমেল ঠিকানার উপর বেশ কয়েকটি অনুপযুক্ত প্রয়োজনীয়তা রাখে - উদাহরণস্বরূপ, এটি ইমেল ঠিকানাগুলি প্রত্যাখ্যান করে যাগুলির একটি-বা দুটি-অক্ষর ব্যবহারকারীর নাম রয়েছে, বা যা একটি-অক্ষরের ডোমেন নামে হোস্ট করা আছে।
ডাস্কউফ -অ্যাক্টিভ-

সম্পাদনা করা হয়েছে। আপনাকে ধন্যবাদ @ ডাস্কউফ
ভ্যান

তবুও এক-অক্ষরের ডোমেন নাম প্রত্যাখ্যান করে।
ডাস্কউফ -অ্যাক্টিভ-

এটি 1 টি অক্ষর / সংখ্যা ডোমেনগুলি অনুমতি দেয়: [a-zA-Z0-9।-_] {1,} @ [a-zA-Z0-9 .-] {1,} [।] {1} [a-zA -জেড-৯] {2,}
রডার

এছাড়াও নোট করুন, উদাহরণস্বরূপ, postmaster@aiএকটি বৈধ ইমেল ঠিকানা এবং এই regexp এছাড়াও নিষিদ্ধ করবে। (উত্স: সার্ভারফাল্ট.com / q / 154991 / 104798 )
মিক্কো রেন্টালাইনেন

12
document.getElementById("email").validity.valid

ক্ষেত্রটি ফাঁকা বা বৈধ হলে সত্য বলে মনে হয়। এটিতে আরও কিছু আকর্ষণীয় পতাকা রয়েছে:

এখানে চিত্র বর্ণনা লিখুন

ক্রোমে পরীক্ষিত।


8

আমার ফর্ম ইমেল ইনপুটগুলির জন্য আমি যে উদাহরণটি ব্যবহার করি তা এখানে। এই উদাহরণটি এএসপি.এনইটি তবে কোনওটির জন্য প্রযোজ্য:

<asp:TextBox runat="server" class="form-control" placeholder="Contact's email" 
    name="contact_email" ID="contact_email" title="Contact's email (format: xxx@xxx.xxx)" 
    type="email" TextMode="Email" validate="required:true"
    pattern="[a-zA-Z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*" >
</asp:TextBox>

HTML5 এখনও প্রয়োজন নেই যখন প্যাটার্ন ব্যবহার করে বৈধতা দেয়। এটি এখনও খুঁজে পাওয়া যায় নি এটি একটি মিথ্যা ইতিবাচক।

এটি নিম্নলিখিত HTML হিসাবে রেন্ডার করে:

<input class="form-control" placeholder="Contact's email" 
    name="contact_email" id="contact_email" type="email" 
    title="Contact's email (format: xxx@xxx.xxx)" 
    pattern="[a-zA-Z0-9!#$%&amp;'*+\/=?^_`{|}~.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*">

7

আমি জানি আপনি জাভাস্ক্রিপ্ট সমাধানের পরে নন তবে কিছু জিনিস যেমন কাস্টমাইজড বৈধতা বার্তা রয়েছে যা আমার অভিজ্ঞতা থেকে কেবল জেএস ব্যবহার করেই করা যায়।

এছাড়াও, জেএস ব্যবহার করে, আপনি প্রতিটি একক ইনপুট ক্ষেত্রে পরিবর্তন করার পরিবর্তে আপনার সাইটের মধ্যে ইমেলের প্রকারের সমস্ত ইনপুট ক্ষেত্রগুলিতে গতিশীলভাবে বৈধতা যুক্ত করতে পারেন।

var validations ={
    email: [/^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/, 'Please enter a valid email address']
};
$(document).ready(function(){
    // Check all the input fields of type email. This function will handle all the email addresses validations
    $("input[type=email]").change( function(){
        // Set the regular expression to validate the email 
        validation = new RegExp(validations['email'][0]);
        // validate the email value against the regular expression
        if (!validation.test(this.value)){
            // If the validation fails then we show the custom error message
            this.setCustomValidity(validations['email'][1]);
            return false;
        } else {
            // This is really important. If the validation is successful you need to reset the custom error message
            this.setCustomValidity('');
        }
    });
})

দয়া করে কেবল লিঙ্কের উত্তর পোস্ট করবেন না। আপনার উত্তরে লিঙ্কটির প্রয়োজনীয় অংশগুলি রাখুন
রাখুন

4

পার্টির জন্য কিছুটা দেরি হলেও এই নিয়মিত প্রকাশ আমাকে ক্লায়েন্টের পক্ষের ইমেল প্রকারের ইনপুটকে বৈধতা দিতে সহায়তা করেছিল। যদিও, আমাদের সর্বদা সার্ভারের দিক থেকেও যাচাই করা উচিত।

<input type="email" pattern="^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$">

আপনি এখানে সব ধরণের আরও রেজেক্স খুঁজে পেতে পারেন ।


4

টিএল; ডিআর: কেবলমাত্র 100% সঠিক পদ্ধতিটি প্রবেশ করানো ইমেল ঠিকানার মধ্যে কোথাও @-সাইন পরীক্ষা করা এবং প্রদত্ত ইমেল ঠিকানায় একটি বৈধতা বার্তা পোস্ট করা। যদি তারা ইমেল বার্তায় বৈধতা নির্দেশাবলী অনুসরণ করতে পারে তবে ইনপুটযুক্ত ইমেল ঠিকানাটি সঠিক।

দীর্ঘ উত্তর:

ডেভিড গিলবার্টসন এই সম্পর্কে কয়েক বছর আগে লিখেছেন :

আমাদের দুটি প্রশ্ন জিজ্ঞাসা করতে হবে:

  1. ব্যবহারকারীরা কি বুঝতে পেরেছিলেন যে এই ক্ষেত্রটিতে তাদের কোনও ইমেল ঠিকানা টাইপ করার কথা ছিল ?
  2. ব্যবহারকারী এই ক্ষেত্রটিতে সঠিকভাবে তাদের নিজস্ব ইমেল ঠিকানা টাইপ করেছেন ?

আপনার যদি "ইমেল" বলে একটি লেবেল সহ একটি ভাল কাঠামোযুক্ত ফর্ম থাকে এবং ব্যবহারকারী কোথাও একটি '@' প্রতীক প্রবেশ করেন, তবে এটি নিরাপদে বলা উচিত যে তারা বোঝে যে তারা কোনও ইমেল ঠিকানা প্রবেশ করানোর কথা ছিল। সহজ।

এরপরে, তারা সঠিকভাবে তাদের ইমেল ঠিকানা প্রবেশ করেছে কিনা তা নিশ্চিত করার জন্য আমরা কিছু বৈধকরণ করতে চাই।

সম্ভব না.

[...]

যে কোনও ভুল টাইপ অবশ্যই একটি ভুল ইমেল ঠিকানার ফলস্বরূপ ঘটবে তবে কেবলমাত্র একটি অবৈধ ইমেল ঠিকানার ফলাফল হতে পারে ।

[...]

কোনও ইমেল ঠিকানা 'বৈধ' হলে তা নিয়ে কাজ করার চেষ্টা করার কোনও অর্থ নেই। কোনও ব্যবহারকারীর একটি অবৈধ ঠিকানা প্রবেশের চেয়ে কোনও ভুল এবং বৈধ ইমেল ঠিকানা প্রবেশের সম্ভাবনা বেশি ।

অন্য কথায়, এটি লক্ষ্য করা গুরুত্বপূর্ণ যে কোনও ধরণের স্ট্রিং ভিত্তিক বৈধতা কেবল সিনট্যাক্সটি অবৈধ কিনা তা পরীক্ষা করতে পারে। ব্যবহারকারী এটি ইমেলটি দেখতে পাবে কিনা তা পরীক্ষা করতে পারে না (যেমন ব্যবহারকারী ইতিমধ্যে শংসাপত্র হারিয়েছেন, অন্য কারওের টাইপ করা ঠিকানা বা প্রদত্ত ব্যবহারের ক্ষেত্রে ব্যক্তিগত ইমেলের পরিবর্তে কাজের ইমেল টাইপ করেছেন)। আপনি যে প্রশ্নটি আসলেই করছেন তার পরে " এই ইমেলটি কি সিন্থেটিকভাবে বৈধ " এর পরিবর্তে " আমি কি প্রদত্ত ইমেল ঠিকানা ব্যবহারকারীর সাথে যোগাযোগ করতে পারি "? আপনি যদি স্ট্রিংটিকে "এটি ধারণ করে @" এর চেয়ে বেশি বৈধতা দেন তবে আপনি আগের প্রশ্নের উত্তর দেওয়ার চেষ্টা করছেন! ব্যক্তিগতভাবে, আমি সবসময় আছি কেবল পরবর্তী উত্তর সম্পর্কে আগ্রহী।

এছাড়াও, কিছু ইমেল ঠিকানা যা সিনথেটিক বা রাজনৈতিকভাবে অবৈধ হতে পারে, কাজ করে। উদাহরণস্বরূপ, postmaster@aiটিএলডির এমএক্স রেকর্ড না থাকা সত্ত্বেও প্রযুক্তিগতভাবে কাজ করে ? WHATWG মেলিং তালিকার (যেখানে এইচটিএমএল 5 প্রথম স্থানে ডিজাইন করা হয়েছে) ইমেলের বৈধতা সম্পর্কে আলোচনা দেখুন ।


2

এইচটিএমএল 5 ব্যবহার করে কেবল ইনপুট ইমেলটি তৈরি করুন:

<input type="email"/>

যখন ব্যবহারকারী ইনপুট বাক্সের উপরে ঘুরে বেড়ায়, তখন তারা একটি বৈধ ইমেল প্রবেশের নির্দেশ দেওয়ার একটি টুলটিপ দেবে। তবে বুটস্ট্র্যাপ ফর্মগুলির কাছে ব্যবহারকারীকে কোনও ইমেল ঠিকানা লিখতে বলার জন্য একটি আরও ভাল টুলটিপ বার্তা রয়েছে এবং এতে প্রবেশ করা মান কোনও বৈধ ইমেলের সাথে মেলে না moment


তবে, এটি "abc @ gmail" এর মতো মামলাগুলিকে অকার্যকর করে না।
nbsamar

হ্যাঁ আমিও তাই মনে করি, যদি আমি উদাহরণস্বরূপ ব্যবহারকারী যদি জিমেইল বা হটমেল রাখে তবে যদি আমার ব্যবহারকারী অন্যটি রাখেন তবে সেগুলি আমার লগইনটি চালিয়ে যেতে দেয় না, আপনি কি জানেন কীভাবে আমি এটি করতে পারি?
সাইমন

2

আপনি এই প্যাটার্নটিও অনুসরণ করতে পারেন

<form action="/action_page.php">
  E-mail: <input type="email" name="email" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$">
  <input type="submit">
</form>

রেফারেন্স: ডাব্লু 3 স্কুলগুলিতে


1
<input type="email" name="email" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$" title="please enter valid email [test@test.com].">আপনি বৈধতা বার্তা প্রদর্শন করতে শিরোনামও যুক্ত করতে পারেন।
imdzeeshan

1

MDN এর মতে , এই RegExp ইমেলগুলি বৈধতা দেওয়ার জন্য ঠিক আছে, কারণ নির্দিষ্টকরণের সাথে মেলে এমন ইমেলগুলি এটির সাথে মেলে।

/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}
  [a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/

0

এইচটিএমএল 5 অ্যাট্রিবিউট "প্যাটার্ন" ব্যবহার করে ইমেলটি সঠিকভাবে যাচাই করা খুব কঠিন। আপনি যদি কোনও "প্যাটার্ন" ব্যবহার না করেন তবে @ কে প্রক্রিয়া করা হবে। যা বৈধ ইমেল নয়।

ব্যবহার pattern="[a-zA-Z]{3,}@[a-zA-Z]{3,}[.]{1}[a-zA-Z]{2,}[.]{1}[a-zA-Z]{2,}"বিন্যাস প্রয়োজন হবে হতে someone@email.comযদি প্রেরক মত একটি বিন্যাস রয়েছে তবে someone@email.net.auএই সমাধানের জন্য আপনি করা হতে পারে (বা অনুরূপ) যাচাই করা হবেpattern="[a-zA-Z]{3,}@[a-zA-Z]{3,}[.]{1}[a-zA-Z]{2,}[.]{1}[a-zA-Z]{2,}[.]{1}[a-zA-Z]{2,}" এই ".com.au বা .net.au বা একইভাবে যাচাই হবে।

তবে এটি ব্যবহার করে, এটি কাউকে@email.com অনুমোদনের অনুমতি দেবে না। এতদূর কেবল ইমেল ঠিকানাগুলি বৈধ করার জন্য এইচটিএমএল 5 ব্যবহার করা এখনও আমাদের সাথে পুরোপুরি নেই। এটি সম্পূর্ণ করতে আপনি এই জাতীয় কিছু ব্যবহার করবেন:

<form>
<input id="email" type="text" name="email" pattern="[a-zA-Z]{3,}@[a-zA-Z]{3,}[.]{1}[a-zA-Z]{2,}[.]{1}[a-zA-Z]{2,}" required placeholder="Enter you Email">
<br>
<input type="submit" value="Submit The Form">
</form>

বা:

<form>
<input id="email" type="text" name="email" pattern="[a-zA-Z]{3,}@[a-zA-Z]{3,}[.]{1}[a-zA-Z]{2,}[.]{1}[a-zA-Z]{2,}[.]{1}[a-zA-Z]{2,}" required placeholder="Enter you Email">
<br>
<input type="submit" value="Submit The Form">
</form>

তবে, HTML5 প্যাটার্ন বৈশিষ্ট্যটি ব্যবহার করে ইমেল ঠিকানাগুলির উভয় বা সমস্ত সংস্করণকে কীভাবে বৈধ করতে হয় তা আমি জানি না।


1
রেজেক্স চেকগুলি কোনও পরিস্থিতিতে কখনই ব্যবহার করা উচিত নয়। অনেকগুলি নিদর্শন রয়েছে এবং তাদের অনেকগুলি ত্রুটি রয়েছে। উদাহরণস্বরূপ, কেউ +customwordhere@email.com অনেক রিজেক্স চেকের কাছে অবৈধ হিসাবে বিবেচিত হয় যখন বাস্তবে এটি 100% বৈধ হয়। রেজেক্স আমার এবং অন্যান্য অনেক ব্যবহারকারী পক্ষের একটি কাঁটা এবং এটি যেতে হবে। কোনও ব্যবহারকারী কোনও বৈধ ইমেল ঠিকানা প্রবেশ করছে তা নিশ্চিত করার জন্য একটি বিকল্প পদ্ধতি ব্যবহার করা দরকার।
Soundfx4

এছাড়াও নোট করুন, উদাহরণস্বরূপ, postmaster@aiএকটি বৈধ ইমেল ঠিকানা এবং এই regexp এছাড়াও নিষিদ্ধ করবে। (সূত্র: সার্ভারফাল্ট.com / q / 154991 / 104798 )
মিক্কো রেন্টালাইনেন

এইচটিএমএল 5 এর সাথে ডিবাউসের মতো ইমেল বৈধকরণ সরঞ্জামও সুপারিশ করা হয়।
ইমান হেজাজি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.